2006-08-15 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blobaf1e15b94afd10d67e3cacc4c1ca07c747a6dd73
1 2006-08-15  James Livingston  <doclivingston@gmail.com>
3         patch by: Christian Becke  <christianbecke@web.de>
5         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
6         multiple selections in the Import Folder dialog. Fixes #351414.
8 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10         * shell/rb-shell.c: (construct_widgets):
11         * shell/rb-statusbar.c: (rb_statusbar_class_init),
12         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
13         (rb_statusbar_get_property), (rb_statusbar_new):
14         * shell/rb-statusbar.h:
15         Use the connect-proxy signal from the UI manager, which covers all
16         action groups, rather than just one.  Fixes #351280.
18 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
20         * widgets/rb-library-browser.c: (rebuild_child_model):
21         Fix query model reference counts (bug #349601).
23 2006-08-15  James Livingston  <doclivingston@gmail.com>
25         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
26         Error signals be non-recursive. Fixes a highly-unlikely issue that
27         could have caused #322972.
29 2006-08-14  James Livingston  <doclivingston@gmail.com>
31         * sources/rb-auto-playlist-source.c:
32         (rb_auto_playlist_source_init):
33         * sources/rb-static-playlist-source.c:
34         (rb_static_playlist_source_init):
36 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
38         * sources/rb-browser-source.c:
39         * sources/rb-import-errors-source.c:
40         * sources/rb-iradio-source.c:
41         * sources/rb-library-source.c:
42         * sources/rb-missing-files-source.c:
43         * sources/rb-play-queue-source.c:
44         * sources/rb-playlist-source.c:
45         * sources/rb-podcast-source.c:
46         * sources/rb-source.c:
47         Make entry-type a property on RBSource, rather than on most of its
48         subclasses.  Fixes #347288.
50 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
52         * remote/dbus/rb-client.c: (parse_pattern),
53         (create_rb_shell_proxies), (main):
54         Actually implement %ag and %aG (genre) for --print-playing-format
56 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
58         * lib/rb-debug.c: (rb_debug_real):
59         No point allocating a buffer for the timestamp when we can just put it
60         on the stack.
62 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
64         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
65         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
67 2006-08-11  James Livingston  <doclivingston@gmail.com>
69         * podcast/rb-podcast-manager.c:
70         (rb_podcast_manager_update_synctime): fix accidental commit in the
71         last, which caused a warning.
73 2006-08-11  James Livingston  <doclivingston@gmail.com>
75         * data/rhythmbox.schemas:
76         * podcast/rb-podcast-manager.c:
77         (rb_podcast_manager_update_synctime): change the schema's
78         update-inteval value from 0 to 1, which causes it to update on
79         startup, rather than never. Should fixs #343818.
81 2006-08-11  James Livingston  <doclivingston@gmail.com>
83         * configure.ac:
84         * data/Makefile.am:
85         - data/rhythmbox.desktop.in:
86         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
87         the @VERSION@ can be substituted in. Fix some issues with newer
88         bug-buddy versions. Fixes #348853.
90 2006-08-10  William Jon McCann  <mccann@jhu.edu>
92         * data/rhythmbox.schemas:
93         * plugins/Makefile.am:
94         * plugins/artdisplay/Makefile.am:
95         * plugins/audioscrobbler/Makefile.am:
96         * plugins/cd-recorder/Makefile.am:
97         * plugins/generic-player/Makefile.am:
98         * plugins/ipod/Makefile.am:
99         * plugins/lirc/Makefile.am:
100         * plugins/lyrics/Makefile.am:
101         * plugins/pythonconsole/Makefile.am:
102         * plugins/rb-module.c:
103         * plugins/rb-module.h:
104         * plugins/rb-plugin-manager.c: (configure_button_cb),
105         (plugin_manager_view_cell_cb), (cursor_changed_cb),
106         (plugin_manager_populate_lists), (plugin_manager_set_active),
107         (plugin_manager_toggle_active),
108         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
109         (rb_plugin_manager_finalize):
110         * plugins/rb-plugin-manager.h:
111         * plugins/rb-plugin.c: (rb_get_plugin_paths),
112         (rb_plugin_find_file):
113         * plugins/rb-plugin.h:
114         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
115         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
116         (rb_plugins_engine_init), (rb_plugin_info_free),
117         (load_plugin_module), (rb_plugins_engine_activate_plugin),
118         (rb_plugins_engine_deactivate_plugin),
119         (rb_plugins_engine_plugin_is_active),
120         (rb_plugins_engine_plugin_is_visible),
121         (rb_plugins_engine_plugin_is_configurable),
122         (rb_plugins_engine_configure_plugin),
123         (rb_plugins_engine_get_plugin_name),
124         (rb_plugins_engine_get_plugin_description),
125         (rb_plugins_engine_get_plugin_authors),
126         (rb_plugins_engine_get_plugin_website),
127         (rb_plugins_engine_get_plugin_copyright),
128         (rb_plugins_engine_get_plugin_icon):
129         * plugins/rb-plugins-engine.h:
130         * plugins/rb-python-module.c: (rb_python_module_init_python),
131         (rb_python_module_load), (rb_python_module_unload),
132         (rb_python_module_class_init), (rb_python_module_new),
133         (finalise_collect_cb), (rb_python_shutdown):
134         * plugins/rb-python-module.h:
135         * plugins/rb-python-plugin.c: (call_python_method),
136         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
137         (impl_is_configurable), (rb_python_object_get_type):
138         * plugins/rb-python-plugin.h:
139         * plugins/rb/Makefile.am:
141         Use TRUE/FALSE in schemas to make it easier to read.  Remove
142         spurious whitespace.  Don't use libgnome explicitly.  Replace the
143         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
144         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
145         special case loading of dirs.  Install plugins to subdirectors of
146         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
147         not DATADIR.  Fixes #350352
149 2006-08-10  James Livingston  <doclivingston@gmail.com>
151         * daapsharing/rb-daap-connection.c: (connection_connected),
152         (connection_disconnected), (connection_operation_done):
153         * daapsharing/rb-daap-share.c: (name_collision_cb):
154         * plugins/generic-player/rb-generic-player-source.c:
155         (rb_generic_player_source_load_playlists):
156         * podcast/rb-podcast-manager.c:
157         (rb_podcast_manager_download_entry),
158         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
159         (end_job), (rb_podcast_manager_event_loop):
160         * rhythmdb/rhythmdb-property-model.c:
161         (rhythmdb_property_model_perform_sync):
162         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
163         (rhythmdb_query_model_process_update), (idle_process_update),
164         (rhythmdb_query_model_reapply_query_cb):
165         * shell/rb-play-order.c: (sync_playing_entry_cb):
166         * shell/rb-removable-media-manager.c:
167         (rb_removable_media_manager_load_media):
168         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
169         (rb_shell_clipboard_sync),
170         (rb_shell_clipboard_entryview_changed_cb),
171         (rb_shell_clipboard_entries_changed_cb),
172         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
173         (rebuild_playlist_menu_idle),
174         (rb_shell_clipboard_playlist_added_cb):
175         * shell/rb-shell-player.c: (notify_playing_idle),
176         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
177         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
178         (rb_shell_quit):
179         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
180         * sources/rb-library-source.c: (add_child_sources_idle):
181         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
182         (burn_cd_idle):
183         * sources/rb-source.c: (update_visibility_idle):
184         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
185         (cb_button_press):
186         * widgets/rb-druid.c: (idle_set_sensitive):
187         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
188         take the GDK lock when we should be, from #348588
190 2006-08-09  James Livingston  <doclivingston@gmail.com>
192         * rhythmdb/rhythmdb-property-model.c:
193         (rhythmdb_property_model_get_path),
194         (rhythmdb_property_model_get_value),
195         (rhythmdb_property_model_iter_next): don't attempt to verify the
196         iterator if it's the All value, since it isn't valid. Fixes a
197         potential crasher.
199 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
201         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
202         (rb_podcast_manager_download_file_info_cb),
203         (rb_podcast_manager_abort_download), (download_info_free),
204         (download_info_new):
205         Use gnome_vfs_async_get_file_info to figure out the local filename for
206         a podcast episode, so we get the filename from the target of any
207         redirects, rather than the source.  When creating the GnomeVFSURI, hide
208         the query string, then append it later, to stop gnome-vfs from
209         converting 'http://' to 'http:/'.  If the local filename ends with the
210         query string, remove it.  Fixes #330766 and #321991.
212 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
214         * sources/rb-library-source.c: (impl_want_uri):
215         * sources/rb-static-playlist-source.c: (impl_want_uri):
216         Treat sftp:// URIs as likely indicators of songness.
218 2006-08-07  James Livingston  <doclivingston@gmail.com>
220         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
221         remote tracks with GStreamer 0.10, and remember their visibility like
222         local ones.
224 2006-08-07  James Livingston  <doclivingston@gmail.com>
226         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
227         apparently it's a borrowed reference. Should fix #347072.
229 2006-08-06  James Livingston  <doclivingston@gmail.com>
231         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
232         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
233         (rb_shuffle_play_order_get_previous),
234         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
235         (remove_from_history), (add_randomly_to_history),
236         (rb_shuffle_sync_history_with_query_model),
237         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
238         (query_model_and_history_contents_match): remove the tentatative
239         history stuff, which is from older code, like we did for -random a few
240         weeks ago.
242 2006-08-06  James Livingston  <doclivingston@gmail.com>
244         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
245         (rb_queue_play_order_get_previous):
246         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
247         (rb_random_play_order_go_next),
248         (rb_random_play_order_get_previous), (rb_random_db_changed):
249         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
250         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
251         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
252         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
253         (rb_shuffle_entry_removed),
254         (query_model_and_history_contents_match):
255         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
256         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
257         (default_has_next), (default_has_previous),
258         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
259         various play orders, after reviewing the code. Should fix #349601.
261 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
263         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
264         Pass the items_per_notification parameter to
265         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
266         with some versions of python.
268 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
270         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
271         Don't try to draw the icon if the drawable area is too small.
272         Fixes #349838.
274 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
276         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
278         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
280 2006-08-05  James Livingston  <doclivingston@gmail.com>
282         * configure.ac: tell libtool not to check for C++/fortran/ etc
283         compilers
285         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
286         watch, to fix some gconf warnings.
288 2006-08-04  James Livingston  <doclivingston@gmail.com>
290         patch by: William Jon McCann  <mccann@jhu.edu>
292         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
294 2006-08-04  James Livingston  <doclivingston@gmail.com>
296         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
297         actually fix #349722 this time
299 2006-08-04  James Livingston  <doclivingston@gmail.com>
301         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
302         to seach for local art from http:// URIs, or those gnome-vfs doesn't
303         know about. Fixes #348571.
305 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
307         various fixes for valgrind complaints:
308         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
309         (init_rb_tree_dnd_data):
310           free the associated target list, too
311         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
312           initialize allocation.{x,y,width,height} correctly
313         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
314         (rb_entry_view_constructor):
315           free strings when no longer needed
317 2006-08-03  James Livingston  <doclivingston@gmail.com>
319         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
320         real GtkTreeModel not the filter. Fixes #349722
322 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
324         * backends/gstreamer/rb-player-gst.c:
325         Only use DAAP seek hacks for GStreamer 0.8 builds.
327         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
328         (rb_daap_src_open):
329         * daapsharing/rb-daap-src.h:
330         Implement normal GStreamer seeking for GStreamer 0.10 builds.
332         * sources/rb-daap-source.c: (rb_daap_source_class_init),
333         (rb_daap_source_get_headers):
334         * sources/rb-daap-source.h:
335         Reimplement rb_daap_source_get_headers for the case where we've
336         already got the byte offset.  Add a small hack to
337         rb_daap_source_class_init to prevent the linker from dropping
338         rb-daap-src.o entirely.
340         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
342 2006-08-02  James Livingston  <doclivingston@gmail.com>
344         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
345         (handle_song_listing), (handle_playlist_entries),
346         (rb_daap_connection_dispose):
347         * sources/rb-daap-source.c: (_add_location_to_playlist),
348         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
349         for playlist URIs, not pointless duplicate strings. From #347425.
351 2006-08-02  James Livingston  <doclivingston@gmail.com>
353         * data/rhythmbox.schemas:
354         * lib/rb-preferences.h:
355         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
356         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
357         (plugin_manager_set_active), (plugin_manager_toggle_active),
358         (plugin_manager_get_selected_plugin), (name_search_cb),
359         (plugin_manager_construct_tree), (rb_plugin_manager_new),
360         (rb_plugin_manager_finalize):
361         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
362         (rb_plugins_engine_load_all), (rb_plugin_info_free),
363         (rb_plugins_engine_plugin_is_visible),
364         (rb_plugins_engine_plugin_visible_cb):
365         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
366         per-user plugins, and 2) hide plugins from the manager UI. From #349395
368 2006-08-02  James Livingston  <doclivingston@gmail.com>
370         * sources/rb-sourcelist-model.c:
371         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
372         drop on a source. Fixes #349580.
374 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
376         * configure.ac:
377         * daapsharing/rb-daap-dialog.c:
378         * daapsharing/rb-daap-dialog.h:
379         * shell/Makefile.am:
380         * sources/Makefile.am:
381         * sources/rb-daap-source.c: (connection_auth_cb),
382         (rb_daap_source_connection_cb), (rb_daap_source_activate):
383         Add gnome-keyring support for DAAP passwords and use
384         gnome-password-dialog instead of our own.  
385         Patch mostly by James Livingston.  Fixes bug #330346.
387 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
389         * shell/rb-shell-player.c:
390         (rb_shell_player_set_playing_source_internal),
391         (rb_shell_player_sync_with_selected_source):
392         Remove call to rb_source_have_url, as we never did anything with the
393         result.
395         * sources/rb-browser-source.c: (rb_browser_source_class_init):
396         * sources/rb-import-errors-source.c:
397         (rb_import_errors_source_class_init):
398         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
399         (impl_song_properties), (impl_want_uri), (impl_add_uri):
400         * sources/rb-library-source.c: (rb_library_source_class_init),
401         (impl_want_uri), (impl_add_uri):
402         * sources/rb-missing-files-source.c:
403         (rb_missing_files_source_class_init):
404         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
405         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
406         (impl_want_uri), (impl_add_uri):
407         * sources/rb-source.c: (rb_source_class_init),
408         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
409         * sources/rb-source.h:
410         * sources/rb-static-playlist-source.c:
411         (rb_static_playlist_source_class_init), (search_action_changed),
412         (impl_want_uri):
413         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
414         When adding a URI, want_uri gets called for each source; the one that
415         wants it most gets the URI passed to its add_uri method.
416         
417         * shell/rb-shell.h:
418         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
419         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
420         (handle_playlist_entry_cb), (rb_shell_load_uri):
421         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
422         Use want_uri and add_uri to simplify and make generic
423         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
425         If a source that returns TRUE from try_playlist wants all the URIs in
426         the playlist, give it the playlist URI instead.  This retains the
427         existing behaviour for adding iradio playlists.
429         * bindings/python/rb.defs: Update for above changes.
431         From bug #347097.
433 2006-07-31  James Livingston  <doclivingston@gmail.com>
435         * data/Makefile.am:
436         * data/generate-keys.sh: fix the build I broke with the last commit.
437         Oops.
439 2006-07-31  James Livingston  <doclivingston@gmail.com>
441         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
442         in a long time. Fixes #349179.
444 2006-07-30  James Livingston  <doclivingston@gmail.com>
446         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
447         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
448         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
450 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
452         * sources/rb-browser-source.c: (rb_browser_source_do_query):
453         Don't tell the browser the query is still pending when doing a subset
454         search.  Fixes #348617 again.
456 2006-07-30  James Livingston  <doclivingston@gmail.com>
458         * bindings/python/rb.override: remove an extraneous _wrap_ from the
459         override definition. Fixes #348893.
461 2006-07-30  James Livingston  <doclivingston@gmail.com>
463         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
464         rb_error_dialog, as it's above this in the stack.
466         * lib/rb-util.c: (rb_gvalue_compare):
467         * lib/rb-util.h: change the return type to int, as we're returning
468         -1/0/1
470         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
471         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
472         (rb_query_creator_set_sorting): minor leak fixes
474 2006-07-28  James Livingston  <doclivingston@gmail.com>
476         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
477         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
478         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
479         (get_or_create_genre), (remove_entry_from_album),
480         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
481         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
482         (rhythmdb_tree_entry_lookup_by_location),
483         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
484         (rhythmdb_hash_tree_foreach),
485         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
486         threadsafe. Fix a nasty problem if the _foreach callback function
487         caused the addition/removal of entries.
489 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
491         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
492         Clear selection before changing our idea of the model.  Fixes crashes
493         on model changes while playing.
495 2006-07-27  James Livingston  <doclivingston@gmail.com>
497         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
498         a missing rb_refstring_unref.
500         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
501         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
502         oops. should hopefully fix the crash reported on #347425.
504 2006-07-27  James Livingston  <doclivingston@gmail.com>
506         * backends/gstreamer/rb-encoder-gst.c:
507         (get_profile_from_mime_type): fix encoding error issue, from #310774.
509         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
510         thread-safety issue.
512 2006-07-27  James Livingston  <doclivingston@gmail.com>
514         * rhythmdb/rb-refstring.c: (rb_refstring_find):
515         * rhythmdb/rb-refstring.h: add a new function which returns the
516         RBRefString that matches a string, but never creates a new one.
518         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
519         (monitor_entry_file), (rhythmdb_check_changed_file),
520         (rhythmdb_directory_change_cb):
521         * rhythmdb/rhythmdb-private.h:
522         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
523         (unparent_entries), (free_unknown_entries),
524         (rhythmdb_tree_parser_start_element),
525         (rhythmdb_tree_parser_end_element), (save_entry),
526         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
527         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
528         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
529         (rhythmdb_tree_entry_type_registered):
530         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
531         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
532         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
533         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
534         (rhythmdb_process_metadata_load),
535         (rhythmdb_process_file_created_or_modified),
536         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
537         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
538         (action_thread_main), (rhythmdb_entry_set_internal),
539         (rhythmdb_entry_move_to_trash_set_error),
540         (rhythmdb_entry_move_to_trash),
541         (rhythmdb_entry_lookup_by_location),
542         (rhythmdb_entry_lookup_by_location_refstring),
543         (default_sync_metadata), (rhythmdb_entry_get_string),
544         (rhythmdb_entry_get_refstring):
545         * rhythmdb/rhythmdb.h:
546         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
547         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
548         (rb_playlist_source_row_deleted),
549         (rb_playlist_source_entry_added_cb),
550         (rb_playlist_source_location_in_map),
551         (rb_playlist_source_add_to_map): Make the LOCATION field of
552         RhythmDBEntry be a RBRefString instead, which reduces some of the
553         memory-fragmentation on startup and saves RBStaticPlaylistSource
554         duplicating all the strings.
556 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
558         * rhythmdb/rhythmdb-query-model.c:
559         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
560         * rhythmdb/rhythmdb-query-model.h:
561         Add function to copy contents from one query model to another,
562         filtered by the destination model's query.
564         * sources/rb-browser-source.c: (rb_browser_source_do_query):
565         Use the above to create a new query model for subset searches, rather
566         than filtering the existing model. Fixes #348617.
568 2006-07-25  James Livingston  <doclivingston@gmail.com>
570         * rhythmdb/rhythmdb-query-model.c:
571         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
572         lost from static playlists. Yet again. Fixes #323095.
574         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
575         case for the above, so that we should know if a change will break it
576         again.
578 2006-07-25  William Jon McCann  <mccann@jhu.edu>
580         * data/rhythmbox.schemas: Fix for last commit.
582         * podcast/rb-podcast-manager.c:
583         (rb_podcast_manager_download_entry),
584         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
585         (rb_podcast_manager_db_entry_deleted_cb):
586         * rhythmdb/rhythmdb-property-model.c:
587         (rhythmdb_property_model_set_query_model_internal),
588         (rhythmdb_property_model_set_property),
589         (rhythmdb_property_model_finalize),
590         (rhythmdb_property_model_drag_data_get):
591         * rhythmdb/rhythmdb-query-model.c:
592         (rhythmdb_query_model_set_query_internal),
593         (rhythmdb_query_model_set_property),
594         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
595         * rhythmdb/rhythmdb-query-model.h:
596         * sources/rb-browser-source.c: (rb_browser_source_dispose),
597         (rb_browser_source_do_query):
598         * sources/rb-import-errors-source.c:
599         (rb_import_errors_source_constructor):
600         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
601         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
602         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
603         (impl_search), (impl_get_status),
604         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
605         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
606         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
607         * sources/rb-missing-files-source.c:
608         (rb_missing_files_source_constructor),
609         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
610         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
611         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
612         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
613         (rb_playlist_source_save_playlist),
614         (rb_playlist_source_new_from_xml),
615         (rb_playlist_source_save_to_xml),
616         (rb_playlist_source_setup_entry_view),
617         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
618         (rb_playlist_source_get_query_model),
619         (rb_playlist_source_mark_dirty),
620         (rb_playlist_source_location_in_map),
621         (rb_playlist_source_add_to_map):
622         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
623         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
624         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
625         (impl_delete), (rb_podcast_source_state_prefs_sync),
626         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
627         (impl_get_config_widget), (rb_podcast_source_add_feed),
628         (rb_podcast_source_cmd_download_post),
629         (rb_podcast_source_cmd_cancel_download),
630         (rb_podcast_source_cmd_delete_feed),
631         (rb_podcast_source_cmd_update_feed),
632         (rb_podcast_source_cmd_update_all),
633         (rb_podcast_source_cb_interval_changed_cb),
634         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
635         (rb_podcast_source_entry_activated_cb):
636         * sources/rb-source.c: (rb_source_finalize),
637         (rb_source_set_query_model_internal), (rb_source_set_property),
638         (default_get_status):
639         * sources/rb-static-playlist-source.c:
640         (rb_static_playlist_source_dispose),
641         (rb_static_playlist_source_finalize),
642         (rb_static_playlist_source_constructor),
643         (rb_static_playlist_source_do_query):
644         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
645         (rb_entry_view_set_shell_player_internal),
646         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
647         (rb_entry_view_set_model), (rb_entry_view_append_column),
648         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
649         (rb_entry_view_set_state):
650         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
651         (rb_library_browser_finalize), (rb_library_browser_new),
652         (update_browser_property_visibilty), (view_selection_reset_cb),
653         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
654         (restore_selection), (rebuild_child_model),
655         (rb_library_browser_set_selection), (rb_library_browser_set_model):
656         * widgets/rb-property-view.c:
657         (rb_property_view_set_model_internal),
658         (rb_property_view_set_selection_mode), (rb_property_view_reset),
659         (rb_property_view_get_model), (rb_property_view_set_model),
660         (rb_property_view_get_num_properties),
661         (rb_property_view_set_selection),
662         (rb_property_view_append_column_custom),
663         (rb_property_view_set_search_func):
664         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
665         From #347446
667 2006-07-25  William Jon McCann  <mccann@jhu.edu>
669         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
670         Work around a small n-c-b API change.
672 2006-07-25  James Livingston  <doclivingston@gmail.com>
674         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
676         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
677         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
678         aborting entry-emission on finalise
680 2006-07-25  James Livingston  <doclivingston@gmail.com>
682         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
683         warning when entry is NULL.
685 2006-07-25  James Livingston  <doclivingston@gmail.com>
687         * help/sv/.cvsignore:
688         * lib/.cvsignore:
689         * plugins/generic-player/.cvsignore:
690         * remote/.cvsignore:
691         * remote/dbus/.cvsignore:
692         * shell/.cvsignore:
693         * tests/.cvsignore: more .cvsignore updates
695 2006-07-24  James Livingston  <doclivingston@gmail.com>
697         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
698         (transparent_expose_event), (make_transparent_again),
699         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
700         apply a patch for EggTrayIcon so that it handled transparent panels
701         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
702         Fixes #348208.
704 2006-07-24  James Livingston  <doclivingston@gmail.com>
706         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
707         queries rather than taking ownership when parsing a subquery. Fixed a
708         crash exposed by the recent leak fixes.
710         * doc/reference/tmpl/disclosure-widget.sgml:
711         * doc/reference/tmpl/rb-debug.sgml:
712         * doc/reference/tmpl/rb-metadata.sgml:
713         * doc/reference/tmpl/rb-play-order.sgml:
714         * doc/reference/tmpl/rb-playlist-manager.sgml:
715         * doc/reference/tmpl/rb-playlist-source.sgml:
716         * doc/reference/tmpl/rb-shell-player.sgml:
717         * doc/reference/tmpl/rb-shell.sgml:
718         * doc/reference/tmpl/rb-song-display-box.sgml:
719         * doc/reference/tmpl/rhythmbox-unused.sgml:
720         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
722 2006-07-24  James Livingston  <doclivingston@gmail.com>
724         * lib/.cvsignore:
725         * plugins/artdisplay/.cvsignore:
726         * plugins/artdisplay/artdisplay/.cvsignore:
727         * plugins/lyrics/.cvsignore:
728         * plugins/pythonconsole/.cvsignore:
729         * plugins/rb/.cvsignore: add/update various .cvsignore files
731 2006-07-24  James Livingston  <doclivingston@gmail.com>
733         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
734         (rb_refstring_ref): don't emit critical warnings when the refstring
735         is NULL, as that happens often for podcast metadata.
737         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
738         missing rhythmdb_entry_ref call
740 2006-07-23  William Jon McCann  <mccann@jhu.edu>
742         * bindings/python/rb.override:
743         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
744         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
745         (playlist_row_inserted_cb):
746         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
747         * plugins/rb-plugin-manager.c:
748         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
749         (rb_podcast_manager_copy_post),
750         (rb_podcast_manager_db_entry_deleted_cb),
751         (rb_podcast_manager_insert_feed):
752         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
753         (rb_refstring_ref), (rb_refstring_get_sort_key):
754         * rhythmdb/rhythmdb-private.h:
755         * rhythmdb/rhythmdb-property-model.c:
756         (rhythmdb_property_model_set_property),
757         (rhythmdb_property_model_get_property),
758         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
759         (rhythmdb_property_model_row_inserted_cb),
760         (rhythmdb_property_model_prop_changed_cb),
761         (rhythmdb_property_model_compare),
762         (rhythmdb_property_model_insert),
763         (rhythmdb_property_model_iter_from_string),
764         (rhythmdb_property_model_get_column_type),
765         (rhythmdb_property_model_get_iter),
766         (rhythmdb_property_model_get_value),
767         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
768         (rhythmdb_property_model_enable_drag):
769         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
770         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
771         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
772         (rhythmdb_query_model_chain),
773         (rhythmdb_query_model_entry_added_cb),
774         (rhythmdb_query_model_entry_changed_cb),
775         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
776         (rhythmdb_query_model_add_entry),
777         (rhythmdb_query_model_insert_into_main_list),
778         (rhythmdb_query_model_insert_into_limited_list),
779         (rhythmdb_query_model_remove_from_main_list),
780         (rhythmdb_query_model_remove_from_limited_list),
781         (rhythmdb_query_model_update_limited_entries),
782         (rhythmdb_query_model_emit_reorder),
783         (rhythmdb_query_model_do_reorder),
784         (rhythmdb_query_model_do_insert),
785         (rhythmdb_query_model_move_entry),
786         (rhythmdb_query_model_remove_entry),
787         (rhythmdb_query_model_entry_to_iter),
788         (rhythmdb_query_model_iter_to_entry),
789         (rhythmdb_query_model_get_previous_from_entry),
790         (rhythmdb_query_model_row_draggable),
791         (rhythmdb_query_model_drag_data_delete),
792         (rhythmdb_query_model_drag_data_get),
793         (rhythmdb_query_model_drag_data_received),
794         (rhythmdb_query_model_row_drop_possible),
795         (rhythmdb_query_model_row_drop_position),
796         (rhythmdb_query_model_add_results),
797         (rhythmdb_query_model_query_complete),
798         (rhythmdb_query_model_get_column_type),
799         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
800         (rhythmdb_query_model_iter_nth_child),
801         (apply_updated_entry_sequence),
802         (rhythmdb_query_model_child_index_to_base_index),
803         (rhythmdb_query_model_get_entry_index),
804         (rhythmdb_query_model_base_row_inserted),
805         (rhythmdb_query_model_base_row_deleted),
806         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
807         (rhythmdb_query_model_location_sort_func),
808         (rhythmdb_query_model_title_sort_func),
809         (rhythmdb_query_model_album_sort_func),
810         (rhythmdb_query_model_artist_sort_func),
811         (rhythmdb_query_model_track_sort_func),
812         (rhythmdb_query_model_double_ceiling_sort_func),
813         (rhythmdb_query_model_ulong_sort_func),
814         (rhythmdb_query_model_date_sort_func),
815         (rhythmdb_query_model_string_sort_func),
816         (rhythmdb_query_model_within_limit):
817         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
818         (rhythmdb_tree_parser_start_element),
819         (rhythmdb_tree_parser_end_element),
820         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
821         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
822         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
823         (save_entry_uint64), (save_entry_double), (save_entry),
824         (set_entry_album), (rhythmdb_tree_entry_new),
825         (get_genres_hash_for_type), (get_or_create_genre),
826         (get_or_create_artist), (get_or_create_album), (remove_child),
827         (remove_entry_from_album), (rhythmdb_tree_entry_set),
828         (rhythmdb_tree_entry_delete), (remove_one_song),
829         (rhythmdb_tree_entry_delete_by_type),
830         (rhythmdb_tree_evaluate_query), (search_match_properties),
831         (evaluate_conjunctive_subquery), (do_conjunction),
832         (conjunctive_query_songs), (clone_remove_ptr_array_index),
833         (conjunctive_query_albums), (conjunctive_query_artists),
834         (conjunctive_query_genre), (conjunctive_query),
835         (split_query_by_disjunctions), (do_query_recurse),
836         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
837         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
838         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
839         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
840         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
841         (extract_gtype_from_enum_entry),
842         (extract_nice_name_from_enum_entry), (rhythmdb_init),
843         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
844         (rhythmdb_event_free), (rhythmdb_finalize),
845         (rhythmdb_set_property), (rhythmdb_get_property),
846         (rhythmdb_thread_create), (free_entry_changes),
847         (emit_entry_changed), (sync_entry_changed),
848         (process_added_entries_cb), (process_deleted_entries_cb),
849         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
850         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
851         (rhythmdb_entry_insert), (rhythmdb_entry_new),
852         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
853         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
854         (rhythmdb_entry_is_editable), (set_props_from_metadata),
855         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
856         (rhythmdb_process_metadata_load),
857         (rhythmdb_process_file_created_or_modified),
858         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
859         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
860         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
861         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
862         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
863         (record_entry_change), (rhythmdb_entry_set_internal),
864         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
865         (rhythmdb_entry_move_to_trash_cb),
866         (rhythmdb_entry_move_to_trash_set_error),
867         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
868         (rhythmdb_nice_elt_name_from_propid),
869         (rhythmdb_propid_from_nice_elt_name),
870         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
871         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
872         (rhythmdb_compute_status_normal), (default_sync_metadata),
873         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
874         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
875         (podcast_get_playback_uri), (podcast_data_destroy),
876         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
877         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
878         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
879         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
880         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
881         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
882         * rhythmdb/rhythmdb.h:
883         * shell/rb-play-order-linear-loop.c:
884         (rb_linear_play_order_loop_get_next),
885         (rb_linear_play_order_loop_get_previous):
886         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
887         (rb_linear_play_order_get_previous):
888         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
889         * shell/rb-play-order-random.c: (get_query_model_contents):
890         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
891         (get_query_model_contents):
892         * shell/rb-play-order.c: (rb_play_order_constructor),
893         (rb_play_order_finalize),
894         (rb_play_order_set_playing_entry_internal),
895         (rb_play_order_set_property), (rb_play_order_new),
896         (rb_play_order_get_player), (rb_play_order_get_source),
897         (rb_play_order_get_db), (rb_play_order_get_query_model),
898         (rb_play_order_player_is_playing),
899         (rb_play_order_set_playing_entry),
900         (rb_play_order_get_playing_entry),
901         (rb_play_order_playing_source_changed),
902         (rb_play_order_query_model_changed),
903         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
904         (default_has_next), (default_has_previous),
905         (sync_playing_entry_cb), (default_playing_entry_removed),
906         (rb_play_order_has_next), (rb_play_order_get_next),
907         (rb_play_order_go_next), (rb_play_order_has_previous),
908         (rb_play_order_get_previous), (rb_play_order_go_previous),
909         (rb_play_order_model_not_empty),
910         (rb_play_order_update_have_next_previous):
911         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
912         (rb_playlist_manager_save_playlists),
913         (rb_playlist_manager_set_automatic_playlist),
914         (rb_playlist_manager_cmd_edit_automatic_playlist),
915         (_queue_track_cb), (rb_playlist_manager_get_playlists),
916         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
917         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
918         * shell/rb-shell-player.c: (rb_shell_player_constructor),
919         (volume_pre_unmount_cb), (reemit_playing_signal),
920         (notify_playing_idle), (rb_shell_player_open_playlist_url),
921         (rb_shell_player_handle_eos_unlocked),
922         (rb_shell_player_handle_eos), (rb_shell_player_init),
923         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
924         (playlist_entry_cb), (rb_shell_player_open_entry),
925         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
926         (rb_shell_player_set_play_order),
927         (rb_shell_player_set_playback_state),
928         (rb_shell_player_sync_play_order),
929         (rb_shell_player_play_order_update_cb),
930         (rb_shell_player_jump_to_current), (swap_playing_source),
931         (rb_shell_player_do_previous), (rb_shell_player_do_next),
932         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
933         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
934         (rb_shell_player_entry_activated_cb),
935         (rb_shell_player_property_row_activated_cb),
936         (rb_shell_player_entry_changed_cb),
937         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
938         (rb_shell_player_pause),
939         (rb_shell_player_get_playing_song_duration),
940         (rb_shell_player_error), (error_cb), (tick_cb),
941         (info_available_cb), (buffering_cb),
942         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
943         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
944         (rb_shell_jump_to_current):
945         * sources/rb-auto-playlist-source.c:
946         (rb_auto_playlist_source_finalize), (impl_receive_drag),
947         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
948         (rb_auto_playlist_source_get_query):
949         * sources/rb-auto-playlist-source.h:
950         * sources/rb-browser-source.c: (rb_browser_source_do_query):
951         * sources/rb-import-errors-source.c:
952         (rb_import_errors_source_constructor):
953         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
954         * sources/rb-library-source.c: (filepath_parse_pattern):
955         * sources/rb-missing-files-source.c:
956         (rb_missing_files_source_constructor):
957         * sources/rb-play-queue-source.c:
958         (rb_play_queue_source_clear_queue),
959         (rb_play_queue_source_track_info_cell_data_func):
960         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
961         (rb_playlist_source_get_property), (playlist_iter_func),
962         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
963         (rb_playlist_source_track_cell_data_func):
964         * sources/rb-podcast-source.c: (construct_query_from_selection),
965         (rb_podcast_source_post_status_cell_data_func),
966         (rb_podcast_source_post_feed_cell_data_func),
967         (rb_podcast_source_feed_title_search_func),
968         (rb_podcast_source_post_date_cell_data_func):
969         * sources/rb-source.c: (default_get_status),
970         (rb_source_get_status), (rb_source_browser_toggled),
971         (rb_source_update_play_statistics), (rb_source_search),
972         (rb_source_get_config_widget), (default_add_to_queue),
973         (rb_source_add_to_queue), (rb_source_receive_drag),
974         (rb_source_gather_hash_keys):
975         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
976         (rb_sourcelist_model_is_row_visible),
977         (rb_sourcelist_model_row_is_separator),
978         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
979         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
980         (rb_sourcelist_model_drag_data_get):
981         * sources/rb-sourcelist.c: (rb_sourcelist_append),
982         (match_source_to_iter), (rb_sourcelist_source_to_iter),
983         (rb_sourcelist_visible_source_to_iter),
984         (rb_sourcelist_edit_source_name), (set_source_playing),
985         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
986         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
987         (drop_received_cb), (row_activated_cb), (emit_show_popup),
988         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
989         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
990         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
991         (rb_static_playlist_source_add_location_internal),
992         (rb_static_playlist_source_row_inserted):
993         * widgets/rb-entry-view.c: (type_ahead_search_func),
994         (rb_entry_view_finalize), (rb_entry_view_set_model),
995         (rb_entry_view_playing_cell_data_func),
996         (rb_entry_view_rating_cell_data_func),
997         (rb_entry_view_long_cell_data_func),
998         (rb_entry_view_play_count_cell_data_func),
999         (rb_entry_view_duration_cell_data_func),
1000         (rb_entry_view_year_cell_data_func),
1001         (rb_entry_view_quality_cell_data_func),
1002         (rb_entry_view_location_cell_data_func),
1003         (rb_entry_view_string_cell_data_func),
1004         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
1005         (rb_entry_view_get_sorting_order),
1006         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
1007         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
1008         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
1009         (rb_entry_view_playing_song_changed), (harvest_entries),
1010         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
1011         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
1012         (set_column_visibility):
1013         * widgets/rb-entry-view.h:
1014         * widgets/rb-header.c: (rb_header_new),
1015         (rb_header_set_playing_entry), (rb_header_set_title):
1016         * widgets/rb-library-browser.c: (rebuild_child_model),
1017         (rb_library_browser_set_model):
1018         * widgets/rb-property-view.c:
1019         (rb_property_view_set_model_internal), (rb_property_view_finalize),
1020         (rb_property_view_set_property), (rb_property_view_get_property),
1021         (rb_property_view_reset), (rb_property_view_get_model),
1022         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
1023         (rb_property_view_button_press_cb):
1024         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1025         (rb_query_creator_get_property), (rb_query_creator_load_query),
1026         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
1027         (rb_query_creator_get_query), (rb_query_creator_get_limit),
1028         (rb_query_creator_get_sort_order), (limit_toggled_cb),
1029         (lookup_row_by_widget), (remove_button_click_cb),
1030         (add_button_click_cb), (create_property_option_menu):
1031         * widgets/rb-song-info.c: (rb_song_info_constructor),
1032         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
1033         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
1034         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
1035         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
1037 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1039         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1040         (rb_shell_player_get_property):
1041         Add a property providing access to the player backend object.
1043 2006-07-23  James Livingston  <doclivingston@gmail.com>
1045         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
1046         (get_history), (rb_random_filter_history),
1047         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
1048         remove the tentative history, since it appears to be a remanent from
1049         older play order code. The only thing it was doing was using up
1050         CPU-time and memory. From #345857
1052 2006-07-23  James Livingston  <doclivingston@gmail.com>
1054         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1056         * shell/main.c: (main):
1057         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
1058         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
1059         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
1060         (rb_playlist_manager_load_playlists),
1061         (rb_playlist_manager_save_data):
1062         * shell/rb-playlist-manager.h:
1063         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
1064         (rb_shell_get_property), (rb_shell_sync_state),
1065         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
1066         (construct_sources), (idle_handle_load_complete):
1067         * shell/rb-shell.h: Add a command-line option for changing the
1068         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
1070 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1072         * daapsharing/rb-daap-share.c: (databases_cb):
1073         Make sure we set status codes on HTTP responses.
1075 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1077         * configure.ac:
1078         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1079         (chunked_message_finished), (send_chunked_file),
1080         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
1081         Use GMappedFile to send local files to DAAP clients where possible.  
1082         iTunes can't seek properly in files sent using chunked transfer 
1083         encoding.  Also remove the useless bitrate calculation code, as we
1084         never even used the result anyway.  From #330410.
1086 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1088         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1090         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
1091         Enable multiple selection for 'import file'.  Fixes #347478.
1093 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
1095         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
1096         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
1097         deprecated dbus_connection_disconnect () with dbus_connection_close ().
1098         Fixes #348098.
1100 2006-07-20  James Livingston  <doclivingston@gmail.com>
1102         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
1103         aren't NULL before calling strstr. Fixes #347998.
1105 2006-07-19  James Livingston  <doclivingston@gmail.com>
1107         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
1109         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
1110         MB that only have years. Fixes #347906.
1112 2006-07-19  James Livingston  <doclivingston@gmail.com>
1114         * rhythmdb/rhythmdb-private.h:
1115         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1116         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
1117         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
1118         (rhythmdb_finalize), (timeout_rhythmdb_commit),
1119         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
1120         (rhythmdb_execute_stat), (queue_stat_uri),
1121         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
1122         (rhythmdb_load), (rhythmdb_entry_register_type),
1123         (rhythmdb_entry_register_type_alias): Keep track of outstanding
1124         asynchronous vfs operations, and cancel them when shutting down the
1125         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
1127         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
1128         (test_rhythmdb_shutdown): wait until the db has been finalised before
1129         continuing on to the next test.
1131 2006-07-19  James Livingston  <doclivingston@gmail.com>
1133         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
1134         right thing in the #ifdef. From #347832.
1136 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1138         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1139         Fix compile warning.
1141 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1143         * rhythmdb/rhythmdb-query-model.c:
1144         (rhythmdb_query_model_set_property),
1145         (rhythmdb_query_model_reapply_query_cb):
1146         Ignore old query == new query case.
1147         Fixes auto playlists with time-relative queries.
1149         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
1150         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
1151         (rhythmdb_query_to_string):
1152         * rhythmdb/rhythmdb.h:
1153         Add debug helper for printing queries in case someone needs it again.
1155 2006-07-18  James Livingston  <doclivingston@gmail.com>
1157         patch by: Ståle Lyngaas  <staale@lyngaas.com>
1158         * sources/rb-audiocd-source.c: store the MB track ids in the database.
1159         Fixes #347832
1161         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
1162         write then into files.
1164 2006-07-17  William Jon McCann  <mccann@jhu.edu>
1166         * daapsharing/rb-daap-connection.c:
1167         (rb_daap_connection_set_property):
1168         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
1169         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
1170         (add_playlist_to_mlcl), (databases_cb):
1171         * daapsharing/rb-daap-sharing.c: (create_share):
1172         * iradio/rb-new-station-dialog.c:
1173         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
1174         * iradio/rb-station-properties-dialog.c:
1175         (rb_station_properties_dialog_finalize),
1176         (rb_station_properties_dialog_set_property),
1177         (rb_station_properties_dialog_get_current_entry):
1178         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
1179         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
1180         * plugins/generic-player/rb-generic-player-source.c:
1181         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
1182         (handle_playlist_entry_cb):
1183         * plugins/generic-player/rb-nokia770-source.c:
1184         (rb_nokia770_source_new), (hal_udi_is_nokia770):
1185         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
1186         (visit_playlist_dirs), (hal_udi_is_psp):
1187         * podcast/rb-podcast-manager.c:
1188         * podcast/rb-podcast-properties-dialog.c:
1189         (rb_podcast_properties_dialog_finalize),
1190         (rb_podcast_properties_dialog_set_entry_view),
1191         (rb_podcast_properties_dialog_set_property):
1192         * rhythmdb/rhythmdb-property-model.c:
1193         * rhythmdb/rhythmdb-query-model.c:
1194         (rhythmdb_query_model_set_property),
1195         (rhythmdb_query_model_reapply_query_cb):
1196         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
1197         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
1198         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1199         (rhythmdb_event_free), (rhythmdb_shutdown),
1200         (rhythmdb_thread_create), (action_thread_main),
1201         (rhythmdb_do_full_query_async_parsed),
1202         (rhythmdb_do_full_query_internal):
1203         * shell/main.c: (main):
1204         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
1205         * shell/rb-play-order.c: (rb_play_order_finalize),
1206         (rb_play_order_set_player),
1207         (rb_play_order_set_playing_entry_internal),
1208         (rb_play_order_set_property),
1209         (rb_play_order_playing_source_changed),
1210         (rb_play_order_query_model_changed):
1211         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
1212         (rb_playlist_manager_set_source),
1213         (rb_playlist_manager_set_shell_internal),
1214         (rb_playlist_manager_set_property):
1215         * shell/rb-removable-media-manager.c:
1216         (rb_removable_media_manager_set_property),
1217         (rb_removable_media_manager_set_uimanager),
1218         (rb_removable_media_manager_cmd_eject_medium),
1219         (rb_removable_media_manager_cmd_copy_tracks):
1220         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
1221         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
1222         (rb_shell_clipboard_set),
1223         (rb_shell_clipboard_cmd_add_to_playlist_new),
1224         (rb_shell_clipboard_playlist_add_cb),
1225         (rb_shell_clipboard_playlist_renamed_cb),
1226         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
1227         (rebuild_playlist_menu):
1228         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
1229         (rb_shell_player_set_queue_source_internal),
1230         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
1231         (rb_shell_player_entry_activated_cb),
1232         (rb_shell_player_property_row_activated_cb),
1233         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
1234         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
1235         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
1236         (rb_shell_finalize), (construct_widgets),
1237         (rb_shell_playing_from_queue_cb),
1238         (rb_shell_player_stream_song_changed_cb),
1239         (rb_shell_player_volume_changed_cb):
1240         * shell/rb-statusbar.c: (rb_statusbar_new):
1241         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
1242         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
1243         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1244         * sources/rb-auto-playlist-source.c:
1245         (rb_auto_playlist_source_class_init),
1246         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
1247         (rb_auto_playlist_source_constructor), (impl_receive_drag),
1248         (rb_auto_playlist_source_do_query),
1249         (rb_auto_playlist_source_set_query),
1250         (rb_auto_playlist_source_browser_changed_cb),
1251         (search_action_changed):
1252         * sources/rb-auto-playlist-source.h:
1253         * sources/rb-browser-source.c: (rb_browser_source_finalize),
1254         (search_action_changed), (rb_browser_source_constructor),
1255         (rb_browser_source_cmd_choose_artist), (impl_delete),
1256         (rb_browser_source_browser_changed_cb),
1257         (rb_browser_source_do_query):
1258         * sources/rb-daap-source.c: (rb_daap_source_dispose),
1259         (rb_daap_source_finalize), (rb_daap_source_class_init),
1260         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
1261         (rb_daap_sources_init), (rb_daap_sources_shutdown),
1262         (rb_daap_source_connection_cb), (rb_daap_source_activate),
1263         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
1264         (rb_daap_source_get_headers):
1265         * sources/rb-import-errors-source.c:
1266         (rb_import_errors_source_constructor),
1267         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
1268         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
1269         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
1270         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
1271         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
1272         (impl_paste), (impl_receive_drag):
1273         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
1274         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
1275         (impl_song_properties):
1276         * sources/rb-library-source.c: (rb_library_source_constructor),
1277         (rb_library_source_new), (impl_paste),
1278         (rb_library_source_add_child_source):
1279         * sources/rb-missing-files-source.c: (impl_delete),
1280         (impl_get_status):
1281         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
1282         (rb_play_queue_source_class_init),
1283         (rb_play_queue_source_constructor):
1284         * sources/rb-playlist-source.c: (rb_playlist_source_init),
1285         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
1286         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
1287         (rb_playlist_source_new_from_xml),
1288         (rb_playlist_source_save_to_xml):
1289         * sources/rb-podcast-source.c: (rb_podcast_source_init),
1290         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
1291         (search_action_changed), (rb_podcast_source_constructor),
1292         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
1293         (construct_query_from_selection),
1294         (rb_podcast_source_cmd_download_post),
1295         (rb_podcast_source_cmd_cancel_download),
1296         (rb_podcast_source_cmd_delete_feed),
1297         (rb_podcast_source_start_download_cb),
1298         (rb_podcast_source_finish_download_cb),
1299         (rb_podcast_source_feed_updates_avaliable_cb),
1300         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
1301         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
1302         (impl_get_status):
1303         * sources/rb-removable-media-source.c: (impl_delete_thyself):
1304         * sources/rb-source.c: (rb_source_get_property),
1305         (default_add_to_queue), (default_move_to_trash),
1306         (_rb_source_show_popup), (rb_source_gather_selected_properties),
1307         (_rb_source_register_action_group):
1308         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
1309         (rb_sourcelist_model_is_row_visible),
1310         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
1311         (rb_sourcelist_model_row_draggable),
1312         (rb_sourcelist_model_drag_data_get):
1313         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
1314         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
1315         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
1316         (visibility_notify_cb):
1317         * sources/rb-static-playlist-source.c:
1318         (rb_static_playlist_source_class_init),
1319         (rb_static_playlist_source_init),
1320         (rb_static_playlist_source_finalize),
1321         (rb_static_playlist_source_constructor), (impl_delete),
1322         (rb_static_playlist_source_browser_changed_cb),
1323         (rb_static_playlist_source_add_location_internal),
1324         (search_action_changed):
1325         * sources/rb-static-playlist-source.h:
1326         * widgets/rb-druid.c:
1327         * widgets/rb-entry-view.c:
1328         (rb_entry_view_set_shell_player_internal),
1329         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
1330         (rb_entry_view_get_property), (rb_entry_view_new),
1331         (rb_entry_view_button_press_cb):
1332         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
1333         (rb_library_browser_set_property),
1334         (rb_library_browser_get_property):
1335         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
1336         (get_entry_for_property), (get_property_index_from_proptype):
1337         * widgets/rb-song-info.c: (rb_song_info_constructor),
1338         (rb_song_info_finalize), (rb_song_info_set_source_internal),
1339         (rb_song_info_set_property), (rb_song_info_get_property):
1341         More leak and reference counting fixes.  From bug #347446.
1343 2006-07-17  James Livingston  <doclivingston@gmail.com>
1345         * sources/rb-auto-playlist-source.c:
1346         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
1347         rather than setting the base model, as that lets us not import all the
1348         entries from the base model. This fixes some issues whether the search
1349         box wasn't filting automatic playlists.
1351 2006-07-17  James Livingston  <doclivingston@gmail.com>
1353         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
1354         error, which caused blacklist creation to fail.
1356 2006-07-17  James Livingston  <doclivingston@gmail.com>
1358         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
1359         running with -n, because we don't start it then. Fixes a crash on
1360         exit.
1362 2006-07-17  James Livingston  <doclivingston@gmail.com>
1364         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
1366         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
1367         Save not Open for the button. Fixes #345816
1369 2006-07-17  James Livingston  <doclivingston@gmail.com>
1371         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
1373         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
1374         when track transfer is disabled. Fixes #347705
1376 2006-07-17  James Livingston  <doclivingston@gmail.com>
1378         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
1380         * sources/rb-library-source.c: (impl_get_config_widget): fix build
1381         with track transfer disabled. Fixes #347705
1383 2006-07-14  William Jon McCann  <mccann@jhu.edu>
1385         * rhythmdb/rhythmdb-query-model.c:
1386         (rhythmdb_query_model_set_property):
1387         * shell/main.c: (main):
1388         * shell/rb-shell-clipboard.c: (unset_source_internal),
1389         (rb_shell_clipboard_finalize),
1390         (rb_shell_clipboard_set_source_internal),
1391         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
1392         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
1393         (rb_shell_player_set_db_internal),
1394         (rb_shell_player_set_queue_source_internal),
1395         (rb_shell_player_finalize), (rb_shell_player_set_property):
1396         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
1397         * sources/rb-auto-playlist-source.c:
1398         (rb_auto_playlist_source_constructor),
1399         (rb_auto_playlist_source_new_from_xml):
1400         * sources/rb-daap-source.c: (create_pixbufs):
1401         * sources/rb-ipod-source.c:
1402         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
1403         * sources/rb-library-source.c:
1404         (rb_library_source_add_child_source):
1405         * sources/rb-play-queue-source.c:
1406         (rb_play_queue_sync_playing_state),
1407         (rb_play_queue_source_track_info_cell_data_func):
1408         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
1409         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1410         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1411         (impl_can_add_to_queue), (impl_add_to_queue):
1412         * sources/rb-source.c: (rb_source_set_property):
1413         * sources/rb-sourcelist.c: (rb_sourcelist_append):
1414         * sources/rb-static-playlist-source.c:
1415         (rb_static_playlist_source_constructor),
1416         (rb_static_playlist_source_load_from_xml):
1417         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
1418         * widgets/rb-entry-view.c: (rb_entry_view_init),
1419         (rb_entry_view_finalize), (rb_entry_view_append_column),
1420         (rb_entry_view_constructor):
1421         * widgets/rb-song-info.c: (rb_song_info_set_property):
1422         Fix leaks.  From bug #347446.
1424 2006-07-14  William Jon McCann  <mccann@jhu.edu>
1426         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
1427         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
1428         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
1429         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
1430         (add_decoding_pipeline), (profile_bin_find_encoder),
1431         (get_profile_from_mime_type), (extract_track), (transcode_track),
1432         (rb_encoder_gst_encode):
1433         * backends/gstreamer/rb-encoder-gst.h:
1434         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
1435         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
1436         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
1437         (rb_player_gst_construct):
1438         * backends/gstreamer/rb-player-gst.h:
1439         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
1440         * backends/rb-encoder.h:
1441         * backends/rb-player.c: (_rb_player_emit_tick):
1442         * backends/rb-player.h:
1443         * daapsharing/rb-daap-connection.c: (build_message),
1444         (actual_http_response_handler), (http_response_handler),
1445         (http_get), (entry_set_string_prop), (emit_progress_idle),
1446         (handle_server_info), (handle_database_info),
1447         (handle_song_listing), (handle_playlists),
1448         (handle_playlist_entries), (rb_daap_connection_new),
1449         (connected_cb), (rb_daap_connection_do_something),
1450         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
1451         (rb_daap_connection_get_property):
1452         * daapsharing/rb-daap-connection.h:
1453         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
1454         (rb_daap_collision_dialog_new_run):
1455         * daapsharing/rb-daap-dialog.h:
1456         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
1457         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
1458         (DigestToString), (rb_daap_hash_generate):
1459         * daapsharing/rb-daap-hash.h:
1460         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
1461         (resolve_cb), (browse_cb):
1462         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
1463         (resolve_cb), (rb_daap_mdns_browser_resolve),
1464         (rb_daap_mdns_browser_start), (resolver_free):
1465         * daapsharing/rb-daap-mdns-browser.h:
1466         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
1467         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
1468         (publish_cb):
1469         * daapsharing/rb-daap-mdns-publisher.h:
1470         * daapsharing/rb-daap-share.c: (name_collision_cb),
1471         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
1472         (message_set_from_rb_daap_structure), (content_codes_cb),
1473         (session_id_validate), (logout_cb), (update_cb),
1474         (add_entry_to_mlcl), (add_playlist_to_mlcl),
1475         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
1476         (rb_daap_share_server_start), (rb_daap_share_server_stop),
1477         (rb_daap_share_publish_start):
1478         * daapsharing/rb-daap-share.h:
1479         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
1480         (share_password_changed_cb), (rb_daap_sharing_shutdown):
1481         * daapsharing/rb-daap-sharing.h:
1482         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
1483         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
1484         (rb_daap_src_open):
1485         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
1486         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
1487         (rb_daap_structure_parse_container_buffer),
1488         (rb_daap_structure_parse), (gnode_find_node),
1489         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
1490         (print_rb_daap_item):
1491         * daapsharing/rb-daap-structure.h:
1492         * iradio/rb-new-station-dialog.c:
1493         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
1494         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
1495         (rb_new_station_dialog_text_changed):
1496         * iradio/rb-station-properties-dialog.c:
1497         (rb_station_properties_dialog_init),
1498         (rb_station_properties_dialog_new),
1499         (rb_station_properties_dialog_response_cb),
1500         (rb_station_properties_dialog_get_current_entry),
1501         (rb_station_properties_dialog_rated_cb),
1502         (rb_station_properties_dialog_update_rating),
1503         (rb_station_properties_dialog_update_playback_error),
1504         (rb_station_properties_dialog_sync_entries):
1505         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
1506         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
1507         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
1508         (rb_metadata_can_save), (rb_metadata_save):
1509         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
1510         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
1511         (_handle_message), (_new_connection), (main):
1512         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
1513         (rb_metadata_dbus_read_from_message):
1514         * metadata/rb-metadata-dbus.h:
1515         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
1516         (rb_add_id3_tagger), (rb_metadata_init),
1517         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
1518         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
1519         (rb_metadata_gst_new_decoded_pad_cb),
1520         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
1521         * metadata/sj-error.c: (sj_error_quark):
1522         * metadata/sj-error.h:
1523         * metadata/sj-metadata-musicbrainz.c:
1524         (sj_metadata_musicbrainz_instance_init),
1525         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
1526         (get_rdf), (lookup_cd):
1527         * metadata/sj-metadata.c: (sj_metadata_get_type):
1528         * metadata/sj-structures.c:
1529         * metadata/sj-structures.h:
1530         * metadata/test-metadata.c: (load_metadata_cb), (main):
1531         * podcast/rb-feed-podcast-properties-dialog.c:
1532         (rb_feed_podcast_properties_dialog_init),
1533         (rb_feed_podcast_properties_dialog_update_title):
1534         * podcast/rb-feed-podcast-properties-dialog.h:
1535         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
1536         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
1537         (rb_new_podcast_dialog_text_changed):
1538         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
1539         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
1540         (rb_podcast_manager_set_property),
1541         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
1542         (rb_podcast_manager_download_entry),
1543         (rb_podcast_manager_update_feeds),
1544         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
1545         (rb_podcast_manager_copy_post),
1546         (rb_podcast_manager_thread_parse_feed),
1547         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
1548         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
1549         (download_info_free), (download_info_new), (start_job),
1550         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
1551         (download_progress_cb), (download_progress_update_cb),
1552         (rb_podcast_manager_remove_feed),
1553         (rb_podcast_manager_db_entry_deleted_cb),
1554         (rb_podcast_manager_cancel_download),
1555         (rb_podcast_manager_update_synctime),
1556         (rb_podcast_manager_set_remove_files),
1557         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
1558         (rb_podcast_manager_abort_subscribe),
1559         (rb_podcast_manager_get_podcast_dir):
1560         * podcast/rb-podcast-manager.h:
1561         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
1562         (rb_validate_channel_propert), (rb_validate_item_propert),
1563         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
1564         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
1565         (rb_podcast_parse_date), (rb_podcast_parse_time),
1566         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
1567         * podcast/rb-podcast-parse.h:
1568         * podcast/rb-podcast-properties-dialog.c:
1569         (rb_podcast_properties_dialog_init),
1570         (rb_podcast_properties_dialog_get_current_entry),
1571         (rb_podcast_properties_dialog_update_title),
1572         (rb_podcast_properties_dialog_update_duration),
1573         (rb_podcast_properties_dialog_update_date):
1574         * podcast/rb-podcast-properties-dialog.h:
1575         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
1576         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
1577         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
1578         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
1579         (g_sequence_search), (g_sequence_set_aggregate_data),
1580         (g_sequence_node_update_fields), (g_sequence_node_rotate),
1581         (find_min), (g_sequence_node_find_by_pos),
1582         (g_sequence_node_find_closest), (g_sequence_node_free),
1583         (g_sequence_node_split), (g_sequence_node_insert_before),
1584         (g_sequence_node_get_length), (g_sequence_node_remove),
1585         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
1586         (g_sequence_calc_tree_height):
1587         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
1588         (rb_refstring_get):
1589         * rhythmdb/rb-refstring.h:
1590         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
1591         (rhythmdb_gda_init), (dump_model), (execute_query),
1592         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
1593         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
1594         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
1595         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
1596         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
1597         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
1598         * rhythmdb/rhythmdb-gda.h:
1599         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1600         (rhythmdb_finalize_monitoring), (monitor_entry_file),
1601         (monitor_library_directory), (rhythmdb_check_changed_file),
1602         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
1603         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
1604         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
1605         * rhythmdb/rhythmdb-private.h:
1606         * rhythmdb/rhythmdb-property-model.c:
1607         (rhythmdb_property_model_set_property),
1608         (rhythmdb_property_model_row_inserted_cb),
1609         (rhythmdb_property_model_prop_changed_cb),
1610         (rhythmdb_property_model_compare),
1611         (rhythmdb_property_model_get_value),
1612         (rhythmdb_property_model_iter_nth_child),
1613         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
1614         (rhythmdb_property_model_drag_data_get),
1615         (rhythmdb_property_model_enable_drag),
1616         (rhythmdb_property_model_column_get_type):
1617         * rhythmdb/rhythmdb-property-model.h:
1618         * rhythmdb/rhythmdb-query-model.c:
1619         (rhythmdb_query_model_class_init),
1620         (rhythmdb_query_model_set_property),
1621         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
1622         (rhythmdb_query_model_has_pending_changes),
1623         (rhythmdb_query_model_entry_changed_cb),
1624         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1625         (rhythmdb_query_model_add_entry),
1626         (rhythmdb_query_model_remove_from_main_list),
1627         (rhythmdb_query_model_remove_entry),
1628         (rhythmdb_query_model_drag_data_received),
1629         (rhythmdb_query_model_row_drop_possible),
1630         (rhythmdb_query_model_compute_status_normal),
1631         (rhythmdb_query_model_set_sort_order),
1632         (rhythmdb_query_model_get_entry_index),
1633         (rhythmdb_query_model_base_row_inserted),
1634         (rhythmdb_query_model_base_row_deleted),
1635         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1636         (rhythmdb_query_model_date_sort_func),
1637         (rhythmdb_query_model_within_limit):
1638         * rhythmdb/rhythmdb-query-model.h:
1639         * rhythmdb/rhythmdb-query-results.c:
1640         (rhythmdb_query_results_query_complete):
1641         * rhythmdb/rhythmdb-query-results.h:
1642         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
1643         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
1644         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
1645         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
1646         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
1647         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
1648         (rhythmdb_tree_parser_start_element),
1649         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
1650         (save_entry), (save_entry_type), (save_unknown_entry_type),
1651         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
1652         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
1653         (get_or_create_genre), (remove_entry_from_album),
1654         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1655         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
1656         (search_match_properties), (evaluate_conjunctive_subquery),
1657         (clone_remove_ptr_array_index), (conjunctive_query_albums),
1658         (conjunctive_query_artists), (conjunctive_query_genre),
1659         (conjunctive_query), (split_query_by_disjunctions),
1660         (do_query_recurse), (rhythmdb_tree_entry_foreach),
1661         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1662         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
1663         (rhythmdb_hash_tree_foreach),
1664         (rhythmdb_tree_entry_type_registered):
1665         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
1666         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
1667         (extract_nice_name_from_enum_entry), (rhythmdb_init),
1668         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
1669         (rhythmdb_shutdown), (rhythmdb_finalize),
1670         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
1671         (rhythmdb_entry_insert), (rhythmdb_entry_new),
1672         (rhythmdb_entry_example_new),
1673         (set_metadata_string_default_unknown), (is_ghost_entry),
1674         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1675         (rhythmdb_process_metadata_load),
1676         (rhythmdb_process_queued_entry_set_event),
1677         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
1678         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
1679         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
1680         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
1681         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
1682         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
1683         (rhythmdb_entry_delete_by_type),
1684         (rhythmdb_propid_from_nice_elt_name),
1685         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
1686         (rhythmdb_compute_status_normal),
1687         (rhythmdb_entry_register_type_alias),
1688         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
1689         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
1690         (rhythmdb_entry_import_error_get_type),
1691         (rhythmdb_entry_podcast_post_get_type),
1692         (rhythmdb_entry_podcast_feed_get_type),
1693         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
1694         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
1695         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
1696         * rhythmdb/rhythmdb.h:
1697         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
1698         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
1699         (rb_history_limit_size):
1700         * shell/rb-history.h:
1701         * shell/rb-play-order-linear-loop.c:
1702         (rb_linear_play_order_loop_get_next):
1703         * shell/rb-play-order-linear-loop.h:
1704         * shell/rb-play-order-linear.c:
1705         * shell/rb-play-order-linear.h:
1706         * shell/rb-play-order-queue.c:
1707         (rb_queue_play_order_playing_entry_removed):
1708         * shell/rb-play-order-queue.h:
1709         * shell/rb-play-order-random-by-age-and-rating.c:
1710         * shell/rb-play-order-random-by-age-and-rating.h:
1711         * shell/rb-play-order-random-by-age.c:
1712         (rb_random_by_age_get_entry_weight):
1713         * shell/rb-play-order-random-by-age.h:
1714         * shell/rb-play-order-random-by-rating.c:
1715         * shell/rb-play-order-random-by-rating.h:
1716         * shell/rb-play-order-random-equal-weights.c:
1717         * shell/rb-play-order-random-equal-weights.h:
1718         * shell/rb-play-order-random.c: (rb_random_filter_history),
1719         (rb_random_get_total_weight), (rb_random_play_order_get_next),
1720         (rb_random_db_changed), (rb_random_playing_entry_changed),
1721         (rb_random_db_entry_deleted):
1722         * shell/rb-play-order-shuffle.c: (remove_from_history),
1723         (add_randomly_to_history), (get_query_model_contents),
1724         (rb_shuffle_playing_entry_changed):
1725         * shell/rb-play-order-shuffle.h:
1726         * shell/rb-play-order.c: (rb_play_order_class_init),
1727         (rb_play_order_set_property),
1728         (rb_play_order_playing_source_changed),
1729         (rb_play_order_query_model_changed_cb),
1730         (rb_play_order_query_model_changed),
1731         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
1732         * shell/rb-play-order.h:
1733         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
1734         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
1735         (rb_playlist_manager_set_property),
1736         (rb_playlist_manager_parse_file),
1737         (rb_playlist_manager_load_playlists),
1738         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
1739         (rb_playlist_manager_save_playlists),
1740         (rb_playlist_manager_new_playlist),
1741         (rb_playlist_manager_new_playlist_from_selection_data),
1742         (rb_playlist_manager_cmd_new_automatic_playlist),
1743         (rb_playlist_manager_cmd_edit_automatic_playlist),
1744         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
1745         (save_playlist_response_cb), (export_set_extension_cb),
1746         (filter_get_export_filter_label), (setup_format_menu),
1747         (rb_playlist_manager_cmd_save_playlist),
1748         (rb_playlist_manager_get_playlists),
1749         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
1750         (rb_playlist_manager_delete_playlist),
1751         (rb_playlist_manager_export_playlist):
1752         * shell/rb-playlist-manager.h:
1753         * shell/rb-removable-media-manager.c:
1754         (rb_removable_media_manager_class_init),
1755         (rb_removable_media_manager_dispose),
1756         (rb_removable_media_manager_finalize),
1757         (rb_removable_media_manager_set_property),
1758         (split_drive_from_cdda_uri),
1759         (rb_removable_media_manager_playing_uri_changed_cb),
1760         (rb_removable_media_manager_load_media),
1761         (rb_removable_media_manager_volume_mounted_cb),
1762         (remove_volume_by_source),
1763         (rb_removable_media_manager_source_deleted_cb),
1764         (rb_removable_media_manager_volume_unmounted_cb),
1765         (rb_removable_media_manager_mount_volume),
1766         (rb_removable_media_manager_set_uimanager),
1767         (rb_removable_media_manager_scan), (do_transfer),
1768         (rb_removable_media_manager_cmd_copy_tracks):
1769         * shell/rb-removable-media-manager.h:
1770         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
1771         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
1772         (rb_shell_clipboard_sync),
1773         (rb_shell_clipboard_idle_poll_deletions),
1774         (rb_shell_clipboard_cmd_add_to_playlist_new),
1775         (rb_shell_clipboard_playlist_add_cb),
1776         (rb_shell_clipboard_playlist_deleted_cb),
1777         (rb_shell_clipboard_playlist_renamed_cb),
1778         (rb_shell_clipboard_playlist_visible_cb),
1779         (rb_shell_clipboard_playlist_added_cb):
1780         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1781         (rb_shell_player_constructor), (volume_pre_unmount_cb),
1782         (rb_shell_player_init), (rb_shell_player_set_property),
1783         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
1784         (rb_shell_player_open_location),
1785         (rb_shell_player_set_playing_entry),
1786         (rb_shell_player_play_order_update_cb),
1787         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
1788         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
1789         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
1790         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
1791         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
1792         (gconf_song_position_slider_visibility_changed),
1793         (rb_shell_player_entry_activated_cb),
1794         (rb_shell_player_property_row_activated_cb),
1795         (rb_shell_player_entry_changed_cb),
1796         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
1797         (actually_set_playing_source),
1798         (rb_shell_player_set_playing_source_internal),
1799         (rb_shell_player_get_playing_song_duration), (eos_cb),
1800         (rb_shell_player_error), (error_cb), (info_available_cb),
1801         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
1802         (rb_shell_player_error_get_type):
1803         * shell/rb-shell-player.h:
1804         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
1805         (rb_shell_preferences_append_page),
1806         (share_check_button_toggled_cb),
1807         (password_check_button_toggled_cb), (add_daap_preferences),
1808         (rb_shell_preferences_column_check_changed_cb),
1809         (rb_shell_preferences_sync_column_button),
1810         (rb_shell_preferences_sync),
1811         (rb_shell_preferences_browser_views_activated_cb):
1812         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
1813         (rb_shell_set_property), (rb_shell_get_property),
1814         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
1815         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
1816         (rb_shell_get_visibility), (rb_shell_set_visibility),
1817         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
1818         (rb_shell_register_entry_type_for_source),
1819         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
1820         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
1821         (rb_shell_player_stream_song_changed_cb),
1822         (rb_shell_set_window_title),
1823         (rb_shell_view_smalldisplay_changed_cb),
1824         (rb_shell_view_queue_as_sidebar_changed_cb),
1825         (rb_shell_cmd_plugins), (add_to_library_response_cb),
1826         (rb_shell_cmd_add_folder_to_library),
1827         (rb_shell_cmd_add_file_to_library),
1828         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
1829         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
1830         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
1831         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
1832         (handle_playlist_entry_cb), (rb_shell_load_uri),
1833         (rb_shell_add_to_queue), (rb_shell_present),
1834         (rb_shell_get_song_properties), (rb_shell_set_song_property),
1835         (rb_shell_volume_widget_changed_cb),
1836         (rb_shell_player_volume_changed_cb),
1837         (rb_shell_ui_location_get_type):
1838         * shell/rb-shell.h:
1839         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
1840         (rb_source_header_init), (rb_source_header_set_source_internal),
1841         (rb_source_state_sync), (rb_source_header_clear_search),
1842         (rb_source_header_view_browser_changed_cb):
1843         * shell/rb-source-header.h:
1844         * shell/rb-statusbar.c: (rb_statusbar_construct),
1845         (rb_statusbar_init), (rb_statusbar_finalize),
1846         (rb_statusbar_set_property), (rb_statusbar_set_progress),
1847         (rb_statusbar_source_status_changed_cb):
1848         * shell/rb-statusbar.h:
1849         * shell/rb-tray-icon.c: (rb_tray_icon_init),
1850         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
1851         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
1852         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
1853         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
1854         (rb_audiocd_create_track_entry):
1855         * sources/rb-auto-playlist-source.c:
1856         (rb_auto_playlist_source_class_init),
1857         (rb_auto_playlist_source_constructor),
1858         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
1859         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
1860         (rb_auto_playlist_source_query_complete_cb),
1861         (rb_auto_playlist_source_do_query),
1862         (rb_auto_playlist_source_set_query),
1863         (rb_auto_playlist_source_browser_changed_cb),
1864         (search_action_to_prop):
1865         * sources/rb-auto-playlist-source.h:
1866         * sources/rb-browser-source.c: (rb_browser_source_init),
1867         (rb_browser_source_dispose), (search_action_to_prop),
1868         (rb_browser_source_constructor),
1869         (rb_browser_source_cmd_choose_genre),
1870         (rb_browser_source_cmd_choose_artist),
1871         (rb_browser_source_cmd_choose_album), (impl_search),
1872         (rb_browser_source_browser_changed_cb),
1873         (rb_browser_source_do_query):
1874         * sources/rb-browser-source.h:
1875         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1876         (rb_daap_source_init), (rb_daap_source_dispose),
1877         (rb_daap_source_set_property), (start_browsing),
1878         (rb_daap_sources_init), (rb_daap_sources_shutdown),
1879         (rb_daap_source_connection_cb), (rb_daap_source_activate),
1880         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
1881         (rb_daap_source_get_headers), (rb_daap_source_get_status):
1882         * sources/rb-daap-source.h:
1883         * sources/rb-import-errors-source.h:
1884         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
1885         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
1886         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
1887         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
1888         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
1889         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
1890         (ipod_mkdir_with_parents), (build_ipod_dir_name),
1891         (generate_ipod_filename), (ipod_path_from_unix_path),
1892         (impl_delete_thyself):
1893         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1894         (rb_iradio_source_init), (rb_iradio_source_constructor),
1895         (rb_iradio_source_new), (guess_uri_scheme),
1896         (rb_iradio_source_add_station),
1897         (rb_iradio_source_async_update_play_statistics),
1898         (genre_selection_reset_cb), (rb_iradio_source_do_query),
1899         (stations_view_drag_data_received_cb),
1900         (rb_iradio_source_cmd_new_station):
1901         * sources/rb-iradio-source.h:
1902         * sources/rb-library-source.c: (rb_library_source_dispose),
1903         (rb_library_source_constructor),
1904         (rb_library_source_location_button_clicked_cb),
1905         (impl_get_config_widget), (rb_library_source_library_location_cb),
1906         (sanitize_path), (filepath_parse_pattern),
1907         (layout_example_label_update),
1908         (rb_library_source_layout_filename_changed), (build_filename),
1909         (impl_can_paste), (impl_paste),
1910         (rb_library_source_add_child_source),
1911         (rb_library_source_sync_child_sources):
1912         * sources/rb-library-source.h:
1913         * sources/rb-missing-files-source.h:
1914         * sources/rb-play-queue-source.c:
1915         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
1916         * sources/rb-play-queue-source.h:
1917         * sources/rb-playlist-source-recorder.c:
1918         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
1919         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
1920         (rb_playlist_source_recorder_init),
1921         (rb_playlist_source_recorder_new):
1922         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1923         (rb_playlist_source_save_playlist),
1924         (rb_playlist_source_entry_added_cb),
1925         (rb_playlist_source_set_query_model),
1926         (rb_playlist_source_add_to_map):
1927         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1928         (rb_podcast_source_init), (rb_podcast_source_dispose),
1929         (rb_podcast_source_finalize), (search_action_to_prop),
1930         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
1931         (rb_podcast_source_get_property), (rb_podcast_source_new),
1932         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
1933         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
1934         (rb_podcast_source_show_browser), (construct_query_from_selection),
1935         (rb_podcast_source_do_query), (impl_get_config_widget),
1936         (rb_podcast_source_btn_file_change_cb),
1937         (posts_view_drag_data_received_cb),
1938         (rb_podcast_source_cmd_download_post),
1939         (rb_podcast_source_cmd_cancel_download),
1940         (rb_podcast_source_cmd_delete_feed),
1941         (rb_podcast_source_cmd_properties_feed),
1942         (rb_podcast_source_cmd_update_feed),
1943         (rb_podcast_source_post_status_cell_data_func),
1944         (rb_podcast_source_post_feed_cell_data_func),
1945         (rb_podcast_source_post_date_cell_data_func),
1946         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
1947         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
1948         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
1949         (impl_get_status):
1950         * sources/rb-podcast-source.h:
1951         * sources/rb-removable-media-source.c:
1952         (rb_removable_media_source_constructor):
1953         * sources/rb-removable-media-source.h:
1954         * sources/rb-source.h:
1955         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
1956         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
1957         (rb_sourcelist_model_row_is_separator),
1958         (rb_sourcelist_model_drag_data_received),
1959         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
1960         (rb_sourcelist_model_row_drop_position),
1961         (rb_sourcelist_model_get_drag_target),
1962         (rb_sourcelist_model_row_draggable),
1963         (rb_sourcelist_model_drag_data_get),
1964         (rb_sourcelist_model_row_inserted_cb),
1965         (rb_sourcelist_model_get_group_path):
1966         * sources/rb-sourcelist.c: (rb_sourcelist_append),
1967         (match_source_to_iter), (rb_sourcelist_source_to_iter),
1968         (rb_sourcelist_visible_source_to_iter),
1969         (rb_sourcelist_edit_source_name),
1970         (rb_sourcelist_selection_changed_cb), (button_press_cb),
1971         (key_release_cb), (name_notify_cb), (icon_notify_cb),
1972         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
1973         * sources/rb-static-playlist-source.c:
1974         (rb_static_playlist_source_class_init),
1975         (rb_static_playlist_source_constructor),
1976         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
1977         (impl_search), (rb_static_playlist_source_do_query),
1978         (rb_static_playlist_source_browser_changed_cb),
1979         (impl_receive_drag), (impl_save_contents_to_xml),
1980         (rb_static_playlist_source_add_location_swapped),
1981         (search_action_to_prop):
1982         * sources/rb-static-playlist-source.h:
1983         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
1984         * widgets/eggtrayicon.c: (egg_tray_icon_init),
1985         (egg_tray_icon_get_orientation_property),
1986         (egg_tray_icon_send_manager_message),
1987         (egg_tray_icon_update_manager_window),
1988         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
1989         (egg_tray_icon_send_message), (egg_tray_icon_notify):
1990         * widgets/eggtrayicon.h:
1991         * widgets/rb-cell-renderer-pixbuf.c:
1992         (rb_cell_renderer_pixbuf_get_property),
1993         (rb_cell_renderer_pixbuf_set_property),
1994         (rb_cell_renderer_pixbuf_get_size),
1995         (rb_cell_renderer_pixbuf_render),
1996         (rb_cell_renderer_pixbuf_activate):
1997         * widgets/rb-cell-renderer-rating.c:
1998         (rb_cell_renderer_rating_class_init),
1999         (rb_cell_renderer_rating_get_property),
2000         (rb_cell_renderer_rating_set_property),
2001         (rb_cell_renderer_rating_get_size),
2002         (rb_cell_renderer_rating_render),
2003         (rb_cell_renderer_rating_activate):
2004         * widgets/rb-dialog.c:
2005         * widgets/rb-dialog.h:
2006         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
2007         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
2008         (rb_druid_page3_finish_cb):
2009         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2010         (rb_entry_view_init), (rb_entry_view_set_property),
2011         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
2012         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
2013         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
2014         (rb_entry_view_set_sorting_order),
2015         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
2016         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2017         (rb_entry_view_playing_song_changed),
2018         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
2019         (rb_entry_view_scroll_to_entry), (set_column_visibility),
2020         (rb_entry_view_set_fixed_column_width),
2021         (rb_entry_view_get_time_date_column_sample),
2022         (rb_entry_view_state_get_type):
2023         * widgets/rb-entry-view.h:
2024         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
2025         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
2026         (changed_idle_callback), (rb_header_elapsed_changed_cb):
2027         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2028         (update_browser_property_visibilty),
2029         (rb_library_browser_construct_query), (restore_selection),
2030         (rebuild_child_model), (rb_library_browser_set_selection),
2031         (rb_library_browser_set_model):
2032         * widgets/rb-library-browser.h:
2033         * widgets/rb-property-view.c: (rb_property_view_class_init),
2034         (rb_property_view_set_property), (rb_property_view_reset),
2035         (rb_property_view_get_model), (rb_property_view_constructor),
2036         (rb_property_view_set_selection),
2037         (rb_property_view_selection_changed_cb),
2038         (rb_property_view_button_press_cb),
2039         (rb_property_view_set_search_func):
2040         * widgets/rb-query-creator-private.h:
2041         * widgets/rb-query-creator-properties.c:
2042         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
2043         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
2044         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
2045         (relativeTimeCriteriaCreateWidget),
2046         (relativeTimeCriteriaSetWidgetData):
2047         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2048         (rb_query_creator_dispose), (rb_query_creator_load_query),
2049         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
2050         (get_property_index_from_proptype), (select_criteria_from_value),
2051         (create_property_option_menu), (create_criteria_option_menu),
2052         (sort_option_menu_changed), (setup_sort_option_menu):
2053         * widgets/rb-query-creator.h:
2054         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
2055         (rb_rating_render_stars):
2056         * widgets/rb-rating-helper.h:
2057         * widgets/rb-rating.c: (rb_rating_expose):
2058         * widgets/rb-rating.h:
2059         * widgets/rb-search-entry.c: (rb_search_entry_clear),
2060         (rb_search_entry_timeout_cb):
2061         * widgets/rb-search-entry.h:
2062         * widgets/rb-song-info.c: (rb_song_info_construct_single),
2063         (rb_song_info_constructor), (rb_song_info_new),
2064         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
2065         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
2066         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2067         (rb_song_info_query_model_changed_cb),
2068         (rb_song_info_sync_entries_multiple),
2069         (rb_song_info_sync_entry_single):
2070         Strip all trailing whitespace.  Fixes #344293.
2072 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
2074         * doc/reference/Makefile.am: Fix GTK Doc Build
2076 2006-07-13  James Livingston  <doclivingston@gmail.com>
2078         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
2080         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
2081         instead of the LOCATION, and don't try to get the directory listing
2082         for http URI schemes
2084         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
2085         invalid utf8 in the error message, since apparently it can happen.
2087 2006-07-12  William Jon McCann  <mccann@jhu.edu>
2089         * sources/rb-import-errors-source.c:
2090         (rb_import_errors_source_class_init),
2091         (rb_import_errors_source_init),
2092         (rb_import_errors_source_constructor),
2093         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
2094         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
2095         * sources/rb-missing-files-source.c:
2096         (rb_missing_files_source_class_init),
2097         (rb_missing_files_source_init),
2098         (rb_missing_files_source_constructor),
2099         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
2100         (rb_missing_files_source_songs_sort_order_changed_cb),
2101         (impl_get_status):
2102         * sources/rb-source.c: (rb_source_class_init),
2103         (rb_source_finalize), (update_visibility_idle),
2104         (queue_update_visibility), (rb_source_set_hidden_when_empty),
2105         (rb_source_set_property), (rb_source_get_property),
2106         (default_get_status), (rb_source_update_play_statistics),
2107         (default_add_to_queue), (_rb_source_show_popup),
2108         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
2109         (rb_source_gather_selected_properties),
2110         (_rb_source_register_action_group):
2111         * sources/rb-source.h:
2112         * sources/rb-sourcelist.c: (visibility_notify_cb):
2113         Don't use a fake model for import-errors and missing-files
2114         sources.  Add a new source property "hidden-when-empty".
2115         Update source visibility in an idle.  Clean up some whitespace.
2116         From bug #346800
2118 2006-07-12  James Livingston  <doclivingston@gmail.com>
2120         * bindings/python/rb.defs:
2121         * bindings/python/rb.override: bind rb_error_dialog
2123         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
2124         the current working directory for uninstalled plugins, and add the
2125         class name to the method name.
2127 2006-07-12  James Livingston  <doclivingston@gmail.com>
2129         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
2130         the sources EOF type if it's NULL. Fixes #346284.
2132 2006-07-12  James Livingston  <doclivingston@gmail.com>
2134         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
2135         I accidently committed. Nothing to see here, move along...
2137 2006-07-11  James Livingston  <doclivingston@gmail.com>
2139         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2140         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
2141         Unknown.
2143 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2145         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
2147 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2149         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2150         Don't try to set mtime if we've deleted the entry.
2152 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2154         * bindings/python/rhythmdb.defs:
2155         * rhythmdb/rhythmdb.c:
2156         * rhythmdb/rhythmdb.h:
2157         * rhythmdb/rhythmdb-private.h:
2158         * rhythmdb/rhythmdb-query.c:
2159         Move data structures holding registered entry types inside the
2160         RhythmDB object, and add a vfunc called when new types are registered.
2161         Add a flag to RhythmDBEntryType specifying whether entries of the type
2162         should be saved to the on-disk database.
2164         * sources/rb-audiocd-source.c:
2165         * sources/rb-daap-source.c:
2166         * sources/rb-ipod-source.c:
2167         * plugins/generic-player/rb-generic-player-source.c:
2168         * plugins/generic-player/rb-nokia770-source.c:
2169         * plugins/generic-player/rb-psp-source.c:
2170         Adjust to the above changes.
2172         * rhythmdb/rhythmdb-tree.c:
2173         If the type for an entry hasn't been registered yet, store the entry's
2174         properties as-is, and convert them to a real entry when the type is
2175         registered.  If the type doesn't get registered, save the entry back
2176         to the database unmodified.  From #330226.
2178 2006-07-10  James Livingston  <doclivingston@gmail.com>
2180         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
2181         os.path.unlink to os.unlink, so removing stuff works.
2183 2006-07-10  James Livingston  <doclivingston@gmail.com>
2185         patch by: Ed Catmur  <ed@catmur.co.uk>
2186               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
2188         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2189         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2190         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
2191         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
2192         internals of the cover database and Amazon lookup engine, and add
2193         support for loading art from the local file system. Fixes #345688.
2195         * plugins/rb/Coroutine.py:
2196         * plugins/rb/Makefile.am:
2197         * plugins/rb/__init__.py: Add the Coroutine class to the common python
2198         plugin classes.
2200 2006-07-10  James Livingston  <doclivingston@gmail.com>
2202         * tests/Makefile.am: don't run the benchmark when doing "make check"
2204         * po/POTFILES.in: more build fixes, from Matti Lindell
2205         <feenixx@hotmail.com>. Fixes #347049.
2208 2006-07-10  James Livingston  <doclivingston@gmail.com>
2210         * plugins/cd-recorder/Makefile.am: build fixes
2212         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
2213         attempt to change properties if we couldn't create an entry.
2215         * shell/rb-source-header.c: (rb_source_header_init),
2216         (rb_source_header_view_browser_changed_cb),
2217         (rb_source_header_sync_control_state):
2218         * shell/rb-tray-icon.c:
2219         * widgets/Makefile.am:
2220         * widgets/disclosure-widget.c:
2221         * widgets/disclosure-widget.h: remove the remanents of the disclosure
2222         widget, as it hasn't been used for a while.
2224 2006-07-09  William Jon McCann  <mccann@jhu.edu>
2226         * Makefile.am:
2227         * configure.ac:
2228         * data/ui/rhythmbox-ui.xml:
2229         * plugins/Makefile.am:
2230         * plugins/cd-recorder/.cvsignore:
2231         * plugins/cd-recorder/Makefile.am:
2232         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
2233         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2234         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
2235         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
2236         (source_burn), (cmd_burn_source), (playlist_entries_changed),
2237         (playlist_row_inserted_cb), (update_source),
2238         (shell_selected_source_notify_cb), (impl_activate),
2239         (impl_deactivate):
2240         * shell/Makefile.am:
2241         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
2242         (rb_playlist_manager_cmd_save_playlist):
2243         * shell/rb-shell.c: (rb_shell_select_source):
2244         * sources/Makefile.am:
2245         * sources/rb-playlist-source-recorder.c:
2246         (rb_playlist_source_recorder_new):
2247         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2248         (rb_playlist_source_add_to_map):
2249         * sources/rb-playlist-source.h:
2250         Move cd burning into a plugin.  Fixes #344300.
2252 2006-07-10  James Livingston  <doclivingston@gmail.com>
2254         * lib/eel-gconf-extensions.c:
2255         * shell/rb-shell.c: remove some ununsed gnomeui includes
2257         * widgets/Makefile.am:
2258         * widgets/rb-song-display-box.c:
2259         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
2260         since it isn't acutally used anywhere. Fixes #346926
2262 2006-07-09  James Livingston  <doclivingston@gmail.com>
2264         * bindings/python/rb.defs:
2265         * bindings/python/rb.override:
2266         * lib/rb-debug.c: (rb_debug_real):
2267         * lib/rb-debug.h:
2268         * plugins/rb/__init__.py: don't print out an extra newline when
2269         diverting python print statements to RB's debug log.
2271 2006-07-09  James Livingston  <doclivingston@gmail.com>
2273         * rhythmdb/rhythmdb-property-model.c:
2274         (rhythmdb_property_model_drag_data_get):
2275         * sources/rb-sourcelist-model.c:
2276         (rb_sourcelist_model_row_draggable),
2277         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
2278         from the row reference is still valid. Fixes #346709.
2280 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2282         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
2284         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
2285         If all selected entries have the same rating, use that as the initial
2286         rating for the multiple song info dialog.  Fixes #345970.
2288 2006-07-09  James Livingston  <doclivingston@gmail.com>
2290         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
2291         to prevent #343345:
2292                 - don't ever scale to 1x1, just hide the image in that case
2293                 - don't fade when the window is minimised
2294                 - use the last-good allocation width, not the current one - as
2295                   it sometimes get weird values.
2297 2006-07-08  William Jon McCann  <mccann@jhu.edu>
2299         * data/ui/rhythmbox-ui.xml:
2300         * shell/rb-shell.c:
2301         Remove Import audio CD from menu.  Fixes #339732
2303 2006-07-08  James Livingston  <doclivingston@gmail.com>
2305         * metadata/test-metadata.c: (print_metadata_string),
2306         (load_metadata_cb): print out all the metadata we have read, not just
2307         a few.
2309         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
2310         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
2312 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2314         * plugins/lyrics/lyrics.py:
2315         Change the lyrics cache location to match Quod Libet's,
2316         and fix the '&' -> 'and' substitution to require spaces.
2318 2006-07-08  James Livingston  <doclivingston@gmail.com>
2320         * bindings/python/rb.defs:
2321         * bindings/python/rb.override: bind rb_debug_real to rb._debug
2323         * configure.ac:
2324         * plugins/Makefile.am:
2325         * plugins/rb-python-module.c: (rb_python_module_init_python):
2326         * plugins/rb/Makefile.am: add a place to put common python classes.
2327         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
2328         rb module/
2330         * plugins/lyrics/Makefile.am:
2331         * plugins/lyrics/Loader.py:
2332         * plugins/artdisplay/artdisplay/Makefile.am:
2333         * plugins/artdisplay/artdisplay/Loader.py:
2334         * plugins/rb/Loader.py: move the loader class to rb.Loader
2336         * plugins/rb/__init__.py: redirect stdout from python (e.g.
2337         "print ...") to rb_debug. error output (e.g. exceptions) are still
2338         printed on stderr.
2340         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2341         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2342         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
2343         instead of Loader.
2345         Fixes #346895.
2347 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2349         * shell/rb-shell-player.xml:
2350         * shell/rb-shell-player.h:
2351         Correct the details of the playing-song-property-changed signal.
2353 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2355         * lib/rb-marshal.list:
2356         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2357         (rb_shell_player_entry_changed_cb):
2358         * shell/rb-shell-player.h:
2359         * shell/rb-shell-player.xml:
2360         Emit a dbus signal when a property is changed on the playing entry.
2361         Fixes #332461.
2363 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2365         * rhythmdb/rhythmdb-private.h:
2366         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
2367         Fix build break with gcc 4.1 by changing RBRefString pointers into
2368         gpointers.
2370 2006-07-07  James Livingston  <doclivingston@gmail.com>
2372         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
2373         remove an extraneous !, which caused it not to monitor folders in the
2374         library with no tracks in them. Fixes #346759.
2376 2006-07-07  James Livingston  <doclivingston@gmail.com>
2378         * rhythmdb/rhythmdb-private.h:
2379         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
2380         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
2381         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
2382         (rhythmdb_entry_get_string):
2383         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
2384         flags for the affected properties. _sync_mirrored will get run
2385         automatically when a dirty property is accessed, which improves
2386         performance a bit (especially during startup) as we don't need to sync
2387         every time they change. From #325215.
2389         * tests/bench-rhythmdb-load.c
2390         * tests/Makefile.am: add a RhythmDB loading benchmark.
2392 2006-07-06  James Livingston  <doclivingston@gmail.com>
2394         * bindings/python/rb.defs:
2395         * bindings/python/rb.override: some more fixes, so that
2396         python classes derived from RBSource work correctly.
2398 2006-07-06  James Livingston  <doclivingston@gmail.com>
2400         * configure.ac: bump pygtk requirements to 2.8, since we're already
2401         using some features of it, and weird things will happen if people are
2402         actually trying to use pygtk 2.6.
2404         * bindings/python/rb.override:
2405         * bindings/python/rhythmdb.defs:
2406         * bindings/python/rhythmdb.override: allow python to set
2407         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
2409         * sources/rb-browser-source.c: remove some left over member variables
2411 2006-07-06  James Livingston  <doclivingston@gmail.com>
2413         * rhythmdb/rhythmdb.c:
2414         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
2415         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
2416         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
2417         former is pointless (as rhythmdb already knows which it should use)
2418         and the latter doesn't seem useful at all, and possibly bad. From
2419         #330226.
2421         * bindings/python/rhythmdb.defs:
2422         * bindings/python/rhythmdb.override:
2423         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
2424         (handle_song_listing):
2425         * podcast/rb-podcast-manager.c:
2426         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
2427         (rb_podcast_manager_insert_feed):
2428         * sources/rb-audiocd-source.c: (entry_set_string_prop),
2429         (rb_audiocd_create_track_entry):
2430         * sources/rb-ipod-source.c: (entry_set_string_prop),
2431         (add_ipod_song_to_db):
2432         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
2433         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
2435 2006-07-05  James Livingston  <doclivingston@gmail.com>
2437         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
2438         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
2439         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
2440         totem-plparser gives us, or the file name if it doesn't give us
2441         anything. Set the default file name when saving too. Fixes #345261
2443 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2445         patch by: Ed Catmur  <ed@catmur.co.uk>
2447         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2448         Skip all hidden directories, not just trash, and skip unreadable
2449         files.  Fixes #346322.
2451 2006-07-04  James Livingston  <doclivingston@gmail.com>
2453         * plugins/rb-module.h:
2454         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
2455         (rb_module_new):
2456         * plugins/rb-plugin.h:
2457         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
2458         (rb_plugin_finalise), (rb_plugin_set_property),
2459         (rb_plugin_get_property), (rb_plugin_activate),
2460         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
2461         (rb_plugin_find_file):
2462         * plugins/rb-plugins-engine.c: (load_plugin_module):
2463         * plugins/rb-python-module.c: (rb_python_module_new_object),
2464         (rb_python_module_new):
2465         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
2466         rb_plugin_find_file method for locating plugin-specific data. Fixes
2467         346473.
2469         * bindings/python/rb.defs:
2470         * plugins/Makefile.am:
2471         * plugins/generic-player/rb-generic-player-plugin.c:
2472         (create_source_cb):
2473         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
2475 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2477         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
2478         (rb_metadata_can_save), (rb_metadata_save):
2479         Protect the dbus connection with a mutex.
2481 2006-07-03  James Livingston  <doclivingston@gmail.com>
2483         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
2484         case of the parser/tagger not being able to be created.
2486 2006-07-03  James Livingston  <doclivingston@gmail.com>
2488         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2490         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
2491         window resizable, as it used to be. Fixes #345940.
2493 2006-07-01  James Livingston  <doclivingston@gmail.com>
2495         Patch from Ståle Lyngaas  <staale@lyngaas.com>
2497         * rhythmdb/rhythmdb.h:
2498         * rhythmdb/rhythmdb-private.h:
2499         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
2500         (rhythmdb_tree_parser_end_element), (save_entry):
2501         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
2502         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
2503         (set_props_from_metadata), (rhythmdb_entry_set_internal),
2504         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
2505         MusicBrainz track IDs in the database, and bump the on-disk version
2506         number to trigger a metadata reload.
2508         * backends/gstreamer/rb-player-gst.c: (process_tag):
2509         * metadata/rb-metadata-common.c:
2510         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
2511         (rb_metadata_gst_field_to_gst_tag):
2512         * metadata/rb-metadata.h: grab MB track IDs and use them.
2514         * plugins/audioscrobbler/rb-audioscrobbler.c:
2515         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
2516         (rb_audioscrobbler_timeout_cb),
2517         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
2518         the other metadata. Fixes #343491.
2520 2006-06-30  James Livingston  <doclivingston@gmail.com>
2522         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
2523         method.
2525 2006-06-30  James Livingston  <doclivingston@gmail.com>
2527         * bindings/python/rb.defs:
2528         * sources/rb-browser-source.c: (rb_browser_source_class_init),
2529         (rb_browser_source_songs_show_popup_cb),
2530         (default_show_entry_popup):
2531         * sources/rb-browser-source.h:
2532         * sources/rb-library-source.c: (rb_library_source_class_init),
2533         (rb_library_source_constructor), (impl_show_popup): allow
2534         RBBrowserSource-derived sources to override the entry context menu
2535         properly - by making it a virtual function, rather than relying on
2536         signal handler order (which doesn't really work).
2538 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2540         * rhythmdb/rhythmdb-query-model.c:
2541         (rhythmdb_query_model_reapply_query_cb):
2542         Use the original query, not the preprocessed query, when redoing
2543         the query to pick up entries that previously didn't match.
2544         Preprocessing the query twice is bad.  Fixes #346186.
2546 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2548         * plugins/audioscrobbler/rb-audioscrobbler.c:
2549         (rb_audioscrobbler_song_changed_cb):
2550         Just check if the elapsed time has been reset, rather
2551         than checking if it's a different track.  Fixes #344827.
2553 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2555         * backends/gstreamer/rb-player-gst.c:
2556         Set cdda source read-speed to 1.  Fixes gaps in playback while the
2557         drive spins up, #344576.
2559 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2561         * plugins/audioscrobbler/rb-audioscrobbler.c:
2562         (rb_audioscrobbler_perform):
2563         Use HTTP/1.1.  Fixes #345895.
2565 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2567         * lib/rb-preferences.h:
2568         * lib/rb-proxy-config.c: (rb_proxy_config_init),
2569         (check_auto_proxy_config), (get_proxy_config):
2570         Don't try to use a HTTP proxy if no proxy host is specified.
2571         Alert the user to the fact that we don't support automatic proxy
2572         configuration as infrequently as possible.  From #345712.
2574 2006-06-25  James Livingston  <doclivingston@gmail.com>
2576         * rhythmdb/rhythmdb-property-model.c:
2577         (rhythmdb_property_model_set_property): connect to the
2578         "post-entry-delete" signal, rather than "entry-deleted". This ensures
2579         things get removed correctly, fixes #338183.
2581 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2583         * rhythmdb/rhythmdb-query-model.c:
2584         (rhythmdb_query_model_drag_data_received):
2585         Fix build break.
2587 2006-06-25  James Livingston  <doclivingston@gmail.com>
2589         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2591         * widgets/rb-search-entry.c: (rb_search_entry_init),
2592         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
2593         search box have a pale yellow background when it's in use, except for
2594         when the user has an "accessability" theme. Code based heavily on
2595         Epiphany's. Fixes #344416.
2597 2006-06-25  James Livingston  <doclivingston@gmail.com>
2599         * plugins/lyrics/lyrics.py:
2600         * plugins/pythonconsole/pythonconsole.py:
2601         * plugins/sample-python/sample-python.py: don't import gettext stuff
2602         as _, as the C code does this for us. Fixes i18n for python plugins,
2603         #343081
2605 2006-06-25  James Livingston  <doclivingston@gmail.com>
2607         * rhythmdb/rhythmdb-query-model.c:
2608         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
2609         a model use a reorder rather then deleting and re-adding the entry.
2610         This means it does do weird things like stop playback of a track that
2611         is dragged, fixing #337657.
2613 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2615         * metadata/rb-metadata-dbus-service.c:
2616         Add missing #include <glib/gi18n.h> from previous commit.
2618 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2620         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2622         * metadata/rb-metadata-dbus-service.c: (main):
2623         Initialize gettext in the metadata helper.
2624         * metadata/rb-metadata-gst.c:
2625         Make some strings translatable.  Fixes #345286.
2627 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2629         * configure.ac:
2630         * lib/Makefile.am:
2631         * lib/rb-stock-icons.c: (rb_stock_icons_init):
2632         Inline the custom icons so they can always be loaded, but are still
2633         themable.  Fixes #345796.
2635 2006-06-23  James Livingston  <doclivingston@gmail.com>
2637         * sources/rb-auto-playlist-source.c:
2638         (rb_auto_playlist_source_do_query): stop the search box being applied
2639         for limits in auto playlists. Fixes #345307.
2641 2006-06-23  James Livingston  <doclivingston@gmail.com>
2643         * shell/rb-shell-clipboard.c:
2644         (rb_shell_clipboard_set_source_internal),
2645         (rb_shell_clipboard_sync), (add_playlist_to_menu),
2646         (rebuild_playlist_menu): don't use the add-to-playlist menu for
2647         non-library tracks, as we don't supprot it yet. From #345248.
2649 2006-06-23  James Livingston  <doclivingston@gmail.com>
2651         patch by: Brian Cameron  <brian.cameron@sun.com>
2653         * plugins/generic-player/rb-generic-player-plugin.c:
2654         * plugins/generic-player/rb-generic-player-source.c:
2655         * plugins/generic-player/rb-nokia770-source.c:
2656         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
2657         Fixes 345673.
2659 2006-06-22  James Livingston  <doclivingston@gmail.com>
2661         * backends/rb-player.c: (rb_player_interface_init):
2662         * lib/rb-marshal.list:
2663         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
2664         * rhythmdb/rhythmdb-query-model.c:
2665         (rhythmdb_query_model_class_init):
2666         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
2667         * shell/rb-shell-player.c: (rb_shell_player_class_init):
2668         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
2669         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
2670         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
2671         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
2672         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
2673         possible not.
2675 2006-06-20  James Livingston  <doclivingston@gmail.com>
2677         patch by Alex Lancaster  <alexl@users.sourceforge.net>
2679         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
2680         metadata to clients. Fixes #345276.
2682 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2684         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
2685         (rb_add_id3_tagger):
2686         Fix plugin/element version detection for id3v2mux.
2688 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2690         * sources/rb-source.c: (rb_source_finalize),
2691         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
2692         (_autohide_update_visibility),
2693         (_rb_autohide_source_post_entry_deleted_cb),
2694         (_rb_autohide_source_row_inserted_cb),
2695         (_rb_source_hide_when_empty):
2696         Use post-entry-delete signal to update status and autohide sources.
2698 2006-06-20  James Livingston  <doclivingston@gmail.com>
2700         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
2701         "selection changed" idle callback, if present.
2703 2006-06-19  James Livingston  <doclivingston@gmail.com>
2705         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
2707         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2708         don't try to translate the empty string. Fixes #345285.
2710 2006-06-19  James Livingston  <doclivingston@gmail.com>
2712         * bindings/python/rhythmdb.override: more python binding fixes
2714 2006-06-19  James Livingston  <doclivingston@gmail.com>
2716         * lib/rb-util.c: (rb_copy_function):
2717         * lib/rb-util.h: add a function that returns the same pointer it was
2718         passed.
2720         * rhythmdb/rhythmdb.h:
2721         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
2722         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
2723         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
2724         and RhythmDBEntryType into boxed types. This allows them to be used
2725         from python. Note that entry-types aren't actually reference counted
2726         (yet).
2728         * bindings/python/rb.defs:
2729         * bindings/python/rhythmdb.defs:
2730         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
2731         return types of some bindings.
2733         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
2734         (process_added_entries_cb), (rhythmdb_entry_finalize),
2735         (rhythmdb_entry_delete):
2736         * daapsharing/rb-daap-connection.c:
2737         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
2738         (rb_daap_connection_get_property):
2739         * plugins/generic-player/rb-generic-player-source.c:
2740         (rb_generic_player_source_load_songs), (load_playlist_file):
2741         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
2742         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
2743         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
2744         (idle_process_update), (rhythmdb_query_model_add_entry),
2745         (rhythmdb_query_model_insert_into_main_list),
2746         (rhythmdb_query_model_insert_into_limited_list),
2747         (rhythmdb_query_model_remove_from_main_list),
2748         (rhythmdb_query_model_remove_from_limited_list),
2749         (rhythmdb_query_model_drag_data_received),
2750         (rhythmdb_query_model_add_results),
2751         (rhythmdb_query_model_get_column_type),
2752         (rhythmdb_query_model_get_value):
2753         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
2754         (rhythmdb_tree_entry_delete), (remove_one_song):
2755         * shell/rb-play-order-linear-loop.c:
2756         (rb_linear_play_order_loop_get_next),
2757         (rb_linear_play_order_loop_get_previous):
2758         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
2759         (rb_linear_play_order_get_previous):
2760         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
2761         (rb_queue_play_order_get_previous):
2762         * shell/rb-play-order-random.c: (rb_random_play_order_init),
2763         (rb_random_filter_history), (rb_random_play_order_get_next),
2764         (rb_random_play_order_go_next), (rb_random_db_changed),
2765         (rb_random_playing_entry_changed):
2766         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
2767         (remove_from_history), (add_randomly_to_history),
2768         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
2769         * shell/rb-play-order.c: (rb_play_order_class_init),
2770         (rb_play_order_set_property), (rb_play_order_get_property),
2771         (rb_play_order_update_have_next_previous):
2772         * shell/rb-play-order.h:
2773         * shell/rb-shell-clipboard.c:
2774         (rb_shell_clipboard_process_deletions),
2775         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
2776         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
2777         * sources/rb-auto-playlist-source.c:
2778         (rb_auto_playlist_source_constructor):
2779         * sources/rb-browser-source.c: (rb_browser_source_class_init),
2780         (rb_browser_source_set_property), (rb_browser_source_get_property),
2781         (rb_browser_source_do_query):
2782         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
2783         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
2784         * sources/rb-ipod-source.c: (add_rb_playlist),
2785         (add_ipod_song_to_db), (impl_paste):
2786         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2787         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
2788         * sources/rb-library-source.c: (layout_example_label_update):
2789         * sources/rb-missing-files-source.c:
2790         (rb_missing_files_source_class_init),
2791         (rb_missing_files_source_set_property),
2792         (rb_missing_files_source_get_property),
2793         (rb_missing_files_source_new):
2794         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2795         (rb_playlist_source_set_property),
2796         (rb_playlist_source_get_property):
2797         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2798         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
2799         (construct_query_from_selection):
2800         * sources/rb-removable-media-source.c: (impl_delete_thyself):
2801         * sources/rb-static-playlist-source.c:
2802         (rb_static_playlist_source_constructor),
2803         (rb_static_playlist_source_add_location_internal):
2804         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
2805         * widgets/rb-header.c: (rb_header_class_init),
2806         (rb_header_set_property), (rb_header_get_property):
2807         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
2808         (rb_library_browser_set_property),
2809         (rb_library_browser_get_property):
2810         * widgets/rb-song-info.c: (rb_song_info_class_init),
2811         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
2812         change, do s/pointer/boxed/ in many places and free entry-types
2813         properly.
2815 2006-06-18  James Livingston  <doclivingston@gmail.com>
2817         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
2818         unushed GThreadPool non-exclusive threads every now and then.
2820         * rhythmdb/rhythmdb-private.h:
2821         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
2822         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
2823         threads. Fixes #341593
2825 2006-06-19  James Livingston  <doclivingston@gmail.com>
2827         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
2828         the "Track number" checkbox actually work for playlists. From #329986.
2830 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2832         * plugins/generic-player/rb-generic-player-source.c:
2833         Get playlist and audio folder information from HAL.  Fixes #333845.
2835 2006-06-18  James Livingston  <doclivingston@gmail.com>
2837         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2839         * widgets/rb-entry-view.h:
2840         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2841         (rb_entry_view_append_column_custom),
2842         (rb_entry_view_insert_column_custom): add support for inserting custom
2843         columns at arbitrary locations, rather than just appending to the end.
2845         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
2846         the playlists "track number" column go at the start, and add a normal
2847         track number column. Fixes #329986.
2849 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
2851         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
2852         a mnemonic conflict.  Add ellipses to the edit button.
2853         * sources/rb-library-source.c:
2854         (rb_library_source_edit_profile_clicked_cb),
2855         (impl_get_config_widget):  Hide dialog separator.  Assign a 
2856         mnemonic widget to the labels. Fixes #344114.
2858 2006-06-18  James Livingston  <doclivingston@gmail.com>
2860         * configure.ac: bump version
2861         * NEWS: add NEWS for 0.9.5
2863 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2865         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
2866         (rb_uri_handle_recursively):
2867         Don't attempt to recurse into directories we can't open.  
2868         Fixes #341485.
2870 2006-06-18  James Livingston  <doclivingston@gmail.com>
2872         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
2874         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
2875         #344610.
2877 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2879         * bindings/python/rb.defs:
2880         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
2881         * shell/rb-shell-player.h:
2882         * shell/rb-shell.c: (rb_shell_play_entry):
2883         Add source parameter to rb_shell_player_play_entry, using the selected
2884         source if not specified.
2886         * shell/rb-play-order.c: (rb_play_order_class_init),
2887         (rb_play_order_finalize), (rb_play_order_query_model_changed),
2888         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
2889         (default_playing_entry_removed):
2890         * shell/rb-play-order.h:
2891         Move entry removal handling back to the row-deleted signal, as we need
2892         the entry to be present in the model.  When changing to the next entry
2893         after the playing entry is deleted, set the new entry as the playing
2894         entry and then sync it to the player in an idle handler, so we don't
2895         end up playing it if it was removed too.
2896         * shell/rb-play-order-queue.c:
2897         (rb_queue_play_order_playing_entry_changed),
2898         (rb_queue_play_order_playing_entry_removed):
2899         Use the playing-entry-removed handler from the play order class,
2900         setting a flag so we don't try to remove the already-removed entry
2901         from the model.
2903         This makes removal of the playing entry from playlists etc. work more
2904         or less correctly for all play orders.  Fixes #344627.
2906 2006-06-17  James Livingston  <doclivingston@gmail.com>
2908         patch by: Elijah Newren  <newren@gmail.com>
2910         * tests/test-rhythmdb.c: fix the build with older versions of check
2911         (again). Fixes #343718.
2913 2006-06-17  James Livingston  <doclivingston@gmail.com>
2915         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
2916         name for capsfilter's "caps" property. Fixes #344968.
2918 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2920         * shell/rb-shell-player.c: (rb_shell_player_playpause):
2921         Don't leak the selected entry list when finding an entry to play.
2923 2006-06-17  James Livingston  <doclivingston@gmail.com>
2925         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
2926         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
2927         as a O(1) one works fine, and it will get called often when the user
2928         deleted multiple tracks. Part of #344922.
2930 2006-06-17  James Livingston  <doclivingston@gmail.com>
2932         * shell/rb-shell-player.c: (rb_shell_player_stop): make
2933         rb_shell_player_stop and rb_shell_player_playpause not mutually
2934         recursive. Fixed #336912.
2936 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2938         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
2939         Treat nested elements inside properties as unknown.  Fixes parsing of
2940         podcast feeds with unescaped HTML in description tags, bug #344532.
2942 2006-06-15  William Jon McCann  <mccann@jhu.edu>
2944         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
2945         when quitting.  Fixes #344875.
2947 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2949         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
2950         Move the playing-entry-removed handling to after the normal entry
2951         delete handling, since we're called after the entry has been removed
2952         from the query model now.  Fixes crashes described in #344627.
2954 2006-06-13  William Jon McCann  <mccann@jhu.edu>
2956         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
2957         (rb_rating_get_rating_from_widget):
2958         * widgets/rb-rating.c: (rb_rating_class_init),
2959         (rb_rating_finalize), (rb_rating_get_property),
2960         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
2961         (rb_rating_button_press_cb):
2962         Don't crash when ratings icons can't be found.  Fixes #344533.
2964 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2966         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
2968 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2970         * Makefile.am:
2971         * configure.ac:
2972         * remote/Makefile.am:
2973         * remote/dbus/Makefile.am:
2974         * remote/dbus/rb-client.c:
2975         * shell/Makefile.am:
2976         New dbus client program providing --play/--next etc. arguments.
2977         Fixes #340863, #155763.
2979 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2981         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
2982         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
2984 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
2986         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
2988         * rhythmdb/rhythmdb-query-model.c:
2989         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
2990         to Library incorrectly
2992 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2994         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
2995         Return input string untouched if gnome_vfs_uri_new returns NULL.
2996         * sources/rb-static-playlist-source.c: (impl_receive_drag),
2997         (rb_static_playlist_source_add_list_uri):
2998         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
2999         URIs don't break it.  Fixes #339033.
3001 2006-06-08  James Livingston  <doclivingston@gmail.com>
3003         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
3004         for sources on the edge (i.e. the queue). Fixes #328409.
3006         * sources/rb-ipod-source.c: fix typo
3008 2006-06-08  James Livingston  <doclivingston@gmail.com>
3010         * configure.ac:
3011         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
3012         --enable-ipod-writing to enable the ipod syncing code.
3014 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3016         * sources/rb-library-source.c: (layout_example_label_update):
3017         add missing comma so we don't generate broken markup.
3019 2006-06-08  James Livingston  <doclivingston@gmail.com>
3021         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
3022         tag-merging with id3v2mux as well as id3mux. From #342330.
3024 2006-06-07  James Livingston  <doclivingston@gmail.com>
3026         * tests/test-rhythmdb.c: #define fail_if for old version of check
3027         which don't have it. Hopefully fixes #343718.
3029 2006-06-07  James Livingston  <doclivingston@gmail.com>
3031         * shell/rb-playlist-manager.c:
3032         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
3033         g_value_array_free with NULL. Fixes #341053.
3035 2006-06-07  James Livingston  <doclivingston@gmail.com>
3037         * shell/rb-playlist-manager.c:
3038         (rb_playlist_manager_playlist_entries_changed),
3039         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
3040         instead of "row-removed", which fixes updating "burn playlist"
3041         sensitivity. Fixes #331119.
3043 2006-06-07  James Livingston  <doclivingston@gmail.com>
3045         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
3046         rather than restarting if the source uses _RETRY and there is an
3047         actual error (like an undecodable stream) rather than it just dropping
3048         out and causing EOS.
3050 2006-06-07  James Livingston  <doclivingston@gmail.com>
3052         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
3053         free the pixbufs if they couldn't be loaded. Fixed #343852.
3055 2006-06-07  James Livingston  <doclivingston@gmail.com>
3057         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
3058         the close button on the dialog work. Fixes #335346.
3060 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3062         * sources/rb-sourcelist-model.c: (path_is_droppable),
3063         (path_is_reorderable):
3064         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
3065         (row_activated_cb), (emit_show_popup), (key_release_cb),
3066         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3067         Ignore group marker rows in the source list.  Fixes #344089, a couple
3068         of other crashers, and some weird UI glitches too.
3070 2006-06-07  James Livingston  <doclivingston@gmail.com>
3072         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
3073         the seeking query fails. This is needed because many gst elements
3074         don't implement the seeking query yet. Should fix 329977.
3076 2006-06-06  James Livingston  <doclivingston@gmail.com>
3078         * configure.ac: bump version for a prerelease, turn on track transfer
3079         by default.
3081         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
3082         ipod transfer stuff, since it has big issues and we'll hopefully land
3083         real support (bug 310774) after 0.9.5
3085 2006-06-06  James Livingston  <doclivingston@gmail.com>
3087         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
3088         id3v2mux once we've detected it.
3090 2006-06-06  James Livingston  <doclivingston@gmail.com>
3092         * lib/Makefile.am:
3093         * tests/test-rhythmdb.c: undo accidental commit which caused
3094         rb-thread.c to be built (which it isn't normally)
3096 2006-06-06  James Livingston  <doclivingston@gmail.com>
3098         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
3099         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
3100         fail_{if/unless} calls, as some versions of check need them (they are
3101         optional in others). Should fix bug 343718.
3103 2006-06-06  James Livingston  <doclivingston@gmail.com>
3105         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
3106         343836.
3107         
3108         * lib/Makefile.am:
3109         * lib/rb-thread.c: (process_actions):
3110         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
3111         tests that don't pass.
3113 2006-06-05  James Livingston  <doclivingston@gmail.com>
3115         * data/glade/Makefile.am:
3116         * data/glade/load-failure.glade:
3117         * data/rhythmbox.schemas: remove the remainder of the old load-failure
3118         dialog.
3120 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3122         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
3123         checked in.
3125 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3127         * bindings/python/rb.defs:
3128         * sources/rb-source.h:
3129         * sources/rb-source.c: (rb_source_class_init),
3130         (rb_source_set_property), (rb_source_get_property),
3131         (rb_sourcelist_group_get_type):
3132         Add 'sourcelist-group' property on the RBSource class, describing how
3133         sources should be grouped in the source list.
3135         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
3136         (rb_sourcelist_model_new), (real_row_is_separator),
3137         (rb_sourcelist_model_is_row_visible),
3138         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
3139         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
3140         (rb_sourcelist_model_row_draggable),
3141         (rb_sourcelist_model_row_inserted_cb),
3142         (rb_sourcelist_model_row_deleted_cb),
3143         (rb_sourcelist_model_get_group_path):
3144         * sources/rb-sourcelist-model.h:
3145         * sources/rb-sourcelist.c: (rb_sourcelist_init),
3146         (rb_sourcelist_append):
3147         Add group marker rows for each sourcelist group, and use these to
3148         insert sources in the right place.  Sort transient sources (DAAP
3149         shares) by name.  Show the group marker rows as separators when the
3150         next visible row is a source.  Make persistant sources (playlists) and
3151         removable sources reorderable using drag and drop, restricting them
3152         within the source groups.
3153         
3154         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
3155         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
3156         * sources/rb-daap-source.c: (rb_daap_source_new):
3157         * sources/rb-ipod-source.c: (rb_ipod_source_new):
3158         * sources/rb-static-playlist-source.c:
3159         (rb_static_playlist_source_new):
3160         * plugins/generic-player/rb-generic-player-source.c:
3161         (rb_generic_player_source_new):
3162         * plugins/generic-player/rb-nokia770-source.c:
3163         (rb_nokia770_source_new):
3164         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
3165         Add source list group information to existing source classes.
3167         Fixes #318754 and #336492.
3169 2006-06-04  James Livingston  <doclivingston@gmail.com>
3171         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
3172         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
3173         win32 build fixes.
3175 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3177         * rhythmdb/rhythmdb-query-model.c:
3178         (rhythmdb_query_model_class_init),
3179         (rhythmdb_query_model_remove_from_main_list):
3180         * rhythmdb/rhythmdb-query-model.h:
3181         Add a new 'post-entry-delete' signal, emitted when the entry has been
3182         removed from the model's data structures.
3184         * shell/rb-play-order.c: (rb_play_order_finalize),
3185         (rb_play_order_query_model_changed),
3186         (rb_play_order_post_entry_delete_cb):
3187         Use the new signal to update the play order, so the queue play order
3188         doesn't try to scroll to entries that don't exist in a way that causes
3189         the tree view to crash.  Fixes #340216.
3191 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3193         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
3194         Fix rb_debug call I missed previously.
3196 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3198         * metadata/rb-metadata-gst.c:
3199         Don't use NULL as the error message for ignored files, as it crashes
3200         with some C libraries.  Fixes #343713.
3202 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3204         * widgets/rb-dialog.c: (rb_error_dialog):
3205         * widgets/rb-dialog.h:
3206         Mark rb_error_dialog as taking printf-like arguments, and use a format
3207         string for the primary message rather than passing in the message
3208         directly.
3210         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
3211         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
3212         (info_available_cb):
3213         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
3214         * shell/rb-removable-media-manager.c:
3215         (rb_removable_media_manager_eject_medium_cb):
3216         Make sure all calls to rb_error_dialog use string constants for the
3217         format string rather than passing the error message directly.  Remove
3218         an extra %s from the message used when playback fails.  Fixes #343562.
3220         * lib/rb-debug.h:
3221         * sources/rb-audiocd-source.c:
3222         * plugins/audioscrobbler/rb-audioscrobbler.c:
3223         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
3224         Mark rb_debug as taking printf-like arguments and fix a few resulting
3225         warnings.
3227 2006-06-02  James Livingston  <doclivingston@gmail.com>
3229         * configure.ac:
3230         + macros/check.m4: add support for using check for unit tests, the .m4
3231         files is so autogen can run without check being installed
3233         * tests/Makefile.am:
3234         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
3235         some of the old tests, and add some new ones. Currently
3236         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
3237         yet (the query doesn't return any entries).
3239         - tests/deserialization-test1.xml:
3240         - tests/deserialization-test2.xml:
3241         - tests/deserialization-test3.xml:
3242         - tests/test-rhythmdb-indexing.c:
3243         - tests/test-rhythmdb-simple.c:
3244         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
3245         have been ported
3247         - tests/test-cd.c:
3248         - tests/test-cmdline.c: remove obsolete tests
3250 2006-06-02  James Livingston  <doclivingston@gmail.com>
3252         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3253         (rb_add_id3_tagger), (rb_metadata_init): add support for using
3254         id3v2mux, and check whether we are using a version of id3mux that has
3255         the correct merge-mode behaviour.
3257         * plugins/sample-python/Makefile.am: fix distcheck.
3259         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
3260         the changed-files source was added before trying to remove it.
3262         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
3263         *old* bug which would crash if a query with top-level disjunctions
3264         tried to check later disjunctive parts. Hooray for unit-testing.
3266 2006-06-02  William Jon McCann  <mccann@jhu.edu>
3268         * player/rb-recorder-gst.c (rb_recorder_set_device):
3269         Check for a null drive.
3271 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3273         * lib/Makefile.am:
3274         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3275         Register the app icon as a builtin if the icon theme can't find it.
3277 2006-05-31  James Livingston  <doclivingston@gmail.com>
3279         * player/rb-recorder-gst.c: add missing include.
3281 2006-05-30  William Jon McCann  <mccann@jhu.edu>
3283         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
3284         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
3285         (tick_timeout_cb), (rb_recorder_sync_pipeline),
3286         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
3287         (rb_recorder_set_device), (rb_recorder_get_default_device):
3288         * shell/main.c: (main):
3289         * shell/rb-removable-media-manager.c:
3290         (rb_removable_media_manager_finalize),
3291         (get_nautilus_burn_drive_for_path),
3292         (rb_removable_media_manager_playing_uri_changed_cb),
3293         (rb_removable_media_manager_load_media),
3294         (nautilus_burn_drive_get_device),
3295         (rb_removable_media_manager_scan):
3296         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
3298         Update for libnautilus-burn 2.15.3 API changes.
3299         Fixes #342604
3301 2006-05-30  James Livingston  <doclivingston@gmail.com>
3303         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
3304         "return" to that it asks for the password again if it was wrong.
3306 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3308         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
3309         typefind element.
3311 2006-05-30  James Livingston  <doclivingston@gmail.com>
3313         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
3314         (download_progress_cb): don't do wonky things if the transfer
3315         "suceeds" without transferring any data.
3317 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3319         * sources/rb-library-source.c: (layout_example_label_update),
3320         (build_filename):  Fix crash when no audio profile is selected.
3321         Fixes #341447.
3323 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3325         * shell/rb-shell.c: (rb_shell_clear_queue):
3326         * shell/rb-shell.h:
3327         * shell/rb-shell.xml:
3328         * sources/rb-play-queue-source.c:
3329         (rb_play_queue_source_clear_queue),
3330         (rb_play_queue_source_cmd_clear):
3331         * sources/rb-play-queue-source.h:
3332         Add clearQueue dbus method.
3334 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3336         * shell/main.c: (main):  Implement --quit option.
3338 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3340         * rhythmdb/rhythmdb-private.h:
3341         * rhythmdb/rhythmdb-tree.h:
3342         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
3343         (rhythmdb_entry_insert), (rhythmdb_entry_set),
3344         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
3345         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
3346         (rhythmdb_entry_get_boolean):
3347         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
3348         bitmask, giving the db backend anything past the first 16 bits for 
3349         its own private use.
3351         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3352         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
3353         Add a 'loading' flag to indicate that an entry is being loaded from
3354         disk, and use that to ignore entry_set operations on such entries
3355         rather than the 'inserted' flag, which doesn't quite mean the same
3356         thing.  Fixes #342694.
3358 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3360         * shell/rb-shell.xml: Remove visibility property, since it causes
3361         crashes (dbus bug 7057) and doesn't do much else.
3363 2006-05-28  James Livingston  <doclivingston@gmail.com>
3365         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
3367         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3368         * po/POTFILES.in: fix some more i18n issues.
3370 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3372         * bindings/python/rb.defs:
3373         * shell/rb-shell-player.c: (rb_shell_player_playpause),
3374         (filter_mmkeys):
3375         * shell/rb-shell-player.h:
3376         Deprecate the useless 'ignore_stop' parameter to
3377         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
3378         API.  From bug #334829.
3380 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3382         * plugins/generic-player/rb-generic-player-source.c:
3383         (visit_playlist_dirs), (default_transform_playlist_uri):
3384         When playlist parsing fails, unref the playlist, not the parent
3385         source.  Fix memory leak in playlist uri transform.
3386         * plugins/generic-player/rb-nokia770-source.c:
3387         (impl_transform_playlist_uri):
3388         Fix memory leak in playlist uri transform.
3390 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
3392         * doc/reference/Makefile.am: fix grk-doc build
3394 2006-05-27  James Livingston  <doclivingston@gmail.com>
3396         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3398         * plugins/lyrics/lyrics.py:
3399         * po/POTFILES.in: Make strings in plugins translatable. From bug
3400         343081.
3402 2006-05-27  James Livingston  <doclivingston@gmail.com>
3404         * backends/Makefile.am:
3405         * backends/gstreamer/Makefile.am:
3406         * lib/Makefile.am:
3407         * plugins/audioscrobbler/Makefile.am:
3408         * plugins/generic-player/Makefile.am:
3409         * po/POTFILES.in:
3410         * rhythmdb/rhythmdb-monitor.c:
3411         * rhythmdb/rhythmdb.c:
3412         * sources/Makefile.am:
3413         * widgets/Makefile.am: fix compilation after some CVS surgery was
3414         done.
3416 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3418         * bindings/python/rhythmdb.defs:
3419         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
3420         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
3421         (rhythmdb_query_deserialize):
3422         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
3423         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
3424         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
3425         (rhythmdb_entry_register_type_alias),
3426         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
3427         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
3428         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
3429         (rhythmdb_entry_podcast_feed_get_type),
3430         (rhythmdb_entry_import_error_get_type),
3431         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
3432         * rhythmdb/rhythmdb.h:
3433         Allocate a specified amount of extra memory for each db entry, to be
3434         used to store fields specific to the entry type.  Optionally associate
3435         a name with each entry type, to be used when saving entries and
3436         auto playlists to disk.  Allow entry types to have multiple names
3437         to handle older playlist files that used '0' to represent 'song'.
3438         Use private data to store podcast fields.
3440         * rhythmdb/rhythmdb-private.h:
3441         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3442         (rhythmdb_tree_parser_end_element), (save_entry),
3443         (rhythmdb_tree_entry_set):
3444         Simplify property handling by using existing code to convert
3445         properties from strings to GValues and to set properties on entries.
3446         Other assorted changes due to the above.
3448         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
3449         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
3450         * sources/rb-generic-player-source.c:
3451         (rb_generic_player_source_new):
3452         * sources/rb-ipod-source.c: (rb_ipod_source_new):
3453         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
3454         * sources/rb-psp-source.c: (rb_psp_source_new):
3455         Update for changes to rhythmdb_entry_register_type.  None of these
3456         entry types need names or use private data.
3458         Fixes #337429.
3460 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3462         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3463         Fix creation of ignored-file db entries - need to check for
3464         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
3466 2006-05-25  James Livingston  <doclivingston@gmail.com>
3468         * AUTHORS:
3469         * MAINTAINERS: update my email address
3471 2006-05-25  James Livingston  <doclivingston@gmail.com>
3473         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
3474         "(... mix)" when searching for lyrics. Cache the lyrics under
3475         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
3477 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3479         * sources/rb-import-errors-source.c:
3480         (rb_import_errors_source_class_init):
3481         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
3482         * sources/rb-browser-source.c: (rb_browser_source_class_init):
3483         * sources/rb-source.c: (rb_source_class_init),
3484         (default_move_to_trash):
3485         Implement the basic move-to-trash operation once in rb-source.c, 
3486         rather than in each source type that supports it.
3488         * plugins/ipod/rb-ipod-plugin.c:
3489         * shell/rb-removable-media-manager.c:
3490         * shell/rb-shell.c: (rb_shell_constructor):
3491         Only scan removable media once after loading plugins.  Add a flag
3492         plugins can use to check if the initial scan has been done.
3494         * data/rhythmbox.schemas:
3495         Enable ipod and generic-player plugins by default.
3496         
3497         * configure.ac:
3498         * data/ui/Makefile.am:
3499         * data/ui/generic-player-ui.xml:
3500         * data/ui/rhythmbox-ui.xml:
3501         * plugins/Makefile.am:
3502         * plugins/generic-player/Makefile.am:
3503         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
3504         * plugins/generic-player/rb-generic-player-plugin.c:
3505         * sources/Makefile.am:
3506         * sources/rb-generic-player-source.c:
3507         * sources/rb-generic-player-source.h:
3508         * sources/rb-nokia770-source.c:
3509         * sources/rb-nokia770-source.h:
3510         * sources/rb-psp-source.c: (visit_playlist_dirs):
3511         * sources/rb-psp-source.h:
3512         Pluginise generic player (and nokia770 and PSP) support and add
3513         move-to-trash for players not mounted read-only.
3514         Fixes #342868.
3516 2006-05-24  William Jon McCann  <mccann@jhu.edu>
3518         * daapsharing/rb-daap-connection.c (handle_song_listing):
3519         Lower bound check for batch commit.  Fixes #342848
3521         * sources/rb-daap-source.c (rb_daap_source_get_status):
3522         Always set output variables if provided.
3524 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3526         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
3527         (rhythmdb_tree_entry_delete), (remove_one_song):
3528         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
3529         Fix two db entry reference counting problems.
3530         The initial reference on the entry is held by the db backend, but it
3531         was never being dropped.  The reference count was incremented when
3532         adding an entry to the deleted_entries map and to the
3533         deleted_entries_to_emit list, but only decremented for one of those.
3535 2006-05-24  William Jon McCann  <mccann@jhu.edu>
3537         * daapsharing/rb-daap-connection.c (http_response_handler) 
3538         (rb_daap_connection_dispose):
3539         Call soup_session_abort to make sure there are no outstanding
3540         requests when we dispose of the connection.  Ignore cancelled
3541         messages in the callback.
3543 2006-05-24  William Jon McCann  <mccann@jhu.edu>
3545         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
3546         (rb_daap_source_disconnect): Set a flag when disconnecting
3547         the source.  Check this flag in connection callback
3548         to see if we should release the connection.
3550 2006-05-24  William Jon McCann  <mccann@jhu.edu>
3552         * daapsharing/Makefile.am:
3553         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
3554         (rb_daap_connection_class_init), (connection_connected),
3555         (connection_disconnected), (connection_operation_done),
3556         (build_message), (connection_set_error_message),
3557         (actual_http_response_handler), (http_get),
3558         (entry_set_string_prop), (emit_progress_idle),
3559         (handle_server_info), (handle_login), (handle_update),
3560         (handle_database_info), (handle_song_listing), (handle_playlists),
3561         (handle_playlist_entries), (handle_logout),
3562         (rb_daap_connection_new), (rb_daap_connection_is_connected),
3563         (connection_response_data_free), (connected_cb),
3564         (rb_daap_connection_connect), (disconnected_cb),
3565         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
3566         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
3567         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
3568         (rb_daap_connection_get_property):
3569         * daapsharing/rb-daap-connection.h:
3570         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
3571         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
3572         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
3573         (rb_daap_hash_generate):
3574         * daapsharing/rb-daap-hash.h:
3575         * sources/rb-daap-source.c: (rb_daap_source_class_init),
3576         (rb_daap_get_icon), (remove_source), (stop_browsing),
3577         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
3578         (connection_connecting_cb), (connection_disconnected_cb),
3579         (release_connection), (rb_daap_source_connection_cb),
3580         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
3581         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
3583         Adds a better async API for connect and disconnect.  Doesn't share
3584         callback data for every async call.  Adds a connect signal.  Uses
3585         an operation-done signal to trigger the callbacks.  Displays an
3586         error when connections fail.  A few refcounting fixes to fix
3587         crashes.  Uses a weak pointer to set the connection to NULL so we
3588         don't clobber references.  Wait for each disconnect when shutting
3589         down sources.  Split out DAAP hash stuff into its own file.  Fix
3590         typo in header.
3592         Fixes #342643
3593         
3594 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3596         * sources/rb-auto-playlist-source.c:
3597         (rb_auto_playlist_source_new_from_xml):
3598         Initialize the gvalue used to hold the size limit correctly.
3599         Fixes #342744.
3601 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3603         * shell/rb-shell.c: (rb_shell_window_delete_cb),
3604         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
3605         * shell/rb-shell.h:
3606         * shell/rb-shell.xml:
3607         Convert rb_shell_quit into a dbus method, and add visibility dbus
3608         property.
3610 2006-05-22  James Livingston  <doclivingston@gmail.com>
3612         * rhythmdb/rhythmdb.h:
3613         * rhythmdb/rhythmdb.c: (sync_entry_changed),
3614         (rhythmdb_entry_is_editable), (action_thread_main),
3615         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
3616         vfuncs for can_sync_metadata, and sync_metadata. The default is always
3617         false, and syncing into the file.
3619         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
3620         (rhythmdb_entry_iradio_get_type),
3621         (rhythmdb_entry_import_error_get_type):
3622         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
3623         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
3624         change the DB.
3626 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3628         * rhythmdb/Makefile.am:
3629         * rhythmdb/rhythmdb-monitor.c:
3630         * rhythmdb/rhythmdb-private.h:
3631         * rhythmdb/rhythmdb-query.c:
3632         * rhythmdb/rhythmdb.c:
3633         Split up rhythmdb.c a bit.
3635 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3637         * data/glade/audioscrobbler-prefs.glade:
3638         Add a link to the last.fm server status page.
3640 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
3642         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
3643         Capitalization fix.
3644         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
3645         (impl_create_configure_dialog):  UI layout fixes, remove
3646         dialog separator, and capitalization fix for window title.
3647         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
3648         and remove dialog separator.
3649         * data/glade/plugins.glade:  UI layout fixes.
3650         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
3651         and capitalization fix.  Fixes #342438.
3653 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
3655         * data/glade/podcast-properties.glade:  Fix layout of the download 
3656         location.  Fixes #342431.
3658 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3660         * data/ui/rhythmbox-ui.xml:
3661         We only need one copy of the 'add to queue' action in the edit menu.
3663 2006-05-20  James Livingston  <doclivingston@gmail.com>
3665         * data/ui/rhythmbox-ui.xml:
3666         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
3667         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
3668         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
3669         (rb_shell_clipboard_sync),
3670         (rb_shell_clipboard_cmd_add_to_playlist_new),
3671         (rb_shell_clipboard_cmd_queue_song_info),
3672         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
3673         (rb_shell_clipboard_playlist_deleted_cb),
3674         (rb_shell_clipboard_playlist_renamed_cb),
3675         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
3676         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
3677         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
3678         dynamically generated with all the static playlists. Fixes bug 323364.
3680         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
3681         right child, so it doesn't go weird when art appears and disappears.
3683 2006-05-20  James Livingston  <doclivingston@gmail.com>
3685         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
3687         * rhythmdb/rhythmdb-query-model.c:
3688         (rhythmdb_query_model_set_property),
3689         (rhythmdb_query_model_finalize),
3690         (rhythmdb_query_model_reapply_query_cb):
3691         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
3692         (rhythmdb_query_append_prop_multiple),
3693         (rhythmdb_query_is_time_relative):
3694         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
3695         time-based criteria, fixes bug 341131.
3697 2006-05-20  James Livingston  <doclivingston@gmail.com>
3699         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
3700         we have already changed playing entries. Interpolate the art size so
3701         it doesn't jump when the old and new images have different aspect
3702         ratios.
3704 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3706         * rhythmdb/rhythmdb-private.h:
3707         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3708         (save_entry):
3709         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
3710         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
3711         (rhythmdb_entry_get_ulong):
3712         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
3713         and elsewhere, use them on the stack rather than allocating on 
3714         the heap.  From bug #342333.
3716 2006-05-19  William Jon McCann  <mccann@jhu.edu>
3718         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
3719         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
3720         (add_track), (eos_cb), (error_signal_idle),
3721         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
3722         (rb_recorder_construct), (recorder_track_free),
3723         (rb_recorder_finalize):
3724         * sources/rb-playlist-source-recorder.c:
3725         Support libnautilus-burn size -> capacity API change.  Add
3726         some braces to blocks.
3728 2006-05-19  William Jon McCann  <mccann@jhu.edu>
3730         * metadata/sj-metadata-musicbrainz.c:
3731         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
3732         Sync with sound-juicer in CVS.  Fixes #342177
3733         * sources/rb-audiocd-source.c: Don't declare variables
3734         in the middle of a block (c99ism).  Fix order of #includes.
3735         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
3736         one variable per line.  Update copyright date.
3738 2006-05-19  James Livingston  <doclivingston@gmail.com>
3740         patch by: Hendrik Richter  <hendi@gnome-de.org>
3742         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
3743         "translator_credits" to a hyphen, so it doesn't cause problems for
3744         tools that check access keys. Fixes bug 341832.
3746 2006-05-19  James Livingston  <doclivingston@gmail.com>
3748         * po/POTFILES.in: remove references to files that don't exist any more
3749         (fixes make distcheck).
3751 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
3753         * plugins/lyrics/lyrics.py:  Fix layout close button in 
3754         Song Lyrics dialog. Fixes bug 342322.
3756 2006-05-19  James Livingston  <doclivingston@gmail.com>
3758         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
3760         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
3761         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
3762         version checks not break when libnotify goes to 1.0.0. Fixes bug
3763         342244.
3765 2006-05-18  James Livingston  <doclivingston@gmail.com>
3767         * shell/rb-shell-clipboard.c:
3768         * shell/rb-shell.c:
3769         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
3771 2006-05-17  William Jon McCann  <mccann@jhu.edu>
3773         * sources/rb-playlist-source-recorder.c (get_song_description):
3774         Reverse artist and title in song description.  This
3775         is useful because at least the title will be visible
3776         when there is limited space.
3778 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3780         * daapsharing/rb-daap-connection.c: (connection_get_password):
3781         Take gdk lock before emitting authenticate signal.
3782         * sources/rb-daap-source.c: (connection_connecting_cb):
3783         Get rid of the unnecessary idle handler (it's already called from one)
3784         Fixes #342047 once more.
3786 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3788         * shell/rb-shell.c: (rb_shell_class_init):
3789         * shell/rb-shell.h:
3790         * widgets/rb-song-info.c: (rb_song_info_class_init),
3791         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
3792         (rb_song_info_constructor), (rb_song_info_get_property),
3793         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
3794         (rb_song_info_forward_clicked_cb):
3795         * widgets/rb-song-info.h:
3796         * data/glade/song-info-multiple.glade:
3797         * lib/rb-marshal.list:
3798         * bindings/python/Makefile.am:
3799         * bindings/python/rb.defs:
3800         * bindings/python/rb.override:
3801         Allow plugins to add pages to the notebooks used in song info windows,
3802         and to track the current song displayed in single-entry windows.
3803         
3804         * configure.ac:
3805         * plugins/Makefile.am:
3806         * plugins/lyrics/Loader.py:
3807         * plugins/lyrics/Makefile.am:
3808         * plugins/lyrics/lyrics.py:
3809         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
3810         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
3811         as a separate window (for the playing song) or as a page in the song
3812         info window.  A few TODO items left, but this fixes #319320.
3814 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3816         Patch by:  Roozbeh Pournader
3818         * configure.ac:
3819         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
3820         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
3822 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3823         
3824         * sources/rb-daap-source.c: (update_connection_status):
3825         Correct return value.  Fixes #342047 again.
3827 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3829         * sources/rb-daap-source.c: (update_connection_status),
3830         (connection_connecting_cb):
3831         Update status in an idle handler so we don't rely on the gdk lock
3832         being recursive (because it isn't any more).  Fixes #342047.
3834 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3836         * lib/rb-util.c: (rb_make_duration_string),
3837         (rb_make_elapsed_time_string):
3838         * lib/rb-util.h:
3839         Add a function for formatting an elapsed time string.
3841         * shell/rb-shell-player.c: (rb_shell_player_init),
3842         (rb_shell_player_sync_with_source),
3843         (rb_shell_player_get_playing_time_string), (tick_cb):
3844         Store elapsed time in the private data structure, and use the above
3845         function.
3846         
3847         * widgets/rb-header.c:
3848         * widgets/rb-header.h:
3849         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
3850         object, so everything has the same idea of the elapsed time.
3851         Fixes #339693.
3853 2006-05-16  James Livingston  <doclivingston@gmail.com>
3855         * bindings/python/rhythmdb.defs:
3856         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
3857         some parametre defaults, so you don't have to pass None, False for the
3858         sorting order.
3860 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3862         * bindings/python/rhythmdb.defs:
3863         * rhythmdb/rhythmdb-query-model.c:
3864         (rhythmdb_query_model_compute_status_normal):
3865         * rhythmdb/rhythmdb-query-model.h:
3866         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
3867         * rhythmdb/rhythmdb.h:
3868         Change the various compute_status methods to accept a singular/plural
3869         pair to use in the status string.
3870         
3871         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3872         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
3873         * sources/rb-source.c: (default_get_status):
3874         Call entries 'songs' by default, and 'episodes' in the podcast source.
3875         Fixes #340227.
3877 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3879         patch by:  Paul Drain
3881         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
3882         Fixes #341817.
3884 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3886         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
3887         Generate reorder maps correctly.
3888         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
3889         Scroll to the first entry from the old selection.
3890         Fixes #322992.
3892 2006-05-15  William Jon McCann  <mccann@jhu.edu>
3894         * data/ui/rhythmbox-ui.xml:
3895         * lib/rb-preferences.h:
3896         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
3897         (rb_shell_playlist_created_cb),
3898         (rb_shell_view_sidepane_changed_cb),
3899         (rb_shell_sync_sidepane_visibility),
3900         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
3901         (sidepane_visibility_changed_cb):
3902         * sources/rb-podcast-source.c:
3903         Convert sourcelist visibility to side-pane visbility.
3904         Fixes #339733
3906 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3908         * widgets/rb-header.c:
3909         * widgets/rb-header.h: Stop RBHeader from referring to itself as
3910         'player', and make it use the private data structure allocated for it.
3912 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3914         * configure.ac: enable metadata helper with dbus < 0.35.
3916 2006-05-15  James Livingston  <doclivingston@gmail.com>
3918         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3920         * data/glade/song-info.glade:
3921         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3922         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
3923         (rb_song_info_update_filesize): Add the file size into the song info
3924         window. Fixes bug 340861.
3926 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3928         * bindings/python/rhythmdb.defs:
3929         * rhythmdb/rhythmdb-query-model.c:
3930         (rhythmdb_query_model_set_property),
3931         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
3932         * rhythmdb/rhythmdb-query-model.h:
3933         Add a new method to chain query models without importing entries from
3934         the parent into the child.  This is useful when the subset of entries
3935         in the child can be more easily determined by running a query than by
3936         filtering entries from the parent.
3938         * bindings/python/rb.defs:
3939         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3940         (rb_library_browser_set_property),
3941         (rb_library_browser_get_property), (rb_library_browser_new),
3942         (rebuild_child_model):
3943         * widgets/rb-library-browser.h:
3944         * sources/rb-auto-playlist-source.c:
3945         (rb_auto_playlist_source_constructor):
3946         * sources/rb-static-playlist-source.c:
3947         (rb_static_playlist_source_constructor):
3948         * sources/rb-browser-source.c: (rb_browser_source_constructor):
3949         Use more efficient queries for constructing the browser query model
3950         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
3951         backend to optimise the query) and run new queries rather than
3952         filtering entries from the parent.  Fixes #341402.
3954         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
3956 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3958         * configure.ac:
3959         * shell/Makefile.am:
3960         * shell/main.c: (main), (load_uri_args), (send_present_message),
3961         (unregister_dbus_handler), (handle_dbus_message),
3962         (register_dbus_handler):
3963         Add minimal support for dbus 0.31 - 0.35.
3965         * doc/reference/Makefile.am:
3966         * doc/reference/rhythmbox.types:
3967         * data/Makefile.am:
3968         * data/GNOME_Rhythmbox.server.in:
3969         * data/rhythmbox.pc.in:
3970         * remote/*:
3971         * remote/bonobo/*:
3972         Remove remaining bonobo and generic remote interface files.
3974 2006-05-14  James Livingston  <doclivingston@gmail.com>
3976         * shell/rb-shell.c: (construct_widgets):
3977         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
3978         resize the browser and queue-sidebar section of their panes, unless
3979         the other section is below the minimum size. Fixes bug 331927.
3981 2006-05-13  James Livingston  <doclivingston@gmail.com>
3983         * rhythmdb/rhythmdb-query-model.c:
3984         (rhythmdb_query_model_class_init),
3985         (rhythmdb_query_model_set_property),
3986         (rhythmdb_query_model_get_property),
3987         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
3988         (rhythmdb_query_model_insert_into_main_list),
3989         (rhythmdb_query_model_insert_into_limited_list),
3990         (rhythmdb_query_model_do_reorder),
3991         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
3992         (rhythmdb_query_model_location_sort_func),
3993         (rhythmdb_query_model_title_sort_func),
3994         (rhythmdb_query_model_album_sort_func),
3995         (rhythmdb_query_model_artist_sort_func),
3996         (rhythmdb_query_model_genre_sort_func),
3997         (rhythmdb_query_model_track_sort_func),
3998         (rhythmdb_query_model_double_ceiling_sort_func),
3999         (rhythmdb_query_model_ulong_sort_func),
4000         (rhythmdb_query_model_date_sort_func),
4001         (rhythmdb_query_model_string_sort_func):
4002         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
4003         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
4004         "data destroy" property. Fixed bug 341543.
4006         * bindings/python/rhythmdb.defs:
4007         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
4008         rhythmdb_query_model_set_sorting_order
4010         * rhythmdb/rhythmdb-property-model.c:
4011         (rhythmdb_property_model_drag_data_get):
4012         * sources/rb-import-errors-source.c:
4013         (rb_import_errors_source_constructor):
4014         * sources/rb-missing-files-source.c:
4015         (rb_missing_files_source_constructor):
4016         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
4017         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
4018         * widgets/rb-entry-view.h: adapt to the above change.
4020 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4022         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4023         (rhythmdb_tree_load):
4024         Commit loaded entries in batches, rather than individually.  
4025         More startup time reduction.
4027 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
4029         * doc/reference/Makefile.am: fix gtk-doc compilation
4031 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4033         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4034         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4035         * plugins/artdisplay/artdisplay/Loader.py:
4036         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
4037         Only call the first artist the best match when album==Unknown.
4038         Don't perform each query twice if album doesn't include "Vol N".
4039         Fix searching for compilations.  Fix blacklisting.
4040         Part of bug #307848
4042 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4044         * Makefile.am:
4045         * bindings/python/Makefile.am:
4046         * bindings/python/rb.defs:
4047         * bindings/python/rb.override:
4048         * configure.ac:
4049         * doc/reference/Makefile.am:
4050         * plugins/Makefile.am:
4051         * plugins/audioscrobbler/Makefile.am:
4052         * plugins/ipod/Makefile.am:
4053         * plugins/lirc/Makefile.am:
4054         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
4055         (impl_activate), (impl_deactivate):
4056         * plugins/sample/Makefile.am:
4057         * remote/Makefile.am:
4058         * shell/Makefile.am:
4059         * shell/main.c: (main), (main_shell_weak_ref_cb):
4060         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
4061         (rb_shell_get_property), (rb_shell_window_state_cb),
4062         (idle_hide_mainwindow), (rb_shell_set_visibility),
4063         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
4064         (rb_shell_set_song_property):
4065         * shell/rb-shell.h:
4066         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
4067         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
4068         (rb_tray_icon_get_property), (rb_tray_icon_new),
4069         (rb_tray_icon_button_press_event_cb),
4070         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
4071         (rb_tray_icon_show_window_changed_cb):
4072         * shell/rb-tray-icon.h:
4074         Remove bonobo, require DBUS.
4075         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
4076         Fixes #339720
4078 2006-05-13  James Livingston  <doclivingston@gmail.com>
4080         * bindings/python/rb.override: fix some pointer-type warnings
4082 2006-05-12  James Livingston  <doclivingston@gmail.com>
4084         * lib/rb-util.c: (rb_value_free):
4085         * lib/rb-util.h: Add function to unset and free a GValue* that was
4086         allocated in the heap.
4088         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
4089         the metadata hastable values
4090         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
4091         leak the metadata hashtable structure
4092         * metadata/rb-metadata-dbus.c:
4093         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
4094         using g_strdup and then _take_string
4096         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
4097         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
4098         stat something.
4100         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
4101         leak the encoded string
4103         * widgets/rb-property-view.c:
4104         (rb_property_view_selection_changed_cb): set some variables to have
4105         inital values, because some code paths may not set them before we use
4106         them.
4108         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
4109         don't have python warning into a debug message".
4111 2006-05-10  William Jon McCann  <mccann@jhu.edu>
4113         * data/rhythmbox.schemas: Use zero instead of null for
4114         default burn speed.  Fixes #341283.
4116 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4118         * bindings/python/rb.defs:
4119         * widgets/rb-library-browser.c:
4120         (rb_library_browser_get_property_view):
4121         * widgets/rb-library-browser.h:
4122         Add a method to get the property view for a given property.
4124         * sources/rb-browser-source.c:
4125         (rb_browser_source_cmd_choose_genre),
4126         (rb_browser_source_cmd_choose_artist),
4127         (rb_browser_source_cmd_choose_album):
4128         Change the browser selection by changing the property view selection. 
4129         Makes the selection change visible, fixing #331740.
4131 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4133         * bindings/python/rb.defs:
4134         * bindings/python/rb.override:
4135         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
4136         * shell/rb-statusbar.c: (*),
4137         * sources/rb-import-errors-source.c: (impl_get_status):
4138         * sources/rb-iradio-source.c: (impl_get_status):
4139         * sources/rb-missing-files-source.c: (impl_get_status):
4140         * sources/rb-source.c: (default_get_status),
4141         (rb_source_get_status):
4142         * sources/rb-source.h:
4143         Allow sources to provide a progress value for the status bar.
4144         Simplify status bar processing (much less polling).
4145         Consider rhythmdb busy while it's still loading the database.
4147         * daapsharing/rb-daap-connection.c: (*)
4148         * daapsharing/rb-daap-connection.h:
4149         * lib/rb-marshal.list:
4150         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4151         (rb_daap_source_init), (connection_connecting_cb),
4152         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
4153         (rb_daap_source_get_status):
4154         Provide status information for DAAP connections, and move processing
4155         of large responses into a separate thread.
4156         Fixes bugs #322020 and #338978.
4158 2006-05-09  James Livingston  <doclivingston@gmail.com>
4160         Split the artdisplay plugin into several files.
4161         Fix loader and amazon-search re-use issues.
4162         Add some better search heuristics.
4164         * configure.ac:
4165         * plugins/artdisplay/Makefile.am:
4166         * plugins/artdisplay/artdisplay.py:
4167         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4168         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4169         * plugins/artdisplay/artdisplay/Loader.py:
4170         * plugins/artdisplay/artdisplay/Makefile.am:
4171         * plugins/artdisplay/artdisplay/__init__.py:
4173 2006-05-09  James Livingston  <doclivingston@gmail.com>
4175         * sources/rb-browser-source.h: remove the _has_first_added_column
4176         stuff since it isn't actually used anywhere. Sources that want it
4177         should just add it themselves, as the library already does
4179         * bindings/python/rb.defs:
4180         * sources/rb-daap-source.c: (rb_daap_source_class_init):
4181         * sources/rb-library-source.c: (rb_library_source_class_init):
4182         * sources/rb-removable-media-source.c:
4183         (rb_removable_media_source_class_init): Remove the remanants of the
4184         above.
4186 2006-05-09  James Livingston  <doclivingston@gmail.com>
4188         * bindings/python/rb.defs:
4189         * sources/rb-browser-source.h: remove a function that was declared in
4190         the header, but not defined anywhere.
4192 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4194         * plugins/artdisplay/.cvsignore:
4195         * plugins/ipod/.cvsignore: Added.
4197 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4199         * sources/rb-auto-playlist-source.c:
4200         (rb_auto_playlist_source_new_from_xml):
4201         Fix reading of older playlist files where all three limits were
4202         specified so we take the first nonzero limit.  From #341053.
4204 2006-05-09  James Livingston  <doclivingston@gmail.com>
4206         * bindings/python/Makefile.am:
4207         * bindings/python/rb.defs:
4208         * bindings/python/rb.override: bind RBBrowserSource,
4209         RBRemovableMediaSource and RBRemovableMediamanager.
4211 2006-05-09  James Livingston  <doclivingston@gmail.com>
4213         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
4215         * data/glade/plugins.glade: make the plugin dialog look a bit better.
4216         Fixes bug 339221.
4218 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4220         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
4221         Don't explode when trying to edit a query with no limit set.
4223 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4225         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
4226         Clear the should_queue flag when switching to a non-submittable entry,
4227         so we don't submit songs that played for three seconds before
4228         switching to a podcast episode.
4230         * rhythmdb/rhythmdb-query-model.c
4231         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
4232         in the drag data list.
4234 2006-05-08  James Livingston  <doclivingston@gmail.com>
4236         * lib/rb-util.c: (rb_value_array_append_data):
4237         * lib/rb-util.h: add function which is basically a combination of
4238         G_VALUE_COLLECT and g_value_array_append.
4240         * rhythmdb/rhythmdb-query-model.h:
4241         * rhythmdb/rhythmdb-query-model.c:
4242         (rhythmdb_query_model_class_init),
4243         (rhythmdb_query_model_set_property),
4244         (rhythmdb_query_model_get_property),
4245         (rhythmdb_query_model_finalize),
4246         (rhythmdb_query_model_update_limited_entries),
4247         (rhythmdb_query_model_set_sort_order),
4248         (rhythmdb_query_model_within_limit),
4249         (rhythmdb_query_model_limit_type_get_type): Make query model limits
4250         saner. Rather than having <count=N, time=N, size=N> we now have a
4251         <type, value> pair. This will also make it much easier to add new
4252         limit types in the future.
4254         * shell/rb-playlist-manager.c:
4255         (rb_playlist_manager_set_automatic_playlist),
4256         (rb_playlist_manager_cmd_edit_automatic_playlist):
4257         * sources/rb-auto-playlist-source.c:
4258         (rb_auto_playlist_source_finalize),
4259         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
4260         (_save_write_ulong), (_save_write_uint64),
4261         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
4262         (rb_auto_playlist_source_set_query),
4263         (rb_auto_playlist_source_get_query):
4264         * sources/rb-auto-playlist-source.h:
4265         * sources/rb-library-source.c:
4266         (rb_library_source_add_child_source):
4267         * sources/rb-psp-source.c: (visit_playlist_dirs):
4268         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
4269         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
4270         * widgets/rb-query-creator.h: Adapt to the above change.
4272 2006-05-08  James Livingston  <doclivingston@gmail.com>
4274         * shell/rb-playlist-manager.c:
4275         (rb_playlist_manager_cmd_edit_automatic_playlist):
4276         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
4277         (rb_auto_playlist_source_set_query),
4278         (rb_auto_playlist_source_get_query): copy the query in the _get method
4279         and free it in things calling that. Fixes a crasher.
4281 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4283         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
4284         Make entries on newly mounted volumes visible immediately, hiding them
4285         later if they turn out to be missing.  Fixes #340068.
4287 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4289         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
4290         Ignore zip files and ignore errors for files we've decided to ignore.
4292 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4294         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
4295         Add missing }, should fix #340844.
4297 2006-05-06  James Livingston  <doclivingston@gmail.com>
4299         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
4300         typo.
4302 2006-05-06  James Livingston  <doclivingston@gmail.com>
4304         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
4305         that we work with libnotify >= 0.4
4307 2006-05-06  James Livingston  <doclivingston@gmail.com>
4309         patch by: Joe Barnett  <thejoe@gmail.com>
4311         * configure.ac: check if we're using a version of libgpod that
4312         supports the Motorola ROKR
4314         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
4315         for the db path, if we using the newer version.
4317         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
4319 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4321         * rhythmdb/rhythmdb-query-model.c:
4322         (rhythmdb_query_model_drag_data_get):
4323         Use playback URI, not location, for drag data.  Fixes #322597.
4325 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
4327         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
4329 2006-05-03  James Livingston  <doclivingston@gmail.com>
4331         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
4332         (rb_add_id3_tagger), (rb_metadata_save):
4333         Set the tags on the tagging element when it is
4334         created, not during pipeline creation - which is required for
4335         dynamically created elements.
4337         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
4338         support for using the "vorbistag" element to re-tag ogg vorbis files.
4339         Fixes bug 339878.
4341 2006-05-03  James Livingston  <doclivingston@gmail.com>
4343         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
4345         * plugins/artdisplay/artdisplay.py:
4346         - Fix small bug callback of data loader getting overwritten on fast
4347         connections.
4348         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
4349         Jonathan Matthew)
4350         - Fix Rhythmbox UI blocking while loading/searching cover art
4351         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
4352         - Initial approach to allow additional "art search engines"
4353         - Further modularization in a couple of places
4354         - Minor fixes for empty entries (iradio, album, artist etc.)
4356 2006-05-03  James Livingston  <doclivingston@gmail.com>
4358         * shell/rb-playlist-manager.c:
4359         (rb_playlist_manager_playlist_entries_changed),
4360         (rb_playlist_manager_set_source): don't show the edit/delete/rename
4361         options for non-local sources, rather than showing disabled ones.
4363         * sources/rb-library-source.c: (add_child_sources_idle),
4364         (rb_library_source_constructor), (rb_library_source_new),
4365         (rb_library_source_library_location_changed),
4366         (rb_library_source_add_child_source),
4367         (rb_library_source_sync_child_sources): Create "child library" sources
4368         when the user has multiple library locations set. Fixes bug 100552.
4370 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4372         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
4373         * plugins/sample/sample.rb-plugin.desktop.in:
4374         Finish changing 'Author' to 'Authors'
4375         
4376         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
4377         (rhythmdb_entry_import_error_get_type):
4378         Implement get_playback_uri for import errors (returns NULL)
4380         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
4381         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
4382         entry, rather than doing entry type checks.
4384 2006-05-02  James Livingston  <doclivingston@gmail.com>
4386         patch from Alessandro Decina  <alessandro@nnva.org>
4388         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
4389         the signal emission in the case of fatal-on-init errors. From bug
4390         322268.
4392 2006-05-02  James Livingston  <doclivingston@gmail.com>
4394         * rhythmdb/rhythmdb.h:
4395         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
4396         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
4397         (rhythmdb_entry_podcast_post_get_type),
4398         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
4399         virtual function to entry-types for getting the playback URI. From bug
4400         330226.
4402         * backends/gstreamer/rb-encoder-gst.c:
4403         (create_pipeline_and_source), (extract_track):
4404         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
4405         to get the URI.
4407 2006-05-02  James Livingston  <doclivingston@gmail.com>
4409         patch by: Brian Cameron  <brian.cameron@sun.com>
4411         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
4412         340337.
4414 2006-05-01  William Jon McCann  <mccann@jhu.edu>
4416         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
4417         instead of clear.  Use regex matching to strip "disc N"
4418         from album.  Match titles in ProductName.  Perform
4419         fallback queries including various artist compilations.
4420         Include "us" locale.  Improve queries when artist or album
4421         is unknown.  Use medium size image if large is unavailable.
4423         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
4424         William Jon McCann  <mccann@jhu.edu>
4425         
4426 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4428         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
4429         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
4430         (conjunctive_query): Sanity check.
4431         (evaluate_conjunctive_subquery): 
4432         Don't return TRUE immediately when a relative-time query criterion
4433         matches.  Fixes #339972.
4435 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4437         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
4438         Don't crash if primary or secondary are NULL.
4440 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4442         * doc/reference/Makefile.am: fix gtk-doc build yet again
4444 2006-04-28  James Livingston  <doclivingston@gmail.com>
4446         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
4447         python console. Fixes bug 339934.
4449 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4451         * rhythmdb/rhythmdb-property-model.c:
4452         (rhythmdb_property_model_drag_data_get):
4453         When creating uri list drag data, create a new query model based on
4454         the query model the property model is attached to.  Makes the
4455         resulting query use the right entry type and include the upstream
4456         query criteria.  Fixes half of #327540.
4458 2006-04-27  James Livingston  <doclivingston@gmail.com>
4460         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
4461         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
4462         build fixes.
4464 2006-04-27  James Livingston  <doclivingston@gmail.com>
4466         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
4468 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4470         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
4471         (rb_playlist_manager_save_data),
4472         (rb_playlist_manager_save_playlists):
4473         * shell/rb-playlist-manager.h:
4474         * shell/rb-shell.c: (rb_shell_sync_state),
4475         (idle_save_playlist_manager):
4476         Remove a bit more threading insanity from the playlist manager.
4478 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4480         * shell/rb-playlist-manager.c: 
4481         * shell/rb-playlist-manager.h:
4482         Remove dead code, add gtk-doc, remove threading insanity (mostly).
4483         
4484         * shell/rb-shell.c: (rb_shell_sync_state),
4485         (idle_save_playlist_manager), (construct_sources),
4486         (rb_shell_select_source), (rb_shell_sync_party_mode):
4487         Adjustments for above changes.
4489 2006-04-26  William Jon McCann  <mccann@jhu.edu>
4491         * sources/rb-browser-source.c (impl_browser_toggled):
4492         Reset browser when hidden.  Fixes #339617.
4494 2006-04-26  James Livingston  <doclivingston@gmail.com>
4496         * backends/Makefile.am:
4497         * backends/gstreamer/Makefile.am: work again with separated
4498         built-roots
4500 2006-04-26  James Livingston  <doclivingston@gmail.com>
4502         * shell/rb-removable-media-manager.c:
4503         (rb_removable_media_manager_set_uimanager): fix compilation with
4504         -Werror and --enable-track-transfer.
4506 2006-04-26  James Livingston  <doclivingston@gmail.com>
4508         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
4509         implementing class. In theory allows alternate player implementations
4510         to be selected at run-time rather than compile-time. Fixes bug 338667.
4512         * Makefile.am:
4513         * backends/Makefile.am:
4514         * backends/gstreamer/Makefile.am:
4515         * backends/gstreamer/rb-player-gst.h:
4516         * backends/rb-player.c: (rb_player_interface_init),
4517         (rb_player_get_type), (rb_player_open), (rb_player_opened),
4518         (rb_player_close), (rb_player_play), (rb_player_pause),
4519         (rb_player_playing), (rb_player_set_volume),
4520         (rb_player_get_volume), (rb_player_set_replaygain),
4521         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
4522         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
4523         (_rb_player_emit_buffering), (_rb_player_emit_error),
4524         (_rb_player_emit_tick), (rb_player_error_quark):
4525         * player/Makefile.am:
4526         * player/rb-player-gst.c: (rb_player_gst_class_init),
4527         (rb_player_init), (tick_timeout), (rb_player_gst_init),
4528         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
4529         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
4530         (process_tag), (found_tag_cb), (buffering_cb),
4531         (rb_player_gst_bus_cb), (rb_player_gst_construct),
4532         (rb_player_gst_new):
4533         * player/rb-player.h:
4534         * shell/Makefile.am:
4535         * sources/rb-audiocd-source.c:
4536         * widgets/Makefile.am:
4537         * widgets/rb-header.c: (rb_header_class_init):
4539 2006-04-26  James Livingston  <doclivingston@gmail.com>
4541         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
4542         don't try to download an episode if it couldn't be parsed. Fixes bug
4543         339712.
4545         * shell/rb-removable-media-manager.c:
4546         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
4547         Library" option when track transfer is disabled. Fixes bug 339728.
4549 2006-04-26  James Livingston  <doclivingston@gmail.com>
4551         * data/ui/Makefile.am:
4552         * data/ui/daap-ui.xml:
4553         * data/ui/rhythmbox-ui.xml:
4554         * sources/rb-daap-source.c: (rb_daap_sources_init),
4555         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
4556         way that the ipod ui is. Fixes bug 339743.
4558 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4560         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
4561         (process_added_entries_cb), (process_deleted_entries_cb),
4562         (rhythmdb_commit_internal): 
4563         Combine the idle functions to emit entry-added and entry-deleted,
4564         and combine as many invocations of same as possible.  Another
4565         significant reduction in startup time.
4566         
4567         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
4568         Delay the next call to rhythmdb_process_events if the queue is
4569         empty or if we can't process any of the events in the queue because
4570         the database is read only.
4572         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
4574 2006-04-25  William Jon McCann  <mccann@jhu.edu>
4576         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
4578         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
4579         Don't special case errors quite so much.
4581 2006-04-25  William Jon McCann  <mccann@jhu.edu>
4583         * data/rhythmbox.schemas: Remove default speed.
4585         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
4586         Add n-c-b 2.15 support.  Make the default speed to slowest since
4587         that is all that works reliably.
4589 2006-04-25  William Jon McCann  <mccann@jhu.edu>
4591         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
4592         Fix compiler error from last commit.
4594 2006-04-25  James Livingston  <doclivingston@gmail.com>
4596         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
4597         transcoding-related issues. From bug 322268.
4599         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
4600         don't emit the signal, since the object is being finalised, which os a
4601         Bad Thing To Do.
4603         (profile_bin_find_encoder), (get_profile_from_mime_type),
4604         (transcode_track): find the encoding element by iterating looking for
4605         element in the class Codec/Encoder/Audio rather than the one named
4606         "enc".
4608 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4610         * shell/rb-shell-player.xml:
4611         * shell/rb-shell.xml:
4612         Add signal argument information.  
4613         Patch by Tim Moloney  <t.moloney@verizon.net>
4615         * shell/rb-shell.c: (rb_shell_window_state_cb):
4616         Use the right value for the visibility_changed signal.  Most of the
4617         time, anyway.
4619 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4621         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4622         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4623         (impl_create_configure_dialog):
4624         * data/glade/audioscrobbler-prefs.glade:
4625         * shell/rb-audioscrobbler.c (*):
4626         * lib/rb-preferences.h:
4627         * data/rhythmbox.schemas:
4628         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
4629         Add status information (# tracks submitted, # queued, last submit
4630         time, result of last submission) to the plugin config window.
4631         Remove 'enabled' setting, since it's easier to just disable the
4632         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
4633         nonexistant (so far) 'last.fm streaming' plugin.
4634         
4635         * help/C/rhythmbox.xml: Update documentation for last.fm profile
4636         plugin
4638         Fixes some of #325848.  We still don't provide a way to view the
4639         submission queue.
4641 2006-04-25  James Livingston  <doclivingston@gmail.com>
4643         patch by: Anders Petersson  <demitar@worldforge.org>
4645         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
4646         the YY-MM-DD format.
4648 2006-04-23  James Livingston  <doclivingston@gmail.com>
4650         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
4651         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
4652         * bindings/python/override_common.h:
4653         * bindings/python/rb.override: python binding fixes
4655 2006-04-23  James Livingston  <doclivingston@gmail.com>
4657         * shell/rb-statusbar.c: (rb_statusbar_finalize),
4658         (rb_statusbar_sync_with_source),
4659         (rb_statusbar_source_status_changed_cb): do the sync in an idle
4660         callback, rather than immediately every time. Takes ~5% off my warm-cache
4661         startup time.
4663         * bindings/python/rhythmdb.defs: fix the types using for
4664         RhythmDBEntryTypes.
4666 2006-04-22  James Livingston  <doclivingston@gmail.com>
4668         * data/ui/rhythmbox-ui.xml:
4669         * shell/rb-shell.c:
4670         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4671         (remove_source), (rb_daap_sources_init),
4672         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
4673         (rb_daap_source_disconnect):
4674         * sources/rb-source.c: (rb_source_class_init),
4675         (rb_source_deactivate):
4676         * sources/rb-source.h: move the "disconnect" functionality from into
4677         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
4679 2006-04-22  James Livingston  <doclivingston@gmail.com>
4681         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
4682         actually get the translated strings for browser headers (they were
4683         already marked as translatable). Fixes bug 339380.
4685 2006-04-22  James Livingston  <doclivingston@gmail.com>
4687         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
4688         submission timeout when the object is finalised.
4690         * bindings/python/Makefile.am:
4691         * bindings/python/rb.defs:
4692         * bindings/python/rb.override:
4693         * bindings/python/rhythmdb.defs: fix some python binding stuff.
4695         * widgets/rb-library-browser.c:
4696         (rb_library_browser_construct_query), (rebuild_output_model),
4697         (rebuild_child_model):
4698         * widgets/rb-library-browser.h: change from GPtrArray to
4699         RhythmDBQuery (which in C is the same thing).
4701 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4703         * shell/rb-shell.c: (rb_shell_get_song_properties):
4704         Don't try to include entry-type (or anything else not easily
4705         marshallable) in the song properties hash table.
4707         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
4709         * sources/rb-playlist-source.c: (rb_playlist_source_init),
4710         (rb_playlist_source_constructor): Fix entry-type initialization as
4711         with previous commit.
4713 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4715         * sources/rb-iradio-source.c: (rb_iradio_source_init),
4716         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
4717         * sources/rb-podcast-source.c: (rb_podcast_source_init),
4718         (rb_podcast_source_constructor):
4719         Set default values for entry-type after base class construction,
4720         rather than in _init, because gobject will set the entry-type property
4721         to NULL after _init if no value is provided.  Fixes #339206.
4723 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
4725         patch by: Gunnar Steinn Magnusson
4727         * COPYING:
4728         * backends/gstreamer/rb-encoder-gst.c:
4729         * backends/gstreamer/rb-encoder-gst.h:
4730         * backends/rb-encoder.c:
4731         * backends/rb-encoder.h:
4732         * bindings/python/override_common.c:
4733         * bindings/python/override_common.h:
4734         * daapsharing/rb-daap-connection.c:
4735         * daapsharing/rb-daap-connection.h:
4736         * daapsharing/rb-daap-dialog.c:
4737         * daapsharing/rb-daap-dialog.h:
4738         * daapsharing/rb-daap-mdns-browser-avahi.c:
4739         * daapsharing/rb-daap-mdns-browser-howl.c:
4740         * daapsharing/rb-daap-mdns-browser.h:
4741         * daapsharing/rb-daap-mdns-publisher-avahi.c:
4742         * daapsharing/rb-daap-mdns-publisher-howl.c:
4743         * daapsharing/rb-daap-mdns-publisher.h:
4744         * daapsharing/rb-daap-share.c:
4745         * daapsharing/rb-daap-share.h:
4746         * daapsharing/rb-daap-sharing.c:
4747         * daapsharing/rb-daap-sharing.h:
4748         * daapsharing/rb-daap-src.c:
4749         * daapsharing/rb-daap-src.h:
4750         * daapsharing/rb-daap-structure.c:
4751         * daapsharing/rb-daap-structure.h:
4752         * help/C/fdl-appendix.xml:
4753         * help/es/es.po:
4754         * help/ja/fdl-appendix.xml:
4755         * iradio/rb-new-station-dialog.c:
4756         * iradio/rb-new-station-dialog.h:
4757         * iradio/rb-station-properties-dialog.c:
4758         * iradio/rb-station-properties-dialog.h:
4759         * lib/mkdtemp.c:
4760         * lib/mkdtemp.h:
4761         * lib/rb-cut-and-paste-code.c:
4762         * lib/rb-cut-and-paste-code.h:
4763         * lib/rb-debug.c:
4764         * lib/rb-debug.h:
4765         * lib/rb-file-helpers.c:
4766         * lib/rb-file-helpers.h:
4767         * lib/rb-glade-helpers.c:
4768         * lib/rb-glade-helpers.h:
4769         * lib/rb-preferences.h:
4770         * lib/rb-proxy-config.c:
4771         * lib/rb-stock-icons.c:
4772         * lib/rb-stock-icons.h:
4773         * lib/rb-thread.c:
4774         * lib/rb-thread.h:
4775         * lib/rb-tree-dnd.c:
4776         * lib/rb-tree-dnd.h:
4777         * lib/rb-util.c:
4778         * lib/rb-util.h:
4779         * metadata/rb-metadata-common.c:
4780         * metadata/rb-metadata-dbus-client.c:
4781         * metadata/rb-metadata-dbus-service.c:
4782         * metadata/rb-metadata-dbus.c:
4783         * metadata/rb-metadata-dbus.h:
4784         * metadata/rb-metadata-gst.c:
4785         * metadata/rb-metadata.h:
4786         * metadata/sj-error.c:
4787         * metadata/sj-error.h:
4788         * metadata/sj-metadata-musicbrainz.c:
4789         * metadata/sj-metadata-musicbrainz.h:
4790         * metadata/sj-metadata.c:
4791         * metadata/sj-metadata.h:
4792         * metadata/sj-structures.c:
4793         * metadata/sj-structures.h:
4794         * metadata/test-metadata.c:
4795         * player/rb-player-gst.c:
4796         * player/rb-player.h:
4797         * player/rb-recorder-gst.c:
4798         * player/rb-recorder.h:
4799         * plugins/artdisplay/artdisplay.py:
4800         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4801         * plugins/ipod/rb-ipod-plugin.c:
4802         * plugins/lirc/rb-lirc-plugin.c:
4803         * plugins/pythonconsole/pythonconsole.py:
4804         * plugins/rb-module.c:
4805         * plugins/rb-module.h:
4806         * plugins/rb-plugin-manager.c:
4807         * plugins/rb-plugin-manager.h:
4808         * plugins/rb-plugin.c:
4809         * plugins/rb-plugin.h:
4810         * plugins/rb-plugins-engine.c:
4811         * plugins/rb-plugins-engine.h:
4812         * plugins/rb-python-module.c:
4813         * plugins/rb-python-module.h:
4814         * plugins/rb-python-plugin.c:
4815         * plugins/rb-python-plugin.h:
4816         * plugins/sample/rb-sample-plugin.c:
4817         * po/de.po:
4818         * po/el.po:
4819         * po/en_CA.po:
4820         * po/eu.po:
4821         * po/fi.po:
4822         * po/fr.po:
4823         * po/it.po:
4824         * po/ja.po:
4825         * po/mk.po:
4826         * po/pt_BR.po:
4827         * po/ru.po:
4828         * podcast/rb-feed-podcast-properties-dialog.c:
4829         * podcast/rb-feed-podcast-properties-dialog.h:
4830         * podcast/rb-new-podcast-dialog.c:
4831         * podcast/rb-new-podcast-dialog.h:
4832         * podcast/rb-podcast-manager.c:
4833         * podcast/rb-podcast-manager.h:
4834         * podcast/rb-podcast-parse.c:
4835         * podcast/rb-podcast-parse.h:
4836         * podcast/rb-podcast-properties-dialog.c:
4837         * podcast/rb-podcast-properties-dialog.h:
4838         * remote/bonobo/libmain.c:
4839         * remote/bonobo/rb-nautilus-context-menu.c:
4840         * remote/bonobo/rb-nautilus-context-menu.h:
4841         * remote/bonobo/rb-remote-bonobo.c:
4842         * remote/bonobo/rb-remote-bonobo.h:
4843         * remote/rb-remote-client-proxy.c:
4844         * remote/rb-remote-client-proxy.h:
4845         * remote/rb-remote-common.c:
4846         * remote/rb-remote-common.h:
4847         * remote/rb-remote-proxy.c:
4848         * remote/rb-remote-proxy.h:
4849         * rhythmdb/gsequence.c:
4850         * rhythmdb/gsequence.h:
4851         * rhythmdb/rb-refstring.c:
4852         * rhythmdb/rb-refstring.h:
4853         * rhythmdb/rhythmdb-gda.c:
4854         * rhythmdb/rhythmdb-gda.h:
4855         * rhythmdb/rhythmdb-private.h:
4856         * rhythmdb/rhythmdb-property-model.c:
4857         * rhythmdb/rhythmdb-property-model.h:
4858         * rhythmdb/rhythmdb-query-model.c:
4859         * rhythmdb/rhythmdb-query-model.h:
4860         * rhythmdb/rhythmdb-query-results.c:
4861         * rhythmdb/rhythmdb-query-results.h:
4862         * rhythmdb/rhythmdb-tree.c:
4863         * rhythmdb/rhythmdb-tree.h:
4864         * rhythmdb/rhythmdb.c:
4865         * rhythmdb/rhythmdb.h:
4866         * shell/main.c:
4867         * shell/rb-audioscrobbler.c:
4868         * shell/rb-audioscrobbler.h:
4869         * shell/rb-history.c:
4870         * shell/rb-history.h:
4871         * shell/rb-play-order-linear-loop.c:
4872         * shell/rb-play-order-linear-loop.h:
4873         * shell/rb-play-order-linear.c:
4874         * shell/rb-play-order-linear.h:
4875         * shell/rb-play-order-queue.c:
4876         * shell/rb-play-order-queue.h:
4877         * shell/rb-play-order-random-by-age-and-rating.c:
4878         * shell/rb-play-order-random-by-age-and-rating.h:
4879         * shell/rb-play-order-random-by-age.c:
4880         * shell/rb-play-order-random-by-age.h:
4881         * shell/rb-play-order-random-by-rating.c:
4882         * shell/rb-play-order-random-by-rating.h:
4883         * shell/rb-play-order-random-equal-weights.c:
4884         * shell/rb-play-order-random-equal-weights.h:
4885         * shell/rb-play-order-random.c:
4886         * shell/rb-play-order-random.h:
4887         * shell/rb-play-order-shuffle.c:
4888         * shell/rb-play-order-shuffle.h:
4889         * shell/rb-play-order.c:
4890         * shell/rb-play-order.h:
4891         * shell/rb-playlist-manager.c:
4892         * shell/rb-playlist-manager.h:
4893         * shell/rb-removable-media-manager.c:
4894         * shell/rb-removable-media-manager.h:
4895         * shell/rb-shell-clipboard.c:
4896         * shell/rb-shell-clipboard.h:
4897         * shell/rb-shell-player.c:
4898         * shell/rb-shell-player.h:
4899         * shell/rb-shell-preferences.c:
4900         * shell/rb-shell-preferences.h:
4901         * shell/rb-shell.c:
4902         * shell/rb-shell.h:
4903         * shell/rb-source-header.c:
4904         * shell/rb-source-header.h:
4905         * shell/rb-statusbar.c:
4906         * shell/rb-statusbar.h:
4907         * shell/rb-tray-icon.c:
4908         * shell/rb-tray-icon.h:
4909         * sources/rb-audiocd-source.c:
4910         * sources/rb-audiocd-source.h:
4911         * sources/rb-auto-playlist-source.c:
4912         * sources/rb-auto-playlist-source.h:
4913         * sources/rb-browser-source.c:
4914         * sources/rb-browser-source.h:
4915         * sources/rb-daap-source.c:
4916         * sources/rb-daap-source.h:
4917         * sources/rb-generic-player-source.c:
4918         * sources/rb-generic-player-source.h:
4919         * sources/rb-import-errors-source.c:
4920         * sources/rb-import-errors-source.h:
4921         * sources/rb-ipod-source.c:
4922         * sources/rb-ipod-source.h:
4923         * sources/rb-iradio-source.c:
4924         * sources/rb-iradio-source.h:
4925         * sources/rb-library-source.c:
4926         * sources/rb-library-source.h:
4927         * sources/rb-missing-files-source.c:
4928         * sources/rb-missing-files-source.h:
4929         * sources/rb-nokia770-source.c:
4930         * sources/rb-nokia770-source.h:
4931         * sources/rb-play-queue-source.c:
4932         * sources/rb-play-queue-source.h:
4933         * sources/rb-playlist-source-recorder.c:
4934         * sources/rb-playlist-source-recorder.h:
4935         * sources/rb-playlist-source.c:
4936         * sources/rb-playlist-source.h:
4937         * sources/rb-playlist-xml.h:
4938         * sources/rb-podcast-source.c:
4939         * sources/rb-podcast-source.h:
4940         * sources/rb-psp-source.c:
4941         * sources/rb-psp-source.h:
4942         * sources/rb-removable-media-source.c:
4943         * sources/rb-removable-media-source.h:
4944         * sources/rb-source.c:
4945         * sources/rb-source.h:
4946         * sources/rb-sourcelist-model.c:
4947         * sources/rb-sourcelist-model.h:
4948         * sources/rb-sourcelist.c:
4949         * sources/rb-sourcelist.h:
4950         * sources/rb-static-playlist-source.c:
4951         * sources/rb-static-playlist-source.h:
4952         * tests/test-cd.c:
4953         * tests/test-cmdline.c:
4954         * tests/test-rhythmdb-indexing.c:
4955         * tests/test-rhythmdb-query.c:
4956         * tests/test-rhythmdb-simple.c:
4957         * tests/test-rhythmdb-tree-deserialization.c:
4958         * tests/test-rhythmdb-tree-serialization.c:
4959         * tests/test-rhythmdb-view.c:
4960         * widgets/bacon-volume.c:
4961         * widgets/bacon-volume.h:
4962         * widgets/disclosure-widget.c:
4963         * widgets/disclosure-widget.h:
4964         * widgets/eel-gconf-extensions.c:
4965         * widgets/eel-gconf-extensions.h:
4966         * widgets/eggtrayicon.c:
4967         * widgets/eggtrayicon.h:
4968         * widgets/libsexy/sexy-icon-entry.c:
4969         * widgets/libsexy/sexy-icon-entry.h:
4970         * widgets/rb-cell-renderer-pixbuf.c:
4971         * widgets/rb-cell-renderer-pixbuf.h:
4972         * widgets/rb-cell-renderer-rating.c:
4973         * widgets/rb-cell-renderer-rating.h:
4974         * widgets/rb-dialog.c:
4975         * widgets/rb-dialog.h:
4976         * widgets/rb-druid.c:
4977         * widgets/rb-druid.h:
4978         * widgets/rb-entry-view.c:
4979         * widgets/rb-entry-view.h:
4980         * widgets/rb-header.c:
4981         * widgets/rb-header.h:
4982         * widgets/rb-library-browser.c:
4983         * widgets/rb-library-browser.h:
4984         * widgets/rb-property-view.c:
4985         * widgets/rb-property-view.h:
4986         * widgets/rb-query-creator-private.h:
4987         * widgets/rb-query-creator-properties.c:
4988         * widgets/rb-query-creator.c:
4989         * widgets/rb-query-creator.h:
4990         * widgets/rb-rating-helper.c:
4991         * widgets/rb-rating-helper.h:
4992         * widgets/rb-rating.c:
4993         * widgets/rb-rating.h:
4994         * widgets/rb-search-entry.c:
4995         * widgets/rb-search-entry.h:
4996         * widgets/rb-song-display-box.c:
4997         * widgets/rb-song-display-box.h:
4998         * widgets/rb-song-info.c:
4999         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
5001 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5003         patch by: Gareth Murphy, James Livingston
5005         * bindings/python/rb.defs:
5006         * configure.ac:
5007         * plugins/Makefile.am:
5008         * plugins/artdisplay/Makefile.am:
5009         * plugins/artdisplay/artdisplay.py:
5010         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
5011         * plugins/rb-python-module.c: (rb_python_module_init_python):
5012         * shell/rb-shell.c: (construct_widgets),
5013         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
5014         (rb_shell_add_widget), (rb_shell_remove_widget),
5015         (rb_shell_ui_location_get_type):
5016         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
5018 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5020         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5021         Fix build failure caused by the combination of the previous two
5022         commits.
5024 2006-04-20  James Livingston  <doclivingston@gmail.com>
5026         patch by: Christophe Fergeau  <teuf@gnome.org> to make
5027         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
5028         table to the entry types, which will allow us to get rid of some of
5029         the "if entry type == WHATEVER" code everywhere. From bug 
5031         * bindings/python/rb.defs:
5032         * bindings/python/rb.override:
5033         * bindings/python/rhythmdb.defs:
5034         * bindings/python/rhythmdb.override:
5035         * daapsharing/rb-daap-connection.c:
5036         (rb_daap_connection_class_init), (rb_daap_connection_init),
5037         (rb_daap_connection_set_property),
5038         (rb_daap_connection_get_property):
5039         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
5040         * podcast/rb-podcast-manager.c:
5041         (rb_podcast_manager_entry_downloaded),
5042         (rb_podcast_manager_subscribe_feed),
5043         (rb_podcast_manager_db_entry_added_cb),
5044         (rb_podcast_manager_db_entry_deleted_cb),
5045         (rb_podcast_manager_insert_feed):
5046         * rhythmdb/rhythmdb-private.h:
5047         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5048         (conjunctive_query):
5049         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5050         (process_added_entries_cb), (rhythmdb_entry_allocate),
5051         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
5052         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
5053         (rhythmdb_process_metadata_load),
5054         (rhythmdb_process_file_created_or_modified), (action_thread_main),
5055         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
5056         (write_encoded_gvalue), (read_encoded_property),
5057         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
5058         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
5059         (rhythmdb_entry_iradio_get_type),
5060         (rhythmdb_entry_podcast_post_get_type),
5061         (rhythmdb_entry_podcast_feed_get_type),
5062         (rhythmdb_entry_import_error_get_type),
5063         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
5064         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
5065         (rhythmdb_entry_type_get_type):
5066         * rhythmdb/rhythmdb.h:
5067         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5068         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
5069         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5070         (rb_shell_player_entry_activated_cb), (info_available_cb):
5071         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
5072         (rb_shell_register_entry_type_for_source),
5073         (rb_shell_playing_from_queue_cb),
5074         (rb_shell_playing_entry_changed_cb),
5075         (rb_shell_player_stream_song_changed_cb),
5076         (rb_shell_jump_to_entry_with_source),
5077         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5078         (handle_playlist_entry_cb), (rb_shell_load_uri):
5079         * shell/rb-shell.h:
5080         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
5081         * sources/rb-browser-source.c: (rb_browser_source_class_init),
5082         (rb_browser_source_init), (rb_browser_source_set_property),
5083         (rb_browser_source_get_property):
5084         * sources/rb-ipod-source.c: (impl_paste):
5085         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
5086         (rb_iradio_source_init), (rb_iradio_source_set_property),
5087         (rb_iradio_source_get_property):
5088         * sources/rb-library-source.c: (impl_paste):
5089         * sources/rb-missing-files-source.c:
5090         (rb_missing_files_source_class_init),
5091         (rb_missing_files_source_init),
5092         (rb_missing_files_source_set_property),
5093         (rb_missing_files_source_get_property):
5094         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5095         (rb_playlist_source_init), (rb_playlist_source_set_property),
5096         (rb_playlist_source_get_property):
5097         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5098         (rb_podcast_source_init), (rb_podcast_source_set_property),
5099         (rb_podcast_source_get_property):
5100         * sources/rb-static-playlist-source.c:
5101         (rb_static_playlist_source_add_location_internal):
5103 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5105         * rhythmdb/rhythmdb.c: (rhythmdb_init),
5106         (rhythmdb_add_import_error_entry),
5107         (entry_volume_mounted_or_unmounted),
5108         (rhythmdb_volume_unmounted_cb):
5109         When a volume is unmounted, delete import errors for files stored on
5110         it.  When a volume is mounted, stat all tracks stored on it, rather
5111         than assuming they're present.  Fixes #339023.
5113 2006-04-20  James Livingston  <doclivingston@gmail.com>
5115         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
5116         browser visibility for non-gconf-using sources (like playlists). Part
5117         of bug 118862.
5119         * shell/rb-source-header.c: (sourcestate_free),
5120         (rb_source_header_init), (rb_source_header_finalize),
5121         (rb_source_header_source_weak_destroy_cb): switch from storing the
5122         search string to storing a "source state" structure
5124         (rb_source_header_set_source_internal),  (rb_source_state_sync),
5125         (rb_source_header_search_cb), (rb_source_header_clear_search),
5126         (rb_source_header_disclosure_toggled_cb): as well as storing the
5127         string, stop the visibility of the source's browser.
5129 2006-04-20  James Livingston  <doclivingston@gmail.com>
5131         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
5132         library entries back into the library. Fixes bug 339065.
5134 2006-04-20  James Livingston  <doclivingston@gmail.com>
5136         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
5137         only exists in glib 2.10.
5139 2006-04-20  James Livingston  <doclivingston@gmail.com>
5141         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
5142         Solaris. From bug 335318.
5144         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
5145         * shell/rb-audioscrobbler.c:
5146         * sources/rb-psp-source.c:
5148 2006-04-20  James Livingston  <doclivingston@gmail.com>
5150         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
5151         issues for some people.
5153         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
5154         accidental s/suffix/prefix/
5156         * sources/rb-auto-playlist-source.c:
5157         (rb_auto_playlist_source_set_query): fix the invered logic preventing
5158         you from sorting playlists which aren't limited by time.
5160 2006-04-19  James Livingston  <doclivingston@gmail.com>
5162         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
5163         duration or bitrate back to the file, since they are properties of the
5164         audio data, not tags we can set.
5166 2006-04-19  James Livingston  <doclivingston@gmail.com>
5168         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
5169         of libtool, to fix builds which are using a different version. Fixes
5170         bug 338996.
5172         * shell/Makefile.am:
5174 2006-04-19  James Livingston  <doclivingston@gmail.com>
5176         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
5177         to sync data to a file which is uneditable.
5179 2006-04-19  James Livingston  <doclivingston@gmail.com>
5181         patch by: Gavin Stewart  <gavin@brokentrain.net>
5183         * data/glade/playlist-save.glade:
5184         * data/glade/Makefile.am:
5185         * po/POTFILES.in: add the playlist saving dialog.
5187         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
5188         (export_set_extension_cb), (filter_get_export_filter_label),
5189         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
5190         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
5191         formats (PLS and M3U at the moment). Fixes bug 316295.
5193 2006-04-19  James Livingston  <doclivingston@gmail.com>
5195         * shell/rb-playlist-manager.c:
5196         (rb_playlist_manager_set_source_internal): don't let you edit remove
5197         auto playlists.
5199         * sources/rb-auto-playlist-source.c:
5200         (rb_auto_playlist_source_set_query): correctly handle time-limited
5201         playlists.
5203 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5205         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
5207         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
5208         Don't crash if the queue file contains no newlines.
5209         Fixes #338924.
5211 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
5213         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
5214         condition
5216 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
5218         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
5219         case. Moreover, they may not exist yet, so take that into account when
5220         generating the iPod filename.
5222 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
5224         * sources/rb-ipod-source.c: added support for drag and drop from the
5225         library to the iPod (only enabled if --enable-track-transfer was
5226         passed to configure)
5228 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
5230         * configure.ac:
5231         * lib/rb-marshal.list:
5232         * lib/rb-util.c: 
5233         * lib/rb-util.h:
5234         * plugins/Makefile.am:
5235         * plugins/ipod/Makefile.am:
5236         * plugins/ipod/ipod.rb-plugin.desktop.in:
5237         * plugins/ipod/rb-ipod-plugin.c: 
5238         * plugins/rb-plugin.h:
5239         * shell/Makefile.am:
5240         * shell/rb-removable-media-manager.c:
5241         * shell/rb-removable-media-manager.h:
5242         * shell/rb-shell.c: 
5243         * sources/Makefile.am:
5244         * sources/rb-ipod-source.c: 
5245         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
5246         various iPod related files should be moved to plugins/ipod/ now...
5248 2006-04-17  James Livingston  <doclivingston@gmail.com>
5250         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
5251         and "vic".
5253         * help/C/figures/rb-iradio-main.png:
5254         * help/C/figures/rb-notification-area-menu.png:
5255         * help/C/figures/rb-notification-window.png:
5256         * help/C/figures/rb-notification-zone.png:
5257         * help/C/figures/rb-podcast-main.png:
5258         * help/C/figures/rb-statusbar.png:
5259         * help/C/figures/rb-volume-changer.png:
5260         * help/C/figures/rb-window-small.png:
5261         * help/C/figures/rb-window.png:
5262         * help/C/rhythmbox.xml:
5264 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5266         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
5267         more obviously.
5269         * metadata/rb-metadata-gst.c: (rb_metadata_init),
5270         (make_undecodable_error), (rb_metadata_gst_error_cb),
5271         (rb_metadata_gst_new_decoded_pad_cb),
5272         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
5273         Ignore really small files (<4kB) for which typefinding fails.
5274         Always link decoded pads from decodebin to fakesink.
5275         Shut the pipeline down by posting an error on the bus when decodebin
5276         emits unknown-type signals.  Fixes bug #338062.
5278 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5280         * shell/rb-shell.c: (rb_shell_load_uri):
5281         Fix glaring mistakes in previous commit: actually pass arguments to
5282         rb_debug, and specify the right entry type when adding a new iradio
5283         station so we don't try to add local playlist files to the library.
5285 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5287         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
5288         before trying to add them, as iradio streams often fail rb_uri_exists().
5290         * shell/rb-shell-player.c: (notify_playing_idle),
5291         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
5292         (open_location_thread), (rb_shell_player_open_location),
5293         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
5294         (eos_cb):  When playing an iradio stream using a playlist, keep a list
5295         of all the stream URLs, and try them in turn.  If we get through the
5296         whole playlist too quickly, error out.  Various other fixes that make
5297         iradio work a lot better.
5299         * shell/rb-shell.c: (add_to_library_response_cb),
5300         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5301         (handle_playlist_entry_cb), (rb_shell_load_uri):
5302         Add playlists containing streams as iradio stations.  If the playlist
5303         is local, add each stream URL, but if the playlist is remote, just add
5304         the playlist URL.
5305         
5306         * sources/rb-iradio-source.c: (new_station_location_added):
5307         Add new station URLs as-is, rather than parsing the playlist and
5308         adding the streams.
5309         
5310         * rhythmdb/rhythmdb-query-model.c:
5311         (rhythmdb_query_model_entry_changed_cb),
5312         (rhythmdb_query_model_emit_reorder),
5313         (rhythmdb_query_model_do_reorder):
5314         Emit row-changed notifications when an entry changes but is not
5315         reordered.
5317         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
5318         Display the playback error icon when the entry has an error and
5319         there's nothing else to display.
5320         
5321         Fixes bug #320336 and some of #324402.
5322         
5323 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5325         * sources/rb-ipod-source.c: use a GHashTable for the
5326         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
5327         time, this fixes compilation breakage for people not having libgpod
5328         CVS HEAD
5330 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
5332         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5334         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
5335         (rb_podcast_manager_insert_feed):
5336         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
5337         fixes bug 321945
5339 2006-04-16  James Livingston  <doclivingston@gmail.com>
5341         * sources/rb-library-source.c:
5342         (rb_library_source_library_location_cb): return FALSE like we are
5343         supposed to, not void.
5345         patch by: FreeBSD GNOME Project
5346         * configure.ac: fix some bash-isms.
5348         patch by: Pawel Worach  <pawel.worach@gmail.com>
5349         * metadata/rb-metadata-dbus-client.c:
5350         * rhythmdb/rhythmdb-query-model.c:
5351         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
5354 2006-04-16  James Livingston  <doclivingston@gmail.com>
5356         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
5357         for transcoding to RBEncoderGst.
5359         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
5360         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
5361         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
5362         (add_decoding_pipeline), (encoder_match_mime),
5363         (get_profile_from_mime_type), (extract_track), (transcode_track),
5364         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
5366 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5368         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
5369         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
5370         load_ipod_db_idle_cb to a new separate function
5372 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5374         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
5375         source
5377 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5379         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
5380         variables
5382 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5384         * data/ui/Makefile.am:
5385         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
5386         menu
5387         * lib/rb-util.c: check if the widget we got from the UI manager isn't
5388         NULL before using it as a popup menu
5389         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
5390         'eject' an iPod
5392 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5394         * sources/rb-ipod-source.c: when hal tells us a partition is on an
5395         iPod, check if it contains an iPod database before using it (in case
5396         the iPod was repartitionned somehow). Should fix bug #325034
5398 2006-04-16  Steve Frécinaux  <steve@istique.net>
5400         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
5402         * data/Makefile.am: install application icon into the default theme.
5404         * data/rhythmbox.desktop.in: don't specify icon file extension.
5405         
5406         * shell/main.c: (main): set default window icon from theme.
5407         
5408         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
5409         code concerning window icon, and fix leak by unreferencing the about
5410         logo pixbuf once it's not used anymore.
5412 2006-04-16  James Livingston  <doclivingston@gmail.com>
5414         * configure.ac: bump version to 0.9.4
5415         * NEWS: update NEWS and 0.9.4 insert translations
5417 2006-04-16  James Livingston  <doclivingston@gmail.com>
5419         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
5420         namespace automatically.
5422 2006-04-16  James Livingston  <doclivingston@gmail.com>
5424         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
5426         * doc/reference/Makefile.am:
5427         * doc/reference/rhythmbox.types: make distcheck work again
5429         * doc/reference/tmpl/eggnotificationbubble.sgml:
5430         * doc/reference/tmpl/eggtrayicon.sgml:
5431         * doc/reference/tmpl/rb-debug.sgml:
5432         * doc/reference/tmpl/rb-entry-view.sgml:
5433         * doc/reference/tmpl/rb-enums.sgml:
5434         * doc/reference/tmpl/rb-metadata.sgml:
5435         * doc/reference/tmpl/rb-new-station-dialog.sgml:
5436         * doc/reference/tmpl/rb-playlist-manager.sgml:
5437         * doc/reference/tmpl/rb-refstring.sgml:
5438         * doc/reference/tmpl/rb-shell-player.sgml:
5439         * doc/reference/tmpl/rb-shell-preferences.sgml:
5440         * doc/reference/tmpl/rb-shell.sgml:
5441         * doc/reference/tmpl/rb-song-info.sgml:
5442         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
5443         * doc/reference/tmpl/rb-statusbar.sgml:
5444         * doc/reference/tmpl/rhythmbox-unused.sgml:
5445         * doc/reference/tmpl/rhythmdb-query-model.sgml:
5446         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
5448 2006-04-16  James Livingston  <doclivingston@gmail.com>
5450         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
5452         * po/LINGUAS: don't split the variable across two lines, as it breaks
5453         the build. Fixes bug 338625.
5455 2006-04-15  James Livingston  <doclivingston@gmail.com>
5457         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
5458         add a "sourcelist-model" gobject property.
5460 2006-04-14  William Jon McCann  <mccann@jhu.edu>
5462         * .cvsignore:
5463         * backends/.cvsignore:
5464         * backends/gstreamer/.cvsignore:
5465         * bindings/.cvsignore:
5466         * bindings/python/.cvsignore:
5467         * help/es/.cvsignore:
5468         * metadata/.cvsignore:
5469         * plugins/.cvsignore:
5470         * plugins/audioscrobbler/.cvsignore:
5471         * plugins/lirc/.cvsignore:
5472         * plugins/pythonconsole/.cvsignore:
5473         * plugins/sample-python/.cvsignore:
5474         * plugins/sample/.cvsignore:
5475         * shell/.cvsignore:
5476         * widgets/libsexy/.cvsignore:
5477         Make CVS ignore files.
5479 2006-04-14  James Livingston  <doclivingston@gmail.com>
5481         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
5482         the track-loading thread hold a reference on the source, so it doesn't
5483         explode if the cd is removed before it is done. Fixes bug 337237.
5485 2006-04-14  James Livingston  <doclivingston@gmail.com>
5487         * bindings/python/override_common.c:
5488         (_helper_unwrap_pointer_pylist):
5489         * bindings/python/override_common.h:
5490         * bindings/python/rb.override:
5491         * bindings/python/rhythmdb.override: Bind some more functions and
5492         virtual functions.
5494         * shell/rb-shell.c: (rb_shell_select_source):
5495         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
5496         * sources/rb-audiocd-source.c:
5497         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
5498         * sources/rb-browser-source.c: (impl_get_search_actions):
5499         * sources/rb-iradio-source.c: (impl_get_ui_actions):
5500         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
5501         * sources/rb-playlist-source.c: (impl_get_ui_actions):
5502         * sources/rb-podcast-source.c: (impl_get_ui_actions),
5503         (impl_get_search_actions):
5504         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
5505         the impl_get_ui_actions and impl_get_search_actions functions return
5506         lists that contain copies of the strings, instead of constant ones.
5507         Needed to bindings
5509 2006-04-14  James Livingston  <doclivingston@gmail.com>
5511         * bindings/python/rhythmdb.defs:
5512         * bindings/python/rhythmdb.override: fix the method argument format
5513         specifiers.
5515 2006-04-14  James Livingston  <doclivingston@gmail.com>
5517         * bindings/python/rhythmdb.defs:
5518         * bindings/python/rhythmdb.override:
5519         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
5520         (entry_to_rb_metadata), (record_entry_change),
5521         (rhythmdb_entry_set_visibility):
5522         * rhythmdb/rhythmdb.h:
5523         * shell/rb-shell.c: (rb_shell_get_song_properties): change
5524         rhythmdb_entry_get to take the db as the first parameter. Fixes the
5525         python bindings of it. The rhythmdb_entry_get_* ones are left the same
5526         since they are used in too many places, and not in the Python
5527         bindings.
5529 2006-04-13  William Jon McCann  <mccann@jhu.edu>
5531         * lib/rb-debug.c: (_rb_profile_log):
5532         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
5533         * rhythmdb/rhythmdb.c: (rhythmdb_load):
5534         * shell/main.c: (main):
5535         * shell/rb-shell.c: (rb_shell_constructor),
5536         (rb_shell_set_visibility), (rb_shell_sync_window_state),
5537         (rb_shell_present):
5538         Fix profile output indentation.  Add more profiling points.
5539         Fixes part of #338114
5541 2006-04-13  James Livingston  <doclivingston@gmail.com>
5543         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
5544         library source being deleted, by setting the active source to NULL.
5545         From bug 338116.
5547 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5549         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
5550         Update the last-seen string when hiddenness changes.
5552 2006-04-12  James Livingston  <doclivingston@gmail.com>
5554         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
5555         which caused the first-seen time to be reset when a metadata load was
5556         done. Fixes bug 336874.
5558         * shell/rb-shell.h: remove old function declaration.
5560         * bindings/python/rhythmdb.defs:
5561         * bindings/python/rhythmdb.override: Fix some python binding stuff.
5563 2006-04-11  James Livingston  <doclivingston@gmail.com>
5565         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
5566         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
5567         interaction. Fixes bug 337999.
5569 2006-04-11  James Livingston  <doclivingston@gmail.com>
5571         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
5572         track transfer. Fixes bug 338056.
5574         * shell/Makefile.am:
5576 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5578         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
5580 2006-04-10  William Jon McCann  <mccann@jhu.edu>
5582         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
5583         (_rb_profile_log):
5584         * lib/rb-debug.h:
5585         * shell/rb-shell.c: (construct_db), (construct_widgets),
5586         (construct_sources), (construct_load_ui), (rb_shell_constructor):
5587         Add profiling.  Fixes #337387
5589 2006-04-10  William Jon McCann  <mccann@jhu.edu>
5591         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
5592         * widgets/rb-header.c:
5593         Use italics for artist and album. Fixes #336748
5595 2006-04-10  James Livingston  <doclivingston@gmail.com>
5597         * Makefile.am:
5598         * backends/gstreamer/Makefile.am:
5599         * configure.ac:
5600         * data/glade/library-prefs.glade:
5601         * shell/Makefile.am:
5602         * shell/rb-removable-media-manager.c:
5603         * shell/rb-removable-media-manager.h:
5604         * sources/Makefile.am:
5605         * sources/rb-audiocd-source.c:
5606         * sources/rb-library-source.c: (rb_library_source_class_init),
5607         (rb_library_source_finalize), (impl_get_config_widget),
5608         (rb_library_source_preferences_sync), (impl_can_paste): add a
5609         --enable-track-transfer configure option, abd make cd ripping disabled
5610         by default.
5612         * shell/rb-source-header.c:
5613         * sources/rb-source.c: (rb_source_class_init),
5614         (rb_source_delete_thyself), (default_get_entry_view):
5615         * lib/rb-glade-helpers.c:
5616         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
5617         some compiler warnings, and also bug 337427.
5619 2006-04-10  James Livingston  <doclivingston@gmail.com>
5621         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
5622         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
5623         if the gconf key is missing. Fixes bug 337742.
5625 2006-04-10  James Livingston  <doclivingston@gmail.com>
5627         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5628         to fix build problems I caused with a commit yesterday. Fixed bug
5629         337806.
5631         * daapsharing/rb-daap-mdns-browser-howl.c:
5632         (rb_daap_mdns_browser_class_init):
5633         * podcast/Makefile.am:
5634         * rhythmdb/Makefile.am:
5635         * widgets/eggtrayicon.h:
5637 2006-04-09  Steve Frécinaux  <steve@istique.net>
5639         * configure.ac:
5640         * po/LINGUAS:
5641         
5642         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
5643         translators' life easier.
5645 2006-04-09  James Livingston  <doclivingston@gmail.com>
5647         * bindings/python/rb.defs:
5648         * bindings/python/rb.override: add bindings for most RBSource virtual
5649         functions.
5651         * sources/rb-source.h:
5652         * sources/rb-source.c: (rb_source_class_init): make
5653         impl_get_browser_key return a non-consht string, since Python can't
5654         really give us constant strings.
5656         * shell/rb-source-header.c: (rb_source_header_finalize),
5657         (rb_source_header_set_source_internal):
5658         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
5659         * sources/rb-iradio-source.c: (impl_get_browser_key):
5660         * sources/rb-library-source.c: (impl_get_browser_key):
5661         * sources/rb-playlist-source.c:
5662         * sources/rb-browser-source.c: (rb_browser_source_constructor),
5663         (rb_browser_source_state_prefs_sync):
5664         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
5665         above change.
5667         * plugins/sample-python/sample-python.py: show how to add a new
5668         source.
5670 2006-04-09  James Livingston  <doclivingston@gmail.com>
5672         * daapsharing/Makefile.am:
5673         * daapsharing/rb-daap-connection.c:
5674         (rb_daap_connection_class_init):
5675         * daapsharing/rb-daap-marshal.list:
5676         * daapsharing/rb-daap-mdns-browser-avahi.c:
5677         (rb_daap_mdns_browser_class_init):
5678         * lib/rb-marshal.list:
5679         * player/Makefile.am:
5680         * player/rb-recorder-gst.c: (rb_recorder_class_init):
5681         * player/rb-recorder-marshal.list:
5682         * podcast/Makefile.am:
5683         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
5684         * podcast/rb-podcast-marshal.list:
5685         * rhythmdb/Makefile.am:
5686         * rhythmdb/rhythmdb-marshal.list:
5687         * rhythmdb/rhythmdb-query-model.c:
5688         (rhythmdb_query_model_class_init):
5689         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
5690         into one file, as there is no point having several of them.
5692 2006-04-09  James Livingston  <doclivingston@gmail.com>
5694         * lib/Makefile.am:
5695         * lib/rb-enums.h:
5696         * widgets/Makefile.am:
5697         * widgets/eggnotificationbubble.c:
5698         * widgets/eggnotificationbubble.h:
5699         * widgets/rb-song-info.c: remove lib/rb-enums.h and
5700         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
5702         * rhythmdb/rhythmdb-property-model.h:
5703         * rhythmdb/rhythmdb-query-model.h:
5704         * rhythmdb/rhythmdb.h:
5705         * shell/rb-playlist-manager.h:
5706         * widgets/rb-cell-renderer-pixbuf.h:
5707         * widgets/rb-cell-renderer-rating.h:
5708         * widgets/rb-rating.h: fix the prototypes of various class-closures.
5710 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5712         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
5713         so we can build without a system-wide installed copy.
5715 2006-04-09  James Livingston  <doclivingston@gmail.com>
5717         * data/glade/general-prefs.glade:
5718         * data/rhythmbox.schemas:
5719         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
5720         (rb_combo_box_hyphen_separator_func):
5721         * lib/rb-glade-helpers.h:
5722         * lib/rb-preferences.h:
5723         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
5724         (rb_shell_preferences_sync),
5725         (rb_shell_preferences_toolbar_style_cb),
5726         (rb_shell_preferences_browser_views_activated_cb):
5727         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5728         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
5729         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
5731 2006-04-09  James Livingston  <doclivingston@gmail.com>
5733         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
5734         data that MusicBrainz returns to us. Last part of bug 334167.
5736 2006-04-09  James Livingston  <doclivingston@gmail.com>
5738         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
5739         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
5741 2006-04-09  James Livingston  <doclivingston@gmail.com>
5743         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
5744         the entry view properly when the rows are reordered. Fixes bug 337019.
5746 2006-04-09  James Livingston  <doclivingston@gmail.com>
5748         * configure.ac:
5749         * widgets/Makefile.am:
5750         * widgets/libsexy/Makefile.am:
5751         * widgets/libsexy/sexy-icon-entry.c:
5752         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
5753         libsexy, and allow building against it or a system-wide installed
5754         copy.
5757         * widgets/rb-search-entry.c: (rb_search_entry_init),
5758         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
5759         search box. Fixes bug 128109.
5761 2006-04-09  James Livingston  <doclivingston@gmail.com>
5763         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5765         * widgets/rb-entry-view.c: (rb_entry_view_init),
5766         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
5767         and Pause icons rather than the volume ones in the Now Playing column.
5768         Closes bug 336482.
5770 2006-04-08  James Livingston  <doclivingston@gmail.com>
5772         * bindings/python/override_common.h:
5773         * bindings/python/rb.override:
5774         * bindings/python/rhythmdb.override: bind some more functions 
5776 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5778         * metadata/rb-metadata-dbus-service.c: (_send_error):
5779         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
5780         are sent properly and we don't get 'method doesn't exist' messages
5781         from dbus instead.
5783 2006-04-08  James Livingston  <doclivingston@gmail.com>
5785         * bindings/python/override_common.h:
5786         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5787         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
5788         more utility functions for C<->Python conversions
5790         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
5791         (rb_entry_view_state_get_type):
5792         * widgets/rb-entry-view.h: make the colume type and entry view state
5793         GTypes
5795         * bindings/python/Makefile.am:
5796         * bindings/python/rb.defs:
5797         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
5798         RBSource.
5800 2006-04-08  James Livingston  <doclivingston@gmail.com>
5802         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
5803         initialiser for a GError
5805         * sources/rb-source.c: (rb_source_eof_type_get_type):
5806         * sources/rb-source.h: add a GType for RBSourceEOFType
5808         * bindings/python/Makefile.am:
5809         * bindings/python/rb.defs:
5810         * bindings/python/rb.override: bind RBSource and RBSourceList
5812 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5814         * shell/rb-shell-player.c: (rb_shell_player_class_init),
5815         (rb_shell_player_get_property),
5816         (rb_shell_player_get_active_source),
5817         (rb_shell_player_set_playing_source_internal):
5818         * shell/rb-shell-player.h:
5819         Change 'playing-from-queue' from being a signal to being a property.
5821         * shell/rb-shell.c: (rb_shell_constructor),
5822         (rb_shell_playing_from_queue_cb),
5823         (rb_shell_view_queue_as_sidebar_changed_cb),
5824         (rb_shell_jump_to_entry_with_source):
5825         When the queue side pane is used, make 'jump to current' jump to the
5826         entry in the registered source for its type, rather than in the queue,
5827         and show it as playing in that source.
5828         
5829         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
5830         * sources/rb-sourcelist.h:
5831         Remove the 'preempted source' stuff, since it wasn't doing anything
5832         anyway.
5834 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5836         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
5837         (download_progress_cb): Canonicalise downloaded file location before
5838         setting the mountpoint property of the corresponding entry.
5839         Fixes #337287 and a couple of memory leaks.
5841 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5843         * metadata/rb-metadata-dbus-service.c: (test_can_save),
5844         (test_load), (main): Call g_set_prgname, report errors more
5845         usefully in test mode.
5846         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
5847         (rb_metadata_load): Don't ignore the have-type signal for non-audio
5848         files.  Run the event loop when the state change fails so we get the
5849         error messages from the bus.  Fixes #336921.
5851 2006-04-05  William Jon McCann  <mccann@jhu.edu>
5853         * data/art/Makefile.am: Install media-eject.
5855         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
5856         return value of rb_file.
5858         Fixes #337209
5860 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5862         Patch by: William Jon McCann  <mccann@jhu.edu>
5864         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
5865         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
5866         Fix GError leak.
5868 2006-04-04  William Jon McCann  <mccann@jhu.edu>
5870         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
5871         Don't try to add a date when we don't have one.  Fixes #336741.
5873         Also fix variable declaration in middle of block.
5875 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5877         * shell/rb-shell-player.c: (rb_shell_player_playpause):
5878         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
5880 2006-04-02  James Livingston  <doclivingston@gmail.com>
5882         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
5883         inverted logic causing imports to fail.
5885 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5887         * shell/main.c: (main): Fix dbusless build.
5889 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
5891         * player/rb-recorder-gst.c: fix packing of the C struct holding a
5892         wav header for non-gcc compilers (not tested much, was only written
5893         according to docs)
5895 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5897         * shell/main.c: (main): Check if we got a dbus connection before
5898         trying to create a proxy for the shell object.  Fixes #336634.
5900 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5902         * doc/reference/Makefile.am:
5903         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
5904         * shell/rb-source-header.c:
5905         * sources/rb-generic-player-source.c:
5906         (default_transform_playlist_uri):
5907         Fix various build issues.  Patch approximately 50% by Alex Lancaster
5908         <alexl@users.sourceforge.net>
5910 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5912         * configure.ac: Detect LIRC.
5913         
5914         * plugins/Makefile.am:
5915         * plugins/lirc/Makefile.am:
5916         * plugins/lirc/lirc.rb-plugin.desktop.in:
5917         * plugins/lirc/rb-lirc-plugin.c:
5918         LIRC plugin.
5920         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
5921         Remove obsolete files.
5923 2006-04-02  James Livingston  <doclivingston@gmail.com>
5925         * sources/rb-generic-player-source.c:
5926         (default_transform_playlist_uri): consider playlist paths as relative
5927         to the volume root by default, since that is what most players use.
5929 2006-04-02  James Livingston  <doclivingston@gmail.com>
5931         * lib/rb-util.c: (rb_mime_get_friendly_name):
5932         * lib/rb-util.h: add helper function to get the "friendly" name for a
5933         mime-type
5935         * metadata/rb-metadata-gst.c: (rb_metadata_init),
5936         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
5937         the user better error messages about undecodable streams, using the
5938         "friendly" name if possible. Fixes bug 128109.
5940 2006-04-02  James Livingston  <doclivingston@gmail.com>
5942         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
5943         (start_pipeline): fix building with gstreamer 0.8
5945 2006-04-02  James Livingston  <doclivingston@gmail.com>
5947         * sources/rb-podcast-source.c: (impl_delete),
5948         (rb_podcast_source_cmd_delete_feed),
5949         (rb_podcast_source_cmd_update_feed): copy the list before traversing
5950         it, since it may change during traversal. Fixes bug 336204.
5952 2006-04-01  James Livingston  <doclivingston@gmail.com>
5954         * data/art/media-eject.png: add the media-eject icon from Banshee
5955         (BSD-licensed), for use when the user's icon theme doesn't have one.
5957         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
5958         bug 334897.
5960 2006-04-01  James Livingston  <doclivingston@gmail.com>
5962         * shell/rb-shell-player.h:
5963         * shell/rb-shell-player.c: (rb_shell_player_play),
5964         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
5965         new rb_shell_player_{play,pause} functions, so everyone doesn't have
5966         to do rb_shell_player_playing followed by rb_shell_player_playpause.
5968         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
5969         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
5970         * shell/rb-shell.h: add rb_shell_get_ui_manager.
5972         * bindings/python/rb.defs: bind the above to Python, and remove some
5973         useless stuff from the bindings.
5975 2006-04-01  James Livingston  <doclivingston@gmail.com>
5977         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
5978         number tag.
5980         * shell/rb-shell.c:
5981         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
5983         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
5984         to true.
5986         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
5987         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
5988         method assigning, so it's understandable
5990         * sources/rb-library-source.c: (rb_library_source_class_init),
5991         (impl_paste): rather than hard-coding the types to ignore, use
5992         rb_source_can_copy.
5994 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5996         * sources/rb-library-source.c:
5997         (rb_library_source_preferences_sync):
5998         Don't crash if no audio profile is selected and the gconf schemas are 
5999         not installed.
6001 2006-03-31  James Livingston  <doclivingston@gmail.com>
6003         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
6004         "*" which caused compilation to fail
6006 2006-03-31  James Livingston  <doclivingston@gmail.com>
6008         * configure.ac:
6009         * Makefile.am:
6010         * backends/Makefile.am:
6011         * backends/gstreamer/Makefile.am:
6012         * backends/gstreamer/rb-encoder-gst.c:
6013         * backends/gstreamer/rb-encoder-gst.h:
6014         * backends/rb-encoder.c:
6015         * backends/rb-encoder.h: add a interface for transcoding, and a
6016         GStreamer implementation of it (based on Sound-Juicer's code).
6018         * shell/Makefile.am:
6019         * shell/rb-removable-media-manager.c:
6020         (rb_removable_media_manager_class_init),
6021         (rb_removable_media_manager_init),
6022         (rb_removable_media_manager_dispose),
6023         (rb_removable_media_manager_finalize),
6024         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
6025         (progress_cb), (completed_cb), (do_transfer),
6026         (rb_removable_media_manager_queue_transfer), (copy_entry),
6027         (rb_removable_media_manager_cmd_copy_tracks):
6028         * shell/rb-removable-media-manager.h: use the encoder interface to
6029         perform transfers of entries to other locations
6031         * shell/rb-shell-player.c: (open_location_thread):
6032         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
6033         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
6034         (rb_shell_quit):
6035         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
6036         progress in the status bar.
6038         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6039         (rb_shell_preferences_sync),
6040         (rb_shell_preferences_browser_views_activated_cb):
6041         * data/glade/general-prefs.glade: move the browser views setting from
6042         the library tab to the general one.
6044         * data/glade/library-prefs.glade: add settings for the layout of the
6045         user's library, and their preferred encoding format (e.g. for CD
6046         ripping).
6048         * lib/rb-preferences.h:
6049         * data/rhythmbox.schemas: add keys for the above options (and a few
6050         other minor ones)
6052         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
6053         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
6054         entry, that isn't inserted into the database.
6056         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
6057         (rb_audiocd_create_track_entry):
6058         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
6059         cds, and set the mime-type of audio cd tracks correctly.
6061         * sources/rb-library-source.c: (rb_library_source_class_init),
6062         (rb_library_source_finalize),
6063         (rb_library_source_edit_profile_clicked_cb),
6064         (impl_get_config_widget), (rb_library_source_preferences_sync),
6065         (impl_receive_drag), (rb_library_source_path_changed_cb),
6066         (rb_library_source_filename_changed_cb),
6067         (rb_library_source_format_changed_cb), (sanitize_path),
6068         (filepath_parse_pattern), (layout_example_label_update),
6069         (rb_library_source_layout_path_changed),
6070         (rb_library_source_layout_filename_changed), (build_filename),
6071         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
6072         entries to the library. Large chunks of code for determining the
6073         destination file name stolen from Sound-Juicer.
6075         * sources/rb-sourcelist-model.c: (path_is_droppable):
6076         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
6077         * sources/rb-static-playlist-source.c:
6078         (rb_static_playlist_source_class_init):
6079         * sources/rb-removable-media-source.c:
6080         (rb_removable_media_source_class_init):
6081         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
6082         (rb_source_can_paste):
6083         * sources/rb-source.h: add a new _can_paste method, and use it (rather
6084         than _can_copy) to determine whether we can paste into the source.
6087 2006-03-31  Steve Frécinaux  <steve@istique.net>
6089         * plugins/rb-python-module.c: allow import of python modules with a '.'
6090         (gedit's bug 336403). Patch by Johan Dahlin.
6092 2006-03-31  James Livingston  <doclivingston@gmail.com>
6094         * sources/rb-library-source.c: 
6095         * sources/rb-library-source.h:
6096         * sources/rb-browser-source.c:
6097         * sources/rb-browser-source.h: Split RBLibrarySource into two.
6098         RBBrowserSource now contains all the stuff for having a source which
6099         views a particular entry type (including browsers and searching).
6100         RBLibrarySource derives from this, and includes the library-specific
6101         stuff, like importing and library watching. Fixes some issues where
6102         library-derived sources were doing things that should be
6103         library-specific. Fixes bug 335185.
6105         * data/ui/rhythmbox-ui.xml:
6106         * sources/Makefile.am: modifications for the above
6108         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6109         (rb_daap_source_get_paned_key):
6110         * sources/rb-daap-source.h:
6111         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
6112         * sources/rb-removable-media-source.c:
6113         (rb_removable_media_source_class_init):
6114         * sources/rb-removable-media-source.h: derive from RBBrowserSource
6115         instead of RBLibrarySource.
6117 2006-03-31  James Livingston  <doclivingston@gmail.com>
6119         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
6120         I buggered up when changing from GnomeVFSFileSize.
6122 2006-03-30  James Livingston  <doclivingston@gmail.com>
6124         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
6125         for "-Wno-error".
6127         * bindings/python/rb.override:
6128         * bindings/python/Makefile.am: make the RB python bindings depend on
6129         the RhythmDB ones, and use "-Wno-error" since the machine-generated
6130         code sometimes emits warnings.
6132         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6133         (rb_shell_player_error_get_type):
6134         * shell/rb-shell-player.h:
6135         * bindings/python/rb.defs: add bindings for RBShellPlayer
6137         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6138         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
6139         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
6140         * rhythmdb/rhythmdb.h:
6141         * shell/rb-shell.c: (rb_shell_get_song_properties):
6142         * widgets/rb-entry-view.c: (propid_from_name):
6143         * widgets/rb-property-view.c: (rb_property_view_class_init):
6144         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
6145         than just plain GPtrArray, and add bindings for it.
6147         * bindings/python/rhythmdb.override: wrap some functions that use
6148         GValues
6150 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6152         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
6153         Only watch directories from which entries of type SONG have been
6154         added.
6156 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6158         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
6159         No need to restore the selection after rebuilding the child model,
6160         since that can't have changed the selection.
6162 2006-03-29  James Livingston  <doclivingston@gmail.com>
6164         * bindings/python/override_common.c:
6165         * bindings/python/override_common.h: add some for missing files to
6166         cvs.
6168 2006-03-29  James Livingston  <doclivingston@gmail.com>
6170         * configure.ac:
6171         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
6172         copied from gedit's autofoo and we don't need it
6174         * bindings/python/rhythmdb.defs:
6175         * bindings/python/rhythmdb.override: add missing files to cvs
6177 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6179         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
6180         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
6181         before running any of the debug/test modes.
6182         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
6183         Make plugin loading work when running uninstalled from the shell/
6184         directory.
6186 2006-03-29  James Livingston  <doclivingston@gmail.com>
6188         * rhythmdb/rhythmdb-property-model.c:
6189         (rhythmdb_property_model_sync),
6190         (rhythmdb_property_model_column_get_type):
6191         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
6193         * rhythmdb/rhythmdb-private.h:
6194         * rhythmdb/rhythmdb-query-model.c:
6195         (rhythmdb_query_model_class_init):
6196         * rhythmdb/rhythmdb-query-model.h:
6197         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
6198         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
6199         (rhythmdb_entry_get_type):
6200         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
6202         * widgets/rb-query-creator-properties.c:
6203         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
6204         was missing.
6206         * bindings/python/Makefile.am:
6207         * bindings/python/rb.defs:
6208         * bindings/python/rb.override:
6209         * plugins/rb-python-module.c: (rb_python_module_init_python): add
6210         Python bindings for RhythmDB.
6212 2006-03-29  James Livingston  <doclivingston@gmail.com>
6214         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
6215         sharing when using --no-registration
6217 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6219         * rhythmdb/rhythmdb-query-model.c:
6220         (rhythmdb_query_model_reapply_query):
6221         Don't remove entries while iterating, as it breaks the sequence
6222         nodes.  Instead, collect a list of removed entries and process it
6223         after iterating the sequence.  Fixes #334642.
6225 2006-03-29  James Livingston  <doclivingston@gmail.com>
6227         * plugins/rb-plugin-manager.c: (active_toggled_cb),
6228         (row_activated_cb), (plugin_manager_toggle_all):
6229         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
6230         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
6231         (button_press_cb), (source_name_edited_cb):
6232         * widgets/rb-property-view.c: (rb_property_view_set_property),
6233         (rb_property_view_post_row_deleted_cb),
6234         (rb_property_view_row_activated_cb),
6235         (rb_property_view_selection_changed_cb),
6236         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
6237         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
6239 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6241         * rhythmdb/rhythmdb-query-model.c:
6242         (rhythmdb_query_model_drag_data_received):
6243         Increment the reference count for entries added by drag and drop.
6244         Fixes #336045.
6246 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6248         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
6249         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
6250         Ignore invalid UTF-8 strings.  Fixes most of #334167.
6252 2006-03-27  James Livingston  <doclivingston@gmail.com>
6254         * shell/rb-shell.c: (rb_shell_constructor),
6255         (rb_shell_sync_window_state): fix a maximise-realise race that would
6256         cause some widgets to be resized after we had explicity set theri
6257         size. Hopefully fixes bug 331927.
6259 2006-03-27  James Livingston  <doclivingston@gmail.com>
6261         * plugins/rb-plugin-manager.c: (active_toggled_cb),
6262         (row_activated_cb), (plugin_manager_set_active),
6263         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
6264         configure button sensitivity when a plugin is enabled/disabled.
6266 2006-03-27  James Livingston  <doclivingston@gmail.com>
6268         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
6269         stop warnings, only the vbos is used anyway
6271         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
6272         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
6273         collection every now an then.
6275         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
6276         if we are finalising because the python object couldn't be created.
6278         * plugins/rb-python-module.c: (rb_python_module_new_object): return
6279         NULL if the python-side object couldn't be created. Stops crashes when
6280         the object is later used when it doesn't exist in Python.
6282         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
6283         (rb_python_shutdown): do better garbage collection when shutting down.
6284         Fixes the problem where Python was holding a reference to the shell,
6285         causing RB not to exit.
6287 2006-03-27  James Livingston  <doclivingston@gmail.com>
6289         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
6290         336131.
6292 2006-03-27  James Livingston  <doclivingston@gmail.com>
6294         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
6295         From bug 334829.
6297 2006-03-26  James Livingston  <doclivingston@gmail.com>
6299         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
6300         library location list to NULL after we free it. Fixes bug 336047.
6302 2006-03-26  James Livingston  <doclivingston@gmail.com>
6304         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
6306         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
6307         supplies. Fixes bug 335947.
6309 2006-03-25  James Livingston  <doclivingston@gmail.com>
6311         * data/glade/audioscrobbler-prefs.glade:
6312         * shell/rb-audioscrobbler.c:
6313         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
6314         "submit songs" checkbox, and make it not disable username/password
6315         entry. This will be needed when we support other last.fm stuff
6316         (profile access, radio, etc).
6318 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
6320         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
6321         Volume should not display stock_volume-0 for volume > 0. Fixes bug
6322         335777.
6324 2006-03-24  James Livingston  <doclivingston@gmail.com>
6326         * shell/rb-shell-player.c: (rb_shell_player_set_property),
6327         (rb_shell_player_sync_play_order),
6328         (rb_shell_player_play_order_update_cb),
6329         (actually_set_playing_source): update the next/previous availablility
6330         in places where it was missing. Fixes bug 335490.
6332 2006-03-24  James Livingston  <doclivingston@gmail.com>
6334         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
6335         can't find the widget
6337         * lib/rb-util.c: (rb_uri_list_parse):
6338         * lib/rb-util.h: add function for parsing a URI list into strings.
6340         * metadata/Makefile.am: make the metdata helper build when linking
6341         with --as-needed
6343         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
6344         g_mkdir_with_parents instead of coding our own.
6346         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
6347         <itunes:author> over <generator>, instead of using whichever comes
6348         last.
6350         * rhythmdb/rhythmdb-private.h:
6351         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
6352         field, as we don't ever check it (to detect corruption). Saves a bit
6353         of memory.
6355 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6357         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
6358         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
6359         Escape '&' and '=' in the paths we get back from
6360         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
6362 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6364         * shell/rb-shell.c: (rb_shell_constructor):
6365         Issue startup notification after creating the main window, so
6366         notification is issued whether the window is visible or not.
6367         Fixes #335086.
6369 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6371         * sources/rb-auto-playlist-source.c: (impl_search),
6372         (rb_auto_playlist_source_query_complete_cb),
6373         (rb_auto_playlist_source_do_query):
6374         * sources/rb-library-source.c: (impl_search),
6375         (rb_library_source_query_complete_cb),
6376         (rb_library_source_do_query):
6377         Defer subset searches (where text is appended to an existing search)
6378         until the original query is complete.
6380 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
6382         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
6384         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
6385         (rb_refstring_get_sort_key): fixes for strict-aliasing
6387 2006-03-21  James Livingston  <jrl@ids.org.au>
6389         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
6390         importing a single file. Fixes bug 335307.
6392 2006-03-21  James Livingston  <jrl@ids.org.au>
6394         * shell/Makefile.am: remove the reference to backends/ that I
6395         accidently included.
6397 2006-03-21  James Livingston  <jrl@ids.org.au>
6399         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
6400         with Forte (on Solaris). Closes bug 335318.
6402         * configure.ac:
6403         * lib/Makefile.am:
6404         * player/rb-recorder-gst.c:
6405         * podcast/rb-podcast-parse.c:
6406         * remote/bonobo/Makefile.am:
6407         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
6408         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
6409         (rhythmdb_query_model_add_entry),
6410         (rhythmdb_query_model_add_results):
6411         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
6412         * rhythmdb/rhythmdb.h:
6413         * shell/Makefile.am:
6414         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
6415         (update_speed_combobox):
6416         * sources/rb-sourcelist-model.c:
6418 2006-03-21  James Livingston  <jrl@ids.org.au>
6420         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
6422         * player/Makefile.am:
6423         * shell/Makefile.am: work correctly with a separate build root.
6425 2006-03-21  James Livingston  <jrl@ids.org.au>
6427         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
6428         get handed NULL.
6430 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6432         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
6433         Only create ignore entries when importing into the library.  
6434         Ignore entries for files in removable media sources don't help.
6436 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6438         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
6439         * shell/rb-source-header.h:
6440         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
6441         * widgets/rb-search-entry.h:
6442         Add functions to make the search box grab focus.
6444         * shell/rb-shell.c: (rb_shell_cmd_view_all):
6445         Focus the search box after handling the 'view all' action.
6447 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6449         * rhythmdb/rhythmdb.h:
6450         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6451         (rhythmdb_execute_multi_stat_info_cb),
6452         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
6453         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
6454         (action_thread_main):
6455         Collect all the get_file_info requests on startup into one gnome-vfs
6456         job to reduce overhead and avoid contention for the rhythmdb lock.
6457         Add a new method to call when all initial query models are set up.
6458         
6459         * shell/rb-shell.c: (idle_handle_load_complete):
6460         Call rhythmdb startup complete function when we've loaded all the
6461         playlists.  Fixes #334106.
6463 2006-03-20  James Livingston  <jrl@ids.org.au>
6465         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
6466         (rb_entry_view_selection_changed_cb),
6467         (rb_entry_view_have_complete_selection): make has_complete_selection
6468         not slow. Fixes a performance issue I added a week or so ago.
6470 2006-03-20  James Livingston  <jrl@ids.org.au>
6472         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
6473         before passing to strcmp. From bug 334559.
6475 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6477         * configure.ac:
6478         * lib/Makefile.am:
6479         * lib/rb-proxy-config.c:
6480         * lib/rb-proxy-config.h:
6481         Add a new object to watch the HTTP proxy configuration and emit
6482         signals when it changes.
6484         * shell/rb-audioscrobbler.c:
6485         * shell/rb-audioscrobbler.h:
6486         Use rb-proxy-config to watch HTTP proxy configuration.
6488         * shell/rb-shell.c:
6489         Construct rb-proxy-config object on startup, and remove all
6490         audioscrobbler references.
6492         * shell/Makefile.am:
6493         * plugins/audioscrobbler/Makefile.am:
6494         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
6495         Move all audioscrobbler code into the plugin.  We should move
6496         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
6497         point.  Don't use a private data structure in the plugin, since the
6498         class definition isn't in a header file.  Fixes #335091.
6500 2006-03-20  James Livingston  <jrl@ids.org.au>
6502         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
6503         don't enable Next if the source has an EOS type other than
6504         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
6506 2006-03-20  James Livingston  <jrl@ids.org.au>
6508         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
6509         (rb_song_info_forward_clicked_cb): deal with there being no
6510         next/previous entry.
6512         (rb_song_info_query_model_inserted_cb),
6513         (rb_song_info_query_model_deleted_cb),
6514         (rb_song_info_query_model_reordered_cb),
6515         (rb_song_info_query_model_changed_cb): monitor the query for changes,
6516         to update the button status. Fixes bug 333293.
6518 2006-03-20  James Livingston  <jrl@ids.org.au>
6520         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
6521         caused by my last commit
6523 2006-03-20  James Livingston  <jrl@ids.org.au>
6525         * bindings/python/Makefile.am:
6526         * bindings/python/rb.defs:
6527         * bindings/python/rb.override: add python bindings of RBRemoteProxy
6529         * shell/rb-shell.c: (rb_shell_constructor),
6530         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
6531         tray-icon detection slightly
6533 2006-03-19  Steve Frécinaux  <steve@istique.net>
6535         * data/ui/rhythmbox-ui.xml:
6536         * shell/rb-shell.c:
6538         Add an empty Tool Menu (hidden by default) containing placeholders for
6539         plugins.
6541         * configure.ac:
6542         * plugins/Makefile.am:
6543         * plugins/pythonconsole/Makefile.am:
6544         * plugins/pythonconsole/pythonconsole.py:
6545         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
6546         
6547         Python Console plugin
6549 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6551         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
6552         Extra step to encode '&' and '=' to match what gnome-vfs does
6553         internally.
6554         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
6555         (rhythmdb_tree_save):
6556         Increment rhythmdb xml version to 1.2, and force another uri
6557         re-canonicalisation when loading v1.1 databases.
6558         Fixes bug #333998.
6560 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6562         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
6563         (avahi_client_init), (browse_cb):
6564         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
6565         (avahi_client_init):
6566         Fix compilation with Avahi 0.5.x (bug #334551).
6568 2006-03-19  James Livingston  <jrl@ids.org.au>
6570         Add Increase/Decrease Volume menu items and keybindings. From bug
6571         123383.
6573         * data/ui/rhythmbox-ui.xml:
6574         * shell/rb-shell-player.c: (rb_shell_player_constructor),
6575         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
6576         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
6578 2006-03-19  James Livingston  <jrl@ids.org.au>
6580         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
6582         * shell/Makefile.am: fix the link order, so that we compile with
6583         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
6585 2006-03-19  James Livingston  <jrl@ids.org.au>
6587         patch by: Adam Petaccia  <adam@tpetaccia.com>
6589         * data/ui/rhythmbox-ui.xml: move preferences below "configure
6590         plugins". Fixes bug 335037.
6592 2006-03-18  James Livingston  <jrl@ids.org.au>
6594         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
6595         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
6596         332992.
6598         * widgets/rb-header.c: don't make artist/album info in the header the
6599         small size, since it's hard to read.
6601 2006-03-16  William Jon McCann  <mccann@jhu.edu>
6603         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
6604         (rhythmdb_finalize): Don't leak the hash tables.
6605         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
6606         (rhythmdb_commit_internal): Make sure to process the deletions.
6607         (rhythmdb_entry_delete): Use a hash.
6609         * podcast/rb-podcast-manager.c: Random analness about char*
6610         (rb_podcast_manager_remove_feed): Add debugging.
6611         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
6612         the result of gnome_vfs_unlink.  Don't leak a uri.
6614         Fixes #334786
6616 2006-03-18  James Livingston  <jrl@ids.org.au>
6618         * NEWS: update NEWS file
6620 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6622         * rhythmdb/rhythmdb-property-model.c:
6623         (rhythmdb_property_model_prop_changed_cb):
6624         Remove entries from the hash table after processing visible->hidden
6625         changes.
6627 2006-03-16  William Jon McCann  <mccann@jhu.edu>
6629         * sources/rb-daap-source.c (connection_connected_cb) 
6630         (connection_disconnected_cb): Add debug.
6631         (rb_daap_source_get_headers): Check for NULL connection.
6633         * daapsharing/rb-daap-src.c (rb_daap_src_open):
6634         Check return value of rb_daap_source_get_headers.
6636         Fixes #332089
6638 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6640         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
6641         Restore the selection after rebuilding the child model, so the
6642         selection is shown correctly after using the 'browse this
6643         album/artist/genre' menu items.
6645 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6647         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
6648         Clear the selection before changing the active model.
6649         Fixes crash reported in bug 334549.
6651 2006-03-15  James Livingston  <jrl@ids.org.au>
6653         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
6654         (rb_tray_icon_sync_action):
6655         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
6656         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
6657         for non-libnotify notification bubbles. Fixes bug 331721.
6659 2006-03-15  James Livingston  <jrl@ids.org.au>
6661         Add search-bar options to playlists. Fixes bug 334407.
6663         * sources/rb-auto-playlist-source.c:
6664         (rb_auto_playlist_source_class_init),
6665         (rb_auto_playlist_source_constructor),
6666         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
6667         (search_action_to_prop), (search_action_changed):
6668         * sources/rb-static-playlist-source.c:
6669         (rb_static_playlist_source_class_init),
6670         (rb_static_playlist_source_constructor),
6671         (construct_query_from_selection), (impl_get_search_actions),
6672         (search_action_to_prop), (search_action_changed):
6674 2006-03-14  William Jon McCann  <mccann@jhu.edu>
6676         * shell/rb-source-header.c (rb_source_header_set_source_internal):
6677         Remove broken attempt at making the search bar buttons not
6678         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
6680 2006-03-14  William Jon McCann  <mccann@jhu.edu>
6682         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
6683         Chain up to parent's dispose instead of finalize.  Fixes #334479.
6685 2006-03-14  William Jon McCann  <mccann@jhu.edu>
6687         * widgets/rb-header.c (rb_header_sync): Escape album and
6688         artist before adding to markup.
6690 2006-03-14  William Jon McCann  <mccann@jhu.edu>
6692         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
6693         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
6694         (rb_header_set_property), (rb_header_get_property),
6695         (rb_header_sync):
6696         Remove the GnomeUrl song links until we can do it properly.
6697         Fixes #334453.
6699 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6701         * shell/rb-source-header.c: (rb_source_header_clear_search):
6702         Remove the stored search text from the hash table, so it doesn't
6703         reappear after switching to another source and back.
6705         * sources/rb-auto-playlist-source.c: (impl_search):
6706         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
6707         * sources/rb-static-playlist-source.c: (impl_search):
6708         Make sure all sources treat impl_search(NULL) and impl_search("") the
6709         same.  Fixes #334525.
6711 2006-03-14  James Livingston  <jrl@ids.org.au>
6713         Store which thread created new entries, and make rhythmdb_commit only
6714         insert the entries for the thread that calls it. This stops one thread
6715         calling rhythmdb_commit inserting entries that are half-way through
6716         construction by another thread (as happens with audio cds). From bug
6717         330226.
6719         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6720         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
6721         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
6722         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
6723         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
6724         (rhythmdb_process_metadata_load),
6725         (rhythmdb_process_queued_entry_set_event),
6726         (rhythmdb_prop_get_type):
6728 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6730         * rhythmdb/rhythmdb-query-model.c:
6731         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
6732         (rhythmdb_query_model_finalize):
6733         Move object unrefs from _finalize into _dispose.
6734         
6735         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
6736         Remove extra g_object_ref that was causing query model leaks.
6737         
6738         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
6739         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
6740         (genre_selection_reset_cb), (rb_iradio_source_do_query):
6741         Remove the cached 'all' query, since it doesn't really help and it
6742         makes the code more complicated.  Attach the genre property view to
6743         the query model build from the search text, so only genres for
6744         stations matching the search terms are displayed.  Preserve the genre
6745         selection across searches.
6747         * widgets/rb-library-browser.c: 
6748         (rb_library_browser_class_init), (rb_library_browser_get_property):
6749         Add properties for the input and output models for the browser, and
6750         remove the 'changed' signal as we can just use notify::output-model.
6751         (ignore_selection_changes),
6752         (selection_restore_data_destroy), (query_complete_cb),
6753         (restore_selection): Helper functions for preserving selections across
6754         query model rebuilds.
6755         (rebuild_output_model):  New function for creating a query model to
6756         use as the display model for a source using the browser.
6757         (rebuild_child_model): Add a call to rebuild_output_model, add missing
6758         g_object_unrefs, reuse the parent's query model when there's no
6759         selection, and use ignore_selection_changes and restore_selection.
6760         (rb_library_browser_set_selection): rebuild_child_model emits the
6761         changed signal, so no need to do it here.
6762         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
6763         ignore_selection_changes and restore_selection. 
6764         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
6765         flag to rb_library_browser_set_model indicating whether the query is
6766         asynchronous.
6768         * sources/rb-static-playlist-source.c:
6769         (rb_static_playlist_source_class_init),
6770         (rb_static_playlist_source_dispose):
6771         (rb_static_playlist_source_constructor):  Add an extra reference on
6772         the base model, so it doesn't vanish when we set a new display model
6773         based on a search or browser selection.
6774         (impl_search): Ensure the search_text field in the source is NULL if
6775         the search box is empty.
6776         (construct_query_from_selection),
6777         (rb_static_playlist_source_do_query): Use the query model constructed
6778         from the search as the input model for the browser.
6779         (rb_static_playlist_source_browser_changed_cb): Use the browser's
6780         output model as the query model for the source.
6782         * sources/rb-auto-playlist-source.c:
6783         (rb_auto_playlist_source_finalize): Free more stuff.
6784         (rb_auto_playlist_source_constructor),
6785         (rb_auto_playlist_source_browser_changed_cb):
6786         Update for rb-library-browser changes, use the browser's output query
6787         model as the query model for the source.
6788         (impl_reset_filters), (impl_search), 
6789         (rb_auto_playlist_source_do_query),
6790         (rb_auto_playlist_source_set_query):
6791         Use the query model constructed from the search text as the input to
6792         the library browser, and when adding text to an existing search, apply
6793         the new query to the existing query model.
6794         
6795         * sources/rb-library-source.c: (rb_library_source_dispose):
6796         (rb_library_source_finalize): Chain dispose up to the parent class.
6797         (rb_library_source_constructor): Update for rb-library-browser
6798         changes. 
6799         (impl_search): Ensure search_text is NULL if the search box is empty,
6800         and use the subset flag to _do_query if text has been appended to an
6801         existing search.
6802         (search_action_changed), (impl_reset_filters):
6803         (rb_library_source_browser_changed_cb),
6804         (rb_library_source_do_query): Use the browser's output model as the
6805         query model for the source.
6807         Rework library and playlist sources to use a single query chain,
6808         and to limit the entries shown in property views based on the search
6809         terms.  Fixes bug #322787.
6811 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6813         * configure.ac:  Enable metadata helper by default, and fix a typo.
6815 2006-03-13  James Livingston  <jrl@ids.org.au>
6817         Make RBRefStrings lazily create the folded and sort-key strings when
6818         they are first used. This will same some memory by not creating ones
6819         that are never used, and delaying some of the others to when the user
6820         resorts or performs a similar action. Fixes bug 332992.
6822         * rhythmdb/rb-refstring.c: (rb_refstring_free),
6823         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
6824         (rb_refstring_get), (rb_refstring_get_folded),
6825         (rb_refstring_get_sort_key), (rb_refstring_hash),
6826         (rb_refstring_equal):
6827         * rhythmdb/rb-refstring.h:
6828         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6830 2006-03-12  William Jon McCann  <mccann@jhu.edu>
6832         * data/ui/rhythmbox-ui.xml:
6833         * lib/rb-stock-icons.c: (rb_stock_icons_init):
6834         * lib/rb-stock-icons.h:
6835         * shell/rb-shell-player.c:
6836         * shell/rb-shell.c: (rb_shell_constructor):
6837         * shell/rb-source-header.c: (force_no_shadow),
6838         (ui_manager_add_widget_cb), (rb_source_header_constructor),
6839         (rb_source_header_class_init), (rb_source_header_init),
6840         (merge_source_ui_cb), (toolbar_set_homogeneous),
6841         (rb_source_header_set_source_internal),
6842         (rb_source_header_set_property), (rb_source_header_get_property),
6843         (rb_source_header_set_source), (rb_source_header_new),
6844         (rb_source_header_filter_changed_cb):
6845         * shell/rb-source-header.h:
6846         * sources/rb-library-source.c: (rb_library_source_class_init),
6847         (rb_library_source_init), (search_action_to_prop),
6848         (search_action_changed), (rb_library_source_constructor),
6849         (impl_search), (impl_reset_filters), (impl_get_search_actions),
6850         (construct_query_from_selection):
6851         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
6852         (rb_podcast_source_init), (search_action_to_prop),
6853         (search_action_changed), (rb_podcast_source_constructor),
6854         (construct_query_from_selection), (impl_get_ui_actions),
6855         (impl_get_search_actions):
6856         * sources/rb-source.c: (rb_source_class_init),
6857         (rb_source_get_ui_actions), (default_get_search_actions),
6858         (rb_source_get_search_actions):
6859         * sources/rb-source.h:
6861         Add a search bar.  Fixes #328618
6863 2006-03-12  James Livingston  <jrl@ids.org.au>
6865         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
6866         * shell/main.c: (main): make --no-update not stat files checking for
6867         changes, instead of doing nothing. Fixes bug 125177.
6869 2006-03-12  James Livingston  <jrl@ids.org.au>
6871         * podcast/rb-podcast-manager.c:
6872         (rb_podcast_manager_thread_parse_feed):
6873         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
6874         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
6875         having an invalid mime-type. Fixed bug 329813.
6877 2006-03-12  James Livingston  <jrl@ids.org.au>
6879         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
6880         Finally lets us close bug 309609.
6882         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
6883         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
6884         0.10
6886         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
6887         inverted logic of the editable check.
6889 2006-03-12  James Livingston  <jrl@ids.org.au>
6891         Make API doc generation work again. Fixes bug 334276.
6893         * doc/reference/Makefile.am:
6894         * doc/reference/tmpl/rb-debug.sgml:
6895         * doc/reference/tmpl/rb-druid.sgml:
6896         * doc/reference/tmpl/rb-entry-view.sgml:
6897         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
6898         * doc/reference/tmpl/rb-metadata.sgml:
6899         * doc/reference/tmpl/rb-shell.sgml:
6900         * doc/reference/tmpl/rhythmbox-unused.sgml:
6901         * doc/reference/tmpl/rhythmdb.sgml:
6903 2006-03-12  James Livingston  <jrl@ids.org.au>
6905         * shell/rb-shell-clipboard.c:
6906         (rb_shell_clipboard_set_source_internal),
6907         (rb_shell_clipboard_sync): don't try to use the source's entry view if
6908         it doesn't have one. Fixes bug 331673.
6910         * sources/rb-source.c: (rb_source_class_init): provide a default
6911         have_url implementation that returns FALSE.
6913 2006-03-12  James Livingston  <jrl@ids.org.au>
6915         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
6916         doing a distclean. Fixes bug 334221.
6919         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
6921         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
6923 2006-03-11  James Livingston  <jrl@ids.org.au>
6925         * shell/rb-shell.c: (rb_shell_window_state_cb),
6926         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
6927         update the window width/height when iconified. Stops the window
6928         changing size when it is restored from the tray, fixing bug 333824. 
6930 2006-03-11  James Livingston  <jrl@ids.org.au>
6932         Try to get cvs to actually add the necessary files for plugin support
6934 2006-03-11  James Livingston  <jrl@ids.org.au>
6936         Add a plugin framework, with basic support for Python plugins (based
6937         on gedit's). Closes bug 330523.
6939         * Makefile.am:
6940         * shell/Makefile.am:
6941         * configure.ac: necessary autofoo.
6943         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
6945         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
6946         * lib/rb-file-helpers.h:
6948         * data/glade/plugins/glade:
6949         * lib/rb-preferences.h:
6950         * plugins/*:
6951         * bindings/*: plugin framework
6953         * plugins/sample/*:
6954         * plugins/sample-python/*: sample plugins
6956         * plugins/audioscrobbler/*:
6957         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
6958         (rb_audioscrobbler_set_property),
6959         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
6960         submission into a plugin. shell/audioscrobbler.* should really be
6961         moved, but that sucks with cvs.
6963         * shell/rb-shell.h:
6964         * shell/rb-shell.c: (rb_shell_constructor),
6965         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
6966         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
6967         (rb_shell_quit): start and stop plugin framework.
6969 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6971         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
6972         (rhythmdb_entry_delete):
6973         Emit entry-deleted signals when rhythmdb_commit is called, rather than
6974         immediately, so we can't get change notifications afterwards.  
6975         Fixes #331732.
6976         (rhythmdb_process_metadata_load): Add a commit after removing an
6977         entry so we can recreate it with a different type without getting
6978         confused.
6980 2006-03-11  James Livingston  <jrl@ids.org.au>
6982         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
6983         use the drive name for audio CDs, use "Unknown CD".
6985 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6987         patch by:  James Henstridge  <james@jamesh.id.au>
6989         * sources/rb-removable-media-source.c:
6990         (rb_removable_media_source_constructor):
6991         Get the device name from the GnomeVFSDrive if possible,
6992         since this is usually a more descriptive name.  Fixes #333080.
6994 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6996         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
6998         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6999         Don't automatically download episodes when configured for manual
7000         updating.  Fixes #331564.
7002 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7004         * rhythmdb/rhythmdb-property-model.c:
7005         (rhythmdb_property_model_iter_from_string):
7006         Return an iterator for the 'all' property when name == NULL,
7007         and don't write to *iter if iter == NULL.
7009 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7011         * shell/rb-shell-player.c: (rb_shell_player_do_next):
7012         When switching to the play queue, still call _go_next on the normal
7013         play order, so self-emptying auto playlists ("play count = 0" etc.)
7014         don't restart once the queue is empty.
7016         * shell/rb-tray-icon.c:
7017         Change shortcut for 'show notifications' to 'o' so it doesn't clash
7018         with 'next'.
7020 2006-03-05  James Livingston  <jrl@ids.org.au>
7022         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7023         don't submit tracks which could not be played. Fixed bug 333013.
7025         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
7026         tracks which could not be played.
7028 2006-03-05  James Livingston  <jrl@ids.org.au>
7030         Sync musicbrainz lookup code from Sound-Juicer cvs.
7032         * metadata/sj-metadata-musicbrainz.c:
7033         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
7034         (get_offline_track_listing), (artist_and_title_from_title),
7035         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
7036         (mb_list_albums), (mb_get_submit_url):
7037         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
7038         * metadata/sj-metadata.h:
7039         * metadata/sj-structures.c: (track_details_free),
7040         (album_details_free):
7041         * metadata/sj-structures.h:
7043 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7045         * lib/rb-debug.h:
7046         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
7047         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
7048         (rb_profiler_reset), (rb_profiler_free):
7049         Filter debug output by matching the file and function names against a
7050         match string.
7052         * shell/main.c: (main):
7053         Add -D command line option to specify the debug match string.
7055         * shell/rb-removable-media-manager.c:
7056         (rb_removable_media_manager_mount_volume):
7057         Fix some typos in debug output.
7059 2006-03-03  James Livingston  <jrl@ids.org.au>
7061         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
7062         * shell/rb-shell.c: (rb_shell_load_uri):
7063         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
7064         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
7065         use the new "recurse" property from totem-plparser, if present. Stop
7066         RB hanging for new users who don't have a 'net connection. From bug
7067         331508.
7069 2006-03-02  Bastien Nocera  <hadess@hadess.net>
7071         * shell/rb-removable-media-manager.c:
7072         (rb_removable_media_manager_mount_volume):
7073         * sources/Makefile.am:
7074         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
7075         Fix missing files on make dist (conditional files), only build the
7076         N770 support if there's HAL support, as we have no other ways of
7077         detecting it
7079 2006-03-03  James Livingston  <jrl@ids.org.au>
7081         * shell/rb-shell-clipboard.c:
7082         (rb_shell_clipboard_set_source_internal): really fix it this time.
7083         hopefully.
7085 2006-03-03  James Livingston  <jrl@ids.org.au>
7087         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
7088         with the idle function not being removed.
7090 2006-03-02  James Livingston  <jrl@ids.org.au>
7092         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
7093         * widgets/rb-entry-view.h: add function for determining whether all
7094         entries are selected.
7096         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
7097         (rb_shell_clipboard_set_source_internal),
7098         (rb_shell_clipboard_finalize),
7099         (rb_shell_clipboard_idle_poll_deletions),
7100         (rb_shell_clipboard_entryview_changed_cb),
7101         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
7102         removals, to update things.
7104         (rb_shell_clipboard_sync): update the Select All and Select None
7105         sensitivity, based on what is selected. Fixed bug 172220.
7107 2006-03-02  James Livingston  <jrl@ids.org.au>
7109         * widgets/rb-library-browser.c: (rebuild_child_model): save and
7110         restore the selections of later models. This means that selecting the
7111         artist for the selected album does not reset the album selection.
7113 2006-03-02  James Livingston  <jrl@ids.org.au>
7115         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
7116         Stops it emitting critical warnings.
7118 2006-03-02  James Livingston  <jrl@ids.org.au>
7120         * lib/rb-file-helpers.c: (rb_uri_append_uri):
7121         * lib/rb-file-helpers.h: Add uri concatenation function for when the
7122         second fragment is already escaped.
7124         * sources/rb-generic-player-source.c:
7125         (rb_generic_player_source_class_init),
7126         (rb_generic_player_source_constructor), (impl_show_popup),
7127         (rb_generic_player_source_load_playlists),
7128         (rb_generic_player_source_transform_playlist_uri),
7129         (handle_playlist_entry_cb), (visit_playlist_dirs),
7130         (default_load_playlists), (default_transform_playlist_uri):
7131         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
7132         the device. Allow subclasses to override the playlist loading, and
7133         (playlist uri)->(actual uri) mapping. A lot of devices which have
7134         playlists won't work right now, but people will see them and hopefully
7135         file bugs.
7137         * sources/rb-psp-source.c: (rb_psp_source_class_init),
7138         (rb_psp_source_create_playlists): Adapt the PSP for the above change
7139         
7140         * sources/Makefile.am:
7141         + sources/rb-nokia770-source.{c,h}:
7142         * shell/rb-removable-media-manager.c:
7143         (rb_removable_media_manager_mount_volume): Add support for reading
7144         playlists of Nokia 770s.
7146 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7148         * data/glade/podcast-properties.glade:
7149         * podcast/rb-podcast-properties-dialog.c:
7150         (rb_podcast_properties_dialog_init),
7151         (rb_podcast_properties_dialog_update),
7152         (rb_podcast_properties_dialog_update_location),
7153         (rb_podcast_properties_dialog_update_download_location):
7154         Add 'download location' field showing the path to the downloaded copy.
7155         Fixes #330696.
7157 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7159         * configure.ac: simplify HAVE_HAL define
7161 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7163         * configure.ac:
7164         * lib/rb-file-helpers.c: (rb_uri_append_path):
7165         * lib/rb-file-helpers.h:
7166         * shell/rb-removable-media-manager.c:
7167         (rb_removable_media_manager_mount_volume):
7168         * sources/Makefile.am:
7169         * sources/rb-ipod-source.c:
7170         * sources/rb-psp-source.*:
7171         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
7172         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
7174 2006-03-02  James Livingston  <jrl@ids.org.au>
7176         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7177         (rb_shell_player_play), (rb_shell_player_jump_to_current),
7178         (swap_playing_source), (rb_shell_player_playpause),
7179         (rb_shell_player_sync_buttons), (actually_set_playing_source),
7180         (rb_shell_player_set_playing_source_internal): check for the entry
7181         view being NULL before trying to use it. Lets us support sources which
7182         don't have an entry view. From bug 331673.
7184 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7186         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
7187         use gnome_vfs_read_entire_file with a URI, not a local filename
7189 2006-03-01  James Livingston  <jrl@ids.org.au>
7191         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
7192         first-seen and last-seen when merging duplicate entries.
7194 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7196         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
7197         * widgets/rb-property-view.h:  New function, allowing custom 
7198         interactive search functions for property views.
7199         
7200         * sources/rb-podcast-source.c: 
7201         (feed_select_change_cb): Only do a new query when the selection
7202         actually changes.
7203         (rb_podcast_source_constructor),
7204         (rb_podcast_source_feed_title_search_func):
7205         Interactive search function for podcast feed titles.  Fixes #327451.
7207 2006-03-01  James Livingston  <jrl@ids.org.au>
7209         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
7210         the uri in the callback, since it causes symbols to not be escaped.
7211         Fixes bug 332976.
7213         * data/ui/rhythmbox-ui.xml:
7214         * sources/rb-import-errors-source.c:
7215         (rb_import_errors_source_class_init),
7216         (rb_import_errors_source_constructor), (impl_get_status),
7217         (impl_move_to_trash),
7218         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
7219         import errors source
7220         
7221         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
7222         (rb_entry_view_append_column): unescape the URI for display.
7224 2006-03-01  James Livingston  <jrl@ids.org.au>
7226         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
7227         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
7228         function fails.
7230 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
7232         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
7233         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
7234         * sources/rb-play-queue-source.c:
7235         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
7236         (rb_play_queue_source_update_count):  Use "Play Queue" instead
7237         of "Queued Songs".
7239         Fixes #331637.
7241 2006-03-01  James Livingston  <jrl@ids.org.au>
7243         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
7244         Fixes bug 332913.
7246 2006-03-01  James Livingston  <jrl@ids.org.au>
7248         * daapsharing/rb-daap-mdns-browser-howl.c:
7249         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
7250         * daapsharing/rb-daap-mdns-publisher-avahi.c:
7251         (rb_daap_mdns_publisher_class_init),
7252         (rb_daap_mdns_publisher_finalize):
7253         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
7254         * player/rb-recorder-gst.c: (rb_recorder_class_init),
7255         (rb_recorder_finalize):
7256         * rhythmdb/rhythmdb-query-model.c:
7257         (rhythmdb_query_model_constructor):
7258         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
7259         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7260         * sources/rb-playlist-source-recorder.c:
7261         (rb_playlist_source_recorder_style_set),
7262         (rb_playlist_source_recorder_class_init),
7263         (rb_playlist_source_recorder_finalize):
7264         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
7265         other classes in the same way, so they don't break when derived from.
7267 2006-03-01  James Livingston  <jrl@ids.org.au>
7269         * sources/rb-generic-player-source.c:
7270         (rb_generic_player_source_constructor): don't get the parent class in
7271         a dumb way, and it breaks when the class is derived from.
7273 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
7275         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
7277 2006-03-01  James Livingston  <jrl@ids.org.au>
7279         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
7280         not work in glib 2.8 systems.
7282 2006-03-01  James Livingston  <jrl@ids.org.au>
7284         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
7285         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
7286         say it is crap.
7288         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7289         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
7290         podcasts on ion-local places
7292         * rhythmdb/gsequence.c: (g_sequence_node_new),
7293         (g_sequence_node_free): use gslice if we are building against glib
7294         2.10.
7296         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
7297         local files too, so it doesn't block.
7299 2006-02-28  James Livingston  <jrl@ids.org.au>
7301         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
7302         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
7303         stats the file. Stops the UI blocking while stats are done.
7305 2006-02-28  James Livingston  <jrl@ids.org.au>
7307         * sources/rb-static-playlist-source.c:
7308         (rb_static_playlist_source_class_init),
7309         (rb_static_playlist_source_constructor), (impl_reset_filters),
7310         (impl_get_property_views), (impl_browser_toggled),
7311         (rb_static_playlist_source_do_query),
7312         (rb_static_playlist_source_browser_changed_cb): add browsers to static
7313         playlists. From bug 118862.
7315         * sources/rb-play-queue-source.c:
7316         (rb_play_queue_source_class_init): disable them for the play queue.
7318 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
7320         * data/glade/library-prefs.glade:  Add a mnemonic.
7321         * sources/rb-library-source.c:
7322         (rb_library_source_location_button_clicked_cb):  Use title
7323         capitalization for window title.
7325 2006-02-28  James Livingston  <jrl@ids.org.au>
7327         * sources/rb-auto-playlist-source.c:
7328         (construct_query_from_selection): don't create a subquery for only one
7329         criteria, as it's a silly effifiency degredation.
7331 2006-02-28  James Livingston  <jrl@ids.org.au>
7333         * rhythmdb/rhythmdb.h:
7334         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7335         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
7336         saved to disk
7338         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
7339         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
7340         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
7341         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
7342         IGNORE (e.g. known video stream) create an entry of the Ignore type.
7343         This will make importing files quicker as we don't need to try files
7344         that we know are not going to be interesting - especially useful when
7345         using the library watching facility.
7347         Fixes bug 323179.
7349 2006-02-28  James Livingston  <jrl@ids.org.au>
7351         * shell/rb-shell.c: (rb_shell_constructor),
7352         (rb_shell_set_visibility): fix browser and source-list pane
7353         positioning, that I broke with the "remember visibility" patch.
7355 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7357         * metadata/rb-metadata-dbus-service.c: (main):
7358         Change argument handling so you can use --debug with the --load and
7359         --can-save test modes.
7360         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
7361         Use a separate GMainContext, not the default one.  Probably fixes
7362         #332344.
7364 2006-02-27  James Livingston  <jrl@ids.org.au>
7366         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
7367         first starting up. Fixes bug 330342.
7369 2006-02-27  James Livingston  <jrl@ids.org.au>
7371         * sources/rb-sourcelist-model.c:
7372         (rb_sourcelist_model_set_dnd_targets):
7373         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
7374         COPY action for draging sources and tracks, not MOVE as well. Stops
7375         Nautilus moving file away, and fixes bug 332488.
7377 2006-02-27  James Livingston  <jrl@ids.org.au>
7379         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
7381         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
7382         and Last Played metadata off iPods. Closes bug 324648.
7384 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7386         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
7387         Disable audioscrobbler when run with the --no-registration flag, since
7388         last.fm doesn't allow multiple concurrent clients per user.
7390 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7392         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
7393         Rename renamable sources when F2 is pressed when the sourcelist has
7394         focus.  Fixes #330700.
7396 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7398         * shell/rb-playlist-manager.c: (cleanup_edit_data),
7399         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
7400         (rb_playlist_manager_cmd_edit_automatic_playlist):
7401         Fix various crashes when deleting auto playlists previously edited
7402         by disconnecting signal handlers when the query editor is closed or
7403         the playlist is deleted.
7405 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7407         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
7408         removed load failure dialog, and actually use the friendly file type
7409         name in error messages.
7411 2006-02-24  James Livingston  <jrl@ids.org.au>
7413         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
7415         * sources/rb-library-source.c:
7416         (rb_library_source_location_button_clicked_cb),
7417         (rb_library_source_preferences_sync),
7418         (rb_library_source_library_location_cb): convert the library URI to
7419         for display, and back again. Fixes bug 332356.
7421 2006-02-23  James Livingston  <jrl@ids.org.au>
7423         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
7424         (rhythmdb_process_metadata_load), (monitor_subdirectory),
7425         (rhythmdb_sync_library_location): don't monitor files at all if
7426         watching is turned off. From bug 323096.
7428 2006-02-23  James Livingston  <jrl@ids.org.au>
7430         * data/rhythmbox.schemas:
7431         * lib/rb-preferences.h:
7432         * shell/rb-shell.c: (rb_shell_constructor),
7433         (rb_shell_set_visibility): remember main window visibility between
7434         sessions. Fixes bug 127320.
7436 2006-02-23  James Livingston  <jrl@ids.org.au>
7438         * data/glade/library-prefs.glade:
7439         * sources/rb-library-source.c: (impl_get_config_widget),
7440         (rb_library_source_location_button_clicked_cb),
7441         (rb_library_source_preferences_sync),
7442         (rb_library_source_library_location_cb),
7443         (rb_library_source_watch_toggled_cb): change the library-location
7444         widgets from the file-chooser drop menu to a text entry and Browse
7445         button. This is needed to prevent the location from chaning if the
7446         directory cannot be found. Fixes bug 328414.
7448 2006-02-23  James Livingston  <jrl@ids.org.au>
7450         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
7451         item. Fixes bug 329042.
7453 2006-02-23  James Livingston  <jrl@ids.org.au>
7455         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7457         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
7458         comma in some podcast feeds. Fixes bug 332194.
7460 2006-02-23  James Livingston  <jrl@ids.org.au>
7462         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
7463         lower priority.
7465         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
7466         the internal audio cd URIs from "cdda://device:track" to
7467         "cdda://track#device" as it makes processing much easier.
7469         * shell/rb-shell-player.c: (rb_shell_player_open_location):
7470         * player/rb-player-gst.c: don't have the shell close the player
7471         between songs, as doing that should be backend-specific. Make the
7472         gstreamer backend close before starting a new track, unless the old
7473         and new ones are both tracks on the same audio cd. Just seek in that
7474         case.
7476 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7478         * doc/reference/rhythmbox.types: Fix doc build a bit more.
7480 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7482         * configure.ac: Enable more warnings in my stupid setup too.
7483         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
7484         #332210.
7486 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7488         * sources/rb-missing-files-source.h,
7489         * sources/rb-missing-files-source.c,
7490         * sources/rb-import-errors-source.h,
7491         * sources/rb-import-errors-source.c:
7492         Add library meta-sources, showing missing files and import errors.
7493         Fixes #167763, #142322.
7495         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
7496         * sources/rb-sourcelist-model.h:
7497         * sources/rb-sourcelist.c: (rb_sourcelist_append),
7498         (match_source_to_iter), (rb_sourcelist_source_to_iter),
7499         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
7500         (visibility_notify_cb):
7501         Store source visibility in the sourcelist model, so we can determine
7502         child source counts correctly and get the sourcelist expander column
7503         right.
7504         
7505         * widgets/rb-entry-view.h:
7506         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
7507         (rb_entry_view_append_column), (set_column_visibility):
7508         Allow the creator of the entry view to specify which columns are
7509         always visible.
7511         * sources/rb-source.h:
7512         * sources/rb-source.c: (_autohide_update_visibility),
7513         (_rb_autohide_source_row_deleted_cb),
7514         (_rb_autohide_source_row_inserted_cb),
7515         (_rb_source_hide_when_empty):
7516         Allow sources to automatically hide themselves when empty.
7517         
7518         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
7519         * sources/rb-library-source.c: (rb_library_source_constructor):
7520         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
7521         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
7522         Explicitly specify which columns are always visible.
7523         
7524         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
7525         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
7526         Remove load error signal handling and load failure dialog.
7527         Create missing files and import errors sources for the library.
7529         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7530         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
7531         Create DB entries for import errors rather than emitting the 'load
7532         error' signal; mark loaded entries visible.
7533         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
7534         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
7535         (rhythmdb_prop_get_type): Store string form of last seen time for
7536         hidden entries, since it's used in the missing files source.
7537         (rhythmdb_entry_import_error_get_type): 
7538         Add entry type for import errors.
7539         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
7540         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
7541         (rhythmdb_entry_move_to_trash_set_error),
7542         (rhythmdb_entry_move_to_trash):  
7543         Correct spelling, add missing rhythmdb_commit.
7544         * rhythmdb/rhythmdb.h:  
7545         Add import error entry type and last seen string property.
7546         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
7547         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
7548         (save_entry):  Ignore string form of 'last seen' property.
7550         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
7551         Don't try to play hidden entries or import error entries.
7553         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
7554         * sources/Makefile.am: Add meta-source files
7555         * widgets/Makefile.am: Remove load failure dialog files
7557 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7559         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
7560         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
7561         few bits and pieces.
7563 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7565         * metadata/test-metadata.c: (load_metadata_cb):
7566         Fix compile warning for ignoring return value from getcwd, #332064.
7568 2006-02-21  James Livingston  <jrl@ids.org.au>
7570         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
7571         (edit_auto_playlist_deleted_cb),
7572         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
7573         playlist editor non-modal. Fixes bug 320030.
7575 2006-02-21  James Livingston  <jrl@ids.org.au>
7577         * shell/rb-shell.c: (rb_shell_constructor):
7578         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
7579         (rb_header_set_show_artist_album):
7580         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
7581         (rb_song_display_box_sync): make the queue sidebar and song display
7582         not get affected by gtk_widget_show_all. Fixes bug 332001.
7584 2006-02-21  James Livingston  <jrl@ids.org.au>
7586         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
7588         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
7589         feeds which use timezone names instead of offsets. Doesn't actually
7590         parse the timezone name since they are not standardised. Fixes bug
7591         331691.
7593 2006-02-21  James Livingston  <jrl@ids.org.au>
7595         * help/C/figures/rb-notification-area.png:
7596         * help/C/figures/rb-sidebar.png:
7597         * help/C/quick-reference.xml: remove obsolete files from CVS.
7599         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
7600         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
7601         (rhythmdb_query_free), (rhythmdb_query_serialize),
7602         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
7603         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
7605         * widgets/rb-query-creator-properties.c: add prefix and suffix
7606         (escapedStringCriteriaGetWidgetData): use better escaping, so it
7607         doesn't escape the ':' separator in uris.
7609 2006-02-21  James Livingston  <jrl@ids.org.au>
7611         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
7612         on startup.
7614 2006-02-21  James Livingston  <jrl@ids.org.au>
7616         * NEWS: update with recent changes
7618 2006-02-21  James Livingston  <jrl@ids.org.au>
7620         * shell/rb-shell.c: (rb_shell_constructor),
7621         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
7622         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
7623         (rb_druid_browse_clicked_cb), (do_response):
7624         * widgets/rb-druid.h: Make running the druid not block RBShell
7625         starting up. This is required so that bonobo registration doesn't time
7626         out. Fixed bug 318766.
7628 2006-02-21  James Livingston  <jrl@ids.org.au>
7630         * rhythmdb/rhythmdb-property-model.c:
7631         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
7632         hash table after using it, not before. Fixed bug 331922.
7634 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7636         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
7637         (rb_shell_view_queue_as_sidebar_changed_cb):
7638         When playing from the queue, only attempt to highlight the queue
7639         source in the source list if it's actually visible there.  Otherwise,
7640         leave the preempted source highlighted.  Mostly fixes #330819.
7642 2006-02-20  James Livingston  <jrl@ids.org.au>
7644         * rhythmdb/rhythmdb-property-model.c:
7645         (rhythmdb_property_model_row_inserted_cb),
7646         (rhythmdb_property_model_prop_changed_cb),
7647         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
7648         store the roperty value in the entry-mapping table, so that receiving
7649         the remove signal from a query model before we get notified of a
7650         change doesn't cause a crash. Fixes bug 331770.
7652 2006-02-20  James Livingston  <jrl@ids.org.au>
7654         * data/ui/rhythmbox-ui.xml:
7655         * sources/rb-play-queue-source.c:
7656         (rb_play_queue_source_class_init),
7657         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
7658         playlist things in the queue popup source. From 330490.
7660         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
7661         previous commit
7663 2006-02-20  James Livingston  <jrl@ids.org.au>
7665         * widgets/rb-song-info.c: (rb_song_info_response_cb),
7666         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
7667         attempt to sync data for non-editable entries when using
7668         next/previous. Don't write our Year if it wasn't changed. Fixes bug
7669         331762.
7671 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
7673         * .cvsignore:
7674         * Makefile.am:
7675         * autogen.sh:
7676         * configure.ac:
7677         * help/.cvsignore:
7678         * help/Makefile.am: ported to gnome-doc-utils
7679         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
7680         * help/ChangeLog: added, for translators
7681         * help/C/rhytmbox-C.omf: removed, no longer used
7682         Know issue: figures are installed, but some are not showed; manual
7683         description added, but not showed in Yelp while browsing. I'll
7684         investigate, maybe are needed some little changes to
7685         help/C/rhythmbox.xml.
7687 2006-02-20  James Livingston  <jrl@ids.org.au>
7689         * data/ui/rhythmbox-ui.xml:
7690         * help/C/figures/rb-adv.png:
7691         * help/C/figures/rb-asst-finish.png:
7692         * help/C/figures/rb-asst-library.png:
7693         * help/C/figures/rb-asst-start.png:
7694         * help/C/figures/rb-basic.png:
7695         * help/C/figures/rb-browser.png:
7696         * help/C/figures/rb-context-menu.png:
7697         * help/C/figures/rb-empty.png:
7698         * help/C/figures/rb-full-play.png:
7699         * help/C/figures/rb-group-auto.png:
7700         * help/C/figures/rb-group-create.png:
7701         * help/C/figures/rb-group.png:
7702         * help/C/figures/rb-imported.png:
7703         * help/C/figures/rb-iradio-add.png:
7704         * help/C/figures/rb-iradio.png:
7705         * help/C/figures/rb-nextprev.png:
7706         * help/C/figures/rb-nobrowse-play.png:
7707         * help/C/figures/rb-notification-area-menu.png:
7708         * help/C/figures/rb-player.png:
7709         * help/C/figures/rb-prefs-general.png:
7710         * help/C/figures/rb-prefs-ipod.png:
7711         * help/C/figures/rb-prefs-library.png:
7712         * help/C/figures/rb-prefs.png:
7713         * help/C/figures/rb-repeat.png:
7714         * help/C/figures/rb-search.png:
7715         * help/C/figures/rb-shuffle.png:
7716         * help/C/figures/rb-stats.png:
7717         * help/C/figures/rb-toolbar-editor.png:
7718         * help/C/figures/rb-volume-mute.png:
7719         * help/C/figures/rhythmbox-group.png:
7720         * help/C/figures/rhythmbox-tray-icon.png:
7721         * help/C/user-guide.xml: remove old stuff from cvs
7723 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7725         * metadata/rb-metadata-dbus-client.c: 
7726         * metadata/rb-metadata-dbus-service.c:
7727         * metadata/rb-metadata-dbus.c:
7728         * metadata/rb-metadata-dbus.h:
7729         New files, adding an external service for reading and writing
7730         metadata, and an implementation of the RBMetaData interface that uses
7731         dbus to communicate with it.
7732         
7733         * metadata/rb-metadata.h,
7734         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
7735         (rb_metadata_get_field_name): Put metadata details in a static array
7736         instead of using a hash table, and add a field for language code (not
7737         used for anything)
7738         * metadata/rb-metadata-gst.c: Updates for changes in
7739         rb-metadata-common.c, fix signal handler closure leak for the typefind
7740         element's have-type signal, and add XML to the list of types we ignore.
7741         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
7742         Update for changes to rb_metadata_get_field_type
7743         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
7744         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
7745         here and there.
7746         
7747         * configure.ac: Add --enable-metadata-helper option (not enabled by
7748         default) to use the external metadata service
7749         * metadata/Makefile.am: Add new files
7750         * metadata/test-metadata.c:  Test program for the metadata service
7752         Fixes #329597. 
7754 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7756         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
7757         * sources/rb-podcast-source.c: (impl_get_ui_actions),
7758         (rb_podcast_source_cmd_new_podcast):
7759         Move 'new podcast' action to the podcast source, and add it to the
7760         toolbar.  Fixes #331562.
7762 2006-02-19  James Livingston  <jrl@ids.org.au>
7764         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
7765         menus, and away from move-to-trash. Fixes bug 331013.
7767 2006-02-19  James Livingston  <jrl@ids.org.au>
7769         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
7770         when deleting last entry. Fixes bug 331712.
7772 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7774         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
7775         (rb_entry_view_button_press_cb):
7776         * widgets/rb-entry-view.h: Emit show-popup when right clicked
7777         anywhere, and include a flag indicating whether the click was over an
7778         entry or not.
7779         
7780         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
7781         (rb_playlist_source_songs_show_popup_cb):
7782         * sources/rb-playlist-source.h:
7783         Add the 'over entry' flag to the class show popup method, and in the
7784         default handler, ignore right clicks when not over an entry.
7785         
7786         * sources/rb-iradio-source.c:
7787         (rb_iradio_source_songs_show_popup_cb):
7788         * sources/rb-library-source.c:
7789         (rb_library_source_songs_show_popup_cb):
7790         * sources/rb-podcast-source.c:
7791         (rb_podcast_source_songs_show_popup_cb):
7792         Show the source list popup menu when right clicked while not over an
7793         entry.
7795         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
7796         For the queue sidebar, always display the popup so the 'clear queue'
7797         action is available regardless of where you click.  For the queue
7798         source, only display the popup when right clicked over an entry.
7799         Fixes #331392.
7801 2006-02-19  James Livingston  <jrl@ids.org.au>
7803         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
7804         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
7805         entry view, when we're not even using it
7807         * rhythmdb/rhythmdb-property-model.c:
7808         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
7809         function, rather than a copy of the code.
7811         * shell/rb-playlist-manager.c:
7812         (rb_playlist_manager_playlist_row_inserted_cb),
7813         (rb_playlist_manager_set_source_internal),
7814         (rb_playlist_manager_playlist_entries_changed): use the query-model
7815         directly, rather than the source's entry view.
7817         * shell/rb-source-header.c: don't use the entry view, just select the
7818         source widget.
7820 2006-02-18  James Livingston  <jrl@ids.org.au>
7822         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
7824         * help/C/figures/rb-iradio-main.png:
7825         * help/C/figures/rb-notification-area-menu.png:
7826         * help/C/figures/rb-notification-window.png:
7827         * help/C/figures/rb-notification-zone.png:
7828         * help/C/figures/rb-podcast-main.png:
7829         * help/C/figures/rb-statusbar.png:
7830         * help/C/figures/rb-toolbar-prevplaynext.png:
7831         * help/C/figures/rb-toolbar-repeat.png:
7832         * help/C/figures/rb-toolbar-shuffle.png:
7833         * help/C/figures/rb-toolbar.png:
7834         * help/C/figures/rb-volume-changer.png:
7835         * help/C/figures/rb-window-small.png:
7836         * help/C/figures/rb-window.png:
7837         * help/C/rhythmbox.xml: Update user guide with some of the changes
7838         that have occurred after 0.8.8. From bug 314001.
7840 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7842         * rhythmdb/rhythmdb-query-results.h,
7843           rhythmdb/rhythmdb-query-results.c:
7844         New interface for objects that accept query results from RhythmDB.
7846         * rhythmdb/rhythmdb-query-model.c:
7847         (rhythmdb_query_model_query_results_init),
7848         (rhythmdb_query_model_set_query),
7849         (rhythmdb_query_model_add_results),
7850         (rhythmdb_query_model_query_complete):
7851         * rhythmdb/rhythmdb-query-model.h:
7852         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
7854         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
7855         (rhythmdb_tree_do_full_query):
7856         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
7857         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
7858         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
7859         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
7860         * rhythmdb/rhythmdb.h:
7861         Pass query results through the RhythmDBQueryResults interface, rather
7862         than directly to a RhythmDBQueryModel.
7864         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
7865         (rb_podcast_manager_db_entry_deleted_cb):
7866         * sources/rb-auto-playlist-source.c:
7867         (rb_auto_playlist_source_do_query),
7868         (rb_auto_playlist_source_set_query):
7869         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
7870         * sources/rb-library-source.c: (rb_library_source_constructor),
7871         (rb_library_source_do_query):
7872         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
7873         (rb_podcast_source_do_query):
7874         * rhythmdb/rhythmdb-property-model.c:
7875         (rhythmdb_property_model_drag_data_get):
7876         Cast the query model to RhythmDBQueryResults when passing to one of
7877         the RhythmDB query methods.
7879         * rhythmdb/Makefile.am: Add new files.
7881 2006-02-18  James Livingston  <jrl@ids.org.au>
7883         * data/ui/rhythmbox-ui.xml:
7884         * shell/rb-playlist-manager.c:
7885         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
7886         "queue playlist" item to source context menu. Fixes bug 330490.
7888 2006-02-18  James Livingston  <jrl@ids.org.au>
7890         * data/glade/general-prefs.glade:
7891         * shell/rb-shell-preferences.c:
7892         (rb_shell_preferences_column_check_changed_cb),
7893         (rb_shell_preferences_sync):
7894         * sources/rb-library-source.c: (rb_library_source_constructor):
7895         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
7896         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
7897         (rb_entry_view_append_column): Add a "quality" colume which indicates
7898         the bitrate of media. Part of bug 167659.
7900 2006-02-18  James Livingston  <jrl@ids.org.au>
7902         * shell/rb-play-order.c: (do_next_idle_cb),
7903         (default_playing_entry_removed): move to next track when playing entry
7904         is deleted. Fixes bug 131150.
7906         * shell/rb-shell-player.h: remove ancient stuff
7908 2006-02-17  William Jon McCann  <mccann@jhu.edu>
7910         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
7911         (rb_shell_clipboard_set_property): 
7912         * shell/rb-shell.c (rb_shell_sync_party_mode):
7913         Trigger a resync of the clipboard properties when changing party mode.
7915 2006-02-17  William Jon McCann  <mccann@jhu.edu>
7917         * sources/rb-static-playlist-source.c: Fix includes.
7919         * sources/rb-source.c (rb_source_can_rename) 
7920         (rb_source_can_delete, rb_source_can_move_to_trash):
7921         Return FALSE if in party mode.
7923         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
7924         Replace fullscreen with party mode.
7925         (rb_shell_window_delete_cb): Don't quit if in party mode.
7926         (rb_shell_view_party_mode_changed_cb): Setup party mode.
7927         (window_state_event_cb): Try to deiconify shell when iconified
7928         in party mode.
7929         (rb_shell_sync_party_mode): Sync party mode properties.
7930         Currently, that means [de]sensitizing close, quit, and small-display,
7931         going into fullscreen mode with window stuck and kept above, and
7932         toggling queue-only for the shell player.
7933         (rb_shell_sync_smalldisplay): Sensitive party mode.
7934         (rb_shell_get_party_mode): Get party mode setting.
7936         * shell/rb-shell-player.c (rb_shell_player_class_init) 
7937         (rb_shell_player_set_property, rb_shell_player_get_property):
7938         Add queue-only property.
7939         (rb_shell_player_entry_activated_cb): If in party mode
7940         only queue the entry on activation.
7942         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
7943         Break out from set_properties.  Desensitize some actions when
7944         in party mode.
7945         (rb_playlist_manager_set_property): Break out set_source_internal.
7947         * data/rhythmbox.schemas: Remove fullscreen mode.
7949         * data/ui/rhythmbox-ui.xml: Replace fullscreen
7950         action with party mode.
7952         Partial fix for #323933
7954 2006-02-17  James Livingston  <jrl@ids.org.au>
7956         * configure.ac:
7957         * shell/rb-removable-media-manager.c:
7958         (get_nautilus_burn_drive_for_path),
7959         (rb_removable_media_manager_playing_uri_changed_cb): only use
7960         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
7961         over the list when it doesn't.
7963 2006-02-17  James Livingston  <jrl@ids.org.au>
7965         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
7966         (rb_iradio_source_first_time_changed): Only do the import on the
7967         first change from FALSE to TRUE.
7969         * sources/rb-library-source.c:
7970         (rb_library_source_preferences_sync),
7971         (rb_library_source_library_location_cb): set the first-run done flag
7972         if the user presses close and then sets their watches library
7973         location. Fixes bug 325997.
7975 2006-02-17  James Livingston  <jrl@ids.org.au>
7977         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
7978         removable media manager gobject properties
7980         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
7981         (split_drive_from_cdda_uri),
7982         (rb_removable_media_manager_playing_uri_changed_cb),
7983         (rb_removable_media_manager_load_media): stop polling a cd drive
7984         when we are playing from it. Part of bug 330716.
7986 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7988         * rhythmdb/rhythmdb-query-model.c:
7989         (rhythmdb_query_model_set_property),
7990         (rhythmdb_query_model_finalize),
7991         (rhythmdb_query_model_base_entry_removed):
7992         Propagate entry removal from base models out to attached property
7993         models.  Fixes the rest of #331165.
7995 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7997         * rhythmdb/rhythmdb-property-model.c:
7998         (rhythmdb_property_model_row_inserted_cb),
7999         (rhythmdb_property_model_prop_changed_cb),
8000         (rhythmdb_property_model_insert):
8001         Don't store NULL as a hash table value if we want to use
8002         g_hash_table_lookup to check if a key exists, and get the checks for
8003         how and whether to handle entry changes the right way around.
8004         Fixes #331211 and half of #331165.
8006 2006-02-16  James Livingston  <jrl@ids.org.au>
8008         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
8009         the audio cd's TOC in a separate thread, so it doesn't block the UI.
8010         Fixes bug 329942.
8012 2006-02-16  James Livingston  <jrl@ids.org.au>
8014         * widgets/rb-library-browser.c: (reset_view_cb): make View All
8015         actually reset the browsers.
8017 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8019         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8020         Escape the strings we pass into libnotify so we don't get blank
8021         notifications when the song name contains '&' etc.  Fixes #330784.
8023 2006-02-16  James Livingston  <jrl@ids.org.au>
8025         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8026         enable "View All" when there is only a search box and no browser.
8027         Fixes bug 331395.
8029 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8031         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
8032         popup menu, which I forgot to commit with the patch for bug #330014.
8034 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8036         * shell/rb-shell-player.c: (open_location_thread):
8037         Sync button and entry view state once we've started the player, so the
8038         entry view gets into the playing state for iradio.
8040 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8042         * shell/rb-shell-player.c: (open_location_thread):
8043         Take GDK lock before doing anything UI-related.
8045 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8047         * shell/rb-shell.c: Move 'new iradio station' action to
8048         iradio source.
8050         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8051         (rb_iradio_source_init), (rb_iradio_source_finalize),
8052         (rb_iradio_source_constructor):
8053         Remove some unused stuff.
8055         (guess_uri_scheme), (rb_iradio_source_add_station),
8056         (rb_iradio_source_add_from_playlist),
8057         (impl_get_ui_actions), (new_station_location_added),
8058         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
8059         action, include it in the toolbar, and make sure the URI we add has a
8060         scheme.  Fixes #327059, more or less.
8062 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8064         * sources/rb-play-queue-source.c:
8065         (rb_play_queue_source_class_init),
8066         (rb_play_queue_source_constructor),
8067         (rb_play_queue_source_update_count),
8068         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
8069         Add a toolbar button to clear the play queue, and make it sensitive
8070         only when there are entries in the queue.  Fixes #330014.
8072         * sources/rb-source.c: (_rb_source_register_action_group):
8073         * sources/rb-source.h:  Add helper function to register an
8074         action group for a source.
8076         * sources/rb-library-source.c: (rb_library_source_constructor):
8077         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8078         (register_action_group):  Use _rb_source_register_action_group.
8080 2006-02-15  James Livingston  <jrl@ids.org.au>
8082         * widgets/rb-song-info.c: (rb_song_info_add_completion),
8083         (rb_song_info_constructor), (rb_song_info_set_property): make
8084         tag-editing completion work for albums too.
8086 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8088         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
8089         Check the 'limit' checkbox for time-limited playlists.
8091 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
8093         * widgets/rb-song-info.c: Prove text-completion when editing title,
8094         artist or album
8096 2006-02-14  James Livingston  <jrl@ids.org.au>
8098         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
8099         tray icon popup menu. Fixes bug 331026.
8101 2006-02-14  James Livingston  <jrl@ids.org.au>
8103         * data/iradio-initial.pls: update the Virgin Radio stations to use the
8104         Ogg Vorbis streams, instead of the MP3 ones.
8106 2006-02-14  James Livingston  <jrl@ids.org.au>
8108         * rhythmdb/rhythmdb-property-model.c:
8109         (rhythmdb_property_model_class_init),
8110         (rhythmdb_property_model_drag_data_get):
8111         * rhythmdb/rhythmdb-query-model.c:
8112         (rhythmdb_query_model_title_sort_func):
8113         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
8114         LOCATION as the key. Fixes bug 330601.
8116 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8118         * sources/rb-playlist-source.c: (playlist_iter_func):
8119         Make it compile with older versions of totem-plparser too.      
8121 2006-02-13  James Livingston  <jrl@ids.org.au>
8123         * rhythmdb/rhythmdb.h:
8124         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
8125         structure private, since things should use the accessor functions
8126         rather than manipulating it directly - Only RhythmDB and the
8127         implementation classes should access it directly. Part of the RhythmDB
8128         cleanup of bug 330226.
8130         * iradio/rb-station-properties-dialog.c:
8131         (rb_station_properties_dialog_update_title),
8132         (rb_station_properties_dialog_update_title_entry),
8133         (rb_station_properties_dialog_update_genre),
8134         (rb_station_properties_dialog_update_location),
8135         (rb_station_properties_dialog_update_play_count),
8136         (rb_station_properties_dialog_update_bitrate),
8137         (rb_station_properties_dialog_update_last_played),
8138         (rb_station_properties_dialog_update_rating),
8139         (rb_station_properties_dialog_update_playback_error),
8140         (rb_station_properties_dialog_sync_entries):
8141         * podcast/rb-feed-podcast-properties-dialog.c:
8142         (rb_feed_podcast_properties_dialog_update_title),
8143         (rb_feed_podcast_properties_dialog_update_title_label),
8144         (rb_feed_podcast_properties_dialog_update_author),
8145         (rb_feed_podcast_properties_dialog_update_location),
8146         (rb_feed_podcast_properties_dialog_update_copyright),
8147         (rb_feed_podcast_properties_dialog_update_language),
8148         (rb_feed_podcast_properties_dialog_update_summary):
8149         * podcast/rb-podcast-manager.c:
8150         (rb_podcast_manager_entry_downloaded),
8151         (rb_podcast_manager_db_entry_added_cb),
8152         (download_progress_update_cb),
8153         (rb_podcast_manager_db_entry_deleted_cb):
8154         * podcast/rb-podcast-properties-dialog.c:
8155         (rb_podcast_properties_dialog_update_title),
8156         (rb_podcast_properties_dialog_update_title_label),
8157         (rb_podcast_properties_dialog_update_feed),
8158         (rb_podcast_properties_dialog_update_location),
8159         (rb_podcast_properties_dialog_update_play_count),
8160         (rb_podcast_properties_dialog_update_bitrate),
8161         (rb_podcast_properties_dialog_update_last_played),
8162         (rb_podcast_properties_dialog_update_rating),
8163         (rb_podcast_properties_dialog_update_date),
8164         (rb_podcast_properties_dialog_update_description):
8165         * rhythmdb/rhythmdb-query-model.c:
8166         (rhythmdb_query_model_entry_changed_cb),
8167         (rhythmdb_query_model_remove_from_main_list),
8168         (rhythmdb_query_model_update_limited_entries),
8169         (rhythmdb_query_model_drag_data_get),
8170         (rhythmdb_query_model_album_sort_func):
8171         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8172         (save_entry):
8173         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
8174         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
8175         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
8176         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
8177         (rhythmdb_entry_get_double):
8178         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8179         * shell/rb-play-order-random-by-age-and-rating.c:
8180         (rb_random_by_age_and_rating_get_entry_weight):
8181         * shell/rb-play-order-random-by-age.c:
8182         (rb_random_by_age_get_entry_weight):
8183         * shell/rb-play-order-random-by-rating.c:
8184         (rb_random_by_rating_get_entry_weight):
8185         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
8186         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
8187         (rb_shell_player_set_playing_entry),
8188         (rb_shell_player_sync_replaygain),
8189         (rb_shell_player_sync_with_source),
8190         (rb_shell_player_get_playing_song_duration), (info_available_cb):
8191         * sources/rb-playlist-source.c: (playlist_iter_func),
8192         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
8193         (rb_playlist_source_entry_added_cb):
8194         * sources/rb-podcast-source.c:
8195         (rb_podcast_source_post_status_cell_data_func):
8196         * sources/rb-source.c: (rb_source_update_play_statistics):
8197         * sources/rb-sourcelist-model.c:
8198         (rb_sourcelist_model_drag_data_get):
8199         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
8200         (rb_static_playlist_source_add_entry),
8201         (rb_static_playlist_source_remove_entry):
8202         * widgets/rb-entry-view.c: (type_ahead_search_func),
8203         (rb_entry_view_playing_cell_data_func),
8204         (rb_entry_view_rating_cell_data_func),
8205         (rb_entry_view_pixbuf_clicked_cb):
8206         * widgets/rb-header.c: (rb_header_get_duration):
8207         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
8208         (rb_song_info_populate_dialog),
8209         (rb_song_info_update_playback_error),
8210         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
8211         (rb_song_info_update_location), (rb_song_info_update_play_count),
8212         (rb_song_info_update_last_played), (rb_song_info_update_rating),
8213         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
8214         (rb_song_info_sync_entry_single): fix the huge number of times that
8215         the internals got accessed directly.
8217 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8219         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
8220         trash' are grouped together.
8221         * shell/main.c: (main): Pass no-registration flag in to RBShell
8222         constructor, rather than mysteriously always passing TRUE.
8223         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
8224         Set dirty flag when entries are removed from the model, so the play
8225         queue is marked dirty appropriately.
8226         * AUTHORS: update my email address
8228 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8230         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8232         * widgets/rb-druid.c: (path_dialog_response_cb):
8233         If the URI is local, don't display the 'file://' prefix.  
8234         Fixes #330919.
8236 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8238         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8239         Attach the notification to the tray icon widget, so libnotify
8240         positions it less badly.  Fixes #330876.
8242 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8244         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
8245         Reverse the selection list before returning it, so we get it in the
8246         right order.  Fixes #330283 and some other weirdness.
8248 2006-02-11  James Livingston  <jrl@ids.org.au>
8250         * shell/rb-shell.c: (rb_shell_constructor),
8251         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
8252         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8253         make small-mode and fullscreen mutually exclusive, since they don't
8254         work together
8256         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
8257         Mode.
8259 2006-02-10  James Livingston  <jrl@ids.org.au>
8261         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
8262         since it can cause it to be slower than real-time. Should fix bug
8263         322270.
8265 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8267         * rhythmdb/rhythmdb-query-model.c:
8268         (rhythmdb_query_model_set_property):
8269         Think just a little bit harder about that last commit.
8271 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8273         * rhythmdb/rhythmdb-query-model.c:
8274         (rhythmdb_query_model_set_property):
8275         Get the check for hidden entries the right way around.
8276         Fixes #330527, #330514.
8278         (rhythmdb_query_model_set_sort_order):
8279         Ignore no-op sort order changes, so we don't get critical
8280         messages when selecting 'all' in auto playlist browsers.
8282 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8284         Patch by: Christophe Fergeau  <teuf@gnome.org>
8286         * sources/rb-removable-media-source.c:
8287         (rb_removable_media_source_init),
8288         (rb_removable_media_source_constructor):
8289         Move icon setup code to the constructor, as the volume property
8290         haven't been set yet when _init is called.
8292 2006-02-09  William Jon McCann  <mccann@jhu.edu>
8294         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
8295         Make the source pixbuf a dynamic property.
8297         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
8298         (rb_source_set_pixbuf, rb_source_set_property) 
8299         (rb_source_get_property): Add icon property.
8301         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
8302         (rb_auto_playlist_source_init):
8303         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
8304         (rb_static_playlist_source_init):
8305         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
8306         (rb_removable_media_source_init): 
8307         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
8308         (rb_podcast_source_init): 
8309         * sources/rb-library-source.c (rb_library_source_class_init) 
8310         (rb_library_source_set_property, rb_library_source_get_property): 
8311         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
8312         (rb_iradio_source_init): Remove impl_get_pixbuf and
8313         set icon property on source base class.
8315         * sources/rb-daap-source.c (rb_daap_get_icon): Get
8316         a different icon for when the share is password protected
8317         and locked.
8318         (rb_daap_source_new): Set icon property.
8319         (composite_icons): Composite an emblem on a pixbuf.
8320         (create_pixbufs): Load global pixbufs.
8321         (destroy_pixbufs): unref global pixbufs.
8322         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
8323         (connection_auth_cb, connection_connected_cb) 
8324         (connection_disconnected_cb): Update icon when connection
8325         status changes.
8326         (rb_daap_source_activate): Connect signals.
8328         * daapsharing/rb-daap-share.c (name_collision_cb): Run
8329         dialog with parent.
8331         * daapsharing/rb-daap-marshal.list: Add new signal.
8333         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
8334         (rb_daap_collision_dialog_new_run): Set parent of dialog.
8336         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
8337         Add authenticate, connected, and disconnected signals.
8338         (connection_get_password): emit authenticate signal instead
8339         of running dialog directly.
8340         (connection_connected, connection_disconnected): Emit signals.
8341         (handle_login): Emit connected signal.
8342         (handle_logout): Emit disconnected signal.
8343         (rb_daap_connection_do_something): Fix leak.
8345         Fixes #330291
8347 2006-02-09  James Livingston  <jrl@ids.org.au>
8349         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
8350         entries from the base model if we don't have show-hidden set. Fixes
8351         bug 330514.
8353 2006-02-08  William Jon McCann  <mccann@jhu.edu>
8355         * daapsharing/rb-daap-share.c (message_get_session_id):
8356         Ugh. Use strtoul instead of atoi.
8357         (session_id_validate): Add debug statements.
8359 2006-02-08  William Jon McCann  <mccann@jhu.edu>
8361         * daapsharing/rb-daap-connection.c (http_response_handler):
8362         Report the actual uri from the message in debug statements.
8364 2006-02-08  William Jon McCann  <mccann@jhu.edu>
8366         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
8367         Add context argument.
8368         (message_get_session_id): New function to parse session id from
8369         the message.
8370         (message_get_revision_number): Break out function to parse
8371         revision number from the message.
8372         (session_id_validate): New function to validate given session id
8373         is valid for given context (ie. client address).
8374         (session_id_generate): Generate a random session id.
8375         (session_id_create): Create a unique session id and store it.
8376         (session_id_remove): Remove a session id from the store.
8377         (login_cb): Create a session id instead of using a constant one.
8378         (logout_cb): Validate session id.
8379         (update_cb): Use new message_get_revision_number function.
8380         (databases_cb): Validate session id.
8381         (server_cb): Add server context to argument list for callbacks.  It
8382         is needed to look up the remote host.
8383         (db_entry_changed_cb): Use braces.
8384         (soup_auth_callback): Remove FIXME.
8385         (rb_daap_share_server_start): Create session id store.
8386         (rb_daap_share_server_stop): Destroy session id store.
8388         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
8389         Don't base64-encode password here since it needs to be
8390         combined with the username first.
8392         * daapsharing/rb-daap-connection.c (build_message):
8393         Add username to Authorization token.
8394         (handle_login, handle_song_listing) 
8395         (rb_daap_connection_do_something): Session id
8396         must be an unsigned int.
8398         Fixes #329814
8400 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8402         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
8403         Don't check if we've got a playing entry, ask the player object (duh).
8404         Might actually fix #329993.     
8406 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8408         * sources/rb-static-playlist-source.c:
8409         (rb_static_playlist_source_add_list_uri):
8410         Canonicalise URIs before trying to add them to the playlist, and 
8411         don't try to add files to the database for which there is 
8412         already an entry.
8414 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8416         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
8417         Don't ask the entry view if we're playing, just check if we've got a
8418         playing entry.  Fixes #329993.
8420 2006-02-08  James Livingston  <jrl@ids.org.au>
8422         * rhythmdb/rhythmdb-query-model.c:
8423         (rhythmdb_query_model_set_property),
8424         (rhythmdb_query_model_finalize),
8425         (rhythmdb_query_model_base_complete): remove
8426         rhythmdb_query_model_base_entry_prop_changed, so that two signals
8427         don't get emitted for entry changes. Fixes bug 330301.
8429         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
8430         (rb_library_browser_init), (rb_library_browser_constructor),
8431         (rb_library_browser_new): do stuff in the constructor, not the init
8432         function, so that the db property gets set on RBPropertyViews
8433         correctly. Fixes a crash when dragging properties to a playlist.
8435 2006-02-07  William Jon McCann  <mccann@jhu.edu>
8437         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
8438         Actually stop soup server.  Fixes #329816.
8440 2006-02-07  James Livingston  <jrl@ids.org.au>
8442         * lib/rb-util.h:
8443         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
8444         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
8445         (collate_values_cb), (rb_collate_hash_table_keys),
8446         (rb_collate_hash_table_values): add functions to compare, copy and
8447         free string-lists. add functions to collate the keys or values of a
8448         hash table into a list.
8450         * rhythmdb/rhythmdb-property-model.c:
8451         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
8452         (_remove_entry_cb), (_add_entry_cb),
8453         (rhythmdb_property_model_set_property),
8454         (rhythmdb_property_model_get_property),
8455         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
8456         (rhythmdb_property_model_row_inserted_cb),
8457         (rhythmdb_property_model_prop_changed_cb),
8458         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
8459         that are hidden, storing those that we have counted in a hash-table.
8461         * shell/Makefile.am: fix build order issue
8463         * shell/rb-shell-player.c: (rb_shell_player_set_property):
8464         * sources/rb-source.h:
8465         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8466         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8467         * sources/rb-podcast-source.c: (feed_select_change_cb): add
8468         browser-toggled method, rename _get_exta_views to _get_property_views,
8469         since several things depend on returning only that.
8471         * sources/rb-source.c: (rb_source_class_init),
8472         (rb_source_browser_toggled), (default_get_property_views),
8473         (rb_source_get_property_views), (rb_source_row_deleted_cb),
8474         (rb_source_gather_hash_keys),
8475         (rb_source_gather_selected_properties): above changes, and move some
8476         utility functions up from RBLibraryView
8478         * widgets/rb-property-view.c:
8479         (rb_property_view_selection_changed_cb): fix leak.
8481         * rhythmdb/rhythmdb-query-model.c:
8482         (rhythmdb_query_model_set_property),
8483         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
8484         (rhythmdb_query_model_set_sort_order),
8485         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
8486         query model being resorted.
8488         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
8489         NULL query.
8491         * rhythmdb/rhythmdb.h:
8492         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
8493         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
8494         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
8495         two queries. Add a function to append "property={X,Y,Z,...}" to a
8496         query.
8498         * sources/rb-library-source.c: (rb_library_source_class_init),
8499         (rb_library_source_finalize), (rb_library_source_constructor),
8500         (rb_library_source_cmd_choose_genre),
8501         (rb_library_source_cmd_choose_artist),
8502         (rb_library_source_cmd_choose_album), (impl_search),
8503         (impl_get_property_views), (impl_reset_filters),
8504         (rb_library_source_preferences_sync),
8505         (rb_library_source_browser_views_activated_cb),
8506         (rb_library_source_state_prefs_sync),
8507         (construct_query_from_selection), (rb_library_source_do_query),
8508         (rb_library_source_browser_changed_cb):
8509         * widgets/Makefile.am:
8510         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
8511         browser" widgets, which contains several property views, based on the
8512         code from RBLibrarySource. Make RBLibrarySource use it.
8514         * sources/rb-auto-playlist-source.c:
8515         (rb_auto_playlist_source_class_init),
8516         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
8517         (rb_auto_playlist_source_constructor), (impl_reset_filters),
8518         (impl_get_property_views), (impl_browser_toggled),
8519         (construct_query_from_selection),
8520         (rb_auto_playlist_source_do_query),
8521         (rb_auto_playlist_source_set_query),
8522         (rb_auto_playlist_source_browser_changed_cb): Use the new
8523         library-browser widget to add browsers to automatic playlists.
8525 2006-02-07  James Livingston  <jrl@ids.org.au>
8527         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
8528         properly.
8529         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
8530         type of the source is taken into account. Fixes bug 329621.
8532 2006-02-07  James Livingston  <jrl@ids.org.au>
8534         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8535         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
8536         1.1, and perform URI canonicalistion when first upgrading. This should
8537         fix our remaining canonicalisation issues, such as bug 329988.
8539 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
8541         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
8542         Track the playing entry when the entry view isn't in the playing
8543         state, so we don't have to get the state changes exactly right.
8544         Fixes #330135.
8546 2006-02-06  James Livingston  <jrl@ids.org.au>
8548         * shell/rb-shell-player.c: (open_location_thread),
8549         (rb_shell_player_open_location): fix several iradio issues: having to
8550         press play after double-clicking on a station, not working correctly
8551         without a http:// prefix, and ignoring totem-plparser results other
8552         than success or error (e.g. IGNORE).
8554 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
8556         Addition of dbus methods for dealing with static playlists and the
8557         play queue.  Fixes #329958.
8559         * shell/Makefile.am:
8560         * shell/rb-playlist-manager.h:
8561         * shell/rb-playlist-manager.xml:
8562         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
8563         (rb_playlist_manager_get_playlists),
8564         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
8565         (rb_playlist_manager_create_static_playlist),
8566         (rb_playlist_manager_delete_playlist),
8567         (rb_playlist_manager_add_to_playlist),
8568         (rb_playlist_manager_remove_from_playlist),
8569         (rb_playlist_manager_export_playlist):
8570         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
8571         to create, delete, list, modify, export, and import  static playlists.
8572         
8573         * shell/main.c: (main): Register playlist manager object with dbus.
8575         * shell/rb-shell.h:
8576         * shell/rb-shell.xml:
8577         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
8578         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
8579         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
8580         object, and implement the addToQueue and removeFromQueue methods.
8581         
8582         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
8583         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
8584         formats.
8586 2006-02-05  James Livingston  <jrl@ids.org.au>
8588         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
8589         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
8590         (save_entry): allow storage of booleans in the on-disk db, and
8591         save/load the HIDDEN property.
8593         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
8594         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
8595         to the state it was when RB shutdown. This makes RB appear to start
8596         faster, as tracks can appear before the stat is done. Remote files
8597         still start hidden. From bug 325215.
8599 2006-02-05  James Livingston  <jrl@ids.org.au>
8601         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
8602         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
8603         really cares about the difference from "entry-added", and it isn't
8604         emitted by the tree backend anyway.
8606         * rhythmdb/rhythmdb-query-model.c:
8607         (rhythmdb_query_model_constructor):
8608         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8609         remove the references to the entry-restored signal.
8611 2006-02-05  James Livingston  <jrl@ids.org.au>
8613         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
8614         issue.
8616 2006-02-05  James Livingston  <jrl@ids.org.au>
8618         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
8619         things are NULL before using g_object_unref. Fixes bug 327452.
8621         * player/rb-recorder-gst.c: (rb_recorder_construct):
8622         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
8623         rather than assertion.
8625         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
8626         emit a warning, rather than asserting if an unknown playlist type is
8627         encountered.
8629 2006-02-05  James Livingston  <jrl@ids.org.au>
8631         * widgets/Makefile.am:
8632         * widgets/rb-simple-view.c:
8633         * widgets/rb-simple-view.h: Move the two features that this class
8634         provides into RBPropertyView, and remove this class. Closes bug
8635         327500.
8637         * podcast/rb-feed-podcast-properties-dialog.c:
8638         * podcast/rb-feed-podcast-properties-dialog.h:
8639         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8640         (rb_podcast_source_feeds_show_popup_cb):
8641         * sources/rb-podcast-source.h:
8642         * widgets/rb-property-view.c: (rb_property_view_class_init),
8643         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
8644         (rb_property_view_append_column_custom),
8645         (rb_property_view_button_press_cb):
8646         * widgets/rb-property-view.h: Updated for the above change.
8648 2006-02-04  James Livingston  <jrl@ids.org.au>
8650         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
8651         too close to Move to Trash and people aren't likely to use it often.
8653 2006-02-04  James Livingston  <jrl@ids.org.au>
8655         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
8657 2006-02-04  James Livingston  <jrl@ids.org.au>
8659         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
8660         passed a path instead of a URI.
8662         * sources/rb-generic-player-source.c: (default_get_mount_path):
8663         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
8664         the path. This fixes bug 329723.
8666 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
8668         * daapsharing/rb-daap-structure.c:
8669         (rb_daap_content_code_string_as_int32):
8670         Use network byte order.
8672 2006-02-03  William Jon McCann  <mccann@jhu.edu>
8674         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
8675         Use a hash for source lookup.
8676         (mdns_service_added, mdns_service_removed): Handle
8677         service-added and service-removed signals from RBDaapMdnsBrowser.
8678         (remove_source): GDestroyNotify function for when sources
8679         are removed from the hash.
8680         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
8681         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
8682         (rb_daap_sources_shutdown): Update.
8683         (source_host_find): GHRFunc for finding a source by ip.
8684         (rb_daap_source_find_for_uri): Use the hash source lookup.
8686         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
8687         Namespace keys.
8688         (password_check_button_toggled_cb): Handle password enabled.
8689         (share_name_entry_focus_out_event_cb): Namespace keys.
8690         Handle changes more robustly.
8691         (share_password_entry_focus_out_event_cb): Handle password entry.
8692         (add_daap_preferences): Connect to password signals.
8694         * lib/rb-preferences.h: Add DAAP keys.
8696         * data/glade/daap-prefs.glade: Add password UI.
8698         * data/rhythmbox.schemas: Add password keys.
8700         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
8701         assert with warning.
8703         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
8704         gconf keys to lib/rb-preferences.h.  Namespace
8705         the gconf keys.
8706         (create_share): Add password support.
8707         (enable_sharing_changed_cb): Namespaced keys.
8708         (require_password_changed_cb): Handle key change.
8709         (share_name_changed_cb): Namespaced keys.
8710         (share_password_changed_cb): Handle key change.
8711         (rb_daap_sharing_init): Namespaced keys.
8712         (rb_daap_sharing_shutdown): Ditto.
8714         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
8715         Add password property.
8716         (rb_daap_share_set_name): Break out prop set function.
8717         (published_cb): New RBDaapMdnsPublisher signal handler.
8718         (name_collision_cb): Ditto.
8719         (rb_daap_share_init): Create publisher object and
8720         connect to signals.
8721         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
8722         (rb_daap_share_set_property): Break out prop set functions.
8723         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
8724         Unref publisher.
8725         (rb_daap_share_new): Add password argument.  Start
8726         publishing and DAAP server.
8727         (message_set_from_rb_daap_structure): Change print to debug.
8728         (server_info_cb): Set auth method to publish.
8729         (logout_cb): Handle DAAP client logout.
8730         (update_cb): Remove C++ comments.
8731         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
8732         (server_cb): Add debug.
8733         (soup_auth_callback): Handle auth requests.
8734         (rb_daap_share_server_start): Split up functions for starting
8735         server and publishing.  Add auth handling to server.
8736         (rb_daap_share_server_stop): Split stop server and publish.
8737         No C++ comments.
8738         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
8739         Start and stop publishing.
8740         (rb_daap_share_restart): Restart server and publishing.
8741         (rb_daap_share_maybe_restart): Conditionally restart.
8743         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
8744         (rb_daap_collision_dialog_new_run): Don't use
8745         separators in dialogs.
8747         * daapsharing/rb-daap-connection.h: Add private
8748         data to class structure.
8750         * daapsharing/rb-daap-connection.c: Move
8751         some includes to top of file.  Make private
8752         data struct name consistent with others.
8753         (rb_daap_connection_class_init): Rename
8754         private.
8755         (rb_daap_connection_init): Get and store the pointer
8756         to the private data once instead of in every
8757         function.  Create a username value "Rhythmbox_VERSION".
8758         (connection_get_password): Don't get private.
8759         (build_message): Ditto.
8760         (http_response_handler): Don't init variables in
8761         declaration.  Add debug.  Spacing.
8762         (http_get, entry_set_string_prop, handle_server_info) 
8763         (handle_login, handle_update, handle_database_info) 
8764         (handle_song_listing, handle_playlists, handle_playlist_entries) 
8765         (rb_daap_connection_constructor, rb_daap_connection_logout) 
8766         (rb_daap_connection_state_done): Don't get private.
8767         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
8768         spacing.  Correctly base64 encode the Authentication token.
8769         Add username to auth token.
8770         (rb_daap_connection_get_playlists): Don't get private.
8771         (rb_daap_connection_dispose): Ditto.  Free username.
8772         (rb_daap_connection_set_property) 
8773         (rb_daap_connection_get_property): Don't get private.
8775         * daapsharing/Makefile.am: Conditionally
8776         compile MDNS backends.  Add marshall stuff.
8778         * daapsharing/.cvsignore: Update.
8780         * configure.ac: Add conditional to see which
8781         MDNS backend we should use.
8783         * daapsharing/rb-daap-mdns.[ch]: Removed files.
8785         * daapsharing/rb-daap-marshal.list:
8786         * daapsharing/rb-daap-mdns-browser-avahi.c:
8787         * daapsharing/rb-daap-mdns-browser-howl.c:
8788         * daapsharing/rb-daap-mdns-browser.h:
8789         * daapsharing/rb-daap-mdns-publisher-avahi.c:
8790         * daapsharing/rb-daap-mdns-publisher-howl.c:
8791         * daapsharing/rb-daap-mdns-publisher.h:
8792         Split rb-daap-mdns.c into two classes.  One for
8793         publishing and one for browsing.  Split out
8794         the avahi and howl backends into different files.
8796         Fixes #322966
8797         
8798 2006-02-04  James Livingston  <jrl@ids.org.au>
8800         patch by: Jan Schmidt <thaytan@mad.scientist.com>
8802         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
8803         crash if metadata reader gives us NULL for strings.
8805 2006-02-03  James Livingston  <jrl@ids.org.au>
8807         * shell/rb-shell-player.c: (open_location_thread),
8808         (rb_shell_player_open_location):
8809         retrieve iradio playlists files in a thread, so that with GStreamer
8810         0.10 the UI doesn't block while connecting to stations. The streamer
8811         connection is synchronous with 0.8, so that will still block (a bit).
8812         Fixed bug 128106.
8814         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
8815         because _open_entry does that automatically when it is ready to.
8817 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
8819         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8820         (rb_podcast_source_post_status_cell_data_func):
8821         Leave the podcast status column blank for episodes that have not been
8822         downloaded.
8824 2006-02-03  James Livingston  <jrl@ids.org.au>
8826         Add support for source-specific toolbar items, and make the Burn
8827         Playlist item only available for playlists. Also add Update All
8828         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
8830         * data/ui/rhythmbox-ui.xml:
8831         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8832         (impl_get_ui_actions): make the Burn CD toolbar item only for
8833         playlists
8835         * lib/rb-stock-icons.c: (rb_stock_icons_init):
8836         * lib/rb-stock-icons.h: load the Eject icon as stock.
8838         * shell/rb-removable-media-manager.c: use the eject icon for the eject
8839         action
8841         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
8842         (rb_shell_select_source):
8843         * sources/rb-source.c: (rb_source_class_init),
8844         (rb_source_disconnect), (default_get_ui_actions),
8845         (rb_source_get_ui_actions):
8846         * sources/rb-source.h: add support for source-specific toolbar items
8848         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
8849         Eject and Rip toolbar items
8851         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
8852         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
8853         item.
8855 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
8857         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
8858         * shell/main.c: (main):
8859         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
8860         Replace all g_critical calls with g_warning, since none of them are
8861         the sort of thing the process should die over.  Fixes #329398.
8863 2006-02-03  James Livingston  <jrl@ids.org.au>
8865         * configure.ac: mention gst-plugins-base in the error message for not
8866         finding GStreamer 0.10, since not having that will cause it to fail.
8868 2006-02-03  James Livingston  <jrl@ids.org.au>
8870         * configure.ac: fix typo that means you get the wrong error message if
8871         you explicity request a particular playback engine, and it can't be
8872         found.
8874 2006-02-03  James Livingston  <jrl@ids.org.au>
8876         * data/glade/library-prefs.glade: allow the watched library location
8877         to be a non-local place.
8879 ============ Version 0.9.3
8882 2006-02-02  James Livingston  <jrl@ids.org.au>
8884         * NEWS: update NEWS
8885         * configure.ac: bump version to 0.9.3
8887         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
8888         <caillon@redhat.com>, fixed bug 329517. 
8890 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
8892         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
8894         * widgets/rb-song-info.c: (rb_song_info_constructor):
8895         Make year and disc number fields non-editable if tag editing
8896         is disabled.  Fixes #329463.
8898 2006-02-01  James Livingston  <jrl@ids.org.au>
8900         * rhythmdb/rhythmdb-property-model.c:
8901         (rhythmdb_property_model_row_inserted_cb),
8902         (rhythmdb_property_model_prop_changed_cb),
8903         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
8904         correctly. Fixes bug 327061.
8906         * rhythmdb/rhythmdb-query-model.c:
8907         (rhythmdb_query_model_entry_changed_cb): emit change notification of
8908         the HIDDEN property when an entry is removed for being hidden.
8910         * rhythmdb/rhythmdb-query-model.h:
8911         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8912         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
8913         models's "connected" property. Whatever it was needed for seems to
8914         have gone.
8916 2006-02-01  James Livingston  <jrl@ids.org.au>
8918         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
8920         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
8921         (rb_shell_player_playing_changed_cb): block the signal to prevent
8922         re-entrancy. Fixes bug 329329 and fixes the first click of the play
8923         button pausing.
8925 2006-02-01  James Livingston  <jrl@ids.org.au>
8927         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
8928         /should/ now work, if the neccessary plugins get ported.
8930 2006-01-30  James Livingston  <jrl@ids.org.au>
8932         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
8933         string properties to "Unknown" is the string is empty. Kind of fixes
8934         bug 327495.
8936         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
8937         gettext calls once, rather than once per time the function is used.
8938         This stops us making tens of thousands of gettext calls on startup,
8939         which reduces the cpu-time of startup by 10-20%
8941 2006-01-29  James Livingston  <jrl@ids.org.au>
8943         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
8944         (rhythmdb_add_uri):
8945         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
8946         for files containing known video streams.
8949 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
8951         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
8952         required.
8954 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
8956         * INSTALL.quick: More random updates
8958         * rhythmdb/rhythmdb-query-model.c:
8959         (rhythmdb_query_model_class_init),
8960         (rhythmdb_query_model_set_property),
8961         (rhythmdb_query_model_get_property),
8962         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
8963         Remove user sort data handling, take a property ID and a reverse
8964         flag instead.
8965         (rhythmdb_query_model_insert_into_main_list),
8966         (rhythmdb_query_model_insert_into_limited_list),
8967         (rhythmdb_query_model_do_reorder),
8968         (_reverse_sorting_func):
8969         Handle reverse sorting by calling _reverse_sorting_func, which
8970         calls the real sort function and reverses the result.
8971         (rhythmdb_query_model_set_sort_order):
8972         Allow this to be called to set the initial sort order for limited
8973         queries, and handle reverse sorting when reordering.
8974         (rhythmdb_query_model_location_sort_func),
8975         (rhythmdb_query_model_album_sort_func),
8976         (rhythmdb_query_model_artist_sort_func),
8977         (rhythmdb_query_model_genre_sort_func),
8978         (rhythmdb_query_model_track_sort_func),
8979         (rhythmdb_query_model_double_ceiling_sort_func),
8980         (rhythmdb_query_model_ulong_sort_func),
8981         (rhythmdb_query_model_date_sort_func),
8982         (rhythmdb_query_model_string_sort_func):
8983         Sort functions moved from rb-entry-view.c.
8984         * rhythmdb/rhythmdb-query-model.h:
8985         Add the sort functions, and update the changed functions.
8986         
8987         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
8988         Just call _resort_model when the query model is set, since it
8989         does all the same things.
8990         (rb_entry_view_append_column):
8991         Rework bits so the rating column doesn't have to be so much of a
8992         special case.
8993         (rb_entry_view_append_column_custom):
8994         Take a property ID to sort on, rather than arbitrary custom data.
8995         (rb_entry_view_resort_model):
8996         Query model does all the reverse sort handling now.
8997         * widgets/rb-entry-view.h: Update _append_column_custom.
8999         * sources/rb-play-queue-source.c:
9000         (rb_play_queue_source_constructor):
9001         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9002         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9003         (rb_podcast_source_post_date_cell_sort_func),
9004         (rb_podcast_source_post_status_cell_sort_func),
9005         (rb_podcast_source_post_feed_cell_sort_func):
9006         Updates required by all the other changes.
9008         * rhythmdb/rhythmdb-property-model.c:
9009         (rhythmdb_property_model_drag_data_get):
9010         Sort the query results on the selected property,
9011         so they arrive in the expected order.  All the other changes were made
9012         to make this possible.  Fixes bug #327494.
9014 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9015         
9016         * shell/rb-shell-clipboard.c:
9017         Use GTK_STOCK_REMOVE icon for the remove action in
9018         the play queue too.
9020 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9022         * sources/rb-play-queue-source.c:
9023         (rb_play_queue_source_constructor),
9024         (rb_play_queue_source_update_count):
9025         Don't make the 'queued songs' column clickable,
9026         and add the queued song count to the column title.
9028 2006-01-29  James Livingston  <jrl@ids.org.au>
9030         * configure.ac: remove "experimental" marking from DAAP, and enable by
9031         default if the dependencies are found.
9033 2006-01-29  James Livingston  <jrl@ids.org.au>
9035         * NEWS: update NEWS
9037 2006-01-29  James Livingston  <jrl@ids.org.au>
9039         patch by: William Jon McCann  <mccann@jhu.edu>
9041         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9042         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
9043         property used for the feed list. Fixes problem with feeds with no
9044         episodes not showing up.
9046 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9047         
9048         * shell/rb-play-order-random-by-age-and-rating.c:
9049         (rb_random_by_age_and_rating_get_entry_weight):
9050         Fix compile errors, bug #328978.
9052 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
9054         * INSTALL.quick, README: Random updates
9055         * README.lirc: Add notes on controlling Rhythmbox with LIRC
9057 2006-01-28  James Livingston  <jrl@ids.org.au>
9059         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
9060         default rating back to 0 (from 2.5, which was needed for autorating).
9062         * shell/rb-play-order-random-by-age-and-rating.c:
9063         (rb_random_by_age_and_rating_get_entry_weight):
9064         * shell/rb-play-order-random-by-rating.c:
9065         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
9066         2.5 for the purposes of weighting entries.
9068 2006-01-28  James Livingston  <jrl@ids.org.au>
9070         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
9071         translator comments, to make it clearer what the "friendly time"
9072         formatting strings mean.
9074 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9076         * daapsharing/rb-daap-connection.c: (http_response_handler):
9077         Fix the sense of the overflow check so it'll accept valid input.
9079 2006-01-27  James Livingston  <jrl@ids.org.au>
9081         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9083         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
9084         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
9086 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9088         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9089         
9090         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
9091         Don't include the artist field in the window title if it's blank.
9092         Fixes #325973.
9094 2006-01-26  William Jon McCann  <mccann@jhu.edu>
9096         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
9097         Use stock delete icon for move to trash and stock remove
9098         for remove menu item.
9100 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
9102         * shell/rb-shell.c: (rb_shell_constructor),
9103         (idle_handle_load_complete):  Don't start the playlist save
9104         timeout until we've loaded the playlists, otherwise we'll
9105         write an empty playlist file if startup takes too long.
9107 2006-01-25  William Jon McCann  <mccann@jhu.edu>
9109         * shell/rb-shell.c: Make view toolbar toggle use
9110         shift+ctrl+t.  Fixes #327585.
9112 2006-01-25  James Livingston  <jrl@ids.org.au>
9114         patch by: Christope Fergeau  <teuf@gnome.org>
9116         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
9117         (http_response_handler): fix a potential buffer overflow issue.
9119 2006-01-25  James Livingston  <jrl@ids.org.au>
9121         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
9122         Year column wide enough to display "Unknown"
9124 2006-01-25  James Livingston  <jrl@ids.org.au>
9126         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9127         (rb_podcast_source_post_status_cell_data_func): make the episode
9128         status wording better. Part of bug 321607.
9130 2006-01-25  James Livingston  <jrl@ids.org.au>
9132         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
9133         others with a separator.
9135         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
9136         stock Delete icon.
9138 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
9140         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
9142 2006-01-23  James Livingston  <jrl@ids.org.au>
9144         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
9145         0.3.2. Fixed bug 328158.
9147 2006-01-23  James Livingston  <jrl@ids.org.au>
9149         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
9150         (gulong_gst_date_transform), (rb_metadata_class_init):
9151         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
9153 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
9155         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
9156         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
9157         (record_entry_change): Protect added_entries and changed_entries with
9158         a mutex, so it doesn't crash on startup on SMT/SMP machines.
9160 2006-01-23  James Livingston  <jrl@ids.org.au>
9162         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
9163         the browser for audio CDs.
9165 2006-01-22  James Livingston  <jrl@ids.org.au>
9167         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
9168         NEVER_FAIL as it causes the daemon-not-running error to never be
9169         reported, resulting in bug 319438 re-occurring.
9171 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9173         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
9174         Just call the podcast manager's update method.  Unbreaks the 'update
9175         all feeds' command.
9177 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9179         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
9181 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
9183         * configure.ac: Don't disable DAAP with gstreamer 0.10
9185         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
9186         (rb_daap_src_class_init), (rb_daap_src_init),
9187         (rb_daap_src_finalize), (rb_daap_src_set_property),
9188         (rb_daap_src_get_property), (rb_daap_src_write),
9189         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
9190         (_split_uri), (rb_daap_src_open):
9191         * daapsharing/rb-daap-src.h:
9192         Mostly fix seeking, handle chunked transfer encoding, and port to
9193         gstreamer 0.10.
9194         
9195         * player/rb-player-gst.c:
9196         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
9197         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
9199         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
9200         being fixed.
9202 2006-01-21  James Livingston  <jrl@ids.org.au>
9204         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
9205         for Year metadata in DAAP sources. Fixes bug 327700.
9207         * daapsharing/rb-daap-connection.c: (handle_song_listing):
9209 2006-01-20  William Jon McCann  <mccann@jhu.edu>
9211         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
9212         enum values instead of magic numbers.
9214         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
9215         Add number of songs that match each property title into
9216         the cell.  Also show the number of properties that match
9217         in the All entry.
9218         (rb_property_view_constructor): Use enum values instead of
9219         magic numbers.
9221         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
9222         Query podcast posts instead of feeds for browser.  Use
9223         post SUBTITLE which is the location for the property view.
9224         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
9225         (construct_query_from_selection) 
9226         (rb_podcast_source_cmd_delete_feed) 
9227         (rb_podcast_source_cmd_properties_feed) 
9228         (rb_podcast_source_cmd_update_feed): Use variable to make
9229         it clear what the selection data represents.
9230         (rb_podcast_source_feed_title_cell_data_func): Add number
9231         of posts that belong to each feed in the browser.
9233         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
9234         (rhythmdb_property_model_delete_prop): Decrement the refcount
9235         for the All entry.
9236         (rhythmdb_property_model_get_column_type): Use column enum
9237         values instead of magic numbers.  Add NUMBER column.
9238         (rhythmdb_property_model_get_value): Use enum.
9239         Add NUMBER column that represents the refcount for
9240         the title of that property.
9241         (rhythmdb_property_model_perform_sync): Don't fake up
9242         a title for All here.
9244         Fixes #327372.
9245         
9246 2006-01-21  James Livingston  <jrl@ids.org.au>
9248         Make Rhythmbox start faster by not blocking the UI while database
9249         initialisation and loading occurs. Closes bug 323348.
9251         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
9252         start 10 seconds later instead of immediately.
9253         
9254         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
9255         safe to call from any thread.
9257         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
9258         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
9259         so the UI doesn't block.
9261 2006-01-18  James Livingston  <jrl@ids.org.au>
9263         * sources/rb-static-playlist-source.c:
9264         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
9265         cause crashes. Oops. fixes bug 327477.
9267 2006-01-17  William Jon McCann  <mccann@jhu.edu>
9269         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
9270         Set GST element state to NULL before unreffing.
9271         Fixes #327422.
9273 2006-01-18  James Livingston  <jrl@ids.org.au>
9275         * sources/rb-static-playlist-source.c:
9276         (rb_static_playlist_source_do_query): don't filter on the SONG entry
9277         type, since the playlists can contain non-song entries. Fixes bug
9278         327448.
9280         * sources/rb-play-queue-source.c:
9281         (rb_play_queue_source_class_init): disable the search box for the
9282         queue.
9284 2006-01-18  James Livingston  <jrl@ids.org.au>
9286         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
9287         dragging of podcast episodes. Fixed bug 327450.
9289 2006-01-18  James Livingston  <jrl@ids.org.au>
9291         * rhythmdb/rhythmdb-query-model.c:
9292         (rhythmdb_query_model_drag_data_received): fix possible assertion when
9293         dragging to an emoty playlist.
9295 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
9297         * sources/rb-playlist-source-recorder.c:
9298         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
9300 2006-01-17  James Livingston  <jrl@ids.org.au>
9302         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9304         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
9305         different number of tracks than exist on the cd, since that happens
9306         with audio+data hybrid CDs. Part of bug 325046.
9308 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
9310         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9311         Remove useless call to gtk_tree_view_column_set_clickable().
9313         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
9314         Don't store sort data for columns if the sort function is NULL,
9315         so only sortable columns will be in the column sort data map.
9316         (rb_entry_view_set_columns_clickable): Only make columns we can sort
9317         on clickable.
9318         (rb_entry_view_constructor):  The 'playing icon' column is never
9319         clickable, so don't connect a signal handler for it.
9321         Fixes bug 326811.
9323 2006-01-17  James Livingston  <jrl@ids.org.au>
9325         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
9326         are 0.8 only. Fix element detection.
9328         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
9329         saving the new metadata failed
9331 2006-01-17  James Livingston  <jrl@ids.org.au>
9333         * shell/rb-shell-player.c: (do_next_idle),
9334         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
9335         (eos_cb): release audio device when a playlist finishes. Fixes bug
9336         323679.
9338 2006-01-17  James Livingston  <jrl@ids.org.au>
9340         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
9341         canonicalise the URIs when things are added via library watching.
9343 2006-01-16  William Jon McCann  <mccann@jhu.edu>
9345         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
9346         Off by one error in default speed index.
9348 2006-01-16  William Jon McCann  <mccann@jhu.edu>
9350         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
9351         (update_speed_combobox, update_speed_combobox):
9352         Get a list of the actually supported write speeds from
9353         n-c-b >= 2.13.90.  Otherwise use fallback list.
9355 2006-01-17  James Livingston  <jrl@ids.org.au>
9357         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
9358         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
9359         don't get stuck on recursive symlinks. Fixed bug 125452.
9361 2006-01-17  James Livingston  <jrl@ids.org.au>
9363         Add support for mass-storage audio players. Players are detected via
9364         either the HAL "audio_player" capability, or a ".is_audio_player" file
9365         in the root of the volume. Closes bug 325602.
9367         * configure.ac: separate using HAL from ipod support.
9369         * lib/rb-file-helpers.c: (rb_uri_is_local):
9370         * lib/rb-file-helpers.h: add function to determine whether a URI is
9371         local.
9373         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9374         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
9375         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
9376         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
9377         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
9378         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
9379         directories can be scanned for files to add as  non-SONG entries.
9381         * shell/rb-removable-media-manager.c:
9382         (rb_removable_media_manager_mount_volume): add checking for
9383         mass-storage players.
9385         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
9386         * sources/rb-ipod-source.c: (rb_ipod_source_new),
9387         (hal_udi_is_ipod):
9388         * sources/rb-removable-media-source.c:
9389         (rb_removable_media_source_class_init),
9390         (rb_removable_media_source_constructor): move some things up to the
9391         RBRemovableMediaSource, rather than making subclasses do it.
9393         * sources/Makefile.am:
9394         * sources/rb-generic-player-source.c:
9395         * sources/rb-generic-player-source.h: add mass-storage player source.
9397 2006-01-16  James Livingston  <jrl@ids.org.au>
9399         patch by: William Jon McCann  <mccann@jhu.edu>
9401         * rhythmdb/rhythmdb-query-model.c:
9402         (rhythmdb_query_model_base_row_deleted): fix build issue from last
9403         commit.
9405 2006-01-16  James Livingston  <jrl@ids.org.au>
9407         Patch to add support for "chained queries" and putting hidden tracks
9408         in query models. Use chained queries to add search box support to
9409         normal playlists, and to make hidden entries not get lost. Fixes bug
9410         319278.
9412         * rhythmdb/rhythmdb-query-model.h:
9413         * rhythmdb/rhythmdb-query-model.c:
9414         (rhythmdb_query_model_class_init),
9415         (rhythmdb_query_model_set_property),
9416         (rhythmdb_query_model_get_property):
9417         (rhythmdb_query_model_finalize): add "show-hidden" and
9418         "base-model" properties.
9420         (rhythmdb_query_model_set_connected),
9421         (rhythmdb_query_model_has_pending_changes),     
9422         (rhythmdb_query_model_entry_added_cb),
9423         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
9424         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
9425         (rhythmdb_query_model_remove_entry),
9426         (rhythmdb_query_model_drag_data_received),
9427         (rhythmdb_query_model_base_row_inserted),
9428         (rhythmdb_query_model_base_row_deleted),
9429         (rhythmdb_query_model_base_non_entry_dropped),
9430         (rhythmdb_query_model_base_complete),
9431         (rhythmdb_query_model_base_entry_prop_changed),
9432         (rhythmdb_query_model_base_rows_reordered),
9433         (rhythmdb_query_model_row_drop_possible): handle base-model by
9434         chaining events and operations where necessary. Make hidden entries
9435         not get added only if "show-hidden" is false.
9437         (rhythmdb_query_model_child_index_to_base_index),
9438         (rhythmdb_query_model_base_index_to_child_index),
9439         (rhythmdb_query_model_get_entry_index): utility functions for handling
9440         base-model entries.
9442         (rhythmdb_query_model_reapply_query): apply the current query, and
9443         remove entries that don't match it.
9445         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
9446         empty queries.
9448         * sources/rb-source.c: (rb_source_set_property): move the unref later
9449         to fix problem if it is the last reference.
9451         * sources/rb-static-playlist-source.c:
9452         (rb_static_playlist_source_class_init),
9453         (rb_static_playlist_source_init),
9454         (rb_static_playlist_source_finalize),
9455         (rb_static_playlist_source_constructor), (impl_reset_filters),
9456         (impl_search), (rb_static_playlist_source_do_query),
9457         (impl_save_contents_to_xml),
9458         (rb_static_playlist_source_add_location_internal): use a chained query
9459         model to filter out hidden entries and implement the search box.
9461 2006-01-15  James Livingston  <jrl@ids.org.au>
9463         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
9464         the default playlist loading, which I broke earlier.
9466 2006-01-15  James Livingston  <jrl@ids.org.au>
9468         patch by: William Jon McCann  <mccann@jhu.edu>
9470         * sources/rb-playlist-source.c: (playlist_iter_func): use
9471         totem-plparser's new API version macros to check for API changes.
9472         Handle the recent API change.
9474 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
9476         * sources/rb-library-source.c: (impl_get_config_widget):
9477         Ref the preferences object to match the unref in the
9478         finalizer.  Fixes some portion of #323505.
9480 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
9482         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
9483         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
9484         Fix valgrind warnings about accessing uninitialised values.
9486 2006-01-14  William Jon McCann  <mccann@jhu.edu>
9488         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
9490 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
9492         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
9493         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
9494         Stops the 'now playing' icon from being displayed after the play
9495         order finishes.
9497 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
9499         * podcast/rb-podcast-manager.c:
9500         (rb_podcast_manager_db_entry_deleted_cb):
9501         Don't try to delete files we never downloaded, and cancel downloads
9502         for deleted episodes.  Fixes bug #326862.
9503         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
9504         Don't complain about NULL data items in the selection list.
9506 2006-01-14  James Livingston  <jrl@ids.org.au>
9508         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
9509         Make the name ofthe queue non editable. Fixes bug 326918.
9511 2006-01-13  William Jon McCann  <mccann@jhu.edu>
9513         * sources/rb-playlist-source-recorder.c (burn_cd) 
9514         (ask_rewrite_disc): Don't use our locally copied functions
9515         if we have at least 2.13.
9517 2006-01-13  William Jon McCann  <mccann@jhu.edu>
9519         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
9520         Correct the argument type for the process_error signal.
9521         May fix bug #323154.
9523 2006-01-13  James Livingston  <jrl@ids.org.au>
9525         save the queue to disk when exiting, and reload on startup. Fixed bug
9526         326677 .
9528         * shell/rb-playlist-manager.c:
9529         (rb_playlist_manager_load_playlists),
9530         (rb_playlist_manager_save_playlists_async): don't disable saving of
9531         the queue
9533         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
9534         add the queue source as a gobject property.
9536         * sources/rb-play-queue-source.c:
9537         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
9538         code to save the queue to xml
9540         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9541         load the queue from xml.
9542         * sources/rb-playlist-xml.h:
9544         * sources/rb-static-playlist-source.c:
9545         (rb_static_playlist_source_load_from_xml),
9546         (rb_static_playlist_source_new_from_xml):
9547         * sources/rb-static-playlist-source.h: split the playlist xml loading
9548         from the static playlist creation function, so the queue can use it.
9550 2006-01-13  James Livingston  <jrl@ids.org.au>
9552         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
9553         assertion that should be there. Fixes bug 325923.
9554         
9555         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
9556         return NULL if the entry already exists (e.g. as another type).
9557         * daapsharing/rb-daap-connection.c: (handle_song_listing):
9558         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
9559         (rb_podcast_manager_insert_feed):
9560         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
9561         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
9562         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
9563         for the above function returning NULL.
9565 2006-01-12  James Livingston  <jrl@ids.org.au>
9567         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
9568         is enabled. Fixes bug 326673.
9569         
9570         * doc/reference/tmpl/eggtrayicon.sgml:
9571         * doc/reference/tmpl/rb-daap-src.sgml:
9572         * doc/reference/tmpl/rb-source.sgml:
9573         * doc/reference/tmpl/rb-statusbar.sgml:
9574         * doc/reference/tmpl/rb-tree-model-sort.sgml:
9575         * doc/reference/tmpl/rhythmbox-unused.sgml:
9576         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
9578 2006-01-11  James Livingston  <jrl@ids.org.au>
9580         * widgets/rb-song-info.c: (rb_song_info_constructor),
9581         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
9582         (rb_song_info_populate_dialog): fill in the fields if all tracks have
9583         the same value for properties. From bug 326054.
9585 2006-01-11  James Livingston  <jrl@ids.org.au>
9587         * sources/rb-source.h:
9588         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
9589         (rb_shell_player_set_playing_source_internal), (eos_cb):
9590         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
9591         every entry.
9593         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
9594         source use this. Closes bug 322077.
9596 2006-01-10  William Jon McCann  <mccann@jhu.edu>
9598         * widgets/eggtrayicon.c (egg_tray_icon_notify):
9599         In order for set_icon_data_from_pixbuf() to be
9600         effective, one must not set an icon in _new().
9602 2006-01-10  William Jon McCann  <mccann@jhu.edu>
9604         * widgets/eggtrayicon.c (egg_tray_icon_init) 
9605         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
9606         (egg_tray_icon_notify): Add support for libnotify 0.3.
9607         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
9608         * configure.ac: Determine the version of libnotify.
9609         Fixes #326333.
9611 2006-01-08  James Livingston  <jrl@ids.org.au>
9613         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
9614         trying to share a track with unknown length.
9616 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
9618         * shell/rb-shell-player.c: (rb_shell_player_init):
9619         Sync volume on startup so it doesn't default to 0.
9621 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
9623         * shell/rb-shell-player.c: (rb_shell_player_class_init),
9624         (rb_shell_player_get_property), (rb_shell_player_open_location),
9625         (info_available_cb):  Add the iradio streamed song title as a
9626         property, and emit a signal when it changes.
9628         * shell/rb-shell.c: (rb_shell_constructor),
9629         (rb_shell_player_elapsed_changed_cb),
9630         (rb_shell_player_stream_song_changed_cb):
9631         Issue a notification when the iradio song title changes.
9632         Fixes #326166.
9634 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
9636         * shell/rb-shell-player.c: (rb_shell_player_init),
9637         (rb_shell_player_finalize), (rb_shell_player_set_property),
9638         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
9639         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
9640         (rb_shell_player_set_volume_relative),
9641         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
9642         (rb_shell_player_get_mute):
9643         * shell/rb-shell-player.h:
9644         * shell/rb-shell-player.xml:
9645         Store volume as a property on RBShellPlayer, rather than in gconf.
9646         Add some methods to control volume via dbus.
9648         * shell/rb-shell.c: (rb_shell_constructor),
9649         (rb_shell_volume_widget_changed_cb),
9650         (rb_shell_player_volume_changed_cb):
9651         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
9652         Update volume using player properties rather than gconf, and sync the
9653         volume with the volume control button when something else changes it.
9654         Fixes #323840.
9656 2006-01-07  William Jon McCann  <mccann@jhu.edu>
9658         * shell/rb-tray-icon.c (tray_popup_position_menu):
9659         Make tray menu align with edge of panel.
9661         patch from Jaap A. Haitsma <jaap@haitsma.org>
9662         Fixes #319913
9664 2006-01-07  William Jon McCann  <mccann@jhu.edu>
9665         * shell/rb-shell.c (sourcelist_drag_received_cb): 
9666         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
9667         (rb_playlist_manager_new_playlist_from_selection_data):
9668         Make a reasonable default name for playlists created from
9669         dropped data.  Fixes #326116.
9671 2006-01-07  William Jon McCann  <mccann@jhu.edu>
9673         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
9674         Use new gconf key.
9675         (burn_cd): Always eject CD after burning.  Too many drives
9676         get confused if we don't.  Save the speed used if the burn
9677         was completed successfully.
9679         * data/rhythmbox.schemas: Use our own speed instead of from
9680         n-c-b. The situation is that the default_speed for n-c-b is most
9681         likely the maximum write speed.  This is fine for n-c-b because it
9682         has burn-proof turned on.  We can't turn it on for audio CDs
9683         because the results are poor in quality.  So we'll just pick a
9684         default that should work for everyone (4).
9686 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9687         
9688         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
9689         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
9691 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9693         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
9694         in my previous commit.  Fixes #326037.
9696 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
9698         patch by: Jonathan Matthew
9700         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
9701         error on Fedora Rawhide.
9703 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9705         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
9706         Assume HTTP URLs ending with .xml or .rss are podcasts.
9707         (rb_shell_add_uri): Handle adding podcast feeds.
9709         * sources/rb-podcast-source.c: (rb_podcast_source_new):
9710         Register as the source for podcast feeds.
9712 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9714         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
9715         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
9716         (rb_shell_preferences_append_view_page):
9717         * shell/rb-shell-preferences.h:
9718         Fix typo in function name.  Fixes #325992.
9720 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9722         * shell/rb-audioscrobbler.c:
9723         Add '+' to the list of characters to URI-encode, so it doesn't get
9724         interpreted as a space.
9726 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9728         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
9729         (rb_daap_connection_do_something):  Don't crash if the DAAP server
9730         goes away while we're still trying to log in.
9732 2006-01-06  James Livingston  <jrl@ids.org.au>
9734         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
9736 2006-01-06  James Livingston  <jrl@ids.org.au>
9738         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
9739         support for Year to automatic playlists. Closes bug 321341.
9741         * rhythmdb/rhythmdb-query-model.c:
9742         (rhythmdb_query_model_set_property):
9743         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
9744         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
9745         (rhythmdb_query_free), (rhythmdb_query_serialize),
9746         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
9747         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
9748         * rhythmdb/rhythmdb.h: Support special
9749         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
9750         year in date.
9752         * widgets/rb-query-creator-properties.c:
9753         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
9754         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
9756 2006-01-06  James Livingston  <jrl@ids.org.au>
9758         * configure.ac: make the playback backend selection work correctly
9760         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
9761         (rb_daap_src_class_init), (rb_daap_src_dispose),
9762         (rb_daap_src_change_state), (rb_daap_src_initialize):
9763         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
9764         doesn't work for this class. Fixes bug 325934
9766 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9768         * configure.ac: Fix check for libnotify.
9770 2006-01-05  William Jon McCann  <mccann@jhu.edu>
9772         * sources/rb-playlist-source.c (xml_get_and_trim_names):
9773         Get name element for current lang and remove all name nodes
9774         from the XML tree.
9775         (get_playlist_name_from_xml): Try to get name element or
9776         fall back to name attribute.
9777         (rb_playlist_source_new_from_xml): Get name before turning over
9778         to sub-types for parsing so that we can remove name elements
9779         from the tree if necessary.
9781         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
9782         Load default playlists file if per user playlists are not found.
9784         * data/playlists.xml.in: 
9785         * data/Makefile.am: 
9786         * data/.cvsignore: Add default set of playlists.
9787         Fixes #323004
9789 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
9791         * shell/main.c: (main): Don't use the dbus interface to show the
9792         window if we're also going to use the bonobo interface.
9794 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
9796         * shell/rb-history.c: (rb_history_set_playing):
9797         Allow setting the playing song to NULL.
9798         (rb_history_append), (rb_history_delete_link):
9799         Don't randomly change position when entries are added and removed,
9800         it confuses play orders.
9801         
9802         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
9803         Random orders always have a next entry if the model is not empty.
9804         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
9805         Go back to the start of the history if we're past its end.
9807         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
9808         (rb_shuffle_play_order_go_next): Go back to the start of the history
9809         if we're past its end.
9810         (rb_shuffle_sync_history_with_query_model): Go back to the start of
9811         the history if the current entry is removed.
9813         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
9814         (rb_play_order_entry_deleted_cb): Only update have next/previous for
9815         the play order when the query has finished. This wasted about 10% CPU
9816         while the query was running.
9818         Fixes #324641: assertion failures when the query model was changed
9819         such that the playing song was no longer present.
9821 2006-01-05  James Livingston  <jrl@ids.org.au>
9823         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
9824         (rb_daap_src_dispose), (rb_daap_src_change_state):
9825         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
9826         (rhythmdb_gda_finalize):
9827         * widgets/rb-cell-renderer-pixbuf.c:
9828         * widgets/rb-cell-renderer-rating.c:
9829         (rb_cell_renderer_rating_class_init),
9830         (rb_cell_renderer_rating_finalize):
9831         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
9832         * widgets/rb-load-failure-dialog.c:
9833         (rb_load_failure_dialog_class_init),
9834         (rb_load_failure_dialog_finalize):
9835         * widgets/rb-rating.c: (rb_rating_class_init),
9836         (rb_rating_finalize):
9837         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
9838         (rb_search_entry_finalize): use G_DEFINE_TYPE
9840         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
9842 2006-01-05  James Livingston  <jrl@ids.org.au>
9844         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
9846         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
9847         the tarball.
9849         * shell/rb-history.c: (rb_history_class_init),
9850         (rb_history_finalize):
9851         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
9852         (rb_playlist_manager_finalize):
9853         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
9854         (rb_remote_init): use G_DEFINE_TYPE.
9856 2006-01-05  James Livingston  <jrl@ids.org.au>
9858         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
9859         changes
9861 2006-01-04  William Jon McCann  <mccann@jhu.edu>
9863         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
9864         Disable burn action when source is not a playlist.
9865         Fixes #323578.
9867 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9869         Optionally use libnotify to display song change and other
9870         notifications, and provide an option to disable notifications.
9871         Fixes #320355 and innumerable informal complaints.
9873         * widgets/eggtrayicon.c: (egg_tray_icon_init),
9874         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
9875         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
9876         (egg_tray_icon_notify):
9877         * widgets/eggtrayicon.h:
9878         * configure.ac:
9879         * shell/Makefile.am:
9880         Optionally use libnotify instead of eggnotificationbubble.
9882         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
9883         (rb_tray_icon_constructor), 
9884         (rb_tray_icon_show_notifications_changed_cb),
9885         (rb_tray_icon_hide_notify_cb)
9886         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
9887         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
9888         EggNotificationBubble pointer to eggtrayicon.
9890         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
9891         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
9892         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
9894 2006-01-04  William Jon McCann  <mccann@jhu.edu>
9896         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
9897         Request a minimum size for the progress bar so that
9898         the window doesn't shrink too small.
9900 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9902         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
9903         (add_db_entry), (db_entry_deleted_cb):
9904         Don't track the number of songs currently present, track the next ID
9905         to assign.  Fixes potential ID conflict problems.
9906         
9907         (db_entry_changed_cb), (rb_daap_share_start_publish),
9908         (rb_daap_share_stop_publish):
9909         Watch for db entry changes, and when songs become non-hidden after
9910         a successful stat, add them to the mapping tables.   Fixes #325178,
9911         making the DAAP server usable again.
9913 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9914         
9915         * shell/rb-statusbar.c: (rb_statusbar_class_init),
9916         (rb_statusbar_construct), (rb_statusbar_init),
9917         (rb_statusbar_finalize), (rb_statusbar_set_property),
9918         (rb_statusbar_get_property), (rb_statusbar_new),
9919         (rb_statusbar_sync_with_source):
9920         * shell/rb-statusbar.h:
9921         Remove visibility management code, stop watching for play order
9922         changes (status bar doesn't show play order any more), remove unused
9923         'player' property, and some other minor cleanup.
9924         
9925         * shell/rb-shell.c: (rb_shell_constructor),
9926         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
9927         (rb_shell_sync_statusbar_visibility):
9928         Manage status bar visibility here rather than in the status bar
9929         itself, so we can take small mode into account.  Fixes #323589.
9931 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9933         * widgets/eggnotificationbubble.c: (draw_bubble):
9934         Move the bubble off the visible screen while setting up bevels.  
9935         Fixes #316810.
9937 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
9939         * shell/rb-shell-player.c: (rb_shell_player_init),
9940         (rb_shell_player_finalize): 
9941         Remove unused structure members.
9942         
9943         (do_next_idle), (rb_shell_player_error):
9944         Only queue one call to do_next_idle, so we don't skip tracks if we get
9945         two errors for the same song.  Fixes #325216.
9947 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
9949         * data/glade/podcast-feed-properties.glade,
9950          podcast/rb-feed-podcast-properties-dialog.c:
9951         (rb_feed_podcast_properties_dialog_init),
9952         (rb_feed_podcast_properties_dialog_update):
9953         Add 'last episode' field to the podcast feed properties dialog.
9955         * podcast/rb-feed-podcast-properties-dialog.c:
9956         (rb_feed_podcast_properties_dialog_update_last_update),
9957         (rb_feed_podcast_properties_dialog_update_last_episode),
9958          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
9959         Use last-seen property for the time at which we last updated the feed,
9960         and post-time for the time the last episode was published.
9962         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
9963         Handle upgrades from 0.9.2; if no post-time was found for a podcast
9964         feed, use last-seen (which in 0.9.2 was the last post time).
9966         Fixes #323894.
9968 2006-01-01  James Livingston  <jrl@ids.org.au>
9970         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
9972         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
9973         year from the ipod database.
9975 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
9977         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
9978         Only set the pipeline back to NULL state for really uninteresting
9979         files.  This was causing deadlocks with various video files.
9980         Fixes #324912.
9982 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
9984         * data/glade/song-info-multiple.glade:
9985         Add disc number label and field.
9986         * widgets/rb-song-info.c: (rb_song_info_construct_single),
9987         (rb_song_info_constructor): 
9988         Handle widgets for disc number.
9989         (rb_song_info_sync_entries_multiple):
9990         Set disc number property on selected entries.
9991         Fixes #324777.
9993 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
9995         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
9996         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
9997         Activate the default widget when enter is pressed in these dialogs.
9998         Fixes #322887.
10000 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10002         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
10003         Use rb_shell_player_get_playing_entry, so we get the right entry
10004         when playing from the queue.  Fixes #325379.
10006 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10008         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10009         Include podcast posts with no publication date.  Typically
10010         seen in static collections rather than feeds.
10012 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10014         * shell/main.c: (main): Don't attempt to handle
10015         bonobo-only arguments if we couldn't get a bonobo
10016         client proxy.
10018 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10020         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
10021         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
10022         abort if daap sharing is disabled and then re-enabled.
10024 2005-12-29  William Jon McCann  <mccann@jhu.edu>
10026         * podcast/rb-podcast-parse.c (rb_insert_item):
10027         Add debugging.
10028         (rb_podcast_parser_start_element): Support itunes:image.
10029         Add debugging.  Don't abuse the break statement.  Warn
10030         if state is unknown.
10031         (rb_podcast_parser_end_element): Add debugging.  Warn
10032         if state is unknown.
10033         (rb_podcast_parser_characters): Warn if state is unknown.
10035         Fixes parsing of feeds that use the itunes:image element.
10036         Fixes #324632
10038 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10040         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
10041         (stations_view_drag_data_received_cb):
10042         Remove calls to rhythmdb_entry_lookup_by_location, as
10043         rb_iradio_source_add_station does that anyway.
10044         
10045         (rb_iradio_source_add_from_playlist):
10046         If the URL doesn't point to a playlist, add it as the stream
10047         URL instead.
10049 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10051         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
10052         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
10053         so we don't get an assertion failure.
10054         Fixes #325025.
10056 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10058         * shell/main.c: (load_uri_args): don't compile this in if
10059         neither bonobo nor dbus are enabled.  Fixes #324890.
10061 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10063         * sources/rb-audiocd-source.c:
10064         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
10065         so it closes the device.
10067 2005-12-20  James Livingston  <jrl@ids.org.au>
10069         * metadata/rb-metadata-gst.c: make the state changes time-out again,
10070         so that it doesn't spend forever getting stuck on the one file. Don't
10071         report errors for failing to change state on known non-audio files.
10073         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
10074         audio sink creation if we can't create the gconfaudiosink. This lets
10075         it work with only gst-plugins-base on 0.10.
10077 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10079         * rhythmdb/rhythmdb-query-model.c:
10080         (rhythmdb_query_model_set_sort_order):
10081         Fix a tiny memory leak in the previous commit.
10083 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10085         * rhythmdb/rhythmdb-query-model.c:
10086         (rhythmdb_query_model_set_sort_order):
10087         Don't try to emit reorders for empty query models, since it doesn't
10088         achieve anything and it results in a few warnings.
10090 2005-12-19  William Jon McCann  <mccann@jhu.edu>
10092         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10093         Make burn dialog non-resizable so that the expander can shrink.
10094         Fixes #308951.
10096 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10098         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
10099         add entries without a location, rather than those with one.
10101 2005-12-19  James Livingston  <jrl@ids.org.au>
10103         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
10104         the error isn't set.
10106 2005-12-19  James Livingston  <jrl@ids.org.au>
10107         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
10108         add entries without a location. Fixes bug 324290.
10110         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
10111         without a location.
10113         * shell/main.c: (main): don't crash if dbus initialisation fails
10114         without setting an error
10116 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10118         * sources/rb-library-source.c: Remove unused structure members
10119         (rb_library_source_do_query): Actually use the cached 'all' query.
10120         Fixes #324025.
10121         
10122 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
10124         * sources/rb-audiocd-source.c 
10125         (rb_audiocd_get_cd_info): tab
10126         (rb_audiocd_scan_songs): Return boolean success/failure,
10127         fix error messages a bit.
10128         (metadata_cb): Don't crash if we have no tracks
10129         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
10130         the CD.
10131         Fixes #324222.
10133 2005-12-15  William Jon McCann  <mccann@jhu.edu>
10135         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
10136         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
10137         key.
10139         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10140         Fixes #324157
10142 2005-12-14  William Jon McCann  <mccann@jhu.edu>
10144         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
10145         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
10146         (fullscreen_changed_cb): 
10147         * lib/rb-preferences.h: 
10148         * data/ui/rhythmbox-ui.xml: 
10149         * data/rhythmbox.schemas:
10150         Add fullscreen mode.
10152         Fixes #324075.
10154 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
10156         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
10157         configure.  It was not working with RPM.
10158         * data/Makefile.am: Switched dbus directory location to use
10159         datadir instead of variable that was not working.
10161 2005-12-13  James Livingston  <jrl@ids.org.au>
10163         patch by: Alex Lancaster <alexl@users.sourceforge.net>
10165         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
10166         the podcast browser work again. Closes bug 323856.
10168 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10170         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
10171         Remove C99ism.
10173         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
10174         (rb_utf_friendly_time):
10175         * lib/rb-cut-and-paste-code.h:
10177         * podcast/rb-feed-podcast-properties-dialog.c:
10178         (rb_feed_podcast_properties_dialog_parse_time):
10179         * podcast/rb-podcast-properties-dialog.c:
10180         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
10181         to display the date in a more user friendly way.
10182         For example, if the feed was updated yesterday it will say:
10183         Last updated: Yesterday 10:00 AM
10184         instead of printing the date.
10186 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10188         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
10189         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
10190         (rb_validate_item_propert, rb_podcast_parser_start_element) 
10191         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
10192         Use RB style.  Check for NULL before strcmp.  No C++ comments.
10193         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
10194         Don't set invalid mime type when mime type is NULL.  Fix leaks.
10195         (rb_podcast_parse_date): Add support for some real world
10196         date formats.
10197         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
10198         (rb_podcast_parse_item_free): Style and no need to check
10199         for NULL before g_free.
10201         May fix #323742
10203 2005-12-12  James Livingston  <jrl@ids.org.au>
10205         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
10206         with gstreamer 0.10, which replaced audioscale.
10208         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
10209         function to free the SoupSession
10211         * shell/rb-source-header.c: (rb_source_header_set_property),
10212         (rb_source_header_disclosure_toggled_cb),
10213         (rb_source_header_view_browser_changed_cb),
10214         (rb_source_header_sync_control_state):
10215         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
10216         * sources/rb-library-source.c: (rb_library_source_class_init):
10217         * sources/rb-source.c: (rb_source_class_init),
10218         (rb_source_get_status), (default_get_browser_key),
10219         (rb_source_get_browser_key), (rb_source_can_browse),
10220         (rb_source_notify_status_changed),
10221         (rb_source_notify_filter_changed):
10222         * sources/rb-source.h: seperate the enabling of browsers from the use
10223         of a gconf key.
10225 2005-12-11  William Jon McCann  <mccann@jhu.edu>
10227         * data/glade/podcast-feed-properties.glade: 
10228         * data/glade/podcast-properties.glade: Use scrolled viewports
10229         for description text.  Fix regression of #320509.
10231 2005-12-11  James Livingston  <jrl@ids.org.au>
10233         * sources/rb-auto-playlist-source.c:
10234         (rb_auto_playlist_source_class_init), (impl_reset_filters),
10235         (impl_search), (rb_auto_playlist_source_do_query),
10236         (rb_auto_playlist_source_set_query),
10237         (rb_auto_playlist_source_get_query): add support for the search box
10238         to automatic playlists.
10240         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
10241         memory leak.
10243 2005-12-11  James Livingston  <jrl@ids.org.au>
10245         * NEWS: update NEWS
10247 2005-12-11  James Livingston  <jrl@ids.org.au>
10249         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
10250         (rhythmdb_load), (monitor_subdirectory),
10251         (rhythmdb_sync_library_location):  start the library sync and
10252         monitoring in an idle callback.
10254 2005-12-10  William Jon McCann  <mccann@jhu.edu>
10256         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
10257         (rb_podcast_source_constructor): Remove unused pixbuf column.
10258         (rb_podcast_source_set_property, rb_podcast_source_get_property):
10259         Use consistent style.
10261         Fixes #322961.
10263 2005-12-11  James Livingston  <jrl@ids.org.au>
10265         * rhythmdb/rhythmdb-property-model.c:
10266         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
10267         (rhythmdb_property_model_insert),
10268         (rhythmdb_property_model_delete_prop):
10269         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
10270         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
10271         (destroy_tree_property):
10272         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10273         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
10274         GMemChunks, they are crap and deprecated. Improves startup-time and
10275         memory usage slightly.
10277 2005-12-10  William Jon McCann  <mccann@jhu.edu>
10279         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
10280         Added license and website info.
10282         * MAINTAINERS.old: Add Colin.
10283         * MAINTAINERS: Add James.
10284         * AUTHORS: Put back in order.  Add extra space between name and email
10285         to make it easier to read.  Add James and jonathan.
10287         * widgets/rb-song-info.c (rb_song_info_init) 
10288         (rb_song_info_constructor): Make sure close button is primary/rightmost.
10290 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
10292         Play queue implementation. Closes bug 107787.
10294         * data/rhythmbox.schemas: add items for whether the queue should be
10295         displayed as a sidebar, and the height of the sourcelist if it is.
10297         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
10298         playlist, and podcast popups; add 'view queue as sidebar' menu item,
10299         add popups for queue as source and as sidebar.  We need a separate
10300         popup for the sidebar view because otherwise it's hard to tell which
10301         of the visible entry views the action came from.
10303         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
10305         * po/POTFILES.in: Add new file
10307         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
10308         Add helper function for deciding if a podcast episode is available for
10309         playback.
10311         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
10312         reorder entries in the query model.
10313         (idle_process_update): Handle new update type used to insert entries
10314         at a particular position in the query model.
10315         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
10316         parameter to specify the position (-1 meaning 'at the end').
10317         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
10318         parameter.
10319         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
10320         bad entry removal updates for entries that aren't in the model.
10321         (rhythmdb_query_model_emit_reorder): Add helper function for
10322         reordering rows.
10323         (rhythmdb_query_model_move_entry): New method for moving entries
10324         around in the model
10325         (rhythmdb_query_model_entry_added_cb),
10326         (rhythmdb_query_model_update_limited_entries),
10327         (rhythmdb_query_model_do_reorder),
10328         (rhythmdb_query_model_do_insert): Pass through the index parameter,
10329         use rhythmdb_query_model_emit_reorder where appropriate.
10331         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10332         Don't allow the queue to be deleted.
10333         (handle_playlist_entry_cb): Update for method signature change
10334         (rb_playlist_manager_save_playlists_async),
10335         (rb_playlist_manager_get_playlists): Don't save the play queue,
10336         don't report it as a playlist.
10338         * shell/rb-play-order.c: Include queue play order in the list of
10339         available orders.
10341         * shell/rb-shell.c
10342         (rb_shell_class_init), (rb_shell_get_property): Add new property 
10343         for access to the clipboard object.
10344         (rb_shell_constructor): Handle playing-from-queue signal to update the
10345         sourcelist display; add queue sidebar in to UI, listen for queue
10346         sidebar pane changes, and read initial settings from gconf.
10347         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
10348         Only tell the sourcelist the source has changed if the new source is 
10349         not the queue, as we update the sourcelist differently in that case.
10350         (rb_shell_set_window_title): Only use the cached window title if the
10351         playing state was the same when it was created.
10352         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
10353         (rb_shell_sync_pane_visibility): Only hide the side pane if the
10354         sourcelist is hidden and the queue is shown as a source.
10355         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
10356         mode, since it doesn't make any sense.
10357         (sourcelist_visibility_changed_cb): Update the visibility of the pane
10358         too.
10359         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
10360         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
10361         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
10362         playing from queue shown as sidebar.
10364         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
10365         MusicProperties action here from rb-shell-player.c, since it acts like
10366         cut/copy/paste etc.
10367         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
10368         (rb_shell_clipboard_get_property): new property for queue source.
10369         Watch for selection changes in the sidebar entry view as well as the
10370         normal one.
10371         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
10372         actions and MusicProperties.
10373         (rb_shell_clipboard_cmd_queue_delete),
10374         (rb_shell_clipboard_cmd_add_song_to_queue),
10375         (rb_shell_clipboard_cmd_song_info),
10376         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
10378         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
10379         actually came from (could be the playing source, or the queue), add a 
10380         new play order object for the queue, add a property for the queue
10381         source, add a signal for when we switch between playing from the
10382         source and from the queue.
10383         (rb_shell_player_set_property): Handle playing directly from the
10384         queue so we stop once the queue is empty.  Create queue play order
10385         when we get the queue source.
10386         (rb_shell_player_get_playing_source): Return the source we're actually
10387         playing from.
10388         (rb_shell_player_get_playing_entry): Get playing entry from queue if
10389         that's where it is.
10390         (rb_shell_player_set_playing_entry): Update the queue play order if 
10391         that's where we're playing from.
10392         (rb_shell_player_play_order_update_cb): Take has next/previous for the
10393         queue into consideration too.
10394         (swap_playing_source): Helper function for switching the playing
10395         source.
10396         (rb_shell_player_do_previous): Check the queue, even though there's
10397         never a previous entry in it (yet), swap playing source if it changed.
10398         (rb_shell_player_do_next): Check the queue for entries to play before
10399         the normal play order, and swap playing source if it changed.
10400         (rb_shell_player_do_previous_or_seek): Check the queue for previous
10401         entries to go to as well.
10402         (rb_shell_player_playpause): Check the queue before the selection and
10403         the play order, and swap playing source if it changed.
10404         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
10405         (rb_shell_player_entry_activated_cb): Use
10406         rb_podcast_manager_entry_downloaded, do some tapdancing to make
10407         activating queue entries work properly (move the activated entry to
10408         the start of the queue and then play it); if we were playing from the
10409         queue, clear its playing entry so it'll start again from the start
10410         after the activated entry.
10411         (rb_shell_player_sync_buttons): MusicProperties action handler moved
10412         to rb-shell-clipboard.c
10413         (actually_set_playing_source): Add helper for updating the playing
10414         source.
10415         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
10416         signal if we stop or start doing so; use actually_set_playing_source; 
10417         emit playing-source-changed if we actually did change source.
10419         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
10420         rb_static_playlist_source_add_location.
10422         * sources/rb-library-source.c (rb_library_source_class_init): Allow
10423         enqueueing of songs from the library.
10425         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
10426         enqueueing of sonsg from playlists.
10427         (rb_playlist_source_entry_added_cb): Add extra parameter for
10428         rhythmdb_query_model_add_entry.
10429         
10430         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
10431         Implement (can_)add_to_queue for this class.
10432         (rb_podcast_source_entry_activated): Use
10433         rb_podcast_manager_entry_downloaded.
10434         (impl_can_add_to_queue): Return TRUE if at least one entry that has
10435         been downloaded is selected.
10436         (impl_add_to_queue): Only add downloaded entries to the queue.
10438         * sources/rb-source.{c,h}:
10439         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
10440         methods.
10441         (rb_source_class_init): Don't allow enqueueing by default; implement 
10442         add_to_queue though.
10443         (default_add_to_queue): Add all selected entries to the queue.
10444         
10445         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
10446         would be playing if there wasn't anything in the queue).
10447         (set_source_playing): Helper function for manipulating tree store.
10448         (rb_sourcelist_set_playing_source): Use set_source_playing
10449         (rb_sourcelist_preempt_playing_source): Update preempted source
10450         pointer, manipulate source states.
10452         * sources/rb-static-playlist-source.{c,h}:
10453         (rb_static_playlist_source_add_location_internal),
10454         (rb_static_playlist_source_add_location),
10455         (rb_static_playlist_source_add_entry): Add index parameter for
10456         specifying where in the playlist the new entry goes.
10457         (rb_static_playlist_source_new_from_xml), (impl_paste),
10458         (rb_static_playlist_source_add_list_uri),
10459         (rb_static_playlist_source_add_location_swapped),
10460         (rb_static_playlist_source_add_locations),
10461         (rb_static_playlist_source_non_entry_dropped),
10462         (rb_static_playlist_source_row_inserted):
10463         Handle new index parameter everywhere it appears
10464         (rb_static_playlist_source_move_entry): New method for moving entries
10465         around in the playlist.
10467         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
10468         warnings when trying to scroll entry views that have never been
10469         displayed.
10471         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
10472         play order that removes the old entry when switching to a new one.
10474         * sources/rb-play-queue-source.{c,h}: New files, implementing a
10475         static playlist subclass that has a second entry view for the sidebar
10476         view using alternate formatting, and that displays the number of
10477         entries it contains in its source list entry.
10479 2005-12-10  James Livingston  <jrl@ids.org.au>
10481         * rhythmdb/rhythmdb-query-model.c:
10482         (rhythmdb_query_model_add_entry),
10483         (rhythmdb_query_model_drag_data_received):
10484         * sources/rb-static-playlist-source.c:
10485         (rb_static_playlist_source_non_entry_dropped): when things are
10486         dropped, ignore any blank lines in the list of uris. Make the source
10487         responsible for adding new items to the db.
10489         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
10490         empty string.
10492 2005-12-10  James Livingston  <jrl@ids.org.au>
10494         * shell/rb-shell-player.c: (rb_shell_player_set_property),
10495         (rb_shell_player_sync_buttons),
10496         (rb_shell_player_selection_changed_cb): watch for the
10497         "selection-changed" signal, so that the Song Properties get enabled.
10498         Closes bug 323694.
10500 2005-12-10  James Livingston  <jrl@ids.org.au>
10502         * data/rhythmbox.schemas: fix the gconf schema
10504 2005-12-10  James Livingston  <jrl@ids.org.au>
10506         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
10507         the decoded-pad callback with gstreamer 0.8, it causes problems.
10509 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
10511         Remove more junk from RBEntryView. Closes bug 323640.
10513         * widgets/rb-entry-view.{c,h}:
10514         Remove unused private structure members, replace 'playing' boolean
10515         with an enum (so we know if we're paused too), and store a pointer to
10516         the RBShellPlayer too.  
10517         (rb_entry_view_class_init), (rb_entry_view_set_property),
10518         (rb_entry_view_get_property):
10519         Remove 'entry-selected' and 'changed' signals and
10520         'playing-entry' property, add 'selection-changed' signal and
10521         'shell-player' and 'playing-state' properties.
10522         (rb_entry_view_new): Take the shell player object reference
10523         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
10524         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
10525         No longer needed, shell player is the place to get this information.
10526         (rb_entry_view_busy), (rb_entry_view_get_duration),
10527         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
10528         (rb_entry_view_get_next_from_entry),
10529         (rb_entry_view_get_previous_from_entry),
10530         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
10531         (rb_entry_view_get_num_entries):
10532         Removed, callers should go to the query model directly.
10533         (rb_entry_view_playing_song_changed): Update active query model, emit
10534         row changed signals to update pixbufs, and scroll to the playing song
10535         when the playing song changes, based on a signal from the shell
10536         player.
10537         (queue_changed_sig), (rb_entry_view_row_changed_cb),
10538         (emit_entry_changed): Evil, removed.
10539         (rb_entry_view_selection_changed_cb): Remove old signals, add new
10540         selection-changed signal.
10541         (rb_entry_view_select_none), (rb_entry_view_select_entry):
10542         Remove selection lock.  It didn't work anyway.
10543         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
10544         (rb_entry_view_emit_row_changed): Simple helper function to emit
10545         row-changed signals.
10547         * widgets/Makefile.am: Entry view needs headers from the shell/
10548         directory.
10549         * widgets/rb-song-info.{c,h}: Use the query model for everything except
10551         scrolling the entry view to show the entry being displayed.
10552         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
10553         'source' property so we can watch for query model changes.
10554         (rb_song_info_finalize): Unref objects, disconnect signal handlers
10555         (rb_song_info_set_property): Watch for query model changes, don't
10556         watch for entry view changes.
10557         (rb_song_info_new): Take source as a parameter, use the source's entry
10558         view unless one was specifically supplied.
10559         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
10560         Use query model rather than entry view to move between songs.
10561         (rb_song_info_update_buttons): Use query model.
10562         (rb_song_info_query_model_changed_cb): Handle query model changes.
10564         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10565         Only one copy of the code to enable/disable the CD burning action
10566         (rb_playlist_manager_playlist_entries_changed):
10567         Use the query model to get the number of entries, not the entry view.
10569         * shell/rb-play-order-random-by-age-and-rating.c,
10570         shell/rb-play-order-random-by-age.c,
10571         shell/rb-play-order-random-by-rating.c,
10572         shell/rb-play-order-random-equal-weights.c:
10573         Use G_DEFINE_TYPE
10575         * shell/rb-shell-player.{c,h}:
10576         Remove a few unused entries from the structure.
10577         (rb_shell_player_set_property):
10578         Don't use the 'changed' signal on the entry view (it's evil)
10579         (rb_shell_player_have_first): No longer needed
10580         (rb_shell_player_play): Just tell the entry view it's playing
10581         (rb_shell_player_playpause): Tell the entry view it's paused
10582         when pausing.
10583         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
10584         (rb_shell_player_property_row_activated_cb):
10585         Get the entry to play using the query model, not the entry view.
10586         (rb_shell_player_sync_buttons): Update entry view state while we're
10587         here.
10588         (rb_shell_player_set_playing_source_internal): Update entry view state
10589         (rb_shell_player_get_playing): Ask the entry view, not the player.
10590         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
10591         and rb_shell_set_window_title work properly, so you get "(Paused)" in
10592         the window title and tray icon tooltip.
10593         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
10595         * sources/rb-iradio-source.c, sources/rb-library-source.c,
10596         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
10597         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
10598         view constructor, pass the source in to the song info widget
10599         constructor.
10601         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
10602         Use 'selection-changed' instead of 'changed', since that's what the
10603         clipboard cares about.
10604         (rb_shell_clipboard_set_source): Don't die if source == NULL
10606 2005-12-10  James Livingston  <jrl@ids.org.au>
10608         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
10609         * sources/rb-playlist-source-recorder.c:
10610         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
10611         stuff not use the deprecated API when compiled against 2.13
10613 2005-12-10  James Livingston  <jrl@ids.org.au>
10615         patch by: Alex Lancaster <alexl@users.sourceforge.net>
10617         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
10618         problem where the genre tag was getting set to the artist. Closes bug
10619         323642.
10621 2005-12-09  William Jon McCann  <mccann@jhu.edu>
10623         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
10624         Return NULL if can't get first iter.
10626         Fixes #323663
10628 2005-12-09  William Jon McCann  <mccann@jhu.edu>
10630         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
10631         updated rb_station_properties_dialog_new API.
10632         (rb_iradio_source_add_from_playlist): New public function.
10633         (rb_iradio_source_first_time_changed): Use add_from_playlist.
10635         * shell/rb-shell.c (new_station_location_added): Handle
10636         iradio location added signal.
10637         (rb_shell_cmd_new_station): Use new iradio station dialog.
10639         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
10640         (rb_station_properties_dialog_new): Don't squeeze new
10641         station functionality into this class.
10642         (rb_station_properties_dialog_response_cb): ditto.
10643         (rb_station_properties_dialog_update_title): Make
10644         consistent with other properties dialogs.
10645         (rb_station_properties_dialog_location_changed_cb): Do nothing.
10647         * iradio/rb-new-station-dialog.[ch]: 
10648         * iradio/Makefile.am: Add new station dialog.
10650         * data/glade/station-new.glade: New file based on
10651         new podcast feed dialog.
10652         * data/glade/station-properties.glade: Updated to
10653         be consistent with song properties dialog.
10655         Fixes #323306.
10657 2005-12-10  James Livingston  <jrl@ids.org.au>
10659         patch by: Ståle Lyngaas <staale@lyngaas.com>
10661         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
10662         submit songs longer than 30 minutes. Fixes bug 323639.
10664 2005-12-09  William Jon McCann  <mccann@jhu.edu>
10666         * shell/rb-shell.c (idle_save_playlist_manager): Use new
10667         async save function.
10668         (rb_shell_finalize): Remove save timeout sources.  Reorder
10669         steps a bit to make saving db and playlists a bit more
10670         failsafe in case something goes wrong later.
10671         (rb_shell_constructor): Keep track of save timeout source.
10672         (add_to_library_response_cb): Keep track of db save timeout source.
10674         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
10675         g_atomic.
10676         (rb_playlist_manager_shutdown): New function to shutdown
10677         threads etc. before exit.
10678         (rb_playlist_manager_finalize): Moved handling outstanding
10679         threads stuff to shutdown since if there are outstanding threads
10680         they hold a ref and finalize is never called.
10681         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
10682         of signal which may be required for sync save.
10683         (rb_playlist_manager_save_playlists_async): Renamed old
10684         save_playlists to save_playlists_async.  Use g_atomic.
10685         (rb_playlist_manager_save_playlists): New function to
10686         perform sync saves (symmetric with RhythmDB API).
10687         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
10689         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
10690         Style consistency anality.
10691         (rhythmdb_finalize): Remove save timeout source.
10692         (rhythmdb_set_property, rhythmdb_get_property) 
10693         (rhythmdb_process_events): More anality and keep track of
10694         save timeout source.
10695         (action_thread_main): No need to call g_thread_exit.
10696         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
10697         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
10698         (write_encoded_gvalue, read_encoded_property): La la la.
10700         Fixes #322940.
10702 2005-12-10  James Livingston  <jrl@ids.org.au>
10704         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
10705         non-audio files.
10707 2005-12-10  James Livingston  <jrl@ids.org.au>
10709         * Makefile.am:
10710         * configure.ac: remove the rpm spec files, so that automake works.
10711         oops
10713         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
10714         locking issue
10716 2005-12-09  James Livingston  <jrl@ids.org.au>
10718         * debian/: try to get cvs to actually remove the files
10720 2005-12-09  James Livingston  <jrl@ids.org.au>
10722         * rhythmbox.spec.in:
10723         * debian/: remove the distro package stuff, they are *really* old, and
10724         downstream manage it anyway.
10726 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
10728         Rework play orders to work off query models rather than 
10729         entry views, and track the playing entry themselves rather
10730         than relying on the entry view to do it.  This makes the entry
10731         view mostly just a widget. Closes bug 323612.
10733         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
10734         Use query model rather than entry view to get the number
10735         of entries in playlists.
10737         * rhythmdb/rhythmdb-query-model.{c.h}
10738         (rhythmdb_query_model_tree_path_to_entry),
10739         (rhythmdb_query_model_iter_to_entry),
10740         (rhythmdb_query_model_get_next_from_entry),
10741         (rhythmdb_query_model_get_previous_from_entry):
10742         New utility functions for iterating through query models.
10743         (rhythmdb_query_model_compute_status_normal):
10744         Have one copy of this code, not four.
10746         * shell/rb-play-order.{c,h}:
10747         Add signals for when next/previous availability changes, and
10748         when the playing entry is removed, and add a property for
10749         the current playing entry.  Add gtkdoc comments too.
10750         (rb_play_order_class_init): Add new property and signals.
10751         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
10752         (rb_play_orer_query_model_changed_cb),
10753         (rb_play_order_query_model_changed): 
10754         Use query model rather than entry view.
10755         (rb_play_order_set_property), (rb_play_order_get_property):
10756         Handle new playing-entry property.  Call playing_entry_changed virtual
10757         method so subclasses can do any processing required.
10758         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
10759         (rb_play_order_set_playing_entry):
10760         Just use the playing-entry property.
10761         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
10762         Utility methods for subclasses.
10763         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
10764         Update next/previous availability, check if the playing entry
10765         was removed.
10766         (default_playing_entry_removed):
10767         Keep the current behaviour of just stopping playback when the 
10768         playing entry is deleted.
10769         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
10770         these for subclasses that don't have go_next/go_previous, but do
10771         have get_next/get_previous.
10772         (rb_play_order_update_have_next_previous): Emit signal if the
10773         availability of next/previous entries has changed.
10775         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
10776         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
10777         Use G_DEFINE_TYPE, replace entry view iterator with query model 
10778         methods.
10779         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
10780         on the last song in the shuffled order, go back to the start. This
10781         means if you press 'play' again you'll get the whole order again, not
10782         just one song.
10784         * shell/rb-shell-player.c:
10785         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
10786         play order rather than the entry view.
10787         (rb_shell_player_set_property): Update the play order when the
10788         selected source changes and we aren't playing anything.
10789         (rb_shell_player_sync_play_order): Copy the playing entry across to
10790         the new play order so playback continues from the same song, and watch
10791         for updates to have_next/have_previous.
10792         (rb_shell_player_play_order_update_cb): Enable/disable the
10793         next/previous actions when next/previous entry availability changes.
10794         (rb_shell_player_jump_to_current): Just use the play order's idea of
10795         what's playing, not the entry view's; if not playing anything, clear
10796         the selection, so when a playlist ends and you hit play again, it'll
10797         start at the start rather than the end.
10798         (rb_shell_player_do_previous): restructure a bit.
10799         (rb_shell_player_do_next): restructure, jump to new playing entry in
10800         an idle handler instead of directly.
10801         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
10802         song if there is one.
10803         (rb_shell_player_playpause): Jump to playing song, don't update the
10804         play order if we got the song from the selection.
10805         (rb_shell_player_playing_entry_deleted_cb): Not needed.
10806         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
10807         looks after next/previous actions now.  Don't break if called while
10808         there is no selected source.
10809         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
10810         (rb_shell_player_set_playing_source_internal),
10811         (rb_shell_player_error): No need to track the attempted playing entry
10812         any more, since the play order does that.
10814         * shell/rb-shell.c:
10815         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
10816         rb_shell_player_get_playing_entry rather than going through the entry
10817         view.
10819         * shell/rb-statusbar.c (rb_statusbar_set_property),
10820         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
10821         than the entry view for status bar text changes.
10822         (rb_statusbar_sync_status): Ask the query model directly
10824         * sources/rb-source.{c}: Add query model property.
10825         (default_get_status): Get status text from query model, should be
10826         suitable for most sources.
10827         (rb_source_set_property): Listen for changes to the query model 
10828         to update the status text.
10829         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
10830         (idle_emit_status_changed): Emit status-changed signals when query
10831         model changes. 
10833         * sources/rb-library-source.c, sources/rb-podcast-source.c:
10834         (impl_get_status): Not needed, RBSource does this now
10835         (rb_library_source_do_query) (rb_podcast_source_do_query): 
10836         Update RBSource's query model reference.
10838         * sources/rb-playlist-source.c:
10839         Remove query-model property, since RBSource has one now
10840         (impl_get_status): Not needed, RBSource does this now
10841         (rb_playlist_source_row_deleted): Use query model iterator helper
10842         function.
10843         (rb_playlist_source_set_query_model): Update RBSource's query model
10844         reference too.
10846         * sources/rb-iradio-source.c:
10847         (impl_get_status): Ask the query model directly.
10848         (rb_iradio_source_do_query): Update RBSource's query model reference
10849         when we create a new query.
10851         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
10852         Use query model rather than entry view.
10854         * widgets/rb-entry-view.{c,h}: 
10855         Remove playing_entry_deleted signal (now in play order).
10856         (entry_from_tree_path), (entry_from_tree_iter): Not needed
10857          as RhythmDBQueryModel has equivalent helper functions.
10858         (rb_entry_view_*): Use query model helpers instead of the above two
10859         functions.
10861 2005-12-09  James Livingston  <jrl@ids.org.au>
10863         * configure.ac:
10864         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
10865         (rb_recorder_enabled):
10866         * shell/rb-removable-media-manager.c: (poll_tray_opened):
10867         * sources/rb-playlist-source-recorder.c:
10868         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
10869         whether libnautilusburn has the _drive_unref function, and if so use
10870         it. Stops it complaining about deprecated API.
10872 2005-12-09  James Livingston  <jrl@ids.org.au>
10874         * configure.ac: drop the minimum gstreamer version back down, it
10875         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
10877 2005-12-09  James Livingston  <jrl@ids.org.au>
10879         * widgets/rb-song-info.c: (rb_song_info_class_init),
10880         (rb_song_info_show), (rb_song_info_constructor),
10881         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
10882         (rb_song_info_forward_clicked_cb): save metadata changes when the
10883         Next/Previous buttons are pressed (closes bug 320952). use
10884         G_DEFINE_TYPE.
10886 2005-12-09  James Livingston  <jrl@ids.org.au>
10888         Patch by: <jonathan@kaolin.hn.org>
10890         * sources/rb-iradio-source.c:
10891         (stations_view_drag_data_received_cb):
10892         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
10893         of urls. Fixes bug 323610.
10895 2005-12-09  James Livingston  <jrl@ids.org.au>
10897          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
10898          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
10900         * configure.ac:
10901         * metadata/rb-metadata-gst.c:
10902         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
10903         (rb_player_construct), (rb_player_new):
10904         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
10905         (rb_recorder_gst_signal_error), (pipe_message),
10906         (rb_recorder_new_pad_cb), (rb_recorder_construct),
10907         (rb_recorder_new):
10908         * shell/main.c: (main):
10909         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
10910         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
10912 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10914         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
10916         * shell/rb-playlist-manager.c:
10917           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
10918           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
10919           (rb_playlist_manager_set_automatic_playlist),
10920           (rb_playlist_manager_cmd_new_automatic_playlist),
10921           (rb_playlist_manager_cmd_edit_automatic_playlist):
10922            Use new playlist subclasses.
10923           (rb_playlist_manager_save_playlists): Only read the dirty flag
10924            for local playlists, minor pointless reformatting
10926         * sources/Makefile.am: add new files
10928         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
10929           split lots of stuff out into two
10930           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
10931           make RBPlaylistSource abstract, add virtual methods for showing a
10932           popup for the entry view and saving the playlist to XML.
10933           Other stuff is subclass-specific, or already virtual in RBSource.
10935         * sources/rb-playlist-xml: Define playlist XML tags and attributes
10936           in one place, since they're used across three source files now
10938         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
10939           Use new static playlist class
10941         * sources/rb-ipod-source.c: (add_rb_playlist):
10942           Use new static playlist class
10944         * sources/rb-static-playlist-source.{c,h},
10945         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
10946         files.
10948         * po/POTFILES.in: add new files
10950 2005-12-07  James Livingston  <jrl@ids.org.au>
10952         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
10953         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
10954         metadata loads not attempt to write changes to disk.
10956 2005-12-07  James Livingston  <jrl@ids.org.au>
10958         patch by: Alex Lancaster <alexl@users.sourceforge.net>
10960         * data/glade/song-info-multiple.glade:
10961         * widgets/rb-song-info.c: (rb_song_info_constructor),
10962         (rb_song_info_sync_entries_multiple): allow the year to be changed on
10963         multiple songs at once.
10965 2005-12-06  James Livingston  <jrl@ids.org.au>
10967         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
10968         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
10970 2005-12-06  James Livingston  <jrl@ids.org.au>
10972         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
10973         names rather than adding a horizontal scroll bar.
10975 2005-12-06  James Livingston  <jrl@ids.org.au>
10977         * rhythmdb/rhythmdb-query-model.c:
10978         (rhythmdb_query_model_update_limited_entries),
10979         (rhythmdb_query_model_drag_data_received): remove some pointless debug
10980         messages
10982         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
10983         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
10984         always hide rather than remove DB entries, which will make RB not lose
10985         information when tag editing happens or people move files to trash and
10986         then change their mind. Also fix some races where the monitoring code
10987         would notice the temporary files generated by saving metadata.
10989 2005-12-05  William Jon McCann  <mccann@jhu.edu>
10991         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
10992         Hide internals and add tooltips.
10993         (rb_song_display_box_size_allocate): Hide internals.
10994         (sanitize_string, info_url): Copied from rb-header.
10995         (rb_song_display_box_sync): New public function.
10997         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
10998         (rb_header_init): Use a separate row for the seek bar.
10999         (rb_header_finalize): Don't unref widgets.
11000         (rb_header_sync): Use rb_song_display_box_sync.
11001         (rb_header_set_urldata)
11002         (rb_header_set_show_artist_album): Hide instead of remove widgets.
11003         (rb_header_set_show_position_slider): Set visibility of seek bar.
11004         (rb_header_set_show_timeline): Set sensitivity of seek bar.
11005         (rb_header_get_elapsed_string): Don't shift when you first start playback.
11007         * shell/rb-statusbar.c (rb_statusbar_init)
11008         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
11010         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
11011         (rb_shell_constructor): Remove hseparator.  Monitor
11012         toolbar visibility settings.  Add toolbar.  Add
11013         volume button to toolbar.  Add tooltips for volume button.
11014         (rb_shell_view_toolbar_changed_cb) 
11015         (rb_shell_sync_toolbar_visibility)
11016         (toolbar_visibility_changed_cb): Set visibility of
11017         toolbar.
11018         (rb_shell_sync_smalldisplay): Set the toolbar style to
11019         icons only when in small display mode.
11020         (rb_shell_volume_widget_changed_cb): Save volume setting.
11022         * shell/rb-shell-player.c (rb_shell_player_constructor):
11023         Remove pause and stop actions.  Make play action "important"
11024         so that text is visible in horizontal toolbar position.
11025         Remove control buttons.
11026         (rb_shell_player_init) 
11027         (rb_shell_player_sync_song_position_slider_visibility):
11028         Set visbibility of seek bar.
11029         (rb_shell_player_cmd_play, rb_shell_player_playpause):
11030         Make play action a toggle.
11031         (rb_shell_player_sync_volume): Volume control moved
11032         to player.
11033         (gconf_song_position_slider_visibility_changed):
11034         Set visbibility of seek bar.
11035         (rb_shell_player_sync_buttons):
11036         Set sensitivity of actions instead of buttons.
11037         (rb_shell_player_playing_changed_cb): Add callback
11038         for player notify::playing changes.
11040         * lib/rb-preferences.h: Add hide toolbar and seek
11041         bar key names.
11043         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
11044         seek bar menu items.  Remove pause and stop actions
11045         from the control menu.  Add a toolbar.
11047         * data/rhythmbox.schemas: Add toolbar_hidden
11048         song_position_slider_hidden keys.
11050         Patch by: James Livingston  <jrl@ids.org.au>
11051                   William Jon McCann  <mccann@jhu.edu>
11052         Fixes #316238.
11054 2005-12-05  James Livingston  <jrl@ids.org.au>
11056         * data/glade/library-prefs.glade:
11057         * data/rhythmbox.schemas:
11058         * lib/rb-preferences.h:
11059         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
11060         (rhythmdb_sync_library_location):
11061         * sources/rb-library-source.c: (rb_library_source_class_init),
11062         (rb_library_source_finalize), (rb_library_source_constructor),
11063         (impl_get_config_widget), (rb_library_source_preferences_sync),
11064         (rb_library_source_watch_toggled_cb): allow people to disable library
11065         monitoring, because with nothing set the file chooser button selects
11066         the Home folder (and hence that will get monitored).
11068 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
11070         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
11071         attempt to fix problem with RSS parsing showing invalid feed types.
11072         Fixes bug 323153
11074 2005-12-04  James Livingston  <jrl@ids.org.au>
11076         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11077         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
11078         importing a remote directory not block the UI.
11080 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
11082         * data/glade/podcast-feed-properties.glade:
11083         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
11085 2005-12-04  James Livingston  <jrl@ids.org.au>
11087         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11089         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
11090         to && to fix a mistake in the earlier podcast patch.
11092 2005-12-03  James Livingston  <jrl@ids.org.au>
11094         * data/glade/podcast-new.glade:
11095         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11096         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
11098         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
11099         GValue, which stops occasional errors.
11101         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11102         compile issue.
11104 2005-12-03  James Livingston  <jrl@ids.org.au>
11106         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11108         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11109         crasher with some podcasts feeds.
11111 2005-12-03  James Livingston  <jrl@ids.org.au>
11113         * data/rhythmbox.schemas: fix the gconf schema
11115 2005-12-03  James Livingston  <jrl@ids.org.au>
11117         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
11118         add a selection timeout to the sourcelist. This lets you hold a track
11119         over the playlist source, and then have the view switch so you can
11120         insert the track in the middle of the playlist. Closes bug 323044.
11122         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
11123         (select_on_drag_timeout), (remove_select_on_drag_timeout),
11124         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
11125         (rb_tree_dnd_add_drag_dest_support):
11126         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
11127         timeout.
11129         * sources/rb-sourcelist-model.c:
11130         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
11131         the source list.
11133 2005-12-02  Bastien Nocera  <hadess@hadess.net>
11135         * data/glade/audioscrobbler-prefs.glade: add a space before the web
11136         links, so that the text doesn't touch the button
11138 2005-12-02  James Livingston  <jrl@ids.org.au>
11140         Add full support for gnome-vfs remote files. Closes bug 140355.
11142         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
11143         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
11144         for authentication information from the user doesn't block the UI.
11146         (rhythmdb_entry_set_visibility): don't emit the signal twice.
11148         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
11149         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
11150         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
11151         (rhythmdb_process_stat_event), (emit_load_error_idle),
11152         (rhythmdb_process_metadata_load),
11153         (rhythmdb_process_queued_entry_set_event),
11154         (rhythmdb_process_file_created_or_modified),
11155         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
11156         (queue_stat_uri), (add_thread_main),
11157         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
11158         (rhythmdb_load), (rhythmdb_save_thread_main),
11159         (threadsafe_entry_set), (rhythmdb_query_internal),
11160         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
11161         (rhythmdb_do_full_query_internal),
11162         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
11163         (rhythmdb_volume_unmounted_cb),
11164         (rhythmdb_check_changed_file): trivial changes to support the
11165         asynchronous stats.
11167         * shell/main.c: (main): activate the authentication manager.
11169         * shell/rb-playlist-manager.c:
11170         (rb_playlist_manager_cmd_load_playlist),
11171         (rb_playlist_manager_cmd_save_playlist):
11172         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
11173         (rb_shell_cmd_add_file_to_library):
11174         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
11175         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
11176         remote files.
11178 2005-12-02  James Livingston  <jrl@ids.org.au>
11180         * shell/rb-playlist-manager.c: makes playlist menu items use the
11181         elipses correctly. Fixes bug 322283.
11183 2005-12-02  James Livingston  <jrl@ids.org.au>
11185         * shell/rb-playlist-manager.c:
11186         (rb_playlist_manager_load_playlists): fix silly mistake
11188 2005-12-02  James Livingston  <jrl@ids.org.au>
11190         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
11191         print out metadata-write unless --debug was passed.
11193         * rhythmdb/rhythmdb.c: (rhythmdb_load):
11194         * shell/rb-playlist-manager.c:
11195         (rb_playlist_manager_load_playlists): block writes to disk if they are
11196         still being loaded.
11198 2005-12-02  James Livingston  <jrl@ids.org.au>
11200         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
11201         ctrl-T, because Ctrl-D is used by "small mode"
11203 2005-12-02  James Livingston  <jrl@ids.org.au>
11205         * shell/rb-shell-preferences.c:
11206         (rb_shell_preferences_append_view_page):
11207         * sources/rb-library-source.c: (impl_get_config_widget):
11208         * sources/rb-podcast-source.c: (impl_get_config_widget):
11209         * sources/rb-source.c: (rb_source_get_config_widget):
11210         * sources/rb-source.h: Make the preference actually work.
11212         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
11213         if Rhythmbox is being run for the first time.
11215 2005-12-02  James Livingston  <jrl@ids.org.au>
11217         Add support for Rhythmbox to watch your library, and automatically add
11218         new tracks. Fixes bug 160159.
11220         * data/glade/library-prefs.glade: add "library location" preference
11221         * data/rhythmbox.schemas: add gconf key for the library location
11223         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
11224         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
11225         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
11226         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
11227         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
11228         (rhythmdb_load_thread_main), (rhythmdb_load),
11229         (monitor_subdirectory), (monitor_library_directory),
11230         (monitor_entry_file), (rhythmdb_sync_library_location),
11231         (library_location_changed_cb), (rhythmdb_check_changed_file),
11232         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
11233         specifiec in the gconf key for new additions. Also fix monitoring code
11234         so that it works properly, and notices deletions.
11236         * lib/rb-preferences.h:
11237         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
11238         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
11239         * shell/rb-audioscrobbler.h:
11240         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
11241         (rb_shell_preferences_append_view_page),
11242         (rb_shell_preferences_new):
11243         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
11244         it's preferences pane, so that we don't need #ifdef's through
11245         rb-shell-preferences.
11247         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
11248         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
11249         "preferences" property, so that sources can acccess it. This is needed
11250         because the library location pref needs to take effect when the window
11251         is closed.
11253         * sources/rb-library-source.c:
11254         (rb_library_source_library_location_changed),
11255         (rb_library_source_dispose), (rb_library_source_finalize),
11256         (rb_library_source_constructor), (impl_get_config_widget),
11257         (rb_library_source_preferences_sync),
11258         (rb_library_source_process_library_location_change),
11259         (rb_library_source_prefs_update),
11260         (rb_library_source_process_library_handle_selection),
11261         (rb_library_source_library_location_cb): set up and control the
11262         "library location" preference.
11264         * sources/rb-audiocd-source.c:(rb_source_class_init):
11265         * sources/rb-source.c: (rb_source_class_init): remove some pointless
11266         code.
11268 2005-12-01  William Jon McCann  <mccann@jhu.edu>
11270         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
11271         (rb_feed_podcast_properties_dialog_update_title): 
11272         * data/glade/podcast-feed-properties.glade:
11273         Make the feed properties dialog consistent with the podcast
11274         properties dialog.
11276 2005-12-01  William Jon McCann  <mccann@jhu.edu>
11278         * metadata/.cvsignore: 
11279         * po/.cvsignore: 
11280         * podcast/.cvsignore: Updated.
11282         * shell/main.c (main): Support DBus 0.6 flags.
11284 2005-11-30  Bastien Nocera  <hadess@hadess.net>
11286         * data/ui/rhythmbox-ui.xml:
11287         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
11288         (rhythmbd_entry_move_to_trash_set_error),
11289         (rhythmdb_entry_move_to_trash):
11290         * rhythmdb/rhythmdb.h:
11291         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
11292         (rb_shell_clipboard_cmd_delete),
11293         (rb_shell_clipboard_cmd_move_to_trash):
11294         * sources/rb-library-source.c: (rb_library_source_class_init),
11295         (impl_delete), (impl_move_to_trash):
11296         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
11297         (impl_delete), (impl_move_to_trash):
11298         * sources/rb-removable-media-source.c:
11299         (rb_removable_media_source_class_init):
11300         * sources/rb-source.c: (rb_source_class_init),
11301         (rb_source_can_move_to_trash), (rb_source_delete),
11302         (rb_source_move_to_trash):
11303         * sources/rb-source.h:
11304         Add move_to_trash member for the sources, implement move to trash for
11305         the library and playlists
11306         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
11307         local files to the trash, and deleting them from the database
11308         (Closes: #315389)
11310 2005-11-30  William Jon McCann  <mccann@jhu.edu>
11312         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
11313         (rb_tray_icon_init, rb_tray_icon_finalize): 
11314         * shell/rb-statusbar.c (rb_statusbar_class_init) 
11315         (rb_statusbar_init, rb_statusbar_finalize): 
11316         * shell/rb-source-header.c (rb_source_header_class_init) 
11317         (rb_source_header_init, rb_source_header_finalize): 
11318         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
11319         (rb_shell_finalize): 
11320         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
11321         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
11322         * shell/rb-shell-player.c (rb_shell_player_class_init) 
11323         (rb_shell_player_init, rb_shell_player_finalize): 
11324         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
11325         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
11326         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
11327         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
11328         * shell/rb-play-order.c (rb_play_order_class_init) 
11329         (rb_play_order_init, rb_play_order_finalize): 
11330         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
11331         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
11332         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
11333         (rb_random_play_order_init, rb_random_play_order_finalize): 
11334         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
11335         (rb_history_finalize): 
11336         * shell/rb-commander.c (rb_commander_class_init) 
11337         (rb_commander_init, rb_commander_finalize): 
11338         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
11339         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
11340         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
11341         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
11342         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
11343         (rb_podcast_properties_dialog_init) 
11344         (rb_podcast_properties_dialog_finalize): 
11345         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
11346         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
11347         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
11348         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
11349         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
11350         (rb_feed_podcast_properties_dialog_init) 
11351         (rb_feed_podcast_properties_dialog_finalize): 
11352         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
11353         (rb_metadata_init, rb_metadata_finalize): 
11354         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
11355         (rb_station_properties_dialog_init) 
11356         (rb_station_properties_dialog_finalize): 
11357         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
11358         (rb_daap_share_init, rb_daap_share_dispose): 
11360         Use g_type_class_add_private in all classes. Closes bug 313688.
11361         
11362 2005-11-30  James Livingston  <jrl@ids.org.au>
11364         patch by: William Jon McCann <mccann@jhu.edu> to use
11365         g_type_class_add_private in all classes. Closes bug 313688.
11367         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
11368         (rb_thread_finalize):
11369         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
11370         (rb_player_finalize):
11371         * rhythmdb/rhythmdb-property-model.c:
11372         (rhythmdb_property_model_class_init),
11373         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
11374         * rhythmdb/rhythmdb-query-model.c:
11375         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
11376         (rhythmdb_query_model_finalize):
11377         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
11378         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
11379         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
11380         (rhythmdb_finalize):
11381         * sources/rb-daap-source.c: (rb_daap_source_class_init),
11382         (rb_daap_source_init), (rb_daap_source_dispose):
11383         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
11384         (rb_iradio_source_init), (rb_iradio_source_finalize):
11385         * sources/rb-library-source.c: (rb_library_source_class_init),
11386         (rb_library_source_init), (rb_library_source_finalize):
11387         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
11388         (rb_playlist_source_init), (rb_playlist_source_dispose):
11389         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
11390         (rb_podcast_source_init), (rb_podcast_source_finalize):
11391         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
11392         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
11393         * sources/rb-sourcelist-model.h:
11394         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
11395         (rb_sourcelist_init), (rb_sourcelist_finalize):
11396         * sources/rb-sourcelist.h:
11397         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
11398         * widgets/rb-cell-renderer-rating.c:
11399         (rb_cell_renderer_rating_init),
11400         (rb_cell_renderer_rating_class_init),
11401         (rb_cell_renderer_rating_finalize):
11402         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
11403         (rb_druid_finalize):
11404         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
11405         (rb_entry_view_init), (rb_entry_view_finalize):
11406         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
11407         (rb_header_finalize):
11408         * widgets/rb-load-failure-dialog.c:
11409         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
11410         (rb_load_failure_dialog_finalize):
11411         * widgets/rb-property-view.c: (rb_property_view_class_init),
11412         (rb_property_view_init), (rb_property_view_finalize):
11413         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
11414         (rb_rating_finalize):
11415         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11416         (rb_search_entry_init), (rb_search_entry_finalize):
11417         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
11418         (rb_simple_view_init), (rb_simple_view_finalize):
11419         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
11420         (rb_song_display_box_init), (rb_song_display_box_finalize):
11421         * widgets/rb-song-info.c: (rb_song_info_class_init),
11422         (rb_song_info_init), (rb_song_info_finalize):
11423         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
11424         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
11426 2005-11-30  James Livingston  <jrl@ids.org.au>
11428         * iradio/rb-station-properties-dialog.c:
11429         (rb_station_properties_dialog_init),
11430         (rb_station_properties_dialog_new):
11431         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
11432         * lib/rb-glade-helpers.h:
11433         * podcast/rb-feed-podcast-properties-dialog.c:
11434         (rb_feed_podcast_properties_dialog_init),
11435         (rb_feed_podcast_properties_dialog_new):
11436         * podcast/rb-podcast-properties-dialog.c:
11437         (rb_podcast_properties_dialog_init),
11438         (rb_podcast_properties_dialog_new):
11439         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
11440         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
11441         * sources/rb-library-source.c: (impl_get_config_widget):
11442         * sources/rb-playlist-source-recorder.c:
11443         (rb_playlist_source_recorder_init):
11444         * widgets/rb-song-info.c: (rb_song_info_construct_single),
11445         (rb_song_info_constructor): create a single rb_glade_boldify_label()
11446         in rb-glade-helpers, rather than having eight implementation
11447         throughout the code.
11449 2005-11-30  James Livingston  <jrl@ids.org.au>
11451         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
11452         * lib/rb-util.h:
11453         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
11454         move the duration->string function into rb-utils, as it gets used in a
11455         few places.
11457         patch by: William Jon McCann <mccann@jhu.edu>
11459         * data/glade/podcast-properties.glade:
11460         * podcast/rb-podcast-properties-dialog.c:
11461         (rb_podcast_properties_dialog_init),
11462         (rb_podcast_properties_dialog_update),
11463         (rb_podcast_properties_dialog_update_title),
11464         (rb_podcast_properties_dialog_update_feed),
11465         (rb_podcast_properties_dialog_update_duration),
11466         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
11467         info dialog look more like the song info dialog. Use the same "Feed"
11468         value that is displayed in the treeview (ie. the album field), displays
11469         the duration, uses units in the bitrate field, and sort the fields in
11470         the same order.
11472 2005-11-29  James Livingston  <jrl@ids.org.au>
11474         * rhythmdb/rhythmdb-marshal.list:
11475         * rhythmdb/rhythmdb.h:
11476         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
11477         (emit_load_error_idle), (rhythmdb_process_metadata_load),
11478         (entry_to_rb_metadata), (emit_save_error_idle),
11479         (action_thread_main): emit error signal when metadata write fails.
11481         * shell/rb-shell.c: (rb_shell_constructor),
11482         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
11483         "metadata save" error and display it to the user.
11485 2005-11-29  James Livingston  <jrl@ids.org.au>
11487         * data/ui/rhythmbox-ui.xml:
11488         * sources/rb-podcast-source.c:
11489         (rb_podcast_source_songs_show_popup_cb),
11490         (rb_podcast_source_cmd_download_post),
11491         (rb_podcast_source_cmd_cancel_download): split download and cancel
11492         download commands. Replace usage of "Post" with "Esisode". Fixes bug
11493         321653.
11495 2005-11-18  William Jon McCann  <mccann@jhu.edu>
11497         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
11498         title on alert dialogs per the HIG.
11500         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
11501         the term Burn.
11502         (free_song_list): Routine to free song list.
11503         (rb_playlist_source_recorder_finalize): Use free_song_list.
11504         (rb_playlist_source_recorder_add_from_model): Return FALSE
11505         if unable to add all songs.  Check that duration of all
11506         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
11507         Fixes #321753.
11509         * sources/rb-playlist-source-recorder.c (check_media_length)
11510         (rb_playlist_source_recorder_start): Only check the duration
11511         and current media if the playlist length is longer than a
11512         standard CD (74 min).  Otherwise, just let the Recorder do the
11513         check.
11514         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
11515         drive at init.
11516         (rb_recorder_set_device): Don't leak drives.
11517         (rb_recorder_get_media_length): Use drive that was already set.
11518         (rb_recorder_burn): Let the recorder handle checking media type/size.
11519         Fixes bug 321754.
11521 2005-11-29  James Livingston  <jrl@ids.org.au>
11523         * rhythmdb/rhythmdb-query-model.c:
11524         (rhythmdb_query_model_set_sort_order):
11525         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
11526         emitting the tree-model "resorted" signal.
11528         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
11529         (rb_entry_view_finalize), (rb_entry_view_set_property),
11530         (rb_entry_view_constructor), (rb_entry_view_resort_model):
11531         * widgets/rb-entry-view.h: add a function to resort the entry view,
11532         using the above function.
11534         * sources/rb-iradio-source.c:
11535         (rb_iradio_source_songs_view_sort_order_changed_cb):
11536         * sources/rb-library-source.c: (rb_library_source_finalize),
11537         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
11538         * sources/rb-playlist-source.c:
11539         (rb_playlist_source_songs_sort_order_changed_cb):
11540         * sources/rb-podcast-source.c:
11541         (rb_podcast_source_posts_view_sort_order_changed_cb),
11542         (rb_podcast_source_do_query): use the above function instead of
11543         re-creating the query model. This makes changing the sorting an order
11544         of magnitude faster, as it uses a single resorted signal rather than
11545         deleting and re-adding everything (which emits 2N signals). Closes bug
11546         315389.
11548 2005-11-29  James Livingston  <jrl@ids.org.au>
11550         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
11551         autosizing, which results in large speedups. Closes bug 312122.
11553         * po/ja.po: change the date format, so that it is a constant width
11555         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
11556         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
11557         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
11558         (rb_entry_view_constructor): make columns use fixed widths,
11559         disable column autosizing, and enable fixed-height mode.
11561         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
11562         (rb_entry_view_get_time_date_column_sample):
11563         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
11564         and get the canonical date format for the locale.
11566 ============ Version 0.9.2
11568 2005-11-28  James Livingston  <jrl@ids.org.au>
11570         * configure.ac: bump version to 0.9.2
11571         * NEWS: update with changes for 0.9.2
11573 2005-11-28  James Livingston  <jrl@ids.org.au>
11575         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
11577         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
11578         Disable saving, renaming and delting for DAAP playlists.
11579         Fixes bug 322627.
11581 2005-11-28  James Livingston  <jrl@ids.org.au>
11583         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
11584         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
11585         prevent bug 322619.
11587         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
11588         * sources/rb-removable-media-source.c:
11589         (rb_removable_media_source_class_init): fix ipod browser visibility
11590         problem.
11592 2005-11-28  James Livingston  <jrl@ids.org.au>
11594         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
11595         Avahi 0.6 support actually work. Fixes bug 322519.
11597 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
11599         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
11600         avahi is specified in --with-mdns
11602 2005-11-27  James Livingston  <jrl@ids.org.au>
11604         patch by: Bastien Nocera <hadess@hadess.net>
11606         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
11607         not the private one. Fixes bug 322485.
11609 2005-11-26  James Livingston  <jrl@ids.org.au>
11611         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
11612         Avahi 0.6, as well as 0.5.
11614         * configure.ac:
11615         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
11616         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
11617         (add_service):
11619 2005-11-25  James Livingston  <jrl@ids.org.au>
11621         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
11622         321926.
11624 2005-11-25  James Livingston  <jrl@ids.org.au>
11626         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
11627         correct type for checking the date against 0. Stops a warning when
11628         saving metadata.
11630 2005-11-25  James Livingston  <jrl@ids.org.au>
11632         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
11633         adjustment to be inside the element's limits. Without this songs that
11634         have large ReplayGain values will recieve no increase because they are
11635         outside the acceptable range, causing them to remain quiet.
11637 2005-11-25  James Livingston  <jrl@ids.org.au>
11639         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
11640         * sources/rb-daap-source.c: (rb_daap_source_class_init):
11641         * sources/rb-ipod-source.c:
11642         * sources/rb-source.h:
11643         * sources/rb-library-source.h:
11644         * sources/rb-library-source.c: (rb_library_source_class_init),
11645         (rb_library_source_constructor),
11646         (rb_library_source_has_first_added_column),
11647         (rb_library_source_has_drop_support):
11648         * sources/rb-removable-media-source.c:
11649         (rb_removable_media_source_class_init): Make library-derived sources
11650         not show the Date Added column, as it doesn't make sense. Fixes bug
11651         322269.
11652         Move some of the feature funcs from the ipod and audio cd sources up to
11653         the removable media source.
11655 2005-11-24  James Livingston  <jrl@ids.org.au>
11657         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
11658         errors. oops.
11660 2005-11-24  James Livingston  <jrl@ids.org.au>
11662         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
11663         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
11664         (rb_iradio_source_constructor): Chain up dispose method and use
11665         G_DEFINE_TYPE
11667 2005-11-24  James Livingston  <jrl@ids.org.au>
11669         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
11670         mistake in the last commit that can cause crashes.
11672 2005-11-24  James Livingston  <jrl@ids.org.au>
11674         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
11675         instead of g_printerr.
11677         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
11678         rb_debug instead of g_warning. The message happens every time for
11679         removable media/daap shares, so it's not unusual.
11681 2005-11-24  James Livingston  <jrl@ids.org.au>
11683         patch by: Tom Parker <palfrey@tevp.net>
11685         * configure.ac: fix libsoup test for enabling daap
11687 2005-11-23  James Livingston  <jrl@ids.org.au>
11689         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
11690         (rb_query_creator_init), (rb_query_creator_constructor),
11691         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
11692         empty row to queries with no criteria. Fixes bug 322078. use
11693         G_DEFINE_TYPE.
11695 2005-11-23  James Livingston  <jrl@ids.org.au>
11697         patch by:  <baptiste.millemathias@gmail.com>
11699         * help/C/quick-reference.xml: update the quick reference to have the
11700         correct key bindings.
11702 2005-11-22  James Livingston  <jrl@ids.org.au>
11704         * sources/rb-library-source.c: (genres_selection_reset_cb),
11705         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
11706         reset the query when all browser selections are removed.
11708 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
11710         * podcast/rb-podcast-manager.c:
11711         (rb_podcast_manager_db_entry_deleted_cb):
11712         Use a custom loop to remove podcast posts, rather than
11713         gtk_tree_model_foreach(), as deleting the entries within
11714         that loop causes the iterator to return the first entry
11715         twice.  Instead, we need to find the next entry before
11716         removing the current one. Fixes bug 321956.
11717         (rb_podcast_manager_entry_remove_cb): No longer needed.
11719 2005-11-22  James Livingston  <jrl@ids.org.au>
11721         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
11722         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
11723         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
11725 2005-11-22  James Livingston  <jrl@ids.org.au>
11727         * sources/rb-podcast-source.c:
11728         (rb_podcast_source_post_date_cell_sort_func),
11729         (rb_podcast_source_post_status_cell_sort_func),
11730         (rb_podcast_source_post_feed_cell_sort_func):
11731         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
11732         (rb_entry_view_album_sort_func),
11733         (rb_entry_view_double_ceiling_sort_func),
11734         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
11735         the entry's location as a last resort when sorting, so the sort order
11736         is stable. This will stop entries moving around when two entries have
11737         the same sorting, and one of them gets played.
11739 2005-11-22  James Livingston  <jrl@ids.org.au>
11741         * daapsharing/rb-daap-connection.c:
11742         (rb_daap_connection_class_init), (rb_daap_connection_init),
11743         (connection_get_password), (build_message),
11744         (http_response_handler), (http_get), (handle_server_info),
11745         (handle_login), (handle_update), (handle_database_info),
11746         (handle_song_listing), (handle_playlists),
11747         (handle_playlist_entries), (rb_daap_connection_new),
11748         (rb_daap_connection_constructor), (rb_daap_connection_logout),
11749         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
11750         (rb_daap_connection_get_headers),
11751         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
11752         (rb_daap_connection_set_property),
11753         (rb_daap_connection_get_property):
11754         * daapsharing/rb-daap-connection.h:
11755         * sources/rb-daap-source.c: (rb_daap_source_dispose),
11756         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
11757         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
11758         of destroying the object when it is going to be used by a callback and
11759         fixes a double-free. Fixes bugs 321930 and 322007.
11761 2005-11-22  James Livingston  <jrl@ids.org.au>
11763         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
11764         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
11765         notification if there aren't any. Fixes bug 321968.
11767 2005-11-22  James Livingston  <jrl@ids.org.au>
11769         * rhythmdb/rhythmdb-property-model.c:
11770         (rhythmdb_property_model_set_property),
11771         (rhythmdb_property_model_finalize),
11772         (rhythmdb_property_model_compare),
11773         (rhythmdb_property_model_insert),
11774         (rhythmdb_property_model_delete_prop): Fix property model sorting
11775         where the display and sort keys are different. Fixes bug 321980.
11777 2005-11-22  James Livingston  <jrl@ids.org.au>
11779         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
11780         when import as a file or passed on the command line, and load them as
11781         playlists.
11783 2005-11-22  James Livingston  <jrl@ids.org.au>
11785         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
11787         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
11788         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
11789         a broken daap server. Fixes bug 321919.
11791 2005-11-22  James Livingston  <jrl@ids.org.au>
11793         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
11794         drag-and-drop for both the episodes and feeds list.
11795         
11796         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
11797         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
11798         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
11800         * widgets/rb-property-view.c: (rb_property_view_class_init),
11801         (rb_property_view_set_property), (rb_property_view_get_property),
11802         (rb_property_view_new), (rb_property_view_constructor):
11803         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
11804         (rb_simple_view_new), (rb_simple_view_constructor):
11805         * widgets/rb-simple-view.h: add a "draggable" property to property
11806         views and set it to false for the feed list. Fixes bug 321284.
11808 2005-11-22  James Livingston  <jrl@ids.org.au>
11810         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
11812         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
11813         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
11814         * sources/rb-ipod-source.c: (add_rb_playlist):
11815         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
11816         (rb_playlist_source_set_property),
11817         (rb_playlist_source_get_property), (rb_playlist_source_new),
11818         (impl_receive_drag), (rb_playlist_source_add_location),
11819         (rb_playlist_source_new_from_xml):
11820         * sources/rb-playlist-source.h: give playlists and (optional)
11821         entry-type, and reject entries that don't match. Fixes bug 322006.
11823 2005-11-21  James Livingston  <jrl@ids.org.au>
11825         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
11826         (rb_source_header_finalize): remove the weak references when the
11827         source header is finalised. Stops the callbacks being called after the
11828         object is destroyed.
11830 2005-11-21  James Livingston  <jrl@ids.org.au>
11832         * shell/main.c: (main): don't try to acquite bonobo/dbus when
11833         --no-registration was passed. It causes warnings that make it
11834         impossible to run with --no-registration --g-fatal-warnings
11836 2005-11-21  James Livingston  <jrl@ids.org.au>
11838         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
11839         of strings when they are still in use. Fixes bug 321547.
11841         (rb_daap_connection_destroy): fix memory leak
11843 2005-11-21  James Livingston  <jrl@ids.org.au>
11845         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
11846         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
11847         (rb_daap_mdns_resolve_cancel), (publish_cb),
11848         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
11849         support.
11851 2005-11-21  James Livingston  <jrl@ids.org.au>
11853         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
11854         sorting by genre
11856 2005-11-20  James Livingston  <jrl@ids.org.au>
11858         * podcast/rb-podcast-manager.c:
11859         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
11860         that we don't leak thread structures. Fixes bug 321636, and probably
11861         321775.
11863 2005-11-20  James Livingston  <jrl@ids.org.au>
11865         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
11866         (lookup_cd):
11867         * podcast/rb-podcast-manager.c: (start_job),
11868         (rb_podcast_manager_db_entry_deleted_cb),
11869         (rb_podcast_manager_entry_remove_cb):
11870         * podcast/rb-podcast-parse.c: (rb_insert_item),
11871         (rb_podcast_parse_load_feed):
11872         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
11873         * shell/rb-removable-media-manager.c:
11874         (rb_removable_media_manager_append_media_source):
11875         * shell/rb-shell.c: (add_to_library_response_cb):
11876         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
11877         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
11878         * sources/rb-iradio-source.c:
11879         (stations_view_drag_data_received_cb):
11880         * sources/rb-library-source.c: (string_list_equal),
11881         (impl_get_extra_views), (impl_receive_drag):
11882         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
11883         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
11884         (impl_receive_drag):
11885         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
11886         (rb_entry_view_append_column_custom), (harvest_entries):
11887         * widgets/rb-property-view.c:
11888         (rb_property_view_selection_changed_cb):
11889         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
11890         switch from using g_list_append to g_list_prepend. This changes
11891         operations from O(n^2) to O(n), which in cases like deleting a lot of
11892         tracks can give huge improvements in speed. Closes bug 321696.
11894 2005-11-20  James Livingston  <jrl@ids.org.au>
11896         * sources/rb-sourcelist.c: (rb_sourcelist_init),
11897         (rb_sourcelist_update_expander_visibility): fix indenting of child
11898         sources.
11900 2005-11-20  James Livingston  <jrl@ids.org.au>
11902         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
11903         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
11904         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
11905         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
11906         (add_service), (entry_group_cb): dynamically allocate memory, rather
11907         than using static variables.
11909         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
11910         re-enable the daap share if the name hasn't changed.
11911         * shell/rb-shell-preferences.c:
11912         (share_name_entry_focus_out_event_cb): don't ask the daap share to
11913         change it's name when the checkbox is disabled. Fixed bug 321748.
11915 2005-11-18  James Livingston  <jrl@ids.org.au>
11917         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
11918         as hidden if it is on the current workspace.
11920 2005-11-17  William Jon McCann  <mccann@jhu.edu>
11922         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
11923         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
11924         (rb_podcast_properties_dialog_parse_time): 
11925         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
11926         (rb_feed_podcast_properties_dialog_parse_time):
11927         Rework the way the last mod time strings are created.  It was using
11928         thread unsafe functions, not creating value UTF, and not not checking
11929         the value of the result before modifying it.  This new method fixes
11930         these problems.
11932 2005-11-18  James Livingston  <jrl@ids.org.au>
11934         Don't reset the search box when viewing a different source, because it
11935         will change what is being played. Closes 321593.
11937         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
11938         the search box
11940         * shell/rb-source-header.c: (rb_source_header_class_init),
11941         (rb_source_header_init), (rb_source_header_finalize): use
11942         G_DEFINE_TYPE.
11944         (rb_source_header_set_property),
11945         (rb_source_header_source_weak_destroy_cb),
11946         (rb_source_header_search_cb): store the search text when leaving a
11947         source and put it in the search box when viewing it again.
11949 2005-11-18  James Livingston  <jrl@ids.org.au>
11951         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
11952         (save_entry):
11953         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
11954         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
11955         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
11956         time stamp.
11958         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
11959         last-seen as the timestamp of the last update of the feed. Don't
11960         re-add episodes that have been deleted. Closes 319759.
11962 2005-11-18  James Livingston  <jrl@ids.org.au>
11964         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
11965         that don't have the day name at the start. Closes 321645.
11967 2005-11-18  James Livingston  <jrl@ids.org.au>
11969         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
11970         (rb_podcast_manager_copy_post),
11971         (rb_podcast_manager_get_podcast_dir):
11972         * podcast/rb-podcast-manager.h:
11973         * sources/rb-podcast-source.c: (impl_get_config_widget),
11974         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
11975         download location switching to / if the prefs were opened before
11976         downloading an episode. Closes 321611.
11978 2005-11-18  James Livingston  <jrl@ids.org.au>
11980         * data/glade/podcast-new.glade:
11981         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11982         (rb_new_podcast_dialog_set_property),
11983         (rb_new_podcast_dialog_get_property),
11984         (rb_new_podcast_dialog_response_cb),
11985         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
11986         for entering new podcast urls in. Closes bug 321610.
11988 2005-11-18  James Livingston  <jrl@ids.org.au>
11990         * sources/rb-podcast-source.c: (construct_query_from_selection),
11991         (rb_podcast_source_do_query): allow podcast list to be re-sorted
11992         without restarting RB. Closes bug 321612.
11994 2005-11-18  James Livingston  <jrl@ids.org.au>
11996         * widgets/rb-entry-view.c: (set_column_visibility),
11997         (rb_entry_view_sync_columns_visible): when changing visibility of one
11998         column, don't hide and re-show all the others. Makes a show/hide
11999         column operation a lot faster.
12001 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
12003         Closes bug 321702.
12005         * iradio/rb-station-properties-dialog.c
12006          (rb_station_properties_dialog_update_bitrate):
12007         Mark the bitrate value as being kbps, using the same
12008         translatable format string as rb-song-info.c
12010         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
12011          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
12013         * shell/rb-shell-player.c (info_available_cb):
12014          Use RB_METADATA_FIELD_BITRATE to update the iradio
12015          station's bitrate value.
12017 2005-11-17  James Livingston  <jrl@ids.org.au>
12019         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
12021         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
12022         free a NULL date.
12024 2005-11-17  James Livingston  <jrl@ids.org.au>
12026         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
12028         * lib/rb-stock-icons.c: emit a single warning rather than multiple
12029         assertions. Lookup the icon size correctly.
12031 2005-11-16  William Jon McCann  <mccann@jhu.edu>
12033         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
12034         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
12035         Fix build errors.
12037 2005-11-16  James Livingston  <jrl@ids.org.au>
12039         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
12040         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
12041         (rb_shell_preferences_sync_column_button): block the toggle signal of
12042         the column checkboxes while setting their initial state. This stops
12043         the visibility being re-set, which causes a lot of time being spent
12044         measuring the columns aagin when opening the prefs window.
12046         Use G_DEFINE_TYPE.
12048 2005-11-16  James Livingston  <jrl@ids.org.au>
12050         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12051         (rb_sourcelist_edit_source_name): don't assume that the editable
12052         source name is in the first column, because it isn't. Fixes bug
12053         320137.
12055 2005-11-16  James Livingston  <jrl@ids.org.au>
12057         * daapsharing/rb-daap-mdns.h:
12058         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
12059         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
12060         parts can know why operations failed. Avahi can report that the daemon
12061         was not running. Howl doesn't do this (yet).
12062         
12063         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
12064         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12065         (browse_cb): don't display mdns errors to the user, if it wa because
12066         the daemon was not running.
12068 2005-11-16  James Livingston  <jrl@ids.org.au>
12070         * rhythmdb/rhythmdb-property-model.c:
12071         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
12072         (rhythmdb_property_model_compare),
12073         (rhythmdb_property_model_insert),
12074         (rhythmdb_property_model_insert_prop),
12075         (rhythmdb_property_model_delete),
12076         (rhythmdb_property_model_delete_prop),
12077         (rhythmdb_property_model_get_value): use RBRefStrings rather than
12078         copying the string and re-creating the sort key. Saves a little bit of
12079         memory and time.
12081         (rhythmdb_property_model_perform_sync),
12082         (rhythmdb_property_model_sync): perform the count sync in an idle
12083         callback, so that it doesn't have to be re-run once per value when
12084         loading.
12086 2005-11-16  James Livingston  <jrl@ids.org.au>
12088         * rhythmdb/rhythmdb-query-model.c:
12089         (rhythmdb_query_model_entry_deleted_cb),
12090         (rhythmdb_query_model_remove_entry): remove deleted entries from the
12091         limited list. Stops problems if they are deleted, and then things on
12092         the main list are
12094 2005-11-16  James Livingston  <jrl@ids.org.au>
12096         * NEWS: update NEWS
12098         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
12099         button's minimise-to-tray action
12101 2005-11-16  James Livingston  <jrl@ids.org.au>
12103         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
12104         leak. Disable adding newly created files for now, because it doesn't
12105         work properly.
12107         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12108         (rb_sourcelist_model_finalize):
12109         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12110         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
12112 2005-11-16  James Livingston  <jrl@ids.org.au>
12114         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
12115         problem where a GError* wasn't being set to NULL. Actually check the
12116         result.
12118 2005-11-16  James Livingston  <jrl@ids.org.au>
12120         * doc/reference/tmpl/rb-entry-view.sgml:
12121         * doc/reference/tmpl/rhythmbox-unused.sgml:
12122         * doc/reference/tmpl/rhythmdb-query-model.sgml:
12123         * doc/reference/tmpl/rhythmdb.sgml:
12124         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
12125         docs, including the patch that was on bug 
12127         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
12128         API, because it should only be used by RhythmDB itself.
12130 2005-11-16  James Livingston  <jrl@ids.org.au>
12132         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
12133         pausing by middle clicking on the tray icon.
12135 2005-11-15  James Livingston  <jrl@ids.org.au>
12137         * configure.ac: enable audioscrobbler support by default, if libsoup
12138         is present.
12140 2005-11-15  James Livingston  <jrl@ids.org.au>
12142         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12143         Closes bug 321157.
12145         * configure.ac:
12146         * daapsharing/rb-daap-connection.c: (build_message),
12147         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
12148         support gzip encoded daap connections.
12150         (handle_song_listing): fix leak
12152 2005-11-15  James Livingston  <jrl@ids.org.au>
12154         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
12155         * sources/rb-podcast-source.c:
12156         (rb_podcast_source_post_date_cell_data_func): make the date format
12157         translatable again, so that translators can choose the best format for
12158         their locale (%x is huge in some locales)
12160 2005-11-15  James Livingston  <jrl@ids.org.au>
12162         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
12163         (end_job): mark podcast episodes as failed, if the metadata load
12164         fails. This will prevent people playing non-audio enclosures, helping
12165         stop bug 320366.
12167 2005-11-14  James Livingston  <jrl@ids.org.au>
12169         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
12170         video sink to fakesink. This will stop problems (potentially crashers)
12171         that will occur if the file contains a video stream.
12173         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
12174         rather than using magic numbers everywhere.
12176         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
12177         * sources/rb-podcast-source.c:
12178         (rb_podcast_source_songs_show_popup_cb),
12179         (rb_podcast_source_cmd_download_post),
12180         (rb_podcast_source_post_status_cell_data_func),
12181         (rb_podcast_source_entry_activated_cb): use the above constants.
12183         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
12184         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
12185         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
12186         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
12187         (cancel_job), (download_progress_cb),
12188         (rb_podcast_manager_cancel_download),
12189         (rb_podcast_manager_insert_feed): use the constants, and fix a
12190         trhead-safety issue.
12192 2005-11-14  Bastien Nocera  <hadess@hadess.net>
12194         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
12195         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
12196         entry-changed events after stats on startup, fixes entry deleted from
12197         filtered views not disappearing
12199 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
12201         Fix rhythmdb query model refcount and polling problems. Closes bug
12202         321410.
12204         * rhythmdb/rhythmdb-property-model.c:
12205         (rhythmdb_property_model_finalize):
12206          Unref the query model if we have one.
12208         * rhythmdb/rhythmdb-query-model.h:
12209          Remove poll and cancel methods.  Query cancellation
12210          never did anything anyway.
12212         * rhythmdb/rhythmdb-query-model.c:
12213         (rhythmdb_query_model_init): Remove GAsyncQueues.
12214          Replace the GAsyncQueue-based update processing
12215          with a simpler g_idle_add approach; still has the
12216          same queueing properties, but now we don't poll the
12217          model forever and updates are processed immediately.
12219         (_unref_entry), (rhythmdb_query_model_finalize):
12220          Unref DB entries when finalized
12222         (rhythmdb_query_model_has_pending_changes):
12223          Use our own counter to decide if there are updates pending
12225         (rhythmdb_query_model_process_update), (idle_process_update):
12226          Process updates using g_idle_add, or directly if possible
12228         (rhythmdb_query_model_signal_complete),
12229         (rhythmdb_query_model_add_entries):
12230          Change to new update processing method
12232         (idle_poll_model), (rhythmdb_query_model_poll):
12233          Remove GAsyncQueue-based update processing.
12235         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
12236          No need to poll the model any more - updates are processed
12237          directly for synchronous queries.
12239         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
12240          Property model needs to be unref'd here
12242         * sources/rb-library-source.c: (rb_library_source_do_query):
12243          Don't try to cancel the active query (it never worked anyway),
12244          remove obsolete poll call, unref property models as required,
12245          and don't unref the cached 'all' query, since hold on to it.
12246          We unref it when the sort order changes, which forces the query
12247          to be rerun.
12249         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12250          Unref the property model as required
12252         (rb_podcast_source_do_query):
12253          Treat any query with no selected feeds and no search text as
12254          an 'all' query.  Unref query models except for the cached
12255          'all' query, since we hold on to that.
12257         (rb_podcast_source_cmd_update_all):
12258          Unref the property model as required.
12260         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
12261          Don't try to cancel the query (it never worked anyway)
12263         (rb_entry_view_poll_model):
12264          No need for this any more.
12266         * widgets/rb-entry-view.h:
12267          Remove obsolete function rb_entry_view_poll_model
12269         * widgets/rb-property-view.c: (rb_property_view_set_property):
12270          Ref and unref the property model as required.
12272 2005-11-14  James Livingston  <jrl@ids.org.au>
12274         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12276         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
12277         for error. Closes bug 321416.
12279 2005-11-14  James Livingston  <jrl@ids.org.au>
12281         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12283         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
12284         a crasher if a feed's last-post value isn't set. Closes bug 321353.
12286 2005-11-14  James Livingston  <jrl@ids.org.au>
12288         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
12289         * shell/rb-removable-media-manager.c:
12290         (rb_removable_media_manager_set_uimanager):
12291         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
12292         translation domain for GTK action groups.
12294 2005-11-12  James Livingston  <jrl@ids.org.au>
12296         * po/POTFILES.in: remove the old station-new files
12298 2005-11-12  James Livingston  <jrl@ids.org.au>
12300         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
12301         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
12302         (save_entry): cause Rhythmbox to re-read the metadata from a file,
12303         when upgrading from a pre-Date-supporting version to a version that
12304         supports Date metadata. Closes bug 320760.
12306 2005-11-12  James Livingston  <jrl@ids.org.au>
12308         Add "update all podcast feeds" command. Closes bug 319954.
12310         * data/ui/rhythmbox-ui.xml: add to source context menu.
12312         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
12313         (register_action_group), (rb_podcast_source_cmd_download_post),
12314         (rb_podcast_source_cmd_delete_feed),
12315         (rb_podcast_source_cmd_properties_feed),
12316         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
12317         rather than the shell.
12319         (rb_podcast_source_update_feed_func),
12320         (rb_podcast_source_cmd_update_all): update every feed.
12322 2005-11-11  James Livingston  <jrl@ids.org.au>
12324         * shell/rb-shell-player.c: (rb_shell_player_class_init),
12325         (rb_shell_player_constructor), (rb_shell_player_finalize):
12326         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
12327         others follow the HIG recommentations.
12329 2005-11-11  James Livingston  <jrl@ids.org.au>
12331         * podcast/rb-podcast-manager.c:
12332         (rb_podcast_manager_subscribe_feed): check that the url is valid,
12333         before trying to use it.
12335 2005-11-11  James Livingston  <jrl@ids.org.au>
12337         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
12338         (rb_entry_view_append_column): When sorting by year, sort by album
12339         within a particular year.
12341 2005-11-11  James Livingston  <jrl@ids.org.au>
12343         * NEWS: updates
12345 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
12346         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
12347         spelling of "Language."
12349 2005-11-11  James Livingston  <jrl@ids.org.au>
12351         * rhythmdb/rhythmdb-property-model.c:
12352         (rhythmdb_property_model_row_inserted_cb),
12353         (rhythmdb_property_model_prop_changed_cb),
12354         (rhythmdb_property_model_entry_removed_cb),
12355         (rhythmdb_property_model_insert_prop),
12356         (rhythmdb_property_model_sync): display the count after the "All"
12357         entry of a property model.
12359         * widgets/rb-property-view.c: (rb_property_view_class_init),
12360         (rb_property_view_finalize), (rb_property_view_constructor): use
12361         G_DEFINE_TYPE
12363 2005-11-10  James Livingston  <jrl@ids.org.au>
12365         * rhythmdb/rhythmdb-query-model.c:
12366         (rhythmdb_query_model_remove_entry):
12367         * rhythmdb/rhythmdb-query-model.h: make
12368         rhythmdb_query_model_remove_entry return whether the entry was in the
12369         model.
12371         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12372         don't add non-SONG entries, as it doesn't really work and can cause
12373         crashes.
12375         (rb_playlist_source_remove_location): assert if the playlist and model
12376         differ on whether the entry is in the playlist
12378 2005-11-10  James Livingston  <jrl@ids.org.au>
12380         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
12381         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
12382         (rb_podcast_manager_thread_parse_feed),
12383         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
12384         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
12385         emulating one with a list and mutex. Fixes a couple of threading
12386         issues.
12387         
12388         (rb_podcast_manager_insert_feed): fix some problems with ignoring
12389         updated feeds.
12390         
12391         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
12392         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
12393         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
12394         * podcast/rb-podcast-parse.c: (rb_insert_item),
12395         (rb_podcast_parse_channel_free):
12396         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
12397         fix some typos, and make a bit of code clearer.
12399 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
12401         Make the "delete podcast" dialog better. Closes bug 320899.
12403         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
12404         Add PROP_WINDOW for rb_shell_get_property so we can access the
12405         GtkWindow widget of the main window. 
12406         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
12407         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
12408         podcast feed delete dialog less confusing as well.
12410 2005-11-09  James Livingston  <jrl@ids.org.au>
12412         * shell/rb-removable-media-manager.c:
12413         (rb_removable_media_manager_mount_volume),
12414         (rb_removable_media_manager_scan): Fix a crasher where we were getting
12415         NULL for a cd volume.
12417 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
12419         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
12420         method return a gboolean indicating whether the changes
12421         to the entry have already been applied.
12423         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
12424         only modify the entry if impl_entry_set returns FALSE.
12426         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
12427         When setting the location of an entry, update the
12428         hash table mapping locations to entries.
12430 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
12432         * data/glade/Makefile.am:
12433         * iradio/Makefile.am:
12434           Remove 'new station' dialog.
12436         * iradio/rb-station-properties-dialog.h:
12437         * sources/rb-iradio-source.c: (impl_song_properties):
12438         * shell/rb-shell.c: (rb_shell_cmd_new_station):
12439          Add 'new station' mode parameter to
12440          rb_station_properties_dialog_new.
12442         * (rb_station_properties_dialog_response_cb),
12443         (rb_station_properties_dialog_create_station):
12444          When in 'new station' mode, create the station
12445          when OK button is pressed.
12447         * iradio/rb-station-properties-dialog.c:
12448         (rb_station_properties_dialog_location_changed_cb):
12449          Only enable OK button if a location is specified
12450         (rb_station_properties_dialog_init),
12451         (rb_station_properties_dialog_new),
12452         (rb_station_properties_dialog_update),
12453         (rb_station_properties_dialog_update_title),
12454         (rb_station_properties_dialog_rated_cb),
12455         (rb_station_properties_dialog_update_play_count),
12456         (rb_station_properties_dialog_update_bitrate),
12457         (rb_station_properties_dialog_update_last_played),
12458         (rb_station_properties_dialog_update_rating),
12459         (rb_station_properties_dialog_update_playback_error),
12460         (rb_station_properties_dialog_show):
12461          Handle 'new station' mode, where there's no current
12462          station to edit.
12464 2005-11-08  James Livingston  <jrl@ids.org.au>
12466         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
12467         keybinding for track columns consistent between library and playlist
12468         sources.
12470 2005-11-07  James Livingston  <jrl@ids.org.au>
12472         * data/ui/rhythmbox-ui.xml:
12473         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
12474         "Edit" item to playlist menu. Closes bug 311470.
12476 2005-11-07  James Livingston  <jrl@ids.org.au>
12478         patch by: Jaap A. Haitsma <jaap@haitsma.org>
12480         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
12481         confirmation to save dialogs, with gtk 2.8 or higher.
12483 2005-11-07 James Livingston  <jrl@ids.org.au>
12484         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
12485         requirement to a general on, because people are going to have it for
12486         the other dependencies.
12488 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
12490         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
12491         delete dialog less confusing.  Use HIG recommended button order.
12492         Closes bug 320840.
12494 2005-11-06  James Livingston  <jrl@ids.org.au>
12496         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
12497         drag-and-drop error.
12498         
12499         * sources/rb-library-source.c: (rb_library_source_constructor): only
12500         add drag-and-drop for the Library itself, subclasses can add support
12501         themselves if they want it.
12503         * sources/rb-removable-media-source.c:
12504         (rb_removable_media_source_class_init): by default removable media
12505         sources do not support dnd
12507 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
12509         * data/glade/station-properties.glade:
12510          Add box containing error icon and error message label
12511         * iradio/rb-station-properties-dialog.c:
12512         (rb_station_properties_dialog_class_init),
12513         (rb_station_properties_dialog_finalize):
12514          Change this class to use G_DEFINE_TYPE
12515         (rb_station_properties_dialog_init),
12516         (rb_station_properties_dialog_update),
12517         (rb_station_properties_dialog_update_playback_error):
12518          Display error icon and message when there is one, and hide the error
12519          box otherwise.
12520         (rb_station_properties_dialog_show): Hack widget show
12521          method to update the visibility of the error info box when showing
12522          the widget.  Otherwise the icon is displayed all the time (same thing
12523          is done in rb-song-info). Closes bug 320749.
12525 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
12527         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
12528         parsing of the duration of podcast episodes from the feed. Closes bug
12529         320748.
12531 2005-11-05  James Livingston  <jrl@ids.org.au>
12533         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
12534         release date metadata ("Year"). Closes bug 166093.
12536         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
12537         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
12538         (rb_metadata_gst_add_tag_data):
12539         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12540         (save_entry):
12541         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
12542         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
12543         (set_props_from_metadata), (rhythmdb_entry_set_internal),
12544         (rhythmdb_prop_get_type):
12545         * rhythmdb/rhythmdb.h: add support for "date" property
12546         
12547         * data/glade/general-prefs.glade:
12548         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12549         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
12550         (rb_entry_view_append_column):
12551         * widgets/rb-entry-view.h:
12552         * sources/rb-library-source.c: (rb_library_source_constructor):
12553         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
12554         "Year" colums
12556         * data/glade/song-info.glade:
12557         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
12558         (rb_song_info_construct_single), (rb_song_info_constructor),
12559         (rb_song_info_populate_dialog), (rb_song_info_update_year),
12560         (rb_song_info_sync_entry_single): Add "Year" to song info window
12562         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
12563         sorted by year.
12565 2005-11-05  James Livingston  <jrl@ids.org.au>
12567         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
12568         description if it's very long.
12570 2005-11-05  James Livingston  <jrl@ids.org.au>
12572         pathc by: Artem Baguinski <femistofel@gmail.com>
12574         * help/C/Makefile.am:
12575         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
12576         Closes bug 320613.
12578 2005-11-05  James Livingston  <jrl@ids.org.au>
12580         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12582         * daapsharing/rb-daap-share.c: (write_next_chunk),
12583         (message_finished), (databases_cb): Use chunked file loading and
12584         sending in the DAAP server. This should reduce the amount of memory
12585         required to send files to the client.
12587 2005-11-05  James Livingston  <jrl@ids.org.au>
12589         * configure.ac: make the nautilus_burn_drive_door_is_open detection
12590         work better on some systems. Closes 320622.
12592 2005-11-05  James Livingston  <jrl@ids.org.au>
12594         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
12595         homepage, so that users can find out what AudioScrobbler is. Add
12596         access keys.
12598         * data/glade/daap-prefs.glade:
12599         * data/glade/general-prefs.glade:
12600         * data/glade/library-prefs.glade: make the indent be more consistent
12602         * data/glade/podcast-prefs.glade: 
12603         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
12604         (impl_get_config_widget): move thing out of code into glade, where
12605         they belong
12607 2005-11-05  James Livingston  <jrl@ids.org.au>
12609         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
12610         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
12612 2005-11-04  James Livingston  <jrl@ids.org.au>
12614         * configure.ac: don't print DAAP configure info twice
12616 2005-11-04  James Livingston  <jrl@ids.org.au>
12618         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12619         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
12620         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
12621         #ifdefs, since we removed the symbol. Oops
12623 2005-11-04  James Livingston  <jrl@ids.org.au>
12625         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
12626         after the connect line, not before. Oops.
12628 2005-11-04  James Livingston  <jrl@ids.org.au>
12630         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
12631         fix some warnings
12633 2005-11-03  James Livingston  <jrl@ids.org.au>
12635         * NEWS: update the news file
12637         * data/glade/general-prefs.glade: make the prefs refer to "time" not
12638         "duration" column.
12640         * data/ui/rhythmbox-ui.xml:
12641         * shell/rb-playlist-manager.c:
12642         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
12643         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
12644         and "delete" for feeds.
12646 2005-11-03  James Livingston  <jrl@ids.org.au>
12648         * sources/rb-podcast-source.c: (impl_delete),
12649         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
12650         feed. Closes 319760.
12652 2005-11-03  James Livingston  <jrl@ids.org.au>
12654         Don't start playing from the remote site when a un-downloaded podcast
12655         is activated. Closes 319983.
12656         
12658         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
12659         (write_job_data), (download_progress_cb): write the local location as
12660         soon as any data is recieved
12662         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
12663         the mountpoint to NULL for podcast episodes that haven't yet been
12664         downloaded.
12665         
12666         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
12667         start playing a podcast if it hasn't been downloaded.
12668         
12669         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
12670         (rb_podcast_source_entry_activated_cb): begin downloading when the
12671         podcast is activated.
12673 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
12675         * data/glade/general-prefs.glade:  Fix capitalization.
12676         * shell/rb-removable-media-manager.c:  Add a mnemonic.
12677         * sources/rb-podcast-source.c:
12678         (rb_podcast_source_songs_show_popup_cb),
12679         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
12681 2005-11-03  James Livingston  <jrl@ids.org.au>
12683         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
12685         * shell/rb-removable-media-manager.c:
12686         (rb_removable_media_manager_mount_volume): don't check network or
12687         autofs mounts, as they're not going to be removable media. Stops
12688         sending lots of warnings to syslog. Closes 320571.
12690         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
12691         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
12692         320570.
12694 2005-11-03  James Livingston  <jrl@ids.org.au>
12696         Add support for playing audio CDs. Metadata lookup is done using
12697         SoundJuicer's MusicBrainz lookup code, which can be switched to using
12698         the library when it gets broken out of S-J.
12699         
12700         Add a "rescan media" menu item, and commands for ejecting removable
12701         media.
12703         Move nautilus-cd-burner from optional to required depenency.
12705         * configure.ac:
12706         * data/ui/rhythmbox-ui.xml:
12707         * metadata/Makefile.am:
12708         + metadata/sj-error.c:
12709         + metadata/sj-error.h:
12710         + metadata/sj-metadata-marshal.list:
12711         + metadata/sj-metadata-musicbrainz.c:
12712         + metadata/sj-metadata-musicbrainz.h:
12713         + metadata/sj-metadata.c:
12714         + metadata/sj-metadata.h:
12715         + metadata/sj-structures.c:
12716         + metadata/sj-structures.h:
12717         * player/Makefile.am:
12718         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
12719         * po/POTFILES.in:
12720         * shell/Makefile.am:
12721         * shell/rb-removable-media-manager.c:
12722         (rb_removable_media_manager_dispose), (poll_tray_opened),
12723         (end_cd_drive_monitor), (begin_cd_drive_monitor),
12724         (rb_removable_media_manager_load_media),
12725         (rb_removable_media_manager_mount_volume),
12726         (rb_removable_media_manager_cmd_eject_medium),
12727         (rb_removable_media_manager_cmd_scan_media),
12728         (rb_removable_media_manager_check_volume),
12729         (rb_removable_media_manager_unmount_volume_swap),
12730         (rb_removable_media_manager_scan):
12731         * sources/Makefile.am:
12732         + sources/rb-audiocd-source.c:
12733         + sources/rb-audiocd-source.h:
12734         * tests/Makefile.am:
12736 2005-11-02  James Livingston  <jrl@ids.org.au>
12738         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12740         * sources/rb-iradio-source.c:
12741         (stations_view_drag_data_received_cb):
12742         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
12743         don't crash when the second uri is missing frm the drop, which
12744         browsers sometimes do.
12746 2005-11-01  James Livingston  <jrl@ids.org.au>
12748         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
12749         (rb_podcast_manager_insert_feed):
12750         * podcast/rb-podcast-manager.h:
12751         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
12752         (rb_set_item_value), (rb_validate_item_propert),
12753         (rb_podcast_parse_date), (rb_podcast_parse_time):
12754         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
12755         from the feed.
12757 2005-10-31  James Livingston  <jrl@ids.org.au>
12759         * ChangeLog:
12760         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
12761         huge
12763 2005-10-31  James Livingston  <jrl@ids.org.au>
12765         * sources/rb-podcast-source.c:
12766         (rb_podcast_source_post_date_cell_data_func): generate the date string
12767         in a way that is correct in all locales.
12768         
12769         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
12770         (rhythmdb_entry_sync_mirrored): make the last played/date added
12771         columns use the same format.
12773 2005-10-30  James Livingston  <jrl@ids.org.au>
12776         * podcast/rb-podcast-manager.c:
12777         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
12778         
12779         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
12780         iradio errors better.
12782 2005-10-30  James Livingston  <jrl@ids.org.au>
12784         patch by: Artem Baguinski <femistofel@gmail.com>
12786         * metadata/rb-metadata-gst.c: (rb_metadata_init):
12788 2005-10-30  James Livingston  <jrl@ids.org.au>
12790         * podcast/rb-podcast-manager.c:
12791         (rb_podcast_manager_subscribe_feed),
12792         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
12793         already been added, usually as a radio station. Closes 319434.
12795 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
12797         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
12798         mnemonics & resize issues)
12799         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
12800         & mnemonics)
12801         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
12802         widget for the "download location" label.
12804         Closes bug 320184.
12806 2005-10-29  James Livingston  <jrl@ids.org.au>
12808         Allow the search box to match words from multiple properties. Closes
12809         bug 139196. Thanks to the person from IRC who did a lot of the initial
12810         work.
12813         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
12814         * lib/rb-util.h: Add functions to split a string into words, and one
12815         to perform "search folding" which is currently like casefolding but
12816         also strips punctuation
12817         
12818         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
12819         (rhythmdb_query_preprocess):
12820         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
12821         against title, artist, album and genre (for the search box)
12822         
12823         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
12824         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12825         (save_entry), (search_match_properties),
12826         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
12827         splitting into words and matching across multiple properties.
12828         
12829         * sources/rb-library-source.c: (construct_query_from_selection): use
12830         the new SEARCH_MATCH property for the search box
12831         
12832         * widgets/rb-entry-view.c: (type_ahead_search_func):
12834 2005-10-29  James Livingston  <jrl@ids.org.au>
12836         * lib/rb-stock-icons.c: (rb_stock_icons_init):
12837         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
12838         
12839         * shell/rb-playlist-manager.c:
12840         * shell/rb-shell.c: use the above stock ids, so that the icons get set
12841         correctly.
12842         
12843         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
12844         initial state of the shuffle/repeat menu items correctly. Patch from
12845         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
12847 2005-10-29  James Livingston  <jrl@ids.org.au>
12849         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
12850         double-free.
12851         
12852         * widgets/rb-cell-renderer-pixbuf.c:
12853         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
12854         icon go black when row is not selected
12855         
12856         * doc/reference/tmpl/rb-daap-connection.sgml:
12857         * doc/reference/tmpl/rhythmdb.sgml: doc updates
12859 2005-10-29  James Livingston  <jrl@ids.org.au>
12861         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
12862         silly mistake, where it could think partial downloads has been
12863         completed.
12865 2005-10-29  James Livingston  <jrl@ids.org.au>
12867         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12869         * data/glade/song-info.glade:
12870         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12871         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
12872         (rb_song_info_sync_entry_single): show the disc number in the song
12873         info window. From bug 311199.
12875 2005-10-29  James Livingston  <jrl@ids.org.au>
12877         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
12878         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
12879         regularly. Closes 155306.
12881 2005-10-29  James Livingston  <jrl@ids.org.au>
12883         * podcast/rb-podcast-manager.c:
12884         (rb_podcast_manager_download_entry),
12885         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
12886         (rb_podcast_manager_insert_feed):
12887         * podcast/rb-podcast-manager.h:
12888         * podcast/rb-podcast-parse.c: (rb_set_item_value),
12889         (rb_podcast_parser_start_element):
12890         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
12891         don't download them again. However, it can't resume
12892         partially-downloaded ones.
12894 2005-10-28  James Livingston  <jrl@ids.org.au>
12896         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
12897         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
12898         work. Don't attempt to write duration as a tag.
12900         Thanks to Artem Baguinski <femistofel@gmail.com>
12902 2005-10-28  James Livingston  <jrl@ids.org.au>
12904         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
12905         don't disable the status-bar menu item when the current source doesn't
12906         use the search box.
12908 2005-10-28  James Livingston  <jrl@ids.org.au>
12910         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
12911         crash if the file has unknown length
12913 2005-10-27  James Livingston  <jrl@ids.org.au>
12915         * daapsharing/rb-daap-connection.c:
12916         (rb_daap_connection_state_done): don't assert when a daap server
12917         doesn't have any playlists
12919 2005-10-27  James Livingston  <jrl@ids.org.au>
12921         * sources/rb-sourcelist-model.c:
12922         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
12923         source for the sourcelist. Closes bug 319817.
12925 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
12927         Patch by: Renato Araujo <renatox@gmail.com>
12929         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
12930           Fix for a crasher caused by previous patch.
12932 2005-10-26  James Livingston  <jrl@ids.org.au>
12934         * data/glade/podcast-prefs.glade:
12935         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
12936         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
12937         * sources/rb-podcast-source.c: (rb_podcast_source_new):
12938         * podcast/rb-podcast-manager.c:
12939         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
12940         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
12941         * shell/rb-shell.c: Change some strings to make them more consistent.
12942         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
12943         makes it clearer which is which. "Episode" may not be the best term,
12944         but it seems to be widely used.
12945         
12946         Also fix some strings that weren't marked as translatable.
12947         
12948         * podcast/rb-feed-podcast-properties-dialog.c:
12949         (rb_feed_podcast_properties_dialog_class_init),
12950         (rb_feed_podcast_properties_dialog_finalize):
12951         * podcast/rb-new-podcast-dialog.c:
12952         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
12953         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12954         (rb_simple_view_finalize), (rb_simple_view_constructor):
12955         * podcast/rb-podcast-properties-dialog.c:
12956         (rb_podcast_properties_dialog_class_init),
12957         (rb_podcast_properties_dialog_finalize):
12958         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
12959         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
12960         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12961         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
12962         use G_DEFINE_TYPE, instead of doing it manually.
12964 2005-10-26  James Livingston  <jrl@ids.org.au>
12966         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
12967         <jrl@ids.org.au>
12969         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
12970         (rb_metadata_init): Check that the necessary plugins are present to do
12971         id3 editing.
12972         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
12973         corrupted before replacing the original.
12975 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
12977         reviewed by: James Livingston <jrl@ids.org.au>
12979         Assign sequential IDs to playlists for DAAP rather than using the
12980         address of the playlist object.  Less flaky, and should work on 64bit
12981         platforms. Closes bug 319304.
12983         * daapsharing/rb-daap-share.c: 
12984         (rb_daap_share_set_property): watch for playlist creation
12985         (_find_by_id), (_find_by_source): playlist list search functions
12986         (rb_daap_share_playlist_created),
12987         (rb_daap_share_process_playlist),
12988         (rb_daap_share_playlist_destroyed):
12989          update playlist list as it changes, use weak refs on 
12990          playlists to get notified on destroy.
12991         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
12992          destroy playlist list on shutdown
12993         (add_playlist_to_mlcl): use playlist ID rather than pointer in
12994          DAAP response
12995         (databases_cb): search for playlist ID in list rather than just
12996          converting it to a pointer; return HTTP 404 if playlist not 
12997          found.
12998         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
12999          is already used for the main library
13001 2005-10-26  James Livingston  <jrl@ids.org.au>
13003         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13005         * daapsharing/rb-daap-connection.c: (build_message),
13006         (http_response_handler), (http_get), (handle_server_info),
13007         (handle_login), (handle_update), (handle_database_info),
13008         (handle_song_listing), (handle_playlists),
13009         (handle_playlist_entries), (handle_logout),
13010         (rb_daap_connection_new), (rb_daap_connection_logout),
13011         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13012         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
13013         * daapsharing/rb-daap-connection.h:
13014         * sources/rb-daap-source.c: (rb_daap_source_activate),
13015         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13016         (rb_daap_source_disconnect): Make connecting to DAAP sources
13017         asynchronous, so that non-responsive servers don't hang the UI. Closes
13018         316225.
13020 2005-10-26  James Livingston  <jrl@ids.org.au>
13022         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13024         * rhythmdb/rhythmdb-query-model.c:
13025         (rhythmdb_query_model_do_reorder): generate the row re-order map
13026         correctly.
13027         
13028         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
13029         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
13030         Update selection when rows get re-ordered. Closes 319718.
13032 2005-10-26  James Livingston  <jrl@ids.org.au>
13034         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
13036         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
13037         actually set the db pointer in play orders. Closes 319818.
13039 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
13041         Patch by: Renato Araujo <renatox@gmail.com>
13043         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13044         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
13045         (rb_podcast_manager_update_synctime),
13046         (rb_podcast_manager_config_changed),
13047         (rb_podcast_manager_insert_feed):
13048         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13049         (save_entry):
13050         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13051         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13052         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
13054 2005-10-25  James Livingston  <jrl@ids.org.au>
13056         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
13057         (db_entry_deleted_cb): don't share tracks that are hidden because the
13058         file is missing.
13060 2005-10-22  James Livingston  <jrl@ids.org.au>
13062         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
13063         crash if an entry couldn't be playerd, without streamer setting an
13064         error.
13066         
13067         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13069         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13070         (rb_new_podcast_dialog_text_changed): enable the add button when a url
13071         is pasted into the dialog.
13072         
13073         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13074         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13075         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
13076         (rb_podcast_parse_channel_free):
13077         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
13078         feeds
13080 2005-10-22  James Livingston  <jrl@ids.org.au>
13082         * sources/rb-iradio-source.c:
13083         (rb_iradio_source_first_time_changed): Make merging the default
13084         stations actually work.
13085         
13086         * sources/rb-podcast-source.c:
13087         (rb_podcast_source_post_status_cell_data_func): fix problem where some
13088         people weren't seing the percentages in the stats column.
13090 2005-10-21  James Livingston  <jrl@ids.org.au>
13092         Patch from Caio Marcelo <cmarcelo@gmail.com>
13094         * shell/rb-shell.c: (rb_shell_window_state_cb),
13095         (rb_shell_get_visibility), (idle_hide_mainwindow),
13096         (rb_shell_set_visibility): Make the "show window" item in the tray
13097         icon menu show the toggle state correctly. Use a better policy on
13098         deciding whether the window is "visible" or not. Closes bug 308053.
13100 2005-10-21  James Livingston  <jrl@ids.org.au>
13102         * doc/reference/tmpl/rb-shell-preferences.sgml:
13103         * shell/Makefile.am: fix building with gtk-doc
13105         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
13106         don't submit podcasts to audioscrobbler
13107         
13108         
13109         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13110         
13111         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13112         (rb_set_item_value): strip spaces surrounding podcast urls
13113         
13115         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
13116         
13117         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
13119 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
13121         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
13122          Audioscrobbler/Last.fm support
13124         * configure.ac:
13125         * data/glade/Makefile.am:
13126         * data/glade/audioscrobbler-prefs.glade:
13127         * data/rhythmbox.schemas:
13128         * lib/Makefile.am:
13129         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
13130         * lib/md5.h:
13131         * lib/rb-preferences.h:
13132         * po/POTFILES.in:
13133         * shell/Makefile.am:
13134         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
13135         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
13136         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
13137         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
13138         (rb_audioscrobbler_timeout_cb), (mkmd5),
13139         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
13140         (rb_audioscrobbler_do_handshake),
13141         (rb_audioscrobbler_do_handshake_cb),
13142         (rb_audioscrobbler_submit_queue),
13143         (rb_audioscrobbler_submit_queue_cb),
13144         (rb_audioscrobbler_import_settings),
13145         (rb_audioscrobbler_preferences_sync),
13146         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
13147         (rb_audioscrobbler_gconf_changed_cb),
13148         (rb_audioscrobbler_song_changed_cb),
13149         (rb_audioscrobbler_username_entry_changed_cb),
13150         (rb_audioscrobbler_username_entry_activate_cb),
13151         (rb_audioscrobbler_password_entry_changed_cb),
13152         (rb_audioscrobbler_password_entry_activate_cb),
13153         (rb_audioscrobbler_enabled_check_changed_cb),
13154         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
13155         (rb_audioscrobbler_load_entry_from_string),
13156         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
13157         (rb_audioscrobbler_print_queue),
13158         (rb_audioscrobbler_free_queue_entries):
13159         * shell/rb-audioscrobbler.h:
13160         * shell/rb-shell-preferences.c:
13161         (rb_shell_preferences_append_audioscrobbler_config):
13162         * shell/rb-shell-preferences.h:
13163         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
13164         (rb_shell_select_source), (rb_shell_cmd_preferences):
13165         * sources/Makefile.am:
13167 2005-10-21  James Livingston  <jrl@ids.org.au>
13169         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
13171         * Makefile.am:
13172         * NEWS:
13173         * configure.ac:
13174         * data/art/Makefile.am:
13175         * data/glade/Makefile.am:
13176         * data/rhythmbox.schemas:
13177         * data/ui/rhythmbox-ui.xml:
13178         * doc/reference/Makefile.am:
13179         * doc/reference/tmpl/rhythmdb.sgml:
13180         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13181         * lib/rb-stock-icons.h:
13182         * po/POTFILES.in:
13183         * podcast/Makefile.am:
13184         + podcast/rb-feed-podcast-properties-dialog.c:
13185         + podcast/rb-feed-podcast-properties-dialog.h:
13186         + podcast/rb-new-podcast-dialog.c:
13187         + podcast/rb-new-podcast-dialog.h:
13188         + podcast/rb-podcast-manager.c:
13189         + podcast/rb-podcast-manager.h:
13190         + podcast/rb-podcast-marshal.list:
13191         + podcast/rb-podcast-parse.c:
13192         + podcast/rb-podcast-parse.h:
13193         + podcast/rb-podcast-properties-dialog.c:
13194         + podcast/rb-podcast-properties-dialog.h:
13195         * rhythmdb/rhythmdb-property-model.c:
13196         (rhythmdb_property_model_set_property),
13197         (rhythmdb_property_model_enable_drag):
13198         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13199         (rhythmdb_tree_parser_end_element), (save_entry),
13200         (rhythmdb_tree_save):
13201         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13202         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
13203         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
13204         (rhythmdb_entry_podcast_feed_get_type):
13205         * rhythmdb/rhythmdb.h:
13206         * shell/Makefile.am:
13207         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
13208         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
13209         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
13210         (rb_shell_quit):
13211         * sources/Makefile.am:
13212         + sources/rb-podcast-source.c:
13213         + sources/rb-podcast-source.h:
13214         * widgets/Makefile.am:
13215         * widgets/rb-property-view.c: (rb_property_view_class_init),
13216         (rb_property_view_constructor),
13217         (rb_property_view_selection_changed_cb),
13218         (rb_property_view_get_treeview):
13219         * widgets/rb-property-view.h:
13220         + widgets/rb-simple-view.c:
13221         + widgets/rb-simple-view.h:
13223 2005-10-20  James Livingston  <jrl@ids.org.au>
13225         * NEWS: update with changes since 0.9.1
13227         * configure.ac: check whether collate_key_for_filename is available
13228         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
13229         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
13230         it if it isn't available in glib (i.e. building against 2.6)
13231         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
13232         collation to get "natural sorting". Closes bug 158599.
13234 2005-10-20  James Livingston  <jrl@ids.org.au>
13236         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
13238         * doc/reference/tmpl/rb-shell-player.sgml:
13239         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13240         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
13241         (rb_shell_player_get_playing),
13242         (rb_shell_player_get_playing_time_string),
13243         (rb_shell_player_get_playing_time),
13244         (rb_shell_player_set_playing_time), (tick_cb),
13245         (rb_shell_player_get_playing_path), (filter_mmkeys):
13246         * shell/rb-shell-player.h:
13247         * shell/rb-shell-player.xml:
13248         * shell/rb-shell.c: (rb_shell_constructor),
13249         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
13250         (rb_shell_set_window_title), (rb_shell_playing_impl),
13251         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
13252         Merge the duration_changed and elapsed_changed DBUS signals into one
13253         elapsed_changed signal. Check that the output argument isn't NULL
13254         before trying to put things in it.
13256 2005-10-20  James Livingston  <jrl@ids.org.au>
13258         * rhythmdb/rhythmdb-query-model.c:
13259         (rhythmdb_query_model_entry_added_cb),
13260         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
13261         problem where hidden entries could be shown in playlists.
13262         
13263         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
13264         issues when switching in and out of small mode.
13266 2005-10-19  James Livingston  <jrl@ids.org.au>
13268         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
13269         (rb_shell_constructor), (rb_shell_window_state_cb),
13270         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
13271         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
13272         (rb_shell_view_smalldisplay_changed_cb),
13273         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
13274         (rb_shell_sync_paned): remove gconf window-state races, prevent
13275         changing small mode too often, fix window event races. Closes 122806.
13277         
13278         Patch from Caio Marcelo <cmarcelo@gmail.com>
13280         * data/rhythmbox.schemas:
13281         * shell/rb-shell.c: (rb_shell_window_state_cb),
13282         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
13283         Remember the position of the window. Closes 315289.
13285 2005-10-19  James Livingston  <jrl@ids.org.au>
13287         Patch from Christophe Fergeau  <teuf@gnome.org>
13289         * configure.ac: determine whether libgpod is present when neither
13290         --with-ipod nor --without-ipod is passed
13292 2005-10-19  James Livingston  <jrl@ids.org.au>
13294         Patch from Caio Marcelo <cmarcelo@gmail.com>
13296         * shell/rb-shell-player.c: (do_next_idle),
13297         (rb_shell_player_do_previous), (rb_shell_player_do_next),
13298         (rb_shell_player_do_previous_or_seek),
13299         (rb_shell_player_previous_button_cb),
13300         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
13301         (rb_shell_player_cmd_next), (eos_cb):
13302         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
13303         end of the playlist is reached.
13305 2005-10-19  Christopher Aillon  <caillon@redhat.com>
13307         * lib/rb-thread.c: fix a few GSource leaks
13309 2005-10-19  James Livingston  <jrl@ids.org.au>
13311         * doc/reference/tmpl/bacon-volume.sgml:
13312         * doc/reference/tmpl/disclosure-widget.sgml:
13313         * doc/reference/tmpl/eel-gconf-extensions.sgml:
13314         * doc/reference/tmpl/eggnotificationbubble.sgml:
13315         * doc/reference/tmpl/eggtrayicon.sgml:
13316         * doc/reference/tmpl/gsequence.sgml:
13317         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
13318         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
13319         * doc/reference/tmpl/rb-daap-connection.sgml:
13320         * doc/reference/tmpl/rb-daap-dialog.sgml:
13321         * doc/reference/tmpl/rb-daap-mdns.sgml:
13322         * doc/reference/tmpl/rb-daap-share.sgml:
13323         * doc/reference/tmpl/rb-daap-sharing.sgml:
13324         * doc/reference/tmpl/rb-daap-source.sgml:
13325         * doc/reference/tmpl/rb-daap-src.sgml:
13326         * doc/reference/tmpl/rb-daap-structure.sgml:
13327         * doc/reference/tmpl/rb-debug.sgml:
13328         * doc/reference/tmpl/rb-dialog.sgml:
13329         * doc/reference/tmpl/rb-druid.sgml:
13330         * doc/reference/tmpl/rb-entry-view.sgml:
13331         * doc/reference/tmpl/rb-enums.sgml:
13332         * doc/reference/tmpl/rb-file-helpers.sgml:
13333         * doc/reference/tmpl/rb-glade-helpers.sgml:
13334         * doc/reference/tmpl/rb-header.sgml:
13335         * doc/reference/tmpl/rb-history.sgml:
13336         * doc/reference/tmpl/rb-ipod-source.sgml:
13337         * doc/reference/tmpl/rb-iradio-source.sgml:
13338         * doc/reference/tmpl/rb-library-source.sgml:
13339         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
13340         * doc/reference/tmpl/rb-metadata.sgml:
13341         * doc/reference/tmpl/rb-new-station-dialog.sgml:
13342         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
13343         * doc/reference/tmpl/rb-play-order-linear.sgml:
13344         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
13345         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
13346         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
13347         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
13348         * doc/reference/tmpl/rb-play-order-random.sgml:
13349         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
13350         * doc/reference/tmpl/rb-play-order.sgml:
13351         * doc/reference/tmpl/rb-player.sgml:
13352         * doc/reference/tmpl/rb-playlist-manager.sgml:
13353         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
13354         * doc/reference/tmpl/rb-playlist-source.sgml:
13355         * doc/reference/tmpl/rb-preferences.sgml:
13356         * doc/reference/tmpl/rb-property-view.sgml:
13357         * doc/reference/tmpl/rb-query-creator-private.sgml:
13358         * doc/reference/tmpl/rb-query-creator.sgml:
13359         * doc/reference/tmpl/rb-rating-helper.sgml:
13360         * doc/reference/tmpl/rb-rating.sgml:
13361         * doc/reference/tmpl/rb-recorder.sgml:
13362         * doc/reference/tmpl/rb-refstring.sgml:
13363         * doc/reference/tmpl/rb-removable-media-manager.sgml:
13364         * doc/reference/tmpl/rb-removable-media-source.sgml:
13365         * doc/reference/tmpl/rb-search-entry.sgml:
13366         * doc/reference/tmpl/rb-shell-clipboard.sgml:
13367         * doc/reference/tmpl/rb-shell-glue.sgml:
13368         * doc/reference/tmpl/rb-shell-player-glue.sgml:
13369         * doc/reference/tmpl/rb-shell-player.sgml:
13370         * doc/reference/tmpl/rb-shell-preferences.sgml:
13371         * doc/reference/tmpl/rb-shell.sgml:
13372         * doc/reference/tmpl/rb-song-display-box.sgml:
13373         * doc/reference/tmpl/rb-song-info.sgml:
13374         * doc/reference/tmpl/rb-source-header.sgml:
13375         * doc/reference/tmpl/rb-source.sgml:
13376         * doc/reference/tmpl/rb-sourcelist-model.sgml:
13377         * doc/reference/tmpl/rb-sourcelist.sgml:
13378         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
13379         * doc/reference/tmpl/rb-statusbar.sgml:
13380         * doc/reference/tmpl/rb-stock-icons.sgml:
13381         * doc/reference/tmpl/rb-string-helpers.sgml:
13382         * doc/reference/tmpl/rb-thread.sgml:
13383         * doc/reference/tmpl/rb-tray-icon.sgml:
13384         * doc/reference/tmpl/rb-tree-dnd.sgml:
13385         * doc/reference/tmpl/rb-tree-model-sort.sgml:
13386         * doc/reference/tmpl/rb-util.sgml:
13387         * doc/reference/tmpl/rhythmbox-unused.sgml:
13388         * doc/reference/tmpl/rhythmdb-property-model.sgml:
13389         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13390         * doc/reference/tmpl/rhythmdb-tree.sgml:
13391         * doc/reference/tmpl/rhythmdb.sgml: update for changes
13392         
13393         * doc/reference/Makefile.am: make docs build with changed ipod support
13394         
13395         * po/POTFILES.in: remove sources/itunesdb
13397 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
13399         * sources/itunesdb.c:
13400         * sources/itunesdb.h: removed now useless files
13402 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
13404         * configure.ac:
13405         * shell/Makefile.am:
13406         * sources/Makefile.am:
13407         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
13408         code
13409         [1]: http://www.gtkpod.org/libgpod.html
13412 2005-10-18  James Livingston  <jrl@ids.org.au>
13414         patch from Funda Wang <fundawang@linux.net.cn>
13416         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
13417         the notification bubble string translatable.
13419 ============ Version 0.9.1
13421 2005-10-16  James Livingston  <jrl@ids.org.au>
13423         * configure.ac: bump version to 0.9.1
13424         * NEWS: update translation credits
13426 2005-10-16  James Livingston  <jrl@ids.org.au>
13428         * rhythmdb/rhythmdb-query-model.c:
13429         (rhythmdb_query_model_class_init),
13430         (rhythmdb_query_model_drag_data_received): 
13431         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
13432         notified when things are dropped into the entry view.
13433         
13434         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
13435         (rb_playlist_source_add_location_swapped),
13436         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
13437         (rb_playlist_source_non_entry_dropped),
13438         (rb_playlist_source_row_inserted): Use the new signal so that dropping
13439         things onto a playlist's entry view work correctly, and doesn't cause
13440         crashes. Allow folders to be dropped as well. (Closes 318308)
13442 2005-10-16  James Livingston  <jrl@ids.org.au>
13444         * NEWS: Update some more
13446         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
13447         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
13448         with the paned size, so that it doesn't move when the window is
13449         maximised/restored. Closes bug 315852.
13451         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
13452         display the playcount column, as it's useless (it never get changed).
13454 2005-10-14  James Livingston  <jrl@ids.org.au>
13456         * Makefile.am:
13457         * data/Makefile.am:
13458         * doc/reference/Makefile.am: get "make distcheck" to pass again
13460 2005-10-11  James Livingston  <jrl@ids.org.au>
13462         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
13463         destroy the connection when retrieving the playlists fails, because
13464         tracks have already been added. Closes 318380.
13466 2005-10-11  James Livingston  <jrl@ids.org.au>
13468         * sources/rb-sourcelist.c: (rb_sourcelist_append),
13469         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
13470         (source_name_edited_cb): Ask for the columns to be resized when a
13471         source is added, deleted or changes name.
13473 2005-10-11  James Livingston  <jrl@ids.org.au>
13475         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
13476         create a thread when processing a directory. This stops up created one
13477         thread for each file in a playlist we're trying to load. Closes
13478         317850.
13480         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
13481         typo that made sort-by-artist not work correctly.
13483 2005-10-11  James Livingston  <jrl@ids.org.au>
13485         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
13486         support is enabled
13488 2005-10-11  James Livingston  <jrl@ids.org.au>
13490         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
13491         * lib/rb-file-helpers.h: add a function to turn uris into our
13492         canonical path-escaped form
13493         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
13494         above function when import playlists. This will fix the problem of
13495         duplicate entries due to different representations of the uri (bug
13496         158211).
13498 2005-10-11  James Livingston  <jrl@ids.org.au>
13500         * shell/rb-shell.c: (rb_shell_get_visibility),
13501         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
13502         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
13503         window hiding so that Alt-F4 works again.
13505         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
13506         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
13507         (rb_entry_view_string_sort_func): Stop some crashes where a string
13508         property was set to NULL.
13510 2005-10-10  James Livingston  <jrl@ids.org.au>
13512         * doc/reference/rhythmbox.types: fix gtk-doc generation
13514 2005-10-09  James Livingston  <jrl@ids.org.au>
13516         * sources/rb-sourcelist.c: (rb_sourcelist_init):
13517         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
13518         accelerators, so that we don't have as many conflicting keys.
13520 2005-10-08  James Livingston  <jrl@ids.org.au>
13522         * data/iradio-initial.pls: Update the list of radio stations. Thanks
13523         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
13524         bug 129285.
13526 2005-10-07  James Livingston  <jrl@ids.org.au>
13528         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
13529         local path names in the same way as every other URI. This should stop
13530         duplicates occurring due to different escapings. Closes bug 158211.
13532 2005-10-06  James Livingston  <jrl@ids.org.au>
13534         * NEWS: more updates
13535         
13536         patch from Jaap Haitsma <jaap@haitsma.org>:
13538         * configure.ac:
13539         * data/Makefile.am:
13540         * data/art/Makefile.am:
13541         - data/art/rhythmbox-paused.png:
13542         - data/art/rhythmbox-playback-error.png:
13543         - data/art/rhythmbox-playing.png:
13544         - data/art-clearlooks/:
13545         * lib/rb-file-helpers.c: (rb_file):
13546         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13547         * lib/rb-stock-icons.h:
13548         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
13549         * widgets/rb-cell-renderer-pixbuf.c:
13550         (rb_cell_renderer_pixbuf_render):
13551         * widgets/rb-entry-view.c: (rb_entry_view_init),
13552         (rb_entry_view_set_playing):
13553         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
13554         stock icons instead of custom art. Drop remanents of art-clearlooks.
13556 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
13558         * configure.ac: Added ne in ALL_LINGUAS
13560 2005-10-02  James Livingston  <jrl@ids.org.au>
13562         * data/glade/Makefile.am: actually install the daap prefs glade file
13564 2005-09-30  James Livingston  <jrl@ids.org.au>
13566         * po/POTFILES.in: mremove rb-string-helper.c from the list of
13567         translatable files, so that make check works and we don't annoy the
13568         translators.
13569         
13570         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
13571         sanity checking, in case a db entry is missing some properties.
13573 2005-09-29  James Livingston  <jrl@ids.org.au>
13575         - lib/rb-string-helpers.c:
13576         - lib/rb-string-helpers.h:
13577         * lib/Makefile.am:
13578         * rhythmdb/rhythmdb-tree.c:
13579         * rhythmdb/rhythmdb.c:
13580         * shell/main.c: (main):
13581         * shell/rb-shell.c:
13582         * widgets/rb-entry-view.c:
13583         * widgets/rb-property-view.c: remove rb-string-helpers, as they
13584         utility functions haven't been used in a while.
13586 2005-09-27  James Livingston  <jrl@ids.org.au>
13588         * data/art-clearlooks/Makefile.am:
13589         - data/art-clearlooks/rhythmbox-album.png:
13590         - data/art-clearlooks/rhythmbox-audiocd.png:
13591         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
13592         - data/art-clearlooks/rhythmbox-dnd.png:
13593         - data/art-clearlooks/rhythmbox-ipod.png:
13594         - data/art-clearlooks/rhythmbox-iradio.png:
13595         - data/art-clearlooks/rhythmbox-library.png:
13596         - data/art-clearlooks/rhythmbox-next.png:
13597         - data/art-clearlooks/rhythmbox-pause.png:
13598         - data/art-clearlooks/rhythmbox-play.png:
13599         - data/art-clearlooks/rhythmbox-playlist-menu.png:
13600         - data/art-clearlooks/rhythmbox-playlist.png:
13601         - data/art-clearlooks/rhythmbox-previous.png:
13602         - data/art-clearlooks/rhythmbox-repeat.png:
13603         - data/art-clearlooks/rhythmbox-rewind.png:
13604         - data/art-clearlooks/rhythmbox-shuffle.png:
13605         - data/art-clearlooks/rhythmbox-stop.png:
13606         - data/art-clearlooks/rhythmbox-visuals.png:
13607         - data/art-clearlooks/rhythmbox-volume-max.png:
13608         - data/art-clearlooks/rhythmbox-volume-medium.png:
13609         - data/art-clearlooks/rhythmbox-volume-min.png:
13610         - data/art-clearlooks/rhythmbox-volume-mute.png:
13611         - data/art-clearlooks/rhythmbox-volume-zero.png:
13612         * data/art/Makefile.am:
13613         - data/art/rhythmbox-album.png:
13614         - data/art/rhythmbox-audiocd.png:
13615         - data/art/rhythmbox-automatic-playlist.png:
13616         - data/art/rhythmbox-dnd.png:
13617         - data/art/rhythmbox-ipod.png:
13618         - data/art/rhythmbox-iradio.png:
13619         - data/art/rhythmbox-library.png:
13620         - data/art/rhythmbox-next.png:
13621         - data/art/rhythmbox-pause.png:
13622         - data/art/rhythmbox-play.png:
13623         - data/art/rhythmbox-playlist-menu.png:
13624         - data/art/rhythmbox-playlist.png:
13625         - data/art/rhythmbox-previous.png:
13626         - data/art/rhythmbox-repeat.png:
13627         - data/art/rhythmbox-rewind.png:
13628         - data/art/rhythmbox-shuffle.png:
13629         - data/art/rhythmbox-stop.png:
13630         - data/art/rhythmbox-visuals.png:
13631         - data/art/rhythmbox-volume-max.png:
13632         - data/art/rhythmbox-volume-medium.png:
13633         - data/art/rhythmbox-volume-min.png:
13634         - data/art/rhythmbox-volume-mute.png:
13635         - data/art/rhythmbox-volume-zero.png:
13636         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13637         * lib/rb-stock-icons.h:
13638         * shell/rb-playlist-manager.c:
13639         * shell/rb-shell-player.c:
13640         * sources/rb-daap-source.c: (rb_daap_get_icon):
13641         * sources/rb-ipod-source.c:
13642         * sources/rb-iradio-source.c: (rb_iradio_source_init):
13643         * sources/rb-library-source.c: (rb_library_source_new):
13644         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
13645         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
13646         that hasn't been used in a LONG time, and also remove art that are
13647         now stock icons.
13649 2005-09-27  James Livingston  <jrl@ids.org.au>
13651         * README: point to the gnome.org web sites, and update the example
13652         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
13653         
13654         * rhythmdb/rhythmdb-query-model.c:
13655         (rhythmdb_query_model_set_property),
13656         (rhythmdb_query_model_get_property),
13657         (rhythmdb_query_model_finalize):
13658         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
13659         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
13660         * rhythmdb/rhythmdb.h:
13661         * sources/rb-iradio-source.c: (impl_search):
13662         * sources/rb-library-source.c: (impl_search): Add query
13663         "preprocessing", which performs operations such as casefolding any
13664         strings that will be compared to any of the *_FOLDED properties.
13665         Closes bug 316039
13667 2005-09-27  James Livingston  <jrl@ids.org.au>
13669         * data/glade/daap-prefs.glade:
13670         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
13671         file for the daap preferences pane
13672         
13673         * sources/rb-sourcelist.c: (rb_sourcelist_init),
13674         (rb_sourcelist_append), (rb_sourcelist_remove),
13675         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
13676         don't display the column for source expanders unless there is an
13677         expandable source.
13679 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
13681         * .cvsignore:
13682         * Makefile.am:
13683         * configure.ac:
13684         * doc/.cvsignore:
13685         * doc/Makefile.am:
13686         * doc/reference/.cvsignore:
13687         * doc/reference/Makefile.am:
13688         * doc/reference/rhythmbox-docs.sgml:
13689         * doc/reference/rhythmbox-sections.txt:
13690         * doc/reference/rhythmbox.types:
13691         * doc/reference/tmpl/bacon-volume.sgml:
13692         * doc/reference/tmpl/disclosure-widget.sgml:
13693         * doc/reference/tmpl/eel-gconf-extensions.sgml:
13694         * doc/reference/tmpl/eggnotificationbubble.sgml:
13695         * doc/reference/tmpl/eggtrayicon.sgml:
13696         * doc/reference/tmpl/gsequence.sgml:
13697         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
13698         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
13699         * doc/reference/tmpl/rb-daap-connection.sgml:
13700         * doc/reference/tmpl/rb-daap-dialog.sgml:
13701         * doc/reference/tmpl/rb-daap-mdns.sgml:
13702         * doc/reference/tmpl/rb-daap-share.sgml:
13703         * doc/reference/tmpl/rb-daap-sharing.sgml:
13704         * doc/reference/tmpl/rb-daap-source.sgml:
13705         * doc/reference/tmpl/rb-daap-src.sgml:
13706         * doc/reference/tmpl/rb-daap-structure.sgml:
13707         * doc/reference/tmpl/rb-debug.sgml:
13708         * doc/reference/tmpl/rb-dialog.sgml:
13709         * doc/reference/tmpl/rb-druid.sgml:
13710         * doc/reference/tmpl/rb-entry-view.sgml:
13711         * doc/reference/tmpl/rb-enums.sgml:
13712         * doc/reference/tmpl/rb-file-helpers.sgml:
13713         * doc/reference/tmpl/rb-glade-helpers.sgml:
13714         * doc/reference/tmpl/rb-header.sgml:
13715         * doc/reference/tmpl/rb-history.sgml:
13716         * doc/reference/tmpl/rb-ipod-source.sgml:
13717         * doc/reference/tmpl/rb-iradio-source.sgml:
13718         * doc/reference/tmpl/rb-library-source.sgml:
13719         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
13720         * doc/reference/tmpl/rb-metadata.sgml:
13721         * doc/reference/tmpl/rb-new-station-dialog.sgml:
13722         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
13723         * doc/reference/tmpl/rb-play-order-linear.sgml:
13724         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
13725         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
13726         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
13727         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
13728         * doc/reference/tmpl/rb-play-order-random.sgml:
13729         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
13730         * doc/reference/tmpl/rb-play-order.sgml:
13731         * doc/reference/tmpl/rb-player.sgml:
13732         * doc/reference/tmpl/rb-playlist-manager.sgml:
13733         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
13734         * doc/reference/tmpl/rb-playlist-source.sgml:
13735         * doc/reference/tmpl/rb-preferences.sgml:
13736         * doc/reference/tmpl/rb-property-view.sgml:
13737         * doc/reference/tmpl/rb-query-creator-private.sgml:
13738         * doc/reference/tmpl/rb-query-creator.sgml:
13739         * doc/reference/tmpl/rb-rating-helper.sgml:
13740         * doc/reference/tmpl/rb-rating.sgml:
13741         * doc/reference/tmpl/rb-recorder.sgml:
13742         * doc/reference/tmpl/rb-refstring.sgml:
13743         * doc/reference/tmpl/rb-removable-media-manager.sgml:
13744         * doc/reference/tmpl/rb-removable-media-source.sgml:
13745         * doc/reference/tmpl/rb-search-entry.sgml:
13746         * doc/reference/tmpl/rb-shell-clipboard.sgml:
13747         * doc/reference/tmpl/rb-shell-glue.sgml:
13748         * doc/reference/tmpl/rb-shell-player-glue.sgml:
13749         * doc/reference/tmpl/rb-shell-player.sgml:
13750         * doc/reference/tmpl/rb-shell-preferences.sgml:
13751         * doc/reference/tmpl/rb-shell.sgml:
13752         * doc/reference/tmpl/rb-song-display-box.sgml:
13753         * doc/reference/tmpl/rb-song-info.sgml:
13754         * doc/reference/tmpl/rb-source-header.sgml:
13755         * doc/reference/tmpl/rb-source.sgml:
13756         * doc/reference/tmpl/rb-sourcelist-model.sgml:
13757         * doc/reference/tmpl/rb-sourcelist.sgml:
13758         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
13759         * doc/reference/tmpl/rb-statusbar.sgml:
13760         * doc/reference/tmpl/rb-stock-icons.sgml:
13761         * doc/reference/tmpl/rb-string-helpers.sgml:
13762         * doc/reference/tmpl/rb-thread.sgml:
13763         * doc/reference/tmpl/rb-tray-icon.sgml:
13764         * doc/reference/tmpl/rb-tree-dnd.sgml:
13765         * doc/reference/tmpl/rb-tree-model-sort.sgml:
13766         * doc/reference/tmpl/rb-util.sgml:
13767         * doc/reference/tmpl/rhythmdb-property-model.sgml:
13768         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13769         * doc/reference/tmpl/rhythmdb-tree.sgml:
13770         * doc/reference/tmpl/rhythmdb.sgml:
13771         * macros/.cvsignore:
13772         * shell/Makefile.am:
13773         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
13774         (rb_source_finalize), (rb_source_set_property),
13775         (rb_source_get_property), (default_get_pixbuf),
13776         (_rb_source_show_popup):
13777         * sources/rb-source.h:
13778         Add support for gtk-doc in rhythmbox.
13779         Convert RBSource to use newer glib functions, such as add_private.
13780         Gives RBSource a default get_pixbuf implementation.
13782 2005-09-25  James Livingston  <jrl@ids.org.au>
13784         * NEWS: Update with about a months worth of changes
13786         * data/glade/song-info-multiple.glade:
13787         * data/glade/song-info.glade:
13788         * data/rhythmbox.schemas:
13789         * lib/rb-preferences.h:
13790         * rhythmdb/rhythmdb.h:
13791         * shell/rb-shell-player.c:
13792         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
13793         few remaining parts of autorating.
13795 2005-09-24  James Livingston  <jrl@ids.org.au>
13797         * shell/rb-shell.c: (rb_shell_constructor),
13798         (rb_shell_window_state_cb), (rb_shell_set_visibility),
13799         (rb_shell_window_configure_cb): store window state in the gconf keys,
13800         so that it gets used. Closes bugs 313893 and 137068.
13802 2005-09-20  James Livingston  <jrl@ids.org.au>
13804         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
13805         crash if the entry has a NULL string in a property
13806         
13807         * shell/rb-removable-media-manager.c:
13808         (rb_removable_media_manager_load_media): fix some memory leaks
13809         
13810         (rb_removable_media_manager_mount_volume),
13811         (rb_removable_media_manager_eject_medium_cb),
13812         (rb_removable_media_manager_cmd_eject_medium): use
13813         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
13814         
13815         * sources/rb-removable-media-source.c:
13816         (rb_removable_media_source_set_property),
13817         (rb_removable_media_source_get_property): use
13818         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
13820 2005-09-18  James Livingston  <jrl@ids.org.au>
13822         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
13823         column
13825         * data/glade/general-prefs.glade:
13826         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
13827         (rb_shell_preferences_column_check_changed_cb),
13828         (rb_shell_preferences_sync): add checkbox to control visibility
13829         of the column
13830         
13831         
13832         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13833         (save_entry):
13834         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
13835         (rhythmdb_prop_get_type):
13836         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
13837         was as "last played" is handled
13838         
13839         * sources/rb-library-source.c: (rb_library_source_constructor):
13840         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
13841         Make the column show in the library and playlists
13842         
13843         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
13844         * widgets/rb-entry-view.h: add the column
13845         
13846         * widgets/rb-query-creator-properties.c: allow automatic playlists to
13847         be sorted by the column
13849 2005-09-16  James Livingston  <jrl@ids.org.au>
13851         * shell/rb-shell-player.c: (rb_shell_player_init),
13852         (rb_shell_player_do_previous_or_seek),
13853         (rb_shell_player_previous_button_cb),
13854         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
13855         (rb_shell_player_playpause_button_cb): Make the previous button act
13856         the same as the menu item. Fix an inversion of the "previous track or
13857         seek" logic.
13858         
13859         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13860         
13861         (rb_shell_player_playpause): make --play-pause stop source that can't
13862         be paused
13864 2005-09-15  James Livingston  <jrl@ids.org.au>
13866         * configure.ac: increase totem-plparser requirements to 1.1.5
13868         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
13869         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
13870         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
13871         use the newer playlist APIs to save the name of the playlist, and use
13872         the name of a loaded playlist.
13874         Closes bug 309817.
13876 2005-09-15  James Livingston  <jrl@ids.org.au>
13878         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13880         * shell/Makefile.am: stop some linker warnings
13882         * shell/main.c: (main): make --no-registration work with dbus
13884 2005-09-15  James Livingston  <jrl@ids.org.au>
13886         * daapsharing/rb-daap-sharing.c: (create_share):
13887         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
13888         reference sinking and counting issues that I caused.
13890 2005-09-15  James Livingston  <jrl@ids.org.au>
13892         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
13893         playing" icon in the "now playing" column header.
13895 2005-09-14  James Livingston  <jrl@ids.org.au>
13897         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
13898         daap shares, when sharing is turned off.
13900 2005-09-12  Bastien Nocera  <hadess@hadess.net>
13902         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
13903         the GConf value's default, especially for badly installed schema
13904         files
13906 2005-09-12  James Livingston  <jrl@ids.org.au>
13908         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
13910         Patch from Paolo Borelli <pborelli@katamail.com>
13912         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
13913         grip when maximised. Closes bug 316055.
13915 2005-09-11  James Livingston  <jrl@ids.org.au>
13917         Patch from William Jon McCann <mccann@jhu.edu>
13919         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
13920         subclass of GtkStatusbar instead of GtkHBox.
13921         (rb_statusbar_construct): Don't set border width.
13922         (rb_statusbar_init): Use resize grip.  Don't use
13923         markup.
13924         (set_statusbar_tooltip, unset_statusbar_tooltip) 
13925         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
13926         Connect tooltips for actions.
13927         (rb_statusbar_sync_status): Push new message to statusbar.
13928         (rb_statusbar_set_progress): Don't use markup.
13929         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
13930         flag here since it prevents actually showing or hiding.
13931         (rb_statusbar_sync_with_source): Push new message to statusbar.
13933 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
13935         * daapsharing/rb-daap-structure.c:
13936         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
13937         around debugging definition.
13939 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
13940         
13941         * daapsharing/rb-daap-structure.c:
13942         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
13943         type = version.
13945         * daapsharing/rb-daap-mdns.c/h:
13946         (resolve_cb): Updated mDNS resolve callback to send service-name &
13947         name (read from Machine Name in the TXT data or equal to service-name
13948         if not in TXT).
13950         * daapsharing/rb-daap-source.c:
13951         (rb_daap_source_class_init), (rb_daap_source_set_property), 
13952         (rb_daap_source_get_property), (rb_daap_source_new),
13953         (find_source_by_service_name), (resolve_cb), (browse_cb), 
13954         (stop_resolver), (start_browsing), (stop_browsing), 
13955         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
13956         and added 'host' and 'port' gobject properties.  Updated to use new
13957         mDNS resolve callback sending service-name & name arguments.
13959 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
13961         * daapsharing/rb-daap-mdns.c:
13962         (howl_strerror): New function to report errors from Howl
13963         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
13964         (get_sw_discovery), (get_avahi_client): Better error reporting from
13965         Howl & Avahi.
13967         * sources/rb-daap-source.:
13968         (start_browsing), (stop_browsing): Fixed a bug where browsing would
13969         not get started or stopped in some situations.
13970         
13971 2005-09-12  James Livingston  <jrl@ids.org.au>
13973         * shell/rb-removable-media-manager.c: add a missing include, that
13974         would stop compilation if ipod support wasn't turned on
13976 2005-09-11  James Livingston  <jrl@ids.org.au>
13978         * daapsharing/rb-daap-dialog.c: (encode_base64),
13979         (rb_daap_password_dialog_new_run),
13980         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
13981         it is no broken in to two pieces, and remove a use of a goto
13982         
13983         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
13984         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
13985         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
13986         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
13987         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
13988         memory leaks, and some code style things.
13989         
13990         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
13991         (rb_daap_share_init), (rb_daap_share_set_property),
13992         (rb_daap_share_dispose), (rb_daap_share_new),
13993         (rb_daap_share_get_property): make the DB and the playlist manager
13994         gobject properties.
13995         
13996         (message_add_standard_headers),
13997         (message_set_from_rb_daap_structure), (server_info_cb),
13998         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
13999         (server_cb), (add_db_entry), (db_entry_added_cb),
14000         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
14001         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
14002         style and use CONF_PREFIX in the gconf keys
14003         
14004         * daapsharing/rb-daap-sharing.c: (create_share),
14005         (enable_sharing_changed_cb), (share_name_changed_cb),
14006         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
14007         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
14008         (rb_daap_src_instance_init), (rb_daap_src_dispose),
14009         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
14010         (rb_daap_src_get_property), (rb_daap_src_getcaps),
14011         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
14012         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
14013         (rb_daap_src_get_time): Deal with gconf callbacks where the key
14014         hasn't actually changed, fix some memory leaks, code style and release
14015         gconf notifications when the object is destroyed.
14016         
14017         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
14018         (rb_daap_source_class_init), (rb_daap_source_init),
14019         (rb_daap_source_dispose), (rb_daap_source_set_property),
14020         (rb_daap_source_get_property), (rb_daap_source_new),
14021         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
14022         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
14023         (rb_daap_sources_init), (rb_daap_sources_shutdown),
14024         (rb_daap_source_activate), (rb_daap_source_disconnect),
14025         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
14026         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
14027         release gconf notifications, handle gconf callbacks where the key
14028         hasn't changed, make "real name" and "password protected" gobject
14029         properties, fix some code style and fix a memory leak.
14031 2005-09-11  James Livingston  <jrl@ids.org.au>
14033         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14035         * shell/rb-playlist-manager.c:
14036         (rb_playlist_manager_save_playlists),
14037         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
14038         when we aren't supposed to. (Closes bug 315886)
14040 2005-09-11  James Livingston  <jrl@ids.org.au>
14042         * shell/rb-removable-media-manager.c:
14043         (rb_removable_media_manager_class_init),
14044         (rb_removable_media_manager_init),
14045         (rb_removable_media_manager_dispose),
14046         (rb_removable_media_manager_set_property),
14047         (rb_removable_media_manager_get_property),
14048         (rb_removable_media_manager_new),
14049         (rb_removable_media_manager_load_media),
14050         (rb_removable_media_manager_volume_mounted_cb),
14051         (rb_removable_media_manager_volume_unmounted_cb),
14052         (rb_removable_media_manager_mount_volume),
14053         (rb_removable_media_manager_unmount_volume),
14054         (rb_removable_media_manager_source_deleted_cb),
14055         (rb_removable_media_manager_append_media_source),
14056         (rb_removable_media_manager_set_uimanager),
14057         (rb_removable_media_manager_eject_medium_cb),
14058         (rb_removable_media_manager_cmd_eject_medium):
14059         * shell/rb-removable-media-manager.h:
14060         * sources/rb-removable-media-source.c:
14061         (rb_removable_media_source_class_init),
14062         (rb_removable_media_source_init),
14063         (rb_removable_media_source_dispose),
14064         (rb_removable_media_source_set_property),
14065         (rb_removable_media_source_get_property), (impl_get_pixbuf),
14066         (impl_delete_thyself):
14067         * sources/rb-removable-media-source.h: Add the four files that I
14068         somehow managed not to add to cvs in the last commit. Oops.
14070 2005-09-11  James Livingston  <jrl@ids.org.au>
14072         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
14073         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
14074         
14075         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14076         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
14077         removable-media-manager on startup, and handle creation of sources.
14078         
14079         * sources/rb-ipod-source.h:
14080         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
14081         (rb_ipod_source_init), (rb_ipod_source_constructor),
14082         (rb_ipod_source_dispose), (rb_ipod_source_new),
14083         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
14084         the iPod source over to the removable media framework.
14085         
14086         * sources/rb-library-source.c: (paned_size_allocate_cb),
14087         (rb_library_source_get_paned_key): fix a potential bug is a
14088         library-derived source doesn't have a paned-key
14090 2005-09-11  Bastien Nocera  <hadess@hadess.net>
14092         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
14093         mp3 when we can't get the suffix of a file (Closes: #315941)
14095 2005-09-10  James Livingston  <jrl@ids.org.au>
14097         * configure.ac: fix the mdns tests, so that it doesn't complain about
14098         not finding one, if daap support isn't being compiled in
14100 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
14102         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
14104         * daapsharing/rb-daap-dialog.c:
14105         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
14106         HIG compliancy & images.
14108         * daapsharing/rb-daap-mdns.c:
14109         (browse_cb), (resolve_cb): Better detection of local services.  
14110         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
14111         Howl's limitations.  Fix the way collision handling is done under
14112         Avahi.
14114         * daapsharing/rb-daap-share.c:
14115         (publish_cb): Better name collision handling (at least for Avahi).
14117 2005-09-10  James Livingston  <jrl@ids.org.au>
14119         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
14120         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
14121         preferences more HIG compliant (Closes #315889)
14122         
14123         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
14124         list of files to be translated
14126 2005-09-10  James Livingston  <jrl@ids.org.au>
14128         * configure.ac: fix it so that --enable-daap=no works
14129         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
14130         uninstalled
14132 2005-09-10  James Livingston  <jrl@ids.org.au>
14134         Patch from Christophe Fergeau <teuf@gnome.org>
14136         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
14137         the ipod code.
14139 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14140         * README.daap: Updating documentation
14142 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14143         * AUTHORS: Added myself.
14145         * daapsharing/rb-daap-connection.c:
14146         (connection_login), (rb_connection_new): Reorganized password
14147         handling.
14149         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
14151         * shell/rb-shell.c:
14152         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
14154         * sources/rb-daap-source.c:
14155         (rb_daap_source_activate): Better error handling when we are unable to
14156         connect.
14157         
14158 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14159         * README.daap: Fixed some terminology.
14161         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
14162         New --with-mdns=auto|howl|avahi flag to specify.
14164         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
14165         name collision dialogs.
14167         * daapsharing/rb-daap-connection.c:
14168         (connection_get_password), (build_message), (http_get)
14169         (connection_login): Ask for & use a password if the share demands it.
14171         * daapsharing/rb-daap-connection.h: Changed prototype of
14172         rb_daap_connection_new.
14173         
14174         * daapsharing/rb-daap-mdns.c: 
14175         (resolve_cb): Better detection of your own music share so it doesn't 
14176         appear in the sourcelist.
14178         * daapsharing/rb-daap-share.c:
14179         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
14180         that start on any available port.
14182         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
14184         * sources/rb-daap-source.c:
14185         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
14186         (browse_cb): Handle passworded shares. Resolve the host immediately
14187         instead of when activated.
14188         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
14189         (rb_daap_source_new): New GConf keys for UI state.
14190         (rb_daap_source_activate): Use RBPlaylistSource instead of
14191         RBDAAPPlaylistSource
14192         
14193         * sources/rb-daap-playlist-source.c/h: Removed
14195         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
14196         if the playlist is local (i.e. not DAAP or iPod).
14197         
14198         * shell/rb-playlist-manager.c:
14199         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
14200         wouldn't get saved if the last playlist hadn't changed.  Only save
14201         local playlists.
14202         
14203 2005-09-09  James Livingston  <jrl@ids.org.au>
14205         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
14206         iPod preferences pane, as it already uses the browser views as the
14207         library.
14209 2005-09-09  James Livingston  <jrl@ids.org.au>
14211         * sources/rb-library-source.c: (rb_library_source_finalize),
14212         (rb_library_source_constructor): fix gconf monitoring of library
14213         preference keys.
14214         * sources/rb-library-source.h: remove declaration of function that
14215         does not exist
14217 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
14219         * player/rb-player-gst.c:
14220         (rb_player_set_time): Fix seeking in daap streams.
14222 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
14224         * data/rhythmbox.schemas: Turn music share browsing on by default.
14226 2005-09-07  James Livingston  <jrl@ids.org.au>
14228         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
14230 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
14231         * player/rb-player-gst.c: 
14232         (rb_player_get_time): Fix for extra << & == that accidentally made
14233         it in.
14235         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
14236         
14237 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
14238         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
14239         it in last time.  Sorry.
14241 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
14242         
14243         * player/rb-player-gst.c:
14244         (rb_player_get_time): Fix a small crash appearing when
14245         the uri isn't set in the player, but rb_player_get_time() is
14246         still called.
14248         * configure.ac: Also check for libsoup 2.4, which is what ships with
14249         Gnome 2.12.
14251         * po/POTFILES.in: Added music sharing files that have translatable 
14252         strings.
14254         * README.daap: New file explaining "How Music Sharing Works"  
14256 2005-09-06  Bastien Nocera  <hadess@hadess.net>
14258         * daapsharing/.cvsignore: added
14260 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
14262         * daapsharing/*: Music sharing library.
14263         
14264         * sources/rb-daap-source.c/h: Music share RBSource.
14265         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
14267         * configure.ac: --enable-daap flag to turn on music sharing. Requires
14268         libsoup and a mutlicast DNS implementation (howl or avahi).
14270         * data/rhythmbox.schemas: New GConf keys for music sharing.
14272         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
14273         source right click menu.
14275         * player/rb-player-gst.c: Changes to properly play & seek in remote
14276         music share files.
14278         * shell/rb-playlist-manager.c/h:
14279         (rb_playlist_manager_get_playlists): New function to get a GList * of
14280         the playlists.
14281         (rb_playlist_manager_save_playlists): Don't save music share playlists
14282         and fixed a GObject reference leak.
14284         * shell/rb-shell.c/h:
14285         (rb_shell_append_source): No longer a local function.  Now takes a
14286         parent RBSource * argument, NULL to append a toplevel source.
14287         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
14288         source (useful for disconnecting from remote music share,
14289         specifically).
14290         (rb_shell_quit): Stop music sharing/browsing.
14291         (rb_shell_playlist_added_cb): Work with tree source structure.
14292         (rb_shell_get_property): "playlist-manager" property accessor.
14293         (rb_shell_class_init): New "playlist-manager" property.
14294         (rb_shell_construor): Append sources as toplevel sources.  Initialize
14295         daap sharing/browsing.
14296         (rb_shell_select_source): Notify source of activation/deactivation.
14298         * shell/rb-shell-prefernces.c: Music sharing preferences.
14300         * sources/rb-source.c/h: New activate, deactivate and disconnect
14301         class functions.  Activate & deactivate are notification style 
14302         functions that will tell a source when it is selected/unselected.
14303         Disconnect can be hooked up to a UI object to disconnect the source.
14305         * sources/rb-sourcelist-model.c:
14306         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
14307         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
14308         append a toplevel source.
14310 2005-09-05  James Livingston  <jrl@ids.org.au>
14312         * rhythmdb/rhythmdb-query-model.c:
14313         (rhythmdb_query_model_entry_changed_cb),
14314         (rhythmdb_query_model_do_reorder): Update the query model's totals if
14315         the duration of filesize of an entry changes.  Emit the row-changed
14316         signals that I forgot to put back in, when I was doing query sorting.
14318         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
14319         out "0 minutes" or "0 bytes".
14321 2005-09-04  James Livingston  <jrl@ids.org.au>
14323         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
14324         remove a leftover bit of the "internal-name" property of sources.
14326 2005-09-03  James Livingston  <jrl@ids.org.au>
14328         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
14329         extraneous debug message
14330         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
14331         crasher would affect any library-derived sources (which was also a
14332         memory leak).
14334 2005-09-02  Colin Walters  <walters@verbum.org>
14336         * configure.ac: Fix sytnax error.
14338         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
14339         code to disable minimization icons - need to figure out
14340         why it doesn't work...
14342 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
14344         * data/glade/song-info-multiple.glade:
14345         * data/glade/song-info.glade:
14346         * widgets/rb-song-info.c: (rb_song_info_constructor):
14347         Add a mnemonic to the newly added "Automatically rate" label
14348         in the properties dialog and use a bold typeface like all the 
14349         other labels in the dialog. (Closes bug 315089)
14351 2005-09-03  James Livingston  <jrl@ids.org.au>
14353         * sources/rb-library-source.c: (rb_library_source_class_init),
14354         (rb_library_source_finalize), (rb_library_source_constructor),
14355         (rb_library_source_set_property), (rb_library_source_get_property),
14356         (impl_get_paned_key), (paned_size_allocate_cb),
14357         (rb_library_source_state_prefs_sync), (impl_show_popup),
14358         (rb_library_source_get_paned_key):
14359         * sources/rb-library-source.h: Allow sources derived from
14360         RBLibrarySource to use different gconf keys for sort order, browser
14361         visibility and browser pane position. Fix a crasher if a derived
14362         source overrides _get_pixbuf.
14364 2005-09-02  Colin Walters  <walters@verbum.org>
14366         * shell/rb-shell.c (rb_shell_set_visibility): Move
14367         hint setting which seems to avoid races more.
14368         
14369 2005-09-03  James Livingston  <jrl@ids.org.au>
14371         * shell/rb-shell.c: fix compilation with iPod support enabled
14372         
14373 2005-09-02  Colin Walters  <walters@verbum.org>
14375         * shell/rb-shell.c (struct RBShellPrivate): Add
14376         idle_hide_mainwindow_id.
14377         (rb_shell_constructor): Move taskbar skipping hint into
14378         rb_shell_set_visibility.
14379         (idle_hide_mainwindow): New function.
14380         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
14381         racy hack to avoid rb appearing in taskbar when minimized.
14383 2005-09-01  Colin Walters  <walters@verbum.org>
14385         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
14387         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
14388         from gtkstatusicion.c.
14390         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
14392         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
14393         TrayShowWindow entry.
14394         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
14395         (rb_tray_icon_constructor): Create action group here.
14396         (rb_tray_icon_finalize): Destroy action group.
14397         (rb_tray_icon_set_property): Don't take an action group.
14398         (rb_tray_icon_new): Ditto.
14399         (tray_popup_position_menu): Some mostly boilerplate code
14400         to position menu.
14401         (rb_tray_icon_button_press_event_cb): Position menu.
14402         (rb_tray_icon_get_geom): New function used for the shell
14403         to set minimization hints.
14405         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
14407         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
14408         (struct RBShellPrivate): Change visible to iconified.
14409         (set_icon_geometry): New function from Søren Sandmann to
14410         tell Metacity where to draw the minimization animiation.
14411         (rb_shell_window_state_cb): Update iconified.
14412         (rb_shell_get_visibility): New function to say whether
14413         or not we're currently visible.
14414         (rb_shell_set_visibility): Update to minimize to
14415         tray or present as appropriate.
14416         (rb_shell_window_delete_cb): On window close, just
14417         minimize to tray if we're deleted.
14418         (rb_shell_set_window_title): Kill old notification code.
14419         (rb_shell_toggle_visibility): Nwe function.
14420         (rb_shell_cmd_toggle_visibility): Call it.
14421         (rb_shell_constructor): Skip the taskbar.
14422         (tray_destroy_cb): Better debugging.
14423         
14424 2005-09-01  Colin Walters  <walters@verbum.org>
14426         * data/ui/rhythmbox-ui.xml: Add MusicClose.
14428         * configure.ac: Enable bonobo by default.
14429         
14430 2005-09-01  Colin Walters  <walters@verbum.org>
14432         * configure.ac: Default to old art.  Add macros subdir.
14434         * Makefile.am (SUBDIRS): Add macros.
14436         * macros/Makefile.am: New.
14437         
14438 2005-09-01  Colin Walters  <walters@verbum.org>
14440         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
14441         rb-shell-player.xml.
14443         * remote/dbus/rb-remote-dbus.h: Deleted.
14444         
14445         * remote/dbus/Makefile.am: Delete all the junk, just dist
14446         rb-print-playing.py and rb-set-rating.py.
14448         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
14450         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
14452 2005-09-02  James Livingston  <jrl@ids.org.au>
14454         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
14455         file from cvs
14457         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
14458         (rb_shell_constructor): Patches from Jonathan Matthew
14459         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
14460         a crash when using "browse this artist".
14462 2005-08-31  Colin Walters  <walters@verbum.org>
14464         * configure.ac: Add --with-old-art configure switch.  Also
14465         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
14466         but it doesn't work.
14468         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
14469         Don't use eel_create_colorized_pixbuf for new art.
14470         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
14472         * data/art-clearlooks: New artwork.
14473         
14474 2005-08-31  Colin Walters  <walters@verbum.org>
14476         * shell/main.c (main): Fix Bastien's commit to continue to focus
14477         the window with GTK+ 2.8 at least.
14478         
14479 2005-08-31  Colin Walters  <walters@verbum.org>
14481         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
14482         is already loaded.
14484         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
14486 2005-08-31  Bastien Nocera  <hadess@hadess.net>
14488         * README: remove mentions of the xine-lib backend
14489         * shell/main.c: (main): make it compilable with gtk+ < 2.8
14491 2005-08-30  Colin Walters  <walters@verbum.org>
14493         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
14494         Make non-visible sources insensitive.
14495         
14496 2005-08-30  Colin Walters  <walters@verbum.org>
14498         * shell/rb-shell.c: Don't use GConf for selected source; it's
14499         confusing to have the selected source change after startup,
14500         and since we don't save other things it's not worth saving this.
14502         * sources/rb-playlist-source.c:
14503         * sources/rb-library-source.c:
14504         * sources/rb-iradio-source.c:
14505         * sources/rb-ipod-source.c: Delete internal-name property usage.
14506         * sources/rb-source.c: Delete internal-name property.
14508         * data/rhythmbox.schemas: Delete selected_source.
14509         
14510 2005-08-30  Colin Walters  <walters@verbum.org>
14512         * sources/rb-sourcelist.c: Make playing source bold instead of
14513         displaying a pixbuf; it's much less ugly.
14514         
14515 2005-08-30  Colin Walters  <walters@verbum.org>
14517         * sources/rb-source.c:
14518         * sources/rb-source.h: New virtual method try_playlist.
14520         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
14521         impl_try_playlist.
14522         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
14523         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
14524         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
14525         need to.
14526         (stations_view_drag_data_received_cb): Don't check for iradio uris;
14527         in theory we should though...
14529         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
14530         list in rb_shell_construct now.
14531         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
14532         RBiPodSource.
14533         (rb_shell_constructor): Create library, iradio, ipod here.
14534         (rb_shell_source_deleted_cb): Use source directly instead of
14535         indirecting through type.
14536         (rb_shell_sync_selected_source): Ditto.
14537         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
14538         from the type instead of special-casing.
14539         (rb_shell_guess_type_for_uri) 
14540         (rb_shell_add_uri)
14541         (handle_one_uri_with_possible_metadata): New functions.
14542         (rb_shell_load_uri): Refactor to allow loading playlists again,
14543         also use other URI infrastructure.
14545         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
14546         (rb_shell_player_error): Always set entry error on error, instead
14547         of depending on EOF behavior.
14549         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
14550         to just invoke rb_shell_add_uri.
14551         (rb_playlist_manager_parse_file): Return error instead of tossing
14552         up dialog box directly.
14553         (load_playlist_response_cb): Display error here.
14554         (add_uri_to_playlist): Delete.
14555         (handle_playlist_entry_into_playlist_cb): Renamed to
14556         handle_playlist_entry_cb.
14558         * shell/rb-playlist-manager.h: Add error, update prototype.
14560         * lib/rb-file-helpers.c:
14561         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
14563 2005-08-29  Colin Walters  <walters@verbum.org>
14565         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
14566         if entry already exists.  Use rhythmdb_entry_set_uninserted.
14568         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
14569         needlessly duping string, and use rhythmdb_entry_set_uninserted.
14570         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
14572         * shell/rb-shell.h (enum RBShellError): Add some more errors.
14573         Prototype rb_shell_set_song_property.
14575         * shell/rb-shell.xml: Export setSongProperty.
14577         * shell/rb-shell.c (rb_shell_set_song_property): New function.
14578         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
14579         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
14581         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
14582         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
14583         want to notify of the change.
14584         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
14586         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
14587         logic error; idle functions would be enqueued for each set.
14588         (rhythmdb_entry_set): Fix assertion logic error.
14590         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
14591         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
14592         Return if the entry already exists.
14593         
14594 2005-08-29  Colin Walters  <walters@verbum.org>
14596         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
14597         "inserted" member which we use to keep track of
14598         whether or not an entry is in the DB.  Prototype
14599         rhythmdb_entry_set_uninserted.
14601         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
14602         flag.
14603         (rhythmdb_entry_insert): Assert entry is not already inserted.
14604         (rhythmdb_process_metadata_load): Update to call _set_uninserted
14605         just after creating entry.
14606         (rhythmdb_entry_set): Document, and fail on uninserted entries.
14607         (rhythmdb_entry_set_nonotify): Ditto.
14608         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
14609         entries.
14610         (rhythmdb_entry_set_internal): Change notify flag to
14611         notify_if_inserted.  Also move notification after assertions.
14613         Update all existing callers of rhythmdb_entry_set_internal
14614         to give TRUE for notify_if_inserted; this should be what
14615         we want but may be an efficiency hit.
14616         
14617 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14619         * shell/rb-shell-player.c: (rb_shell_player_init),
14620         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
14621         (rb_shell_player_set_playing_source_internal),
14622         (rb_shell_player_sync_with_selected_source): Notify the player when an
14623         entry has updated the title, album or artist field, and resync the big
14624         display.
14625         
14626         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
14627         * sources/rb-library-source.c: (rb_library_source_class_init),
14628         (impl_get_config_widget):
14629         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
14630         * sources/rb-source.c:
14631         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
14632         get_album functions in rb-source and adapted other sources accordingly.
14633         
14634 2005-08-29  Colin Walters  <walters@verbum.org>
14636         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
14637         signal_change member.
14638         (threadsafe_entry_set): New function.
14639         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
14640         (rhythmdb_entry_set_nonotify): New function; just call
14641         threadsafe_entry_set with FALSE.
14642         (rhythmdb_entry_set_internal): Take a notify flag; if true
14643         add the change to our pending set.
14645         Also update all internal callers of rhythmdb_entry_set_internal
14646         to pass FALSE.  Some of these may be bugs however and need to
14647         pass TRUE...
14649         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
14650         rhythmdb_entry_set, and rename rhythmdb_entry_set to
14651         rhythmdb_entry_set_nonotify.
14653         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
14654         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
14656         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
14658         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
14659         * sources/rb-source.c (rb_source_update_play_statistics): 
14660         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
14661         * sources/rb-ipod-source.c (entry_set_string_prop) 
14662         (load_ipod_db_idle_cb): 
14663         * shell/rb-shell.c (rb_shell_set_rating_impl): 
14664         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
14665         (info_available_cb): 
14666         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
14667         (rb_station_properties_dialog_sync_entries): 
14668         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
14670         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
14671         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
14672         
14673 2005-08-29  Colin Walters  <walters@verbum.org>
14675         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
14677         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
14678         linking insanity.
14680         * widgets/rb-header.c (sanitize_string): New function, extracted
14681         from old info_url.  Be sure to always strip the string.
14682         (info_url): Rewrite to take artist/album, and generate a sane
14683         URL for them from last.fm, which is better than allmusic.com in
14684         that they support Rhythmbox, and have a *SANE* URL scheme.
14685         (artist_info_url, album_info_url): Delete.
14686         (rb_header_sync): Use info_url.
14688 2005-08-29  James Livingston  <jrl@ids.org.au>
14690         * sources/rb-source.c: (rb_source_search): Check to ensure that this
14691         is implemented before calling it. Many sources don't implement the
14692         method.
14694 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
14696         * data/glade/create-playlist.glade:  Cleanup the layout,
14697         and add a few more mnemonics.
14698         * shell/rb-playlist-manager.c:
14699         (rb_playlist_manager_cmd_load_playlist),
14700         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
14701         capitalization for window titles.
14702         * widgets/rb-query-creator-properties.c: Add mnemonics
14703         to checkbutton labels.
14704         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
14705         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
14707 2005-08-28  Colin Walters  <walters@verbum.org>
14709         * data/rhythmbox.schemas: Delete search_text for library
14710         and iradio; this isn't a persistent value anymore.
14711         Closes #313757.
14712         
14713         * sources/rb-source.h:
14714         * sources/rb-source.c: Delete impl_can_search.
14716         * sources/rb-iradio-source.c: Delete search_text usage.
14717         * sources/rb-library-source.c: Ditto.
14719         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
14720         search when source is set, and just do rb_source_search in
14721         rb_source_header_search_cb.
14723         * shell/rb-shell.c (rb_shell_append_source): Don't
14724         initiate search.
14726         * shell/Makefile.am: Don't dist dashboard.c.
14728 2005-08-28  Colin Walters  <walters@verbum.org>
14730         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
14731         
14732 2005-08-28  Colin Walters  <walters@verbum.org>
14734         * data/org.gnome.Rhythmbox.service.in: New.
14736         * data/Makefile.am: Install service file.
14738         * configure.ac: Define DBUS_SERVICES_DIR.
14740         * autogen.sh: Set ACLOCAL_FLAGS.
14742         * macros/acinclude.m4: New.
14743         
14744 2005-08-28  Colin Walters  <walters@verbum.org>
14746         Initial patch from Jonathan Matthew; closes 313684.
14748         * rhythmdb/rhythmdb-tree.c:
14749         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
14750         (save_entry): Return on error.
14751         (rhythmdb_tree_save): Handle error when saving the
14752         db; additionally, handle errors from fclose and unlink,
14753         and print error too.
14755 2005-08-28  Colin Walters  <walters@verbum.org>
14757         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
14758         extra _.
14759         
14760 2005-08-28  Colin Walters  <walters@verbum.org>
14762         * configure.ac: Change iPod support to --with-ipod;
14763           automatically enable it if we have HAL.  Try to
14764           support both HAL 0.5 and HAL 0.2.  Break out
14765           totem-plparser into its own check so later we
14766           can do version tests there too.
14767           Kill dashboard support.
14768         
14769         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
14770         to support HAL > 0.5, but preserve the old code for HAL < 0.5
14771         Closes #310017.
14772         
14773         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
14774         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
14776         * sources/Makefile.am: Also handle
14777         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
14779         * shell/dashboard.c: Delete; someone should just write a little
14780         python shim which lists on the D-BUS interface and writes the
14781         stuff to Dashboard.  Even better Dashboard should be ported
14782         to D-BUS and do the listening itself, perhaps on an abstract
14783         "org.gnome.MusicPlayer" interface or something.
14785         * shell/rb-shell.c: Kill dashboard support.
14787 2005-08-28  Colin Walters  <walters@verbum.org>
14789         * remote/dbus/rb-print-playing.py: New file.
14791 2005-08-28  Colin Walters  <walters@verbum.org>
14793         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
14794         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
14796         * shell/rb-shell-player.h:
14797         * shell/rb-shell-player.c: Add playing-uri-changed signal.
14798         * shell/rb-shell-player.xml: Export it.
14800         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
14801         (rb_shell_error_quark): New.
14803         * shell/rb-shell.h: Prototype.  Also add RBShellError.
14804         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
14805         
14806 2005-08-28  Colin Walters  <walters@verbum.org>
14808         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
14809         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
14810         bonobo_unlock.
14811         (rb_remote_bonobo_preinit): Lock setting moved here.
14812         (rb_remote_bonobo_init): From here.
14814         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
14815         Also invoke handle_cmdline in the right place.
14816         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
14817         GFunc.
14819 2005-08-28  James Livingston  <jrl@ids.org.au>
14821         * NEWS: keep the NEWS file up to date, so we don't have to do it all
14822         when 0.9.1 comes around.
14824 2005-08-28  James Livingston  <jrl@ids.org.au>
14826         * iradio/rb-new-station-dialog.c:
14827         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
14828         bug 314477.
14830 2005-08-28  James Livingston  <jrl@ids.org.au>
14832         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
14834         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
14835         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
14836         is a song is longer than 60 minutes. Closes bug 313311.
14838 2005-08-27  James Livingston  <jrl@ids.org.au>
14840         * data/glade/create-playlist.glade:
14841         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
14842         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
14843         "minutes" as an option in the playlist limit menu.
14845         * rhythmdb/rhythmdb-query-model.c:
14846         (rhythmdb_query_model_class_init),
14847         (rhythmdb_query_model_set_property),
14848         (rhythmdb_query_model_get_property),
14849         (rhythmdb_query_model_update_limited_entries): Allow query models to
14850         have a time limit
14851         
14852         * shell/rb-playlist-manager.c:
14853         (rb_playlist_manager_set_automatic_playlist),
14854         (rb_playlist_manager_cmd_edit_automatic_playlist):
14855         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
14856         (rb_playlist_source_get_query), (impl_receive_drag),
14857         (rb_playlist_source_new_from_xml),
14858         (rb_playlist_source_save_to_xml),
14859         (rb_playlist_source_songs_sort_order_changed_cb),
14860         (rb_playlist_source_do_query):
14861         * sources/rb-playlist-source.h:
14862         * widgets/rb-query-creator.h: Allow playlists to be limited by time
14864 2005-08-27  James Livingston  <jrl@ids.org.au>
14866         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
14868         * configure.ac:
14869         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
14870         non-standard location. Closes bug 314640.
14872 2005-08-26  Colin Walters  <walters@verbum.org>
14873         
14874         Patch from Olivier Blin <oblin@mandriva.com>
14876         * widgets/eggnotificationbubble.c (draw_bubble): 
14877         Handle extreme-left case as well.
14878         
14879 2005-08-26  Colin Walters  <walters@verbum.org>
14881         * shell/rb-shell.c (idle_save_state): Don't do this.
14882         (rb_shell_construct): Remove idle calls to idle_save_state.
14883         We should save the playlists automatically when they're
14884         modified.
14885         (rb_shell_load_uri): Don't try to re-stat entry if it already
14886         exists.
14888         * shell/rb-shell-player.c: Keep track of entry we are attempting
14889         to play.
14890         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
14891         Don't double-free error.
14892         (rb_shell_player_play_entry): Signal errors.
14893         (rb_shell_player_entry_activated_cb): Ditto.
14894         (rb_shell_player_property_row_activated_cb): Ditto.
14895         (rb_shell_player_set_playing_source_internal): Unset attempted
14896         playing entry.
14897         (rb_shell_player_error): Refactor to be usable both sync and
14898         async.  Handle case where displayed entry differs from entry.
14899         (error_cb): Move GDK locking here.
14901         * shell/main.c (main): Drop most commandline arguments for D-BUS;
14902         people can just use dbus-send or python.  We only support focusing
14903         and loading files.
14904         (load_uri_args): New function, extracted from handle_cmdline.
14905         (dbus_load_uri, bonobo_load_uri): New functions.
14907         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
14908         appropriate.
14910         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
14911         * remote/dbus/rb-remote-dbus.c: Deleted.
14913         * player/rb-player-gst.c: Clear any pending idle handlers when we
14914         close the player.  Signal errors generated during open/play etc
14915         as synchronous errors.
14917         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
14918         
14919 2005-08-26  Colin Walters  <walters@verbum.org>
14921         * shell/rb-shell.c (rb_shell_present): Try harder.
14923 2005-08-26  Colin Walters  <walters@verbum.org>
14925         * shell/rb-shell.c (rb_shell_present): Try to handle
14926         GTK_MINOR_VERSION < 8.
14928 2005-08-26  James Livingston  <jrl@ids.org.au>
14930         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
14931         <pbrobinson@gmail.com>
14933 2005-08-26  Colin Walters  <walters@verbum.org>
14935         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
14937 2005-08-25  Colin Walters  <walters@verbum.org>
14939         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
14940         Delete.
14941         (rb_shell_player_do_next_with_rating): Move back into
14942         rb_shell_player_do_next.
14943         (rb_shell_player_entry_activated_cb): Remove call to
14944         rb_shell_player_auto_adjust_rating.
14945         (do_next_idle): Just call rb_shell_player_do_next.
14947         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
14949 2005-08-25  Colin Walters  <walters@verbum.org>
14951         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
14952         before gtk_window_present_with_time.
14953         
14954 2005-08-25  Colin Walters  <walters@verbum.org>
14956         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
14957         default.
14959         * shell/rb-shell.c (rb_shell_constructor): Adapted from
14960         rb_shell_construct.  This is so we only have to do g_object_new.
14961         (rb_shell_get_player): New function.
14962         (rb_shell_get_player_path): Ditto.
14963         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
14964         
14965         * shell/rb-shell.h: Prototype them.
14967         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
14968         export over D-BUS.
14969         (reemit_playing_signal): New function.
14970         (rb_shell_player_open_playlist_location): Use return values from
14971         rb_player_open, rb_player_close, etc. instead of checking "error".
14972         Return a gboolean on failure.
14973         (rb_shell_player_open_entry): Just open entry location, don't
14974         print to stderr.
14975         (rb_shell_player_play): Handle retval from rb_player_play.  Return
14976         a gboolean.
14977         (do_next_idle): Move logic for handling of end of playlist here.
14978         (rb_shell_player_set_playing_entry): Take a GError, return a
14979         gboolean.  Update to use gboolean return values.
14980         (rb_shell_player_do_previous): Delete lots of crazy duplicate
14981         logic.  Signal an error on end of playlist.  Also signal error if
14982         we're not playing.  Move heuristic for replaying the song into
14983         rb_shell_player_cmd_previous.
14984         (rb_shell_player_do_next_with_rating): Signal error on end of
14985         playlist.
14986         (rb_shell_player_do_next): Return errors.
14987         (rb_shell_player_cmd_previous): Heuristic for restarting song
14988         moved here; the idea is you generally only want that from the GUI.
14989         (rb_shell_player_cmd_play): Handle error.
14990         (rb_shell_player_playpause): Signal errors.
14991         (filter_mmkeys): Use rb_shell_player_cmd_previous and
14992         rb_shell_player_cmd_next in favor of the internal _do functions.
14993         
14994         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
14995         errors.  Update prototypes for above changes.
14997         * shell/main.c: More tightly integrate D-BUS; register various
14998         major singleton objects here.  Fix handle_cmdline so we only
14999         process extra arguments, not every argument.
15001         * shell/Makefile.am: Generate D-BUS glue headers.
15003         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
15004         into shell/main.c.  Now this file just acts as a client library.
15005         Not heavily tested.
15007         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
15008         Moved here.
15009         (rb_remote_bonobo_init): Move long CORBA rant here along with
15010         setting of lock functions.
15012         * player/rb-player-gst.c (rb_player_construct)
15013         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
15014         on error.
15016         * player/rb-player.h: Update prototypes.
15018         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
15019         rb-remote-bonobo.c.
15020         (rb_threads_init): Don't set gdk lock functions here.
15022 2005-08-25  James Livingston  <jrl@ids.org.au>
15024         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15026         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
15027         * lib/rb-tree-dnd.h:
15028         * rhythmdb/rhythmdb-property-model.c:
15029         (rhythmdb_property_model_class_init),
15030         (rhythmdb_property_model_drag_source_init),
15031         (rhythmdb_property_model_iter_parent),
15032         (rhythmdb_property_model_row_draggable),
15033         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
15034         (rhythmdb_property_model_drag_data_get),
15035         (rhythmdb_property_model_enable_drag):
15036         * rhythmdb/rhythmdb-property-model.h:
15037         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
15038         (rb_playlist_manager_set_property), (append_new_playlist_source),
15039         (rb_playlist_manager_save_playlists):
15040         * shell/rb-shell.c: (rb_shell_construct),
15041         (sourcelist_drag_received_cb):
15042         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15043         * sources/rb-playlist-source.c: (impl_receive_drag):
15044         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
15045         (rb_sourcelist_model_drag_dest_init),
15046         (rb_sourcelist_model_set_dnd_targets),
15047         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
15048         (rb_sourcelist_model_row_drop_position),
15049         (rb_sourcelist_model_get_drag_target),
15050         (rb_sourcelist_model_drag_data_get):
15051         * sources/rb-sourcelist-model.h:
15052         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
15053         (rb_sourcelist_init), (rb_sourcelist_get_property),
15054         (rb_sourcelist_selection_changed_cb):
15055         * sources/rb-sourcelist.h:
15056         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
15057         improve drag-n-drop support. Allow dragging of item from property
15058         views to the source list, to create new automatic playlists. Allow
15059         playlist re-ordering. Fix dragging from Rhythmbox to other
15060         applications. (Closes bug 147337)
15062 2005-08-24  Colin Walters  <walters@verbum.org>
15064         Patch from Olivier Blin <oblin@mandriva.com>
15066         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
15067         correctly in the case where the window is next to monitor edge.
15069 2005-08-24  James Livingston  <jrl@ids.org.au>
15071         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
15072         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
15073         a gobject property to get the query model that backs the playlist.
15075 2005-08-24  James Livingston  <jrl@ids.org.au>
15077         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
15078         (handle_playlist_entry_into_playlist_cb),
15079         (rb_playlist_manager_playlist_entries_changed): Disable the "create
15080         audio cd" menu item when a non-playlist source is selected, or the
15081         playlist is empty. (Closes Bug 313253)
15083 2005-08-24  James Livingston  <jrl@ids.org.au>
15085         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15086         Fix the playlist length checkso it doesn't report 0 for automatic
15087         playlists. This was stopping automati playlists being burnt to cd.
15089 2005-08-24  James Livingston  <jrl@ids.org.au>
15091         * configure.ac:
15092         * sources/rb-playlist-source-recorder.c: (burn_cd):
15093         * sources/rb-playlist-source.c:
15094         (rb_playlist_source_songs_sort_order_changed_cb):
15095         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
15096         more warnings that occur when compiling RPMs on Fedora.
15098 2005-08-24  James Livingston  <jrl@ids.org.au>
15100         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
15101         was stopping some distros gcc version compiling.
15103 2005-08-24  James Livingston  <jrl@ids.org.au>
15105         * NEWS:
15106         * data/glade/create-playlist.glade:
15107         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
15108         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
15109         (rhythmdb_query_free), (rhythmdb_query_serialize),
15110         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
15111         * rhythmdb/rhythmdb.h:
15112         * shell/rb-playlist-manager.c:
15113         (rb_playlist_manager_set_automatic_playlist),
15114         (rb_playlist_manager_cmd_edit_automatic_playlist):
15115         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15116         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
15117         (impl_receive_drag), (rb_playlist_source_new_from_xml),
15118         (rb_playlist_source_save_to_xml),
15119         (rb_playlist_source_songs_sort_order_changed_cb),
15120         (rb_playlist_source_do_query):
15121         * sources/rb-playlist-source.h:
15122         * widgets/Makefile.am:
15123         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
15124         (rb_entry_view_set_sorting_order):
15125         * widgets/rb-query-creator-private.h:
15126         * widgets/rb-query-creator-properties.c:
15127         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
15128         (stringCriteriaGetWidgetData),
15129         (escapedStringCriteriaSetWidgetData),
15130         (escapedStringCriteriaGetWidgetData), (set_rating_score),
15131         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
15132         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
15133         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
15134         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
15135         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
15136         (relativeTimeCriteriaCreateWidget),
15137         (relativeTimeCriteriaSetWidgetData),
15138         (relativeTimeCriteriaGetWidgetData):
15139         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
15140         (rb_query_creator_class_init), (rb_query_creator_constructor),
15141         (rb_query_creator_dispose), (rb_query_creator_set_property),
15142         (rb_query_creator_get_property), (rb_query_creator_load_query),
15143         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
15144         (get_entry_for_property), (rb_query_creator_get_query),
15145         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
15146         (limit_toggled_cb), (lookup_row_by_widget),
15147         (remove_button_click_cb), (append_row),
15148         (get_property_index_from_proptype), (select_criteria_from_value),
15149         (property_option_menu_changed), (create_property_option_menu),
15150         (create_criteria_option_menu), (sort_option_menu_changed),
15151         (setup_sort_option_menu):
15152         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
15153         playlists. The two most notable improvements are 1) adding more
15154         properties to the query creator, making it much easier to add more in
15155         the future, and 2) allow playlists to be sorted, from the query editor
15156         if they gave limits, and by clicking on column headers if they don't.
15158         Files added: widgets/rb-query-creator-private.h,
15159         sources/rb-query-creator-properties.c
15161 2005-08-21  James Livingston  <jrl@ids.org.au>
15163         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
15164         error=NULL. This stops some crashes.
15166 2005-08-19  Colin Walters  <walters@verbum.org>
15168         Patch from Olivier Blin <oblin@mandriva.com>
15170         * widgets/eggnotificationbubble.c (force_window): Support top
15171         orientation.
15172         * widgets/eggnotificationbubble.h: Remove
15173         egg_notification_bubble_force_window from header.
15174         
15175 2005-08-18  James Livingston  <jrl@ids.org.au>
15177         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
15178         with the changes since then.
15180 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
15182         * shell/rb-shell-player.c: (rb_shell_player_init),
15183         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
15184         (rb_shell_player_volume_widget_changed_cb):
15185         * sources/rb-iradio-source.c:
15186         * sources/rb-library-source.c:
15187         * sources/rb-playlist-source.c:
15188         * widgets/Makefile.am:
15189         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
15190         (bacon_volume_button_class_init), (bacon_volume_button_init),
15191         (bacon_volume_button_dispose), (bacon_volume_button_new),
15192         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
15193         (bacon_volume_button_scroll), (bacon_volume_button_press),
15194         (cb_button_timeout), (cb_button_press), (cb_button_release),
15195         (bacon_volume_release_grab), (cb_dock_press),
15196         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
15197         (bacon_volume_scale_new), (bacon_volume_scale_press),
15198         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
15199         * widgets/bacon-volume.h:
15200         * widgets/rb-volume.c:
15201         * widgets/rb-volume.h:
15202           Use BaconVolumeButton (#300867).
15204 2005-08-17  James Livingston  <jrl@ids.org.au>
15206         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
15207         (rhythmdb_process_metadata_load): don't reset the First Seen time
15208         whenever we recheck the metadata.
15210 2005-08-17  James Livingston  <jrl@ids.org.au>
15212         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15213         temporary workaround to stop crashes when trying to burn an empty
15214         playlist. Doesn't disable the menu item which is the better solution
15215         (Bug 313253).
15217 2005-08-15  James Livingston  <jrl@ids.org.au>
15219         * shell/rb-source-header.c: (rb_source_header_init),
15220         (rb_source_header_sync_control_state),
15221         (rb_source_header_search_activate_cb):
15222         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
15223         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
15224         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
15225         (rb_search_entry_init), (rb_search_entry_searching),
15226         (rb_search_entry_activate_cb):
15227         * widgets/rb-search-entry.h: Move focus to the entry view when user
15228         presses enter in the search box. Patch from Paolo Borelli
15229         <pborelli@katamail.com> (Closes bug 128110)
15231 2005-08-15  James Livingston  <jrl@ids.org.au>
15233         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
15234         (rb_playlist_manager_new_playlist):
15235         * shell/rb-playlist-manager.h:
15236         * shell/rb-shell.c: (rb_shell_construct),
15237         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
15238         the source list to be shown when a new playlist is created. (Closes
15239         bug 161935)
15241 2005-08-15  James Livingston  <jrl@ids.org.au>
15243         * widgets/rb-header.c: (rb_header_init),
15244         (rb_header_set_show_timeline): disable the seek slider, rather than
15245         hiding it, which more closely follows the HIG. (Closes bug 139102)
15247 2005-08-13  Colin Walters  <walters@verbum.org>
15249         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
15250         rb_shell_hidden_notify.
15251         (rb_shell_hidden_notify): Notify if the shell is hidden.
15252         (rb_shell_set_visibility_impl): Debug goo.
15254         * shell/rb-shell.h: Export rb_shell_hidden_notify.
15256         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
15257         when the user clicks on notification.
15259         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
15260         CD burn is complete.
15261         (rb_playlist_source_recorder_finalize): Unref shell.
15262         (rb_playlist_source_recorder_new): Take shell.
15264         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
15265         Pass shell to RBPlaylistSourceRecorder.
15266         
15267 2005-08-13  Colin Walters  <walters@verbum.org>
15269         * lib/rb-thread.c:
15270         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
15271           time to convert.
15273 2005-08-13  Colin Walters  <walters@verbum.org>
15275         * widgets/eggnotificationbubble.h:
15276         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
15277         * widgets/eggtrayicon.c:
15278         * widgets/eggtrayicon.h: Add notification API.
15279         * shell/rb-tray-icon.c:
15280         * shell/rb-tray-icon.h: Add notification API.
15281         * shell/rb-shell.c: Notify on song change.
15283 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15285         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
15286         Correct an inversion of two lines causing NULL to be unreffed
15288 ============ Version 0.9.0
15290 2005-08-10  Bastien Nocera  <hadess@hadess.net>
15292         * configure.ac: 0.9.0, whee!
15293         * NEWS: badly updated
15294         * remote/bonobo/Makefile.am:
15295         * remote/bonobo/rb-remote-bonobo.h:
15296         * shell/Makefile.am:
15297         * shell/main.c: make distcheck fixes