Updated Macedonian Translation <arangela@cvs.gnome.org>
[rhythmbox.git] / ChangeLog
blobcaa72c8c71cec29c6ec210cf54361d987c6255d9
1 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4         Fix creation of ignored-file db entries - need to check for
5         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
7 2006-05-25  James Livingston  <doclivingston@gmail.com>
9         * AUTHORS:
10         * MAINTAINERS: update my email address
12 2006-05-25  James Livingston  <doclivingston@gmail.com>
14         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
15         "(... mix)" when searching for lyrics. Cache the lyrics under
16         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
18 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
20         * sources/rb-import-errors-source.c:
21         (rb_import_errors_source_class_init):
22         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
23         * sources/rb-browser-source.c: (rb_browser_source_class_init):
24         * sources/rb-source.c: (rb_source_class_init),
25         (default_move_to_trash):
26         Implement the basic move-to-trash operation once in rb-source.c, 
27         rather than in each source type that supports it.
29         * plugins/ipod/rb-ipod-plugin.c:
30         * shell/rb-removable-media-manager.c:
31         * shell/rb-shell.c: (rb_shell_constructor):
32         Only scan removable media once after loading plugins.  Add a flag
33         plugins can use to check if the initial scan has been done.
35         * data/rhythmbox.schemas:
36         Enable ipod and generic-player plugins by default.
37         
38         * configure.ac:
39         * data/ui/Makefile.am:
40         * data/ui/generic-player-ui.xml:
41         * data/ui/rhythmbox-ui.xml:
42         * plugins/Makefile.am:
43         * plugins/generic-player/Makefile.am:
44         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
45         * plugins/generic-player/rb-generic-player-plugin.c:
46         * sources/Makefile.am:
47         * sources/rb-generic-player-source.c:
48         * sources/rb-generic-player-source.h:
49         * sources/rb-nokia770-source.c:
50         * sources/rb-nokia770-source.h:
51         * sources/rb-psp-source.c: (visit_playlist_dirs):
52         * sources/rb-psp-source.h:
53         Pluginise generic player (and nokia770 and PSP) support and add
54         move-to-trash for players not mounted read-only.
55         Fixes #342868.
57 2006-05-24  William Jon McCann  <mccann@jhu.edu>
59         * daapsharing/rb-daap-connection.c (handle_song_listing):
60         Lower bound check for batch commit.  Fixes #342848
62         * sources/rb-daap-source.c (rb_daap_source_get_status):
63         Always set output variables if provided.
65 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
67         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
68         (rhythmdb_tree_entry_delete), (remove_one_song):
69         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
70         Fix two db entry reference counting problems.
71         The initial reference on the entry is held by the db backend, but it
72         was never being dropped.  The reference count was incremented when
73         adding an entry to the deleted_entries map and to the
74         deleted_entries_to_emit list, but only decremented for one of those.
76 2006-05-24  William Jon McCann  <mccann@jhu.edu>
78         * daapsharing/rb-daap-connection.c (http_response_handler) 
79         (rb_daap_connection_dispose):
80         Call soup_session_abort to make sure there are no outstanding
81         requests when we dispose of the connection.  Ignore cancelled
82         messages in the callback.
84 2006-05-24  William Jon McCann  <mccann@jhu.edu>
86         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
87         (rb_daap_source_disconnect): Set a flag when disconnecting
88         the source.  Check this flag in connection callback
89         to see if we should release the connection.
91 2006-05-24  William Jon McCann  <mccann@jhu.edu>
93         * daapsharing/Makefile.am:
94         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
95         (rb_daap_connection_class_init), (connection_connected),
96         (connection_disconnected), (connection_operation_done),
97         (build_message), (connection_set_error_message),
98         (actual_http_response_handler), (http_get),
99         (entry_set_string_prop), (emit_progress_idle),
100         (handle_server_info), (handle_login), (handle_update),
101         (handle_database_info), (handle_song_listing), (handle_playlists),
102         (handle_playlist_entries), (handle_logout),
103         (rb_daap_connection_new), (rb_daap_connection_is_connected),
104         (connection_response_data_free), (connected_cb),
105         (rb_daap_connection_connect), (disconnected_cb),
106         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
107         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
108         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
109         (rb_daap_connection_get_property):
110         * daapsharing/rb-daap-connection.h:
111         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
112         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
113         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
114         (rb_daap_hash_generate):
115         * daapsharing/rb-daap-hash.h:
116         * sources/rb-daap-source.c: (rb_daap_source_class_init),
117         (rb_daap_get_icon), (remove_source), (stop_browsing),
118         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
119         (connection_connecting_cb), (connection_disconnected_cb),
120         (release_connection), (rb_daap_source_connection_cb),
121         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
122         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
124         Adds a better async API for connect and disconnect.  Doesn't share
125         callback data for every async call.  Adds a connect signal.  Uses
126         an operation-done signal to trigger the callbacks.  Displays an
127         error when connections fail.  A few refcounting fixes to fix
128         crashes.  Uses a weak pointer to set the connection to NULL so we
129         don't clobber references.  Wait for each disconnect when shutting
130         down sources.  Split out DAAP hash stuff into its own file.  Fix
131         typo in header.
133         Fixes #342643
134         
135 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
137         * sources/rb-auto-playlist-source.c:
138         (rb_auto_playlist_source_new_from_xml):
139         Initialize the gvalue used to hold the size limit correctly.
140         Fixes #342744.
142 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
144         * shell/rb-shell.c: (rb_shell_window_delete_cb),
145         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
146         * shell/rb-shell.h:
147         * shell/rb-shell.xml:
148         Convert rb_shell_quit into a dbus method, and add visibility dbus
149         property.
151 2006-05-22  James Livingston  <doclivingston@gmail.com>
153         * rhythmdb/rhythmdb.h:
154         * rhythmdb/rhythmdb.c: (sync_entry_changed),
155         (rhythmdb_entry_is_editable), (action_thread_main),
156         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
157         vfuncs for can_sync_metadata, and sync_metadata. The default is always
158         false, and syncing into the file.
160         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
161         (rhythmdb_entry_iradio_get_type),
162         (rhythmdb_entry_import_error_get_type):
163         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
164         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
165         change the DB.
167 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
169         * rhythmdb/Makefile.am:
170         * rhythmdb/rhythmdb-monitor.c:
171         * rhythmdb/rhythmdb-private.h:
172         * rhythmdb/rhythmdb-query.c:
173         * rhythmdb/rhythmdb.c:
174         Split up rhythmdb.c a bit.
176 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
178         * data/glade/audioscrobbler-prefs.glade:
179         Add a link to the last.fm server status page.
181 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
183         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
184         Capitalization fix.
185         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
186         (impl_create_configure_dialog):  UI layout fixes, remove
187         dialog separator, and capitalization fix for window title.
188         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
189         and remove dialog separator.
190         * data/glade/plugins.glade:  UI layout fixes.
191         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
192         and capitalization fix.  Fixes #342438.
194 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
196         * data/glade/podcast-properties.glade:  Fix layout of the download 
197         location.  Fixes #342431.
199 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
201         * data/ui/rhythmbox-ui.xml:
202         We only need one copy of the 'add to queue' action in the edit menu.
204 2006-05-20  James Livingston  <doclivingston@gmail.com>
206         * data/ui/rhythmbox-ui.xml:
207         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
208         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
209         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
210         (rb_shell_clipboard_sync),
211         (rb_shell_clipboard_cmd_add_to_playlist_new),
212         (rb_shell_clipboard_cmd_queue_song_info),
213         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
214         (rb_shell_clipboard_playlist_deleted_cb),
215         (rb_shell_clipboard_playlist_renamed_cb),
216         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
217         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
218         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
219         dynamically generated with all the static playlists. Fixes bug 323364.
221         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
222         right child, so it doesn't go weird when art appears and disappears.
224 2006-05-20  James Livingston  <doclivingston@gmail.com>
226         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
228         * rhythmdb/rhythmdb-query-model.c:
229         (rhythmdb_query_model_set_property),
230         (rhythmdb_query_model_finalize),
231         (rhythmdb_query_model_reapply_query_cb):
232         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
233         (rhythmdb_query_append_prop_multiple),
234         (rhythmdb_query_is_time_relative):
235         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
236         time-based criteria, fixes bug 341131.
238 2006-05-20  James Livingston  <doclivingston@gmail.com>
240         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
241         we have already changed playing entries. Interpolate the art size so
242         it doesn't jump when the old and new images have different aspect
243         ratios.
245 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
247         * rhythmdb/rhythmdb-private.h:
248         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
249         (save_entry):
250         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
251         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
252         (rhythmdb_entry_get_ulong):
253         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
254         and elsewhere, use them on the stack rather than allocating on 
255         the heap.  From bug #342333.
257 2006-05-19  William Jon McCann  <mccann@jhu.edu>
259         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
260         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
261         (add_track), (eos_cb), (error_signal_idle),
262         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
263         (rb_recorder_construct), (recorder_track_free),
264         (rb_recorder_finalize):
265         * sources/rb-playlist-source-recorder.c:
266         Support libnautilus-burn size -> capacity API change.  Add
267         some braces to blocks.
269 2006-05-19  William Jon McCann  <mccann@jhu.edu>
271         * metadata/sj-metadata-musicbrainz.c:
272         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
273         Sync with sound-juicer in CVS.  Fixes #342177
274         * sources/rb-audiocd-source.c: Don't declare variables
275         in the middle of a block (c99ism).  Fix order of #includes.
276         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
277         one variable per line.  Update copyright date.
279 2006-05-19  James Livingston  <doclivingston@gmail.com>
281         patch by: Hendrik Richter  <hendi@gnome-de.org>
283         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
284         "translator_credits" to a hyphen, so it doesn't cause problems for
285         tools that check access keys. Fixes bug 341832.
287 2006-05-19  James Livingston  <doclivingston@gmail.com>
289         * po/POTFILES.in: remove references to files that don't exist any more
290         (fixes make distcheck).
292 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
294         * plugins/lyrics/lyrics.py:  Fix layout close button in 
295         Song Lyrics dialog. Fixes bug 342322.
297 2006-05-19  James Livingston  <doclivingston@gmail.com>
299         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
301         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
302         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
303         version checks not break when libnotify goes to 1.0.0. Fixes bug
304         342244.
306 2006-05-18  James Livingston  <doclivingston@gmail.com>
308         * shell/rb-shell-clipboard.c:
309         * shell/rb-shell.c:
310         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
312 2006-05-17  William Jon McCann  <mccann@jhu.edu>
314         * sources/rb-playlist-source-recorder.c (get_song_description):
315         Reverse artist and title in song description.  This
316         is useful because at least the title will be visible
317         when there is limited space.
319 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
321         * daapsharing/rb-daap-connection.c: (connection_get_password):
322         Take gdk lock before emitting authenticate signal.
323         * sources/rb-daap-source.c: (connection_connecting_cb):
324         Get rid of the unnecessary idle handler (it's already called from one)
325         Fixes #342047 once more.
327 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
329         * shell/rb-shell.c: (rb_shell_class_init):
330         * shell/rb-shell.h:
331         * widgets/rb-song-info.c: (rb_song_info_class_init),
332         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
333         (rb_song_info_constructor), (rb_song_info_get_property),
334         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
335         (rb_song_info_forward_clicked_cb):
336         * widgets/rb-song-info.h:
337         * data/glade/song-info-multiple.glade:
338         * lib/rb-marshal.list:
339         * bindings/python/Makefile.am:
340         * bindings/python/rb.defs:
341         * bindings/python/rb.override:
342         Allow plugins to add pages to the notebooks used in song info windows,
343         and to track the current song displayed in single-entry windows.
344         
345         * configure.ac:
346         * plugins/Makefile.am:
347         * plugins/lyrics/Loader.py:
348         * plugins/lyrics/Makefile.am:
349         * plugins/lyrics/lyrics.py:
350         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
351         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
352         as a separate window (for the playing song) or as a page in the song
353         info window.  A few TODO items left, but this fixes #319320.
355 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
357         Patch by:  Roozbeh Pournader
359         * configure.ac:
360         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
361         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
363 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
364         
365         * sources/rb-daap-source.c: (update_connection_status):
366         Correct return value.  Fixes #342047 again.
368 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
370         * sources/rb-daap-source.c: (update_connection_status),
371         (connection_connecting_cb):
372         Update status in an idle handler so we don't rely on the gdk lock
373         being recursive (because it isn't any more).  Fixes #342047.
375 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
377         * lib/rb-util.c: (rb_make_duration_string),
378         (rb_make_elapsed_time_string):
379         * lib/rb-util.h:
380         Add a function for formatting an elapsed time string.
382         * shell/rb-shell-player.c: (rb_shell_player_init),
383         (rb_shell_player_sync_with_source),
384         (rb_shell_player_get_playing_time_string), (tick_cb):
385         Store elapsed time in the private data structure, and use the above
386         function.
387         
388         * widgets/rb-header.c:
389         * widgets/rb-header.h:
390         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
391         object, so everything has the same idea of the elapsed time.
392         Fixes #339693.
394 2006-05-16  James Livingston  <doclivingston@gmail.com>
396         * bindings/python/rhythmdb.defs:
397         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
398         some parametre defaults, so you don't have to pass None, False for the
399         sorting order.
401 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
403         * bindings/python/rhythmdb.defs:
404         * rhythmdb/rhythmdb-query-model.c:
405         (rhythmdb_query_model_compute_status_normal):
406         * rhythmdb/rhythmdb-query-model.h:
407         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
408         * rhythmdb/rhythmdb.h:
409         Change the various compute_status methods to accept a singular/plural
410         pair to use in the status string.
411         
412         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
413         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
414         * sources/rb-source.c: (default_get_status):
415         Call entries 'songs' by default, and 'episodes' in the podcast source.
416         Fixes #340227.
418 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
420         patch by:  Paul Drain
422         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
423         Fixes #341817.
425 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
427         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
428         Generate reorder maps correctly.
429         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
430         Scroll to the first entry from the old selection.
431         Fixes #322992.
433 2006-05-15  William Jon McCann  <mccann@jhu.edu>
435         * data/ui/rhythmbox-ui.xml:
436         * lib/rb-preferences.h:
437         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
438         (rb_shell_playlist_created_cb),
439         (rb_shell_view_sidepane_changed_cb),
440         (rb_shell_sync_sidepane_visibility),
441         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
442         (sidepane_visibility_changed_cb):
443         * sources/rb-podcast-source.c:
444         Convert sourcelist visibility to side-pane visbility.
445         Fixes #339733
447 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
449         * widgets/rb-header.c:
450         * widgets/rb-header.h: Stop RBHeader from referring to itself as
451         'player', and make it use the private data structure allocated for it.
453 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
455         * configure.ac: enable metadata helper with dbus < 0.35.
457 2006-05-15  James Livingston  <doclivingston@gmail.com>
459         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
461         * data/glade/song-info.glade:
462         * widgets/rb-song-info.c: (rb_song_info_construct_single),
463         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
464         (rb_song_info_update_filesize): Add the file size into the song info
465         window. Fixes bug 340861.
467 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
469         * bindings/python/rhythmdb.defs:
470         * rhythmdb/rhythmdb-query-model.c:
471         (rhythmdb_query_model_set_property),
472         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
473         * rhythmdb/rhythmdb-query-model.h:
474         Add a new method to chain query models without importing entries from
475         the parent into the child.  This is useful when the subset of entries
476         in the child can be more easily determined by running a query than by
477         filtering entries from the parent.
479         * bindings/python/rb.defs:
480         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
481         (rb_library_browser_set_property),
482         (rb_library_browser_get_property), (rb_library_browser_new),
483         (rebuild_child_model):
484         * widgets/rb-library-browser.h:
485         * sources/rb-auto-playlist-source.c:
486         (rb_auto_playlist_source_constructor):
487         * sources/rb-static-playlist-source.c:
488         (rb_static_playlist_source_constructor):
489         * sources/rb-browser-source.c: (rb_browser_source_constructor):
490         Use more efficient queries for constructing the browser query model
491         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
492         backend to optimise the query) and run new queries rather than
493         filtering entries from the parent.  Fixes #341402.
495         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
497 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
499         * configure.ac:
500         * shell/Makefile.am:
501         * shell/main.c: (main), (load_uri_args), (send_present_message),
502         (unregister_dbus_handler), (handle_dbus_message),
503         (register_dbus_handler):
504         Add minimal support for dbus 0.31 - 0.35.
506         * doc/reference/Makefile.am:
507         * doc/reference/rhythmbox.types:
508         * data/Makefile.am:
509         * data/GNOME_Rhythmbox.server.in:
510         * data/rhythmbox.pc.in:
511         * remote/*:
512         * remote/bonobo/*:
513         Remove remaining bonobo and generic remote interface files.
515 2006-05-14  James Livingston  <doclivingston@gmail.com>
517         * shell/rb-shell.c: (construct_widgets):
518         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
519         resize the browser and queue-sidebar section of their panes, unless
520         the other section is below the minimum size. Fixes bug 331927.
522 2006-05-13  James Livingston  <doclivingston@gmail.com>
524         * rhythmdb/rhythmdb-query-model.c:
525         (rhythmdb_query_model_class_init),
526         (rhythmdb_query_model_set_property),
527         (rhythmdb_query_model_get_property),
528         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
529         (rhythmdb_query_model_insert_into_main_list),
530         (rhythmdb_query_model_insert_into_limited_list),
531         (rhythmdb_query_model_do_reorder),
532         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
533         (rhythmdb_query_model_location_sort_func),
534         (rhythmdb_query_model_title_sort_func),
535         (rhythmdb_query_model_album_sort_func),
536         (rhythmdb_query_model_artist_sort_func),
537         (rhythmdb_query_model_genre_sort_func),
538         (rhythmdb_query_model_track_sort_func),
539         (rhythmdb_query_model_double_ceiling_sort_func),
540         (rhythmdb_query_model_ulong_sort_func),
541         (rhythmdb_query_model_date_sort_func),
542         (rhythmdb_query_model_string_sort_func):
543         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
544         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
545         "data destroy" property. Fixed bug 341543.
547         * bindings/python/rhythmdb.defs:
548         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
549         rhythmdb_query_model_set_sorting_order
551         * rhythmdb/rhythmdb-property-model.c:
552         (rhythmdb_property_model_drag_data_get):
553         * sources/rb-import-errors-source.c:
554         (rb_import_errors_source_constructor):
555         * sources/rb-missing-files-source.c:
556         (rb_missing_files_source_constructor):
557         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
558         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
559         * widgets/rb-entry-view.h: adapt to the above change.
561 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
563         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
564         (rhythmdb_tree_load):
565         Commit loaded entries in batches, rather than individually.  
566         More startup time reduction.
568 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
570         * doc/reference/Makefile.am: fix gtk-doc compilation
572 2006-05-12  William Jon McCann  <mccann@jhu.edu>
574         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
575         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
576         * plugins/artdisplay/artdisplay/Loader.py:
577         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
578         Only call the first artist the best match when album==Unknown.
579         Don't perform each query twice if album doesn't include "Vol N".
580         Fix searching for compilations.  Fix blacklisting.
581         Part of bug #307848
583 2006-05-12  William Jon McCann  <mccann@jhu.edu>
585         * Makefile.am:
586         * bindings/python/Makefile.am:
587         * bindings/python/rb.defs:
588         * bindings/python/rb.override:
589         * configure.ac:
590         * doc/reference/Makefile.am:
591         * plugins/Makefile.am:
592         * plugins/audioscrobbler/Makefile.am:
593         * plugins/ipod/Makefile.am:
594         * plugins/lirc/Makefile.am:
595         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
596         (impl_activate), (impl_deactivate):
597         * plugins/sample/Makefile.am:
598         * remote/Makefile.am:
599         * shell/Makefile.am:
600         * shell/main.c: (main), (main_shell_weak_ref_cb):
601         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
602         (rb_shell_get_property), (rb_shell_window_state_cb),
603         (idle_hide_mainwindow), (rb_shell_set_visibility),
604         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
605         (rb_shell_set_song_property):
606         * shell/rb-shell.h:
607         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
608         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
609         (rb_tray_icon_get_property), (rb_tray_icon_new),
610         (rb_tray_icon_button_press_event_cb),
611         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
612         (rb_tray_icon_show_window_changed_cb):
613         * shell/rb-tray-icon.h:
615         Remove bonobo, require DBUS.
616         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
617         Fixes #339720
619 2006-05-13  James Livingston  <doclivingston@gmail.com>
621         * bindings/python/rb.override: fix some pointer-type warnings
623 2006-05-12  James Livingston  <doclivingston@gmail.com>
625         * lib/rb-util.c: (rb_value_free):
626         * lib/rb-util.h: Add function to unset and free a GValue* that was
627         allocated in the heap.
629         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
630         the metadata hastable values
631         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
632         leak the metadata hashtable structure
633         * metadata/rb-metadata-dbus.c:
634         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
635         using g_strdup and then _take_string
637         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
638         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
639         stat something.
641         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
642         leak the encoded string
644         * widgets/rb-property-view.c:
645         (rb_property_view_selection_changed_cb): set some variables to have
646         inital values, because some code paths may not set them before we use
647         them.
649         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
650         don't have python warning into a debug message".
652 2006-05-10  William Jon McCann  <mccann@jhu.edu>
654         * data/rhythmbox.schemas: Use zero instead of null for
655         default burn speed.  Fixes #341283.
657 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
659         * bindings/python/rb.defs:
660         * widgets/rb-library-browser.c:
661         (rb_library_browser_get_property_view):
662         * widgets/rb-library-browser.h:
663         Add a method to get the property view for a given property.
665         * sources/rb-browser-source.c:
666         (rb_browser_source_cmd_choose_genre),
667         (rb_browser_source_cmd_choose_artist),
668         (rb_browser_source_cmd_choose_album):
669         Change the browser selection by changing the property view selection. 
670         Makes the selection change visible, fixing #331740.
672 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
674         * bindings/python/rb.defs:
675         * bindings/python/rb.override:
676         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
677         * shell/rb-statusbar.c: (*),
678         * sources/rb-import-errors-source.c: (impl_get_status):
679         * sources/rb-iradio-source.c: (impl_get_status):
680         * sources/rb-missing-files-source.c: (impl_get_status):
681         * sources/rb-source.c: (default_get_status),
682         (rb_source_get_status):
683         * sources/rb-source.h:
684         Allow sources to provide a progress value for the status bar.
685         Simplify status bar processing (much less polling).
686         Consider rhythmdb busy while it's still loading the database.
688         * daapsharing/rb-daap-connection.c: (*)
689         * daapsharing/rb-daap-connection.h:
690         * lib/rb-marshal.list:
691         * sources/rb-daap-source.c: (rb_daap_source_class_init),
692         (rb_daap_source_init), (connection_connecting_cb),
693         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
694         (rb_daap_source_get_status):
695         Provide status information for DAAP connections, and move processing
696         of large responses into a separate thread.
697         Fixes bugs #322020 and #338978.
699 2006-05-09  James Livingston  <doclivingston@gmail.com>
701         Split the artdisplay plugin into several files.
702         Fix loader and amazon-search re-use issues.
703         Add some better search heuristics.
705         * configure.ac:
706         * plugins/artdisplay/Makefile.am:
707         * plugins/artdisplay/artdisplay.py:
708         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
709         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
710         * plugins/artdisplay/artdisplay/Loader.py:
711         * plugins/artdisplay/artdisplay/Makefile.am:
712         * plugins/artdisplay/artdisplay/__init__.py:
714 2006-05-09  James Livingston  <doclivingston@gmail.com>
716         * sources/rb-browser-source.h: remove the _has_first_added_column
717         stuff since it isn't actually used anywhere. Sources that want it
718         should just add it themselves, as the library already does
720         * bindings/python/rb.defs:
721         * sources/rb-daap-source.c: (rb_daap_source_class_init):
722         * sources/rb-library-source.c: (rb_library_source_class_init):
723         * sources/rb-removable-media-source.c:
724         (rb_removable_media_source_class_init): Remove the remanants of the
725         above.
727 2006-05-09  James Livingston  <doclivingston@gmail.com>
729         * bindings/python/rb.defs:
730         * sources/rb-browser-source.h: remove a function that was declared in
731         the header, but not defined anywhere.
733 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
735         * plugins/artdisplay/.cvsignore:
736         * plugins/ipod/.cvsignore: Added.
738 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
740         * sources/rb-auto-playlist-source.c:
741         (rb_auto_playlist_source_new_from_xml):
742         Fix reading of older playlist files where all three limits were
743         specified so we take the first nonzero limit.  From #341053.
745 2006-05-09  James Livingston  <doclivingston@gmail.com>
747         * bindings/python/Makefile.am:
748         * bindings/python/rb.defs:
749         * bindings/python/rb.override: bind RBBrowserSource,
750         RBRemovableMediaSource and RBRemovableMediamanager.
752 2006-05-09  James Livingston  <doclivingston@gmail.com>
754         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
756         * data/glade/plugins.glade: make the plugin dialog look a bit better.
757         Fixes bug 339221.
759 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
761         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
762         Don't explode when trying to edit a query with no limit set.
764 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
766         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
767         Clear the should_queue flag when switching to a non-submittable entry,
768         so we don't submit songs that played for three seconds before
769         switching to a podcast episode.
771         * rhythmdb/rhythmdb-query-model.c
772         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
773         in the drag data list.
775 2006-05-08  James Livingston  <doclivingston@gmail.com>
777         * lib/rb-util.c: (rb_value_array_append_data):
778         * lib/rb-util.h: add function which is basically a combination of
779         G_VALUE_COLLECT and g_value_array_append.
781         * rhythmdb/rhythmdb-query-model.h:
782         * rhythmdb/rhythmdb-query-model.c:
783         (rhythmdb_query_model_class_init),
784         (rhythmdb_query_model_set_property),
785         (rhythmdb_query_model_get_property),
786         (rhythmdb_query_model_finalize),
787         (rhythmdb_query_model_update_limited_entries),
788         (rhythmdb_query_model_set_sort_order),
789         (rhythmdb_query_model_within_limit),
790         (rhythmdb_query_model_limit_type_get_type): Make query model limits
791         saner. Rather than having <count=N, time=N, size=N> we now have a
792         <type, value> pair. This will also make it much easier to add new
793         limit types in the future.
795         * shell/rb-playlist-manager.c:
796         (rb_playlist_manager_set_automatic_playlist),
797         (rb_playlist_manager_cmd_edit_automatic_playlist):
798         * sources/rb-auto-playlist-source.c:
799         (rb_auto_playlist_source_finalize),
800         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
801         (_save_write_ulong), (_save_write_uint64),
802         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
803         (rb_auto_playlist_source_set_query),
804         (rb_auto_playlist_source_get_query):
805         * sources/rb-auto-playlist-source.h:
806         * sources/rb-library-source.c:
807         (rb_library_source_add_child_source):
808         * sources/rb-psp-source.c: (visit_playlist_dirs):
809         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
810         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
811         * widgets/rb-query-creator.h: Adapt to the above change.
813 2006-05-08  James Livingston  <doclivingston@gmail.com>
815         * shell/rb-playlist-manager.c:
816         (rb_playlist_manager_cmd_edit_automatic_playlist):
817         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
818         (rb_auto_playlist_source_set_query),
819         (rb_auto_playlist_source_get_query): copy the query in the _get method
820         and free it in things calling that. Fixes a crasher.
822 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
824         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
825         Make entries on newly mounted volumes visible immediately, hiding them
826         later if they turn out to be missing.  Fixes #340068.
828 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
830         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
831         Ignore zip files and ignore errors for files we've decided to ignore.
833 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
835         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
836         Add missing }, should fix #340844.
838 2006-05-06  James Livingston  <doclivingston@gmail.com>
840         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
841         typo.
843 2006-05-06  James Livingston  <doclivingston@gmail.com>
845         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
846         that we work with libnotify >= 0.4
848 2006-05-06  James Livingston  <doclivingston@gmail.com>
850         patch by: Joe Barnett  <thejoe@gmail.com>
852         * configure.ac: check if we're using a version of libgpod that
853         supports the Motorola ROKR
855         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
856         for the db path, if we using the newer version.
858         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
860 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
862         * rhythmdb/rhythmdb-query-model.c:
863         (rhythmdb_query_model_drag_data_get):
864         Use playback URI, not location, for drag data.  Fixes #322597.
866 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
868         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
870 2006-05-03  James Livingston  <doclivingston@gmail.com>
872         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
873         (rb_add_id3_tagger), (rb_metadata_save):
874         Set the tags on the tagging element when it is
875         created, not during pipeline creation - which is required for
876         dynamically created elements.
878         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
879         support for using the "vorbistag" element to re-tag ogg vorbis files.
880         Fixes bug 339878.
882 2006-05-03  James Livingston  <doclivingston@gmail.com>
884         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
886         * plugins/artdisplay/artdisplay.py:
887         - Fix small bug callback of data loader getting overwritten on fast
888         connections.
889         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
890         Jonathan Matthew)
891         - Fix Rhythmbox UI blocking while loading/searching cover art
892         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
893         - Initial approach to allow additional "art search engines"
894         - Further modularization in a couple of places
895         - Minor fixes for empty entries (iradio, album, artist etc.)
897 2006-05-03  James Livingston  <doclivingston@gmail.com>
899         * shell/rb-playlist-manager.c:
900         (rb_playlist_manager_playlist_entries_changed),
901         (rb_playlist_manager_set_source): don't show the edit/delete/rename
902         options for non-local sources, rather than showing disabled ones.
904         * sources/rb-library-source.c: (add_child_sources_idle),
905         (rb_library_source_constructor), (rb_library_source_new),
906         (rb_library_source_library_location_changed),
907         (rb_library_source_add_child_source),
908         (rb_library_source_sync_child_sources): Create "child library" sources
909         when the user has multiple library locations set. Fixes bug 100552.
911 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
913         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
914         * plugins/sample/sample.rb-plugin.desktop.in:
915         Finish changing 'Author' to 'Authors'
916         
917         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
918         (rhythmdb_entry_import_error_get_type):
919         Implement get_playback_uri for import errors (returns NULL)
921         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
922         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
923         entry, rather than doing entry type checks.
925 2006-05-02  James Livingston  <doclivingston@gmail.com>
927         patch from Alessandro Decina  <alessandro@nnva.org>
929         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
930         the signal emission in the case of fatal-on-init errors. From bug
931         322268.
933 2006-05-02  James Livingston  <doclivingston@gmail.com>
935         * rhythmdb/rhythmdb.h:
936         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
937         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
938         (rhythmdb_entry_podcast_post_get_type),
939         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
940         virtual function to entry-types for getting the playback URI. From bug
941         330226.
943         * backends/gstreamer/rb-encoder-gst.c:
944         (create_pipeline_and_source), (extract_track):
945         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
946         to get the URI.
948 2006-05-02  James Livingston  <doclivingston@gmail.com>
950         patch by: Brian Cameron  <brian.cameron@sun.com>
952         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
953         340337.
955 2006-05-01  William Jon McCann  <mccann@jhu.edu>
957         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
958         instead of clear.  Use regex matching to strip "disc N"
959         from album.  Match titles in ProductName.  Perform
960         fallback queries including various artist compilations.
961         Include "us" locale.  Improve queries when artist or album
962         is unknown.  Use medium size image if large is unavailable.
964         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
965         William Jon McCann  <mccann@jhu.edu>
966         
967 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
969         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
970         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
971         (conjunctive_query): Sanity check.
972         (evaluate_conjunctive_subquery): 
973         Don't return TRUE immediately when a relative-time query criterion
974         matches.  Fixes #339972.
976 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
978         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
979         Don't crash if primary or secondary are NULL.
981 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
983         * doc/reference/Makefile.am: fix gtk-doc build yet again
985 2006-04-28  James Livingston  <doclivingston@gmail.com>
987         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
988         python console. Fixes bug 339934.
990 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
992         * rhythmdb/rhythmdb-property-model.c:
993         (rhythmdb_property_model_drag_data_get):
994         When creating uri list drag data, create a new query model based on
995         the query model the property model is attached to.  Makes the
996         resulting query use the right entry type and include the upstream
997         query criteria.  Fixes half of #327540.
999 2006-04-27  James Livingston  <doclivingston@gmail.com>
1001         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
1002         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
1003         build fixes.
1005 2006-04-27  James Livingston  <doclivingston@gmail.com>
1007         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
1009 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1011         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
1012         (rb_playlist_manager_save_data),
1013         (rb_playlist_manager_save_playlists):
1014         * shell/rb-playlist-manager.h:
1015         * shell/rb-shell.c: (rb_shell_sync_state),
1016         (idle_save_playlist_manager):
1017         Remove a bit more threading insanity from the playlist manager.
1019 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1021         * shell/rb-playlist-manager.c: 
1022         * shell/rb-playlist-manager.h:
1023         Remove dead code, add gtk-doc, remove threading insanity (mostly).
1024         
1025         * shell/rb-shell.c: (rb_shell_sync_state),
1026         (idle_save_playlist_manager), (construct_sources),
1027         (rb_shell_select_source), (rb_shell_sync_party_mode):
1028         Adjustments for above changes.
1030 2006-04-26  William Jon McCann  <mccann@jhu.edu>
1032         * sources/rb-browser-source.c (impl_browser_toggled):
1033         Reset browser when hidden.  Fixes #339617.
1035 2006-04-26  James Livingston  <doclivingston@gmail.com>
1037         * backends/Makefile.am:
1038         * backends/gstreamer/Makefile.am: work again with separated
1039         built-roots
1041 2006-04-26  James Livingston  <doclivingston@gmail.com>
1043         * shell/rb-removable-media-manager.c:
1044         (rb_removable_media_manager_set_uimanager): fix compilation with
1045         -Werror and --enable-track-transfer.
1047 2006-04-26  James Livingston  <doclivingston@gmail.com>
1049         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
1050         implementing class. In theory allows alternate player implementations
1051         to be selected at run-time rather than compile-time. Fixes bug 338667.
1053         * Makefile.am:
1054         * backends/Makefile.am:
1055         * backends/gstreamer/Makefile.am:
1056         * backends/gstreamer/rb-player-gst.h:
1057         * backends/rb-player.c: (rb_player_interface_init),
1058         (rb_player_get_type), (rb_player_open), (rb_player_opened),
1059         (rb_player_close), (rb_player_play), (rb_player_pause),
1060         (rb_player_playing), (rb_player_set_volume),
1061         (rb_player_get_volume), (rb_player_set_replaygain),
1062         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
1063         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
1064         (_rb_player_emit_buffering), (_rb_player_emit_error),
1065         (_rb_player_emit_tick), (rb_player_error_quark):
1066         * player/Makefile.am:
1067         * player/rb-player-gst.c: (rb_player_gst_class_init),
1068         (rb_player_init), (tick_timeout), (rb_player_gst_init),
1069         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
1070         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
1071         (process_tag), (found_tag_cb), (buffering_cb),
1072         (rb_player_gst_bus_cb), (rb_player_gst_construct),
1073         (rb_player_gst_new):
1074         * player/rb-player.h:
1075         * shell/Makefile.am:
1076         * sources/rb-audiocd-source.c:
1077         * widgets/Makefile.am:
1078         * widgets/rb-header.c: (rb_header_class_init):
1080 2006-04-26  James Livingston  <doclivingston@gmail.com>
1082         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
1083         don't try to download an episode if it couldn't be parsed. Fixes bug
1084         339712.
1086         * shell/rb-removable-media-manager.c:
1087         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
1088         Library" option when track transfer is disabled. Fixes bug 339728.
1090 2006-04-26  James Livingston  <doclivingston@gmail.com>
1092         * data/ui/Makefile.am:
1093         * data/ui/daap-ui.xml:
1094         * data/ui/rhythmbox-ui.xml:
1095         * sources/rb-daap-source.c: (rb_daap_sources_init),
1096         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
1097         way that the ipod ui is. Fixes bug 339743.
1099 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1101         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
1102         (process_added_entries_cb), (process_deleted_entries_cb),
1103         (rhythmdb_commit_internal): 
1104         Combine the idle functions to emit entry-added and entry-deleted,
1105         and combine as many invocations of same as possible.  Another
1106         significant reduction in startup time.
1107         
1108         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
1109         Delay the next call to rhythmdb_process_events if the queue is
1110         empty or if we can't process any of the events in the queue because
1111         the database is read only.
1113         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
1115 2006-04-25  William Jon McCann  <mccann@jhu.edu>
1117         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
1119         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
1120         Don't special case errors quite so much.
1122 2006-04-25  William Jon McCann  <mccann@jhu.edu>
1124         * data/rhythmbox.schemas: Remove default speed.
1126         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
1127         Add n-c-b 2.15 support.  Make the default speed to slowest since
1128         that is all that works reliably.
1130 2006-04-25  William Jon McCann  <mccann@jhu.edu>
1132         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
1133         Fix compiler error from last commit.
1135 2006-04-25  James Livingston  <doclivingston@gmail.com>
1137         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
1138         transcoding-related issues. From bug 322268.
1140         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
1141         don't emit the signal, since the object is being finalised, which os a
1142         Bad Thing To Do.
1144         (profile_bin_find_encoder), (get_profile_from_mime_type),
1145         (transcode_track): find the encoding element by iterating looking for
1146         element in the class Codec/Encoder/Audio rather than the one named
1147         "enc".
1149 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1151         * shell/rb-shell-player.xml:
1152         * shell/rb-shell.xml:
1153         Add signal argument information.  
1154         Patch by Tim Moloney  <t.moloney@verizon.net>
1156         * shell/rb-shell.c: (rb_shell_window_state_cb):
1157         Use the right value for the visibility_changed signal.  Most of the
1158         time, anyway.
1160 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1162         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
1163         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1164         (impl_create_configure_dialog):
1165         * data/glade/audioscrobbler-prefs.glade:
1166         * shell/rb-audioscrobbler.c (*):
1167         * lib/rb-preferences.h:
1168         * data/rhythmbox.schemas:
1169         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
1170         Add status information (# tracks submitted, # queued, last submit
1171         time, result of last submission) to the plugin config window.
1172         Remove 'enabled' setting, since it's easier to just disable the
1173         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
1174         nonexistant (so far) 'last.fm streaming' plugin.
1175         
1176         * help/C/rhythmbox.xml: Update documentation for last.fm profile
1177         plugin
1179         Fixes some of #325848.  We still don't provide a way to view the
1180         submission queue.
1182 2006-04-25  James Livingston  <doclivingston@gmail.com>
1184         patch by: Anders Petersson  <demitar@worldforge.org>
1186         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
1187         the YY-MM-DD format.
1189 2006-04-23  James Livingston  <doclivingston@gmail.com>
1191         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
1192         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
1193         * bindings/python/override_common.h:
1194         * bindings/python/rb.override: python binding fixes
1196 2006-04-23  James Livingston  <doclivingston@gmail.com>
1198         * shell/rb-statusbar.c: (rb_statusbar_finalize),
1199         (rb_statusbar_sync_with_source),
1200         (rb_statusbar_source_status_changed_cb): do the sync in an idle
1201         callback, rather than immediately every time. Takes ~5% off my warm-cache
1202         startup time.
1204         * bindings/python/rhythmdb.defs: fix the types using for
1205         RhythmDBEntryTypes.
1207 2006-04-22  James Livingston  <doclivingston@gmail.com>
1209         * data/ui/rhythmbox-ui.xml:
1210         * shell/rb-shell.c:
1211         * sources/rb-daap-source.c: (rb_daap_source_class_init),
1212         (remove_source), (rb_daap_sources_init),
1213         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
1214         (rb_daap_source_disconnect):
1215         * sources/rb-source.c: (rb_source_class_init),
1216         (rb_source_deactivate):
1217         * sources/rb-source.h: move the "disconnect" functionality from into
1218         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
1220 2006-04-22  James Livingston  <doclivingston@gmail.com>
1222         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
1223         actually get the translated strings for browser headers (they were
1224         already marked as translatable). Fixes bug 339380.
1226 2006-04-22  James Livingston  <doclivingston@gmail.com>
1228         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
1229         submission timeout when the object is finalised.
1231         * bindings/python/Makefile.am:
1232         * bindings/python/rb.defs:
1233         * bindings/python/rb.override:
1234         * bindings/python/rhythmdb.defs: fix some python binding stuff.
1236         * widgets/rb-library-browser.c:
1237         (rb_library_browser_construct_query), (rebuild_output_model),
1238         (rebuild_child_model):
1239         * widgets/rb-library-browser.h: change from GPtrArray to
1240         RhythmDBQuery (which in C is the same thing).
1242 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1244         * shell/rb-shell.c: (rb_shell_get_song_properties):
1245         Don't try to include entry-type (or anything else not easily
1246         marshallable) in the song properties hash table.
1248         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
1250         * sources/rb-playlist-source.c: (rb_playlist_source_init),
1251         (rb_playlist_source_constructor): Fix entry-type initialization as
1252         with previous commit.
1254 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1256         * sources/rb-iradio-source.c: (rb_iradio_source_init),
1257         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
1258         * sources/rb-podcast-source.c: (rb_podcast_source_init),
1259         (rb_podcast_source_constructor):
1260         Set default values for entry-type after base class construction,
1261         rather than in _init, because gobject will set the entry-type property
1262         to NULL after _init if no value is provided.  Fixes #339206.
1264 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
1266         patch by: Gunnar Steinn Magnusson
1268         * COPYING:
1269         * backends/gstreamer/rb-encoder-gst.c:
1270         * backends/gstreamer/rb-encoder-gst.h:
1271         * backends/rb-encoder.c:
1272         * backends/rb-encoder.h:
1273         * bindings/python/override_common.c:
1274         * bindings/python/override_common.h:
1275         * daapsharing/rb-daap-connection.c:
1276         * daapsharing/rb-daap-connection.h:
1277         * daapsharing/rb-daap-dialog.c:
1278         * daapsharing/rb-daap-dialog.h:
1279         * daapsharing/rb-daap-mdns-browser-avahi.c:
1280         * daapsharing/rb-daap-mdns-browser-howl.c:
1281         * daapsharing/rb-daap-mdns-browser.h:
1282         * daapsharing/rb-daap-mdns-publisher-avahi.c:
1283         * daapsharing/rb-daap-mdns-publisher-howl.c:
1284         * daapsharing/rb-daap-mdns-publisher.h:
1285         * daapsharing/rb-daap-share.c:
1286         * daapsharing/rb-daap-share.h:
1287         * daapsharing/rb-daap-sharing.c:
1288         * daapsharing/rb-daap-sharing.h:
1289         * daapsharing/rb-daap-src.c:
1290         * daapsharing/rb-daap-src.h:
1291         * daapsharing/rb-daap-structure.c:
1292         * daapsharing/rb-daap-structure.h:
1293         * help/C/fdl-appendix.xml:
1294         * help/es/es.po:
1295         * help/ja/fdl-appendix.xml:
1296         * iradio/rb-new-station-dialog.c:
1297         * iradio/rb-new-station-dialog.h:
1298         * iradio/rb-station-properties-dialog.c:
1299         * iradio/rb-station-properties-dialog.h:
1300         * lib/mkdtemp.c:
1301         * lib/mkdtemp.h:
1302         * lib/rb-cut-and-paste-code.c:
1303         * lib/rb-cut-and-paste-code.h:
1304         * lib/rb-debug.c:
1305         * lib/rb-debug.h:
1306         * lib/rb-file-helpers.c:
1307         * lib/rb-file-helpers.h:
1308         * lib/rb-glade-helpers.c:
1309         * lib/rb-glade-helpers.h:
1310         * lib/rb-preferences.h:
1311         * lib/rb-proxy-config.c:
1312         * lib/rb-stock-icons.c:
1313         * lib/rb-stock-icons.h:
1314         * lib/rb-thread.c:
1315         * lib/rb-thread.h:
1316         * lib/rb-tree-dnd.c:
1317         * lib/rb-tree-dnd.h:
1318         * lib/rb-util.c:
1319         * lib/rb-util.h:
1320         * metadata/rb-metadata-common.c:
1321         * metadata/rb-metadata-dbus-client.c:
1322         * metadata/rb-metadata-dbus-service.c:
1323         * metadata/rb-metadata-dbus.c:
1324         * metadata/rb-metadata-dbus.h:
1325         * metadata/rb-metadata-gst.c:
1326         * metadata/rb-metadata.h:
1327         * metadata/sj-error.c:
1328         * metadata/sj-error.h:
1329         * metadata/sj-metadata-musicbrainz.c:
1330         * metadata/sj-metadata-musicbrainz.h:
1331         * metadata/sj-metadata.c:
1332         * metadata/sj-metadata.h:
1333         * metadata/sj-structures.c:
1334         * metadata/sj-structures.h:
1335         * metadata/test-metadata.c:
1336         * player/rb-player-gst.c:
1337         * player/rb-player.h:
1338         * player/rb-recorder-gst.c:
1339         * player/rb-recorder.h:
1340         * plugins/artdisplay/artdisplay.py:
1341         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1342         * plugins/ipod/rb-ipod-plugin.c:
1343         * plugins/lirc/rb-lirc-plugin.c:
1344         * plugins/pythonconsole/pythonconsole.py:
1345         * plugins/rb-module.c:
1346         * plugins/rb-module.h:
1347         * plugins/rb-plugin-manager.c:
1348         * plugins/rb-plugin-manager.h:
1349         * plugins/rb-plugin.c:
1350         * plugins/rb-plugin.h:
1351         * plugins/rb-plugins-engine.c:
1352         * plugins/rb-plugins-engine.h:
1353         * plugins/rb-python-module.c:
1354         * plugins/rb-python-module.h:
1355         * plugins/rb-python-plugin.c:
1356         * plugins/rb-python-plugin.h:
1357         * plugins/sample/rb-sample-plugin.c:
1358         * po/de.po:
1359         * po/el.po:
1360         * po/en_CA.po:
1361         * po/eu.po:
1362         * po/fi.po:
1363         * po/fr.po:
1364         * po/it.po:
1365         * po/ja.po:
1366         * po/mk.po:
1367         * po/pt_BR.po:
1368         * po/ru.po:
1369         * podcast/rb-feed-podcast-properties-dialog.c:
1370         * podcast/rb-feed-podcast-properties-dialog.h:
1371         * podcast/rb-new-podcast-dialog.c:
1372         * podcast/rb-new-podcast-dialog.h:
1373         * podcast/rb-podcast-manager.c:
1374         * podcast/rb-podcast-manager.h:
1375         * podcast/rb-podcast-parse.c:
1376         * podcast/rb-podcast-parse.h:
1377         * podcast/rb-podcast-properties-dialog.c:
1378         * podcast/rb-podcast-properties-dialog.h:
1379         * remote/bonobo/libmain.c:
1380         * remote/bonobo/rb-nautilus-context-menu.c:
1381         * remote/bonobo/rb-nautilus-context-menu.h:
1382         * remote/bonobo/rb-remote-bonobo.c:
1383         * remote/bonobo/rb-remote-bonobo.h:
1384         * remote/rb-remote-client-proxy.c:
1385         * remote/rb-remote-client-proxy.h:
1386         * remote/rb-remote-common.c:
1387         * remote/rb-remote-common.h:
1388         * remote/rb-remote-proxy.c:
1389         * remote/rb-remote-proxy.h:
1390         * rhythmdb/gsequence.c:
1391         * rhythmdb/gsequence.h:
1392         * rhythmdb/rb-refstring.c:
1393         * rhythmdb/rb-refstring.h:
1394         * rhythmdb/rhythmdb-gda.c:
1395         * rhythmdb/rhythmdb-gda.h:
1396         * rhythmdb/rhythmdb-private.h:
1397         * rhythmdb/rhythmdb-property-model.c:
1398         * rhythmdb/rhythmdb-property-model.h:
1399         * rhythmdb/rhythmdb-query-model.c:
1400         * rhythmdb/rhythmdb-query-model.h:
1401         * rhythmdb/rhythmdb-query-results.c:
1402         * rhythmdb/rhythmdb-query-results.h:
1403         * rhythmdb/rhythmdb-tree.c:
1404         * rhythmdb/rhythmdb-tree.h:
1405         * rhythmdb/rhythmdb.c:
1406         * rhythmdb/rhythmdb.h:
1407         * shell/main.c:
1408         * shell/rb-audioscrobbler.c:
1409         * shell/rb-audioscrobbler.h:
1410         * shell/rb-history.c:
1411         * shell/rb-history.h:
1412         * shell/rb-play-order-linear-loop.c:
1413         * shell/rb-play-order-linear-loop.h:
1414         * shell/rb-play-order-linear.c:
1415         * shell/rb-play-order-linear.h:
1416         * shell/rb-play-order-queue.c:
1417         * shell/rb-play-order-queue.h:
1418         * shell/rb-play-order-random-by-age-and-rating.c:
1419         * shell/rb-play-order-random-by-age-and-rating.h:
1420         * shell/rb-play-order-random-by-age.c:
1421         * shell/rb-play-order-random-by-age.h:
1422         * shell/rb-play-order-random-by-rating.c:
1423         * shell/rb-play-order-random-by-rating.h:
1424         * shell/rb-play-order-random-equal-weights.c:
1425         * shell/rb-play-order-random-equal-weights.h:
1426         * shell/rb-play-order-random.c:
1427         * shell/rb-play-order-random.h:
1428         * shell/rb-play-order-shuffle.c:
1429         * shell/rb-play-order-shuffle.h:
1430         * shell/rb-play-order.c:
1431         * shell/rb-play-order.h:
1432         * shell/rb-playlist-manager.c:
1433         * shell/rb-playlist-manager.h:
1434         * shell/rb-removable-media-manager.c:
1435         * shell/rb-removable-media-manager.h:
1436         * shell/rb-shell-clipboard.c:
1437         * shell/rb-shell-clipboard.h:
1438         * shell/rb-shell-player.c:
1439         * shell/rb-shell-player.h:
1440         * shell/rb-shell-preferences.c:
1441         * shell/rb-shell-preferences.h:
1442         * shell/rb-shell.c:
1443         * shell/rb-shell.h:
1444         * shell/rb-source-header.c:
1445         * shell/rb-source-header.h:
1446         * shell/rb-statusbar.c:
1447         * shell/rb-statusbar.h:
1448         * shell/rb-tray-icon.c:
1449         * shell/rb-tray-icon.h:
1450         * sources/rb-audiocd-source.c:
1451         * sources/rb-audiocd-source.h:
1452         * sources/rb-auto-playlist-source.c:
1453         * sources/rb-auto-playlist-source.h:
1454         * sources/rb-browser-source.c:
1455         * sources/rb-browser-source.h:
1456         * sources/rb-daap-source.c:
1457         * sources/rb-daap-source.h:
1458         * sources/rb-generic-player-source.c:
1459         * sources/rb-generic-player-source.h:
1460         * sources/rb-import-errors-source.c:
1461         * sources/rb-import-errors-source.h:
1462         * sources/rb-ipod-source.c:
1463         * sources/rb-ipod-source.h:
1464         * sources/rb-iradio-source.c:
1465         * sources/rb-iradio-source.h:
1466         * sources/rb-library-source.c:
1467         * sources/rb-library-source.h:
1468         * sources/rb-missing-files-source.c:
1469         * sources/rb-missing-files-source.h:
1470         * sources/rb-nokia770-source.c:
1471         * sources/rb-nokia770-source.h:
1472         * sources/rb-play-queue-source.c:
1473         * sources/rb-play-queue-source.h:
1474         * sources/rb-playlist-source-recorder.c:
1475         * sources/rb-playlist-source-recorder.h:
1476         * sources/rb-playlist-source.c:
1477         * sources/rb-playlist-source.h:
1478         * sources/rb-playlist-xml.h:
1479         * sources/rb-podcast-source.c:
1480         * sources/rb-podcast-source.h:
1481         * sources/rb-psp-source.c:
1482         * sources/rb-psp-source.h:
1483         * sources/rb-removable-media-source.c:
1484         * sources/rb-removable-media-source.h:
1485         * sources/rb-source.c:
1486         * sources/rb-source.h:
1487         * sources/rb-sourcelist-model.c:
1488         * sources/rb-sourcelist-model.h:
1489         * sources/rb-sourcelist.c:
1490         * sources/rb-sourcelist.h:
1491         * sources/rb-static-playlist-source.c:
1492         * sources/rb-static-playlist-source.h:
1493         * tests/test-cd.c:
1494         * tests/test-cmdline.c:
1495         * tests/test-rhythmdb-indexing.c:
1496         * tests/test-rhythmdb-query.c:
1497         * tests/test-rhythmdb-simple.c:
1498         * tests/test-rhythmdb-tree-deserialization.c:
1499         * tests/test-rhythmdb-tree-serialization.c:
1500         * tests/test-rhythmdb-view.c:
1501         * widgets/bacon-volume.c:
1502         * widgets/bacon-volume.h:
1503         * widgets/disclosure-widget.c:
1504         * widgets/disclosure-widget.h:
1505         * widgets/eel-gconf-extensions.c:
1506         * widgets/eel-gconf-extensions.h:
1507         * widgets/eggtrayicon.c:
1508         * widgets/eggtrayicon.h:
1509         * widgets/libsexy/sexy-icon-entry.c:
1510         * widgets/libsexy/sexy-icon-entry.h:
1511         * widgets/rb-cell-renderer-pixbuf.c:
1512         * widgets/rb-cell-renderer-pixbuf.h:
1513         * widgets/rb-cell-renderer-rating.c:
1514         * widgets/rb-cell-renderer-rating.h:
1515         * widgets/rb-dialog.c:
1516         * widgets/rb-dialog.h:
1517         * widgets/rb-druid.c:
1518         * widgets/rb-druid.h:
1519         * widgets/rb-entry-view.c:
1520         * widgets/rb-entry-view.h:
1521         * widgets/rb-header.c:
1522         * widgets/rb-header.h:
1523         * widgets/rb-library-browser.c:
1524         * widgets/rb-library-browser.h:
1525         * widgets/rb-property-view.c:
1526         * widgets/rb-property-view.h:
1527         * widgets/rb-query-creator-private.h:
1528         * widgets/rb-query-creator-properties.c:
1529         * widgets/rb-query-creator.c:
1530         * widgets/rb-query-creator.h:
1531         * widgets/rb-rating-helper.c:
1532         * widgets/rb-rating-helper.h:
1533         * widgets/rb-rating.c:
1534         * widgets/rb-rating.h:
1535         * widgets/rb-search-entry.c:
1536         * widgets/rb-search-entry.h:
1537         * widgets/rb-song-display-box.c:
1538         * widgets/rb-song-display-box.h:
1539         * widgets/rb-song-info.c:
1540         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
1542 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
1544         patch by: Gareth Murphy, James Livingston
1546         * bindings/python/rb.defs:
1547         * configure.ac:
1548         * plugins/Makefile.am:
1549         * plugins/artdisplay/Makefile.am:
1550         * plugins/artdisplay/artdisplay.py:
1551         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
1552         * plugins/rb-python-module.c: (rb_python_module_init_python):
1553         * shell/rb-shell.c: (construct_widgets),
1554         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
1555         (rb_shell_add_widget), (rb_shell_remove_widget),
1556         (rb_shell_ui_location_get_type):
1557         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
1559 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1561         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
1562         Fix build failure caused by the combination of the previous two
1563         commits.
1565 2006-04-20  James Livingston  <doclivingston@gmail.com>
1567         patch by: Christophe Fergeau  <teuf@gnome.org> to make
1568         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
1569         table to the entry types, which will allow us to get rid of some of
1570         the "if entry type == WHATEVER" code everywhere. From bug 
1572         * bindings/python/rb.defs:
1573         * bindings/python/rb.override:
1574         * bindings/python/rhythmdb.defs:
1575         * bindings/python/rhythmdb.override:
1576         * daapsharing/rb-daap-connection.c:
1577         (rb_daap_connection_class_init), (rb_daap_connection_init),
1578         (rb_daap_connection_set_property),
1579         (rb_daap_connection_get_property):
1580         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
1581         * podcast/rb-podcast-manager.c:
1582         (rb_podcast_manager_entry_downloaded),
1583         (rb_podcast_manager_subscribe_feed),
1584         (rb_podcast_manager_db_entry_added_cb),
1585         (rb_podcast_manager_db_entry_deleted_cb),
1586         (rb_podcast_manager_insert_feed):
1587         * rhythmdb/rhythmdb-private.h:
1588         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
1589         (conjunctive_query):
1590         * rhythmdb/rhythmdb.c: (sync_entry_changed),
1591         (process_added_entries_cb), (rhythmdb_entry_allocate),
1592         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1593         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1594         (rhythmdb_process_metadata_load),
1595         (rhythmdb_process_file_created_or_modified), (action_thread_main),
1596         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
1597         (write_encoded_gvalue), (read_encoded_property),
1598         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
1599         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
1600         (rhythmdb_entry_iradio_get_type),
1601         (rhythmdb_entry_podcast_post_get_type),
1602         (rhythmdb_entry_podcast_feed_get_type),
1603         (rhythmdb_entry_import_error_get_type),
1604         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1605         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
1606         (rhythmdb_entry_type_get_type):
1607         * rhythmdb/rhythmdb.h:
1608         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
1609         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1610         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
1611         (rb_shell_player_entry_activated_cb), (info_available_cb):
1612         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
1613         (rb_shell_register_entry_type_for_source),
1614         (rb_shell_playing_from_queue_cb),
1615         (rb_shell_playing_entry_changed_cb),
1616         (rb_shell_player_stream_song_changed_cb),
1617         (rb_shell_jump_to_entry_with_source),
1618         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
1619         (handle_playlist_entry_cb), (rb_shell_load_uri):
1620         * shell/rb-shell.h:
1621         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
1622         * sources/rb-browser-source.c: (rb_browser_source_class_init),
1623         (rb_browser_source_init), (rb_browser_source_set_property),
1624         (rb_browser_source_get_property):
1625         * sources/rb-ipod-source.c: (impl_paste):
1626         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1627         (rb_iradio_source_init), (rb_iradio_source_set_property),
1628         (rb_iradio_source_get_property):
1629         * sources/rb-library-source.c: (impl_paste):
1630         * sources/rb-missing-files-source.c:
1631         (rb_missing_files_source_class_init),
1632         (rb_missing_files_source_init),
1633         (rb_missing_files_source_set_property),
1634         (rb_missing_files_source_get_property):
1635         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
1636         (rb_playlist_source_init), (rb_playlist_source_set_property),
1637         (rb_playlist_source_get_property):
1638         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1639         (rb_podcast_source_init), (rb_podcast_source_set_property),
1640         (rb_podcast_source_get_property):
1641         * sources/rb-static-playlist-source.c:
1642         (rb_static_playlist_source_add_location_internal):
1644 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1646         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1647         (rhythmdb_add_import_error_entry),
1648         (entry_volume_mounted_or_unmounted),
1649         (rhythmdb_volume_unmounted_cb):
1650         When a volume is unmounted, delete import errors for files stored on
1651         it.  When a volume is mounted, stat all tracks stored on it, rather
1652         than assuming they're present.  Fixes #339023.
1654 2006-04-20  James Livingston  <doclivingston@gmail.com>
1656         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
1657         browser visibility for non-gconf-using sources (like playlists). Part
1658         of bug 118862.
1660         * shell/rb-source-header.c: (sourcestate_free),
1661         (rb_source_header_init), (rb_source_header_finalize),
1662         (rb_source_header_source_weak_destroy_cb): switch from storing the
1663         search string to storing a "source state" structure
1665         (rb_source_header_set_source_internal),  (rb_source_state_sync),
1666         (rb_source_header_search_cb), (rb_source_header_clear_search),
1667         (rb_source_header_disclosure_toggled_cb): as well as storing the
1668         string, stop the visibility of the source's browser.
1670 2006-04-20  James Livingston  <doclivingston@gmail.com>
1672         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
1673         library entries back into the library. Fixes bug 339065.
1675 2006-04-20  James Livingston  <doclivingston@gmail.com>
1677         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
1678         only exists in glib 2.10.
1680 2006-04-20  James Livingston  <doclivingston@gmail.com>
1682         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
1683         Solaris. From bug 335318.
1685         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
1686         * shell/rb-audioscrobbler.c:
1687         * sources/rb-psp-source.c:
1689 2006-04-20  James Livingston  <doclivingston@gmail.com>
1691         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
1692         issues for some people.
1694         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
1695         accidental s/suffix/prefix/
1697         * sources/rb-auto-playlist-source.c:
1698         (rb_auto_playlist_source_set_query): fix the invered logic preventing
1699         you from sorting playlists which aren't limited by time.
1701 2006-04-19  James Livingston  <doclivingston@gmail.com>
1703         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
1704         duration or bitrate back to the file, since they are properties of the
1705         audio data, not tags we can set.
1707 2006-04-19  James Livingston  <doclivingston@gmail.com>
1709         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
1710         of libtool, to fix builds which are using a different version. Fixes
1711         bug 338996.
1713         * shell/Makefile.am:
1715 2006-04-19  James Livingston  <doclivingston@gmail.com>
1717         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
1718         to sync data to a file which is uneditable.
1720 2006-04-19  James Livingston  <doclivingston@gmail.com>
1722         patch by: Gavin Stewart  <gavin@brokentrain.net>
1724         * data/glade/playlist-save.glade:
1725         * data/glade/Makefile.am:
1726         * po/POTFILES.in: add the playlist saving dialog.
1728         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
1729         (export_set_extension_cb), (filter_get_export_filter_label),
1730         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
1731         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
1732         formats (PLS and M3U at the moment). Fixes bug 316295.
1734 2006-04-19  James Livingston  <doclivingston@gmail.com>
1736         * shell/rb-playlist-manager.c:
1737         (rb_playlist_manager_set_source_internal): don't let you edit remove
1738         auto playlists.
1740         * sources/rb-auto-playlist-source.c:
1741         (rb_auto_playlist_source_set_query): correctly handle time-limited
1742         playlists.
1744 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1746         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
1748         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
1749         Don't crash if the queue file contains no newlines.
1750         Fixes #338924.
1752 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
1754         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
1755         condition
1757 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
1759         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
1760         case. Moreover, they may not exist yet, so take that into account when
1761         generating the iPod filename.
1763 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
1765         * sources/rb-ipod-source.c: added support for drag and drop from the
1766         library to the iPod (only enabled if --enable-track-transfer was
1767         passed to configure)
1769 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
1771         * configure.ac:
1772         * lib/rb-marshal.list:
1773         * lib/rb-util.c: 
1774         * lib/rb-util.h:
1775         * plugins/Makefile.am:
1776         * plugins/ipod/Makefile.am:
1777         * plugins/ipod/ipod.rb-plugin.desktop.in:
1778         * plugins/ipod/rb-ipod-plugin.c: 
1779         * plugins/rb-plugin.h:
1780         * shell/Makefile.am:
1781         * shell/rb-removable-media-manager.c:
1782         * shell/rb-removable-media-manager.h:
1783         * shell/rb-shell.c: 
1784         * sources/Makefile.am:
1785         * sources/rb-ipod-source.c: 
1786         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
1787         various iPod related files should be moved to plugins/ipod/ now...
1789 2006-04-17  James Livingston  <doclivingston@gmail.com>
1791         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
1792         and "vic".
1794         * help/C/figures/rb-iradio-main.png:
1795         * help/C/figures/rb-notification-area-menu.png:
1796         * help/C/figures/rb-notification-window.png:
1797         * help/C/figures/rb-notification-zone.png:
1798         * help/C/figures/rb-podcast-main.png:
1799         * help/C/figures/rb-statusbar.png:
1800         * help/C/figures/rb-volume-changer.png:
1801         * help/C/figures/rb-window-small.png:
1802         * help/C/figures/rb-window.png:
1803         * help/C/rhythmbox.xml:
1805 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1807         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
1808         more obviously.
1810         * metadata/rb-metadata-gst.c: (rb_metadata_init),
1811         (make_undecodable_error), (rb_metadata_gst_error_cb),
1812         (rb_metadata_gst_new_decoded_pad_cb),
1813         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
1814         Ignore really small files (<4kB) for which typefinding fails.
1815         Always link decoded pads from decodebin to fakesink.
1816         Shut the pipeline down by posting an error on the bus when decodebin
1817         emits unknown-type signals.  Fixes bug #338062.
1819 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1821         * shell/rb-shell.c: (rb_shell_load_uri):
1822         Fix glaring mistakes in previous commit: actually pass arguments to
1823         rb_debug, and specify the right entry type when adding a new iradio
1824         station so we don't try to add local playlist files to the library.
1826 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1828         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
1829         before trying to add them, as iradio streams often fail rb_uri_exists().
1831         * shell/rb-shell-player.c: (notify_playing_idle),
1832         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
1833         (open_location_thread), (rb_shell_player_open_location),
1834         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
1835         (eos_cb):  When playing an iradio stream using a playlist, keep a list
1836         of all the stream URLs, and try them in turn.  If we get through the
1837         whole playlist too quickly, error out.  Various other fixes that make
1838         iradio work a lot better.
1840         * shell/rb-shell.c: (add_to_library_response_cb),
1841         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
1842         (handle_playlist_entry_cb), (rb_shell_load_uri):
1843         Add playlists containing streams as iradio stations.  If the playlist
1844         is local, add each stream URL, but if the playlist is remote, just add
1845         the playlist URL.
1846         
1847         * sources/rb-iradio-source.c: (new_station_location_added):
1848         Add new station URLs as-is, rather than parsing the playlist and
1849         adding the streams.
1850         
1851         * rhythmdb/rhythmdb-query-model.c:
1852         (rhythmdb_query_model_entry_changed_cb),
1853         (rhythmdb_query_model_emit_reorder),
1854         (rhythmdb_query_model_do_reorder):
1855         Emit row-changed notifications when an entry changes but is not
1856         reordered.
1858         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
1859         Display the playback error icon when the entry has an error and
1860         there's nothing else to display.
1861         
1862         Fixes bug #320336 and some of #324402.
1863         
1864 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1866         * sources/rb-ipod-source.c: use a GHashTable for the
1867         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
1868         time, this fixes compilation breakage for people not having libgpod
1869         CVS HEAD
1871 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
1873         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1875         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
1876         (rb_podcast_manager_insert_feed):
1877         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
1878         fixes bug 321945
1880 2006-04-16  James Livingston  <doclivingston@gmail.com>
1882         * sources/rb-library-source.c:
1883         (rb_library_source_library_location_cb): return FALSE like we are
1884         supposed to, not void.
1886         patch by: FreeBSD GNOME Project
1887         * configure.ac: fix some bash-isms.
1889         patch by: Pawel Worach  <pawel.worach@gmail.com>
1890         * metadata/rb-metadata-dbus-client.c:
1891         * rhythmdb/rhythmdb-query-model.c:
1892         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
1895 2006-04-16  James Livingston  <doclivingston@gmail.com>
1897         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
1898         for transcoding to RBEncoderGst.
1900         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
1901         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
1902         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
1903         (add_decoding_pipeline), (encoder_match_mime),
1904         (get_profile_from_mime_type), (extract_track), (transcode_track),
1905         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
1907 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1909         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
1910         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
1911         load_ipod_db_idle_cb to a new separate function
1913 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1915         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
1916         source
1918 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1920         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
1921         variables
1923 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1925         * data/ui/Makefile.am:
1926         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
1927         menu
1928         * lib/rb-util.c: check if the widget we got from the UI manager isn't
1929         NULL before using it as a popup menu
1930         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
1931         'eject' an iPod
1933 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1935         * sources/rb-ipod-source.c: when hal tells us a partition is on an
1936         iPod, check if it contains an iPod database before using it (in case
1937         the iPod was repartitionned somehow). Should fix bug #325034
1939 2006-04-16  Steve Frécinaux  <steve@istique.net>
1941         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
1943         * data/Makefile.am: install application icon into the default theme.
1945         * data/rhythmbox.desktop.in: don't specify icon file extension.
1946         
1947         * shell/main.c: (main): set default window icon from theme.
1948         
1949         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
1950         code concerning window icon, and fix leak by unreferencing the about
1951         logo pixbuf once it's not used anymore.
1953 2006-04-16  James Livingston  <doclivingston@gmail.com>
1955         * configure.ac: bump version to 0.9.4
1956         * NEWS: update NEWS and 0.9.4 insert translations
1958 2006-04-16  James Livingston  <doclivingston@gmail.com>
1960         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
1961         namespace automatically.
1963 2006-04-16  James Livingston  <doclivingston@gmail.com>
1965         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
1967         * doc/reference/Makefile.am:
1968         * doc/reference/rhythmbox.types: make distcheck work again
1970         * doc/reference/tmpl/eggnotificationbubble.sgml:
1971         * doc/reference/tmpl/eggtrayicon.sgml:
1972         * doc/reference/tmpl/rb-debug.sgml:
1973         * doc/reference/tmpl/rb-entry-view.sgml:
1974         * doc/reference/tmpl/rb-enums.sgml:
1975         * doc/reference/tmpl/rb-metadata.sgml:
1976         * doc/reference/tmpl/rb-new-station-dialog.sgml:
1977         * doc/reference/tmpl/rb-playlist-manager.sgml:
1978         * doc/reference/tmpl/rb-refstring.sgml:
1979         * doc/reference/tmpl/rb-shell-player.sgml:
1980         * doc/reference/tmpl/rb-shell-preferences.sgml:
1981         * doc/reference/tmpl/rb-shell.sgml:
1982         * doc/reference/tmpl/rb-song-info.sgml:
1983         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
1984         * doc/reference/tmpl/rb-statusbar.sgml:
1985         * doc/reference/tmpl/rhythmbox-unused.sgml:
1986         * doc/reference/tmpl/rhythmdb-query-model.sgml:
1987         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
1989 2006-04-16  James Livingston  <doclivingston@gmail.com>
1991         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
1993         * po/LINGUAS: don't split the variable across two lines, as it breaks
1994         the build. Fixes bug 338625.
1996 2006-04-15  James Livingston  <doclivingston@gmail.com>
1998         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
1999         add a "sourcelist-model" gobject property.
2001 2006-04-14  William Jon McCann  <mccann@jhu.edu>
2003         * .cvsignore:
2004         * backends/.cvsignore:
2005         * backends/gstreamer/.cvsignore:
2006         * bindings/.cvsignore:
2007         * bindings/python/.cvsignore:
2008         * help/es/.cvsignore:
2009         * metadata/.cvsignore:
2010         * plugins/.cvsignore:
2011         * plugins/audioscrobbler/.cvsignore:
2012         * plugins/lirc/.cvsignore:
2013         * plugins/pythonconsole/.cvsignore:
2014         * plugins/sample-python/.cvsignore:
2015         * plugins/sample/.cvsignore:
2016         * shell/.cvsignore:
2017         * widgets/libsexy/.cvsignore:
2018         Make CVS ignore files.
2020 2006-04-14  James Livingston  <doclivingston@gmail.com>
2022         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
2023         the track-loading thread hold a reference on the source, so it doesn't
2024         explode if the cd is removed before it is done. Fixes bug 337237.
2026 2006-04-14  James Livingston  <doclivingston@gmail.com>
2028         * bindings/python/override_common.c:
2029         (_helper_unwrap_pointer_pylist):
2030         * bindings/python/override_common.h:
2031         * bindings/python/rb.override:
2032         * bindings/python/rhythmdb.override: Bind some more functions and
2033         virtual functions.
2035         * shell/rb-shell.c: (rb_shell_select_source):
2036         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
2037         * sources/rb-audiocd-source.c:
2038         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
2039         * sources/rb-browser-source.c: (impl_get_search_actions):
2040         * sources/rb-iradio-source.c: (impl_get_ui_actions):
2041         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
2042         * sources/rb-playlist-source.c: (impl_get_ui_actions):
2043         * sources/rb-podcast-source.c: (impl_get_ui_actions),
2044         (impl_get_search_actions):
2045         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
2046         the impl_get_ui_actions and impl_get_search_actions functions return
2047         lists that contain copies of the strings, instead of constant ones.
2048         Needed to bindings
2050 2006-04-14  James Livingston  <doclivingston@gmail.com>
2052         * bindings/python/rhythmdb.defs:
2053         * bindings/python/rhythmdb.override: fix the method argument format
2054         specifiers.
2056 2006-04-14  James Livingston  <doclivingston@gmail.com>
2058         * bindings/python/rhythmdb.defs:
2059         * bindings/python/rhythmdb.override:
2060         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
2061         (entry_to_rb_metadata), (record_entry_change),
2062         (rhythmdb_entry_set_visibility):
2063         * rhythmdb/rhythmdb.h:
2064         * shell/rb-shell.c: (rb_shell_get_song_properties): change
2065         rhythmdb_entry_get to take the db as the first parameter. Fixes the
2066         python bindings of it. The rhythmdb_entry_get_* ones are left the same
2067         since they are used in too many places, and not in the Python
2068         bindings.
2070 2006-04-13  William Jon McCann  <mccann@jhu.edu>
2072         * lib/rb-debug.c: (_rb_profile_log):
2073         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
2074         * rhythmdb/rhythmdb.c: (rhythmdb_load):
2075         * shell/main.c: (main):
2076         * shell/rb-shell.c: (rb_shell_constructor),
2077         (rb_shell_set_visibility), (rb_shell_sync_window_state),
2078         (rb_shell_present):
2079         Fix profile output indentation.  Add more profiling points.
2080         Fixes part of #338114
2082 2006-04-13  James Livingston  <doclivingston@gmail.com>
2084         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
2085         library source being deleted, by setting the active source to NULL.
2086         From bug 338116.
2088 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2090         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
2091         Update the last-seen string when hiddenness changes.
2093 2006-04-12  James Livingston  <doclivingston@gmail.com>
2095         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
2096         which caused the first-seen time to be reset when a metadata load was
2097         done. Fixes bug 336874.
2099         * shell/rb-shell.h: remove old function declaration.
2101         * bindings/python/rhythmdb.defs:
2102         * bindings/python/rhythmdb.override: Fix some python binding stuff.
2104 2006-04-11  James Livingston  <doclivingston@gmail.com>
2106         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
2107         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
2108         interaction. Fixes bug 337999.
2110 2006-04-11  James Livingston  <doclivingston@gmail.com>
2112         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
2113         track transfer. Fixes bug 338056.
2115         * shell/Makefile.am:
2117 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2119         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
2121 2006-04-10  William Jon McCann  <mccann@jhu.edu>
2123         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
2124         (_rb_profile_log):
2125         * lib/rb-debug.h:
2126         * shell/rb-shell.c: (construct_db), (construct_widgets),
2127         (construct_sources), (construct_load_ui), (rb_shell_constructor):
2128         Add profiling.  Fixes #337387
2130 2006-04-10  William Jon McCann  <mccann@jhu.edu>
2132         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
2133         * widgets/rb-header.c:
2134         Use italics for artist and album. Fixes #336748
2136 2006-04-10  James Livingston  <doclivingston@gmail.com>
2138         * Makefile.am:
2139         * backends/gstreamer/Makefile.am:
2140         * configure.ac:
2141         * data/glade/library-prefs.glade:
2142         * shell/Makefile.am:
2143         * shell/rb-removable-media-manager.c:
2144         * shell/rb-removable-media-manager.h:
2145         * sources/Makefile.am:
2146         * sources/rb-audiocd-source.c:
2147         * sources/rb-library-source.c: (rb_library_source_class_init),
2148         (rb_library_source_finalize), (impl_get_config_widget),
2149         (rb_library_source_preferences_sync), (impl_can_paste): add a
2150         --enable-track-transfer configure option, abd make cd ripping disabled
2151         by default.
2153         * shell/rb-source-header.c:
2154         * sources/rb-source.c: (rb_source_class_init),
2155         (rb_source_delete_thyself), (default_get_entry_view):
2156         * lib/rb-glade-helpers.c:
2157         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
2158         some compiler warnings, and also bug 337427.
2160 2006-04-10  James Livingston  <doclivingston@gmail.com>
2162         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
2163         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
2164         if the gconf key is missing. Fixes bug 337742.
2166 2006-04-10  James Livingston  <doclivingston@gmail.com>
2168         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2169         to fix build problems I caused with a commit yesterday. Fixed bug
2170         337806.
2172         * daapsharing/rb-daap-mdns-browser-howl.c:
2173         (rb_daap_mdns_browser_class_init):
2174         * podcast/Makefile.am:
2175         * rhythmdb/Makefile.am:
2176         * widgets/eggtrayicon.h:
2178 2006-04-09  Steve Frécinaux  <steve@istique.net>
2180         * configure.ac:
2181         * po/LINGUAS:
2182         
2183         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
2184         translators' life easier.
2186 2006-04-09  James Livingston  <doclivingston@gmail.com>
2188         * bindings/python/rb.defs:
2189         * bindings/python/rb.override: add bindings for most RBSource virtual
2190         functions.
2192         * sources/rb-source.h:
2193         * sources/rb-source.c: (rb_source_class_init): make
2194         impl_get_browser_key return a non-consht string, since Python can't
2195         really give us constant strings.
2197         * shell/rb-source-header.c: (rb_source_header_finalize),
2198         (rb_source_header_set_source_internal):
2199         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
2200         * sources/rb-iradio-source.c: (impl_get_browser_key):
2201         * sources/rb-library-source.c: (impl_get_browser_key):
2202         * sources/rb-playlist-source.c:
2203         * sources/rb-browser-source.c: (rb_browser_source_constructor),
2204         (rb_browser_source_state_prefs_sync):
2205         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
2206         above change.
2208         * plugins/sample-python/sample-python.py: show how to add a new
2209         source.
2211 2006-04-09  James Livingston  <doclivingston@gmail.com>
2213         * daapsharing/Makefile.am:
2214         * daapsharing/rb-daap-connection.c:
2215         (rb_daap_connection_class_init):
2216         * daapsharing/rb-daap-marshal.list:
2217         * daapsharing/rb-daap-mdns-browser-avahi.c:
2218         (rb_daap_mdns_browser_class_init):
2219         * lib/rb-marshal.list:
2220         * player/Makefile.am:
2221         * player/rb-recorder-gst.c: (rb_recorder_class_init):
2222         * player/rb-recorder-marshal.list:
2223         * podcast/Makefile.am:
2224         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
2225         * podcast/rb-podcast-marshal.list:
2226         * rhythmdb/Makefile.am:
2227         * rhythmdb/rhythmdb-marshal.list:
2228         * rhythmdb/rhythmdb-query-model.c:
2229         (rhythmdb_query_model_class_init):
2230         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
2231         into one file, as there is no point having several of them.
2233 2006-04-09  James Livingston  <doclivingston@gmail.com>
2235         * lib/Makefile.am:
2236         * lib/rb-enums.h:
2237         * widgets/Makefile.am:
2238         * widgets/eggnotificationbubble.c:
2239         * widgets/eggnotificationbubble.h:
2240         * widgets/rb-song-info.c: remove lib/rb-enums.h and
2241         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
2243         * rhythmdb/rhythmdb-property-model.h:
2244         * rhythmdb/rhythmdb-query-model.h:
2245         * rhythmdb/rhythmdb.h:
2246         * shell/rb-playlist-manager.h:
2247         * widgets/rb-cell-renderer-pixbuf.h:
2248         * widgets/rb-cell-renderer-rating.h:
2249         * widgets/rb-rating.h: fix the prototypes of various class-closures.
2251 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2253         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
2254         so we can build without a system-wide installed copy.
2256 2006-04-09  James Livingston  <doclivingston@gmail.com>
2258         * data/glade/general-prefs.glade:
2259         * data/rhythmbox.schemas:
2260         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
2261         (rb_combo_box_hyphen_separator_func):
2262         * lib/rb-glade-helpers.h:
2263         * lib/rb-preferences.h:
2264         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2265         (rb_shell_preferences_sync),
2266         (rb_shell_preferences_toolbar_style_cb),
2267         (rb_shell_preferences_browser_views_activated_cb):
2268         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
2269         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
2270         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
2272 2006-04-09  James Livingston  <doclivingston@gmail.com>
2274         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
2275         data that MusicBrainz returns to us. Last part of bug 334167.
2277 2006-04-09  James Livingston  <doclivingston@gmail.com>
2279         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
2280         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
2282 2006-04-09  James Livingston  <doclivingston@gmail.com>
2284         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
2285         the entry view properly when the rows are reordered. Fixes bug 337019.
2287 2006-04-09  James Livingston  <doclivingston@gmail.com>
2289         * configure.ac:
2290         * widgets/Makefile.am:
2291         * widgets/libsexy/Makefile.am:
2292         * widgets/libsexy/sexy-icon-entry.c:
2293         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
2294         libsexy, and allow building against it or a system-wide installed
2295         copy.
2298         * widgets/rb-search-entry.c: (rb_search_entry_init),
2299         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
2300         search box. Fixes bug 128109.
2302 2006-04-09  James Livingston  <doclivingston@gmail.com>
2304         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
2306         * widgets/rb-entry-view.c: (rb_entry_view_init),
2307         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
2308         and Pause icons rather than the volume ones in the Now Playing column.
2309         Closes bug 336482.
2311 2006-04-08  James Livingston  <doclivingston@gmail.com>
2313         * bindings/python/override_common.h:
2314         * bindings/python/rb.override:
2315         * bindings/python/rhythmdb.override: bind some more functions 
2317 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2319         * metadata/rb-metadata-dbus-service.c: (_send_error):
2320         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
2321         are sent properly and we don't get 'method doesn't exist' messages
2322         from dbus instead.
2324 2006-04-08  James Livingston  <doclivingston@gmail.com>
2326         * bindings/python/override_common.h:
2327         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
2328         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
2329         more utility functions for C<->Python conversions
2331         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
2332         (rb_entry_view_state_get_type):
2333         * widgets/rb-entry-view.h: make the colume type and entry view state
2334         GTypes
2336         * bindings/python/Makefile.am:
2337         * bindings/python/rb.defs:
2338         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
2339         RBSource.
2341 2006-04-08  James Livingston  <doclivingston@gmail.com>
2343         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
2344         initialiser for a GError
2346         * sources/rb-source.c: (rb_source_eof_type_get_type):
2347         * sources/rb-source.h: add a GType for RBSourceEOFType
2349         * bindings/python/Makefile.am:
2350         * bindings/python/rb.defs:
2351         * bindings/python/rb.override: bind RBSource and RBSourceList
2353 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2355         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2356         (rb_shell_player_get_property),
2357         (rb_shell_player_get_active_source),
2358         (rb_shell_player_set_playing_source_internal):
2359         * shell/rb-shell-player.h:
2360         Change 'playing-from-queue' from being a signal to being a property.
2362         * shell/rb-shell.c: (rb_shell_constructor),
2363         (rb_shell_playing_from_queue_cb),
2364         (rb_shell_view_queue_as_sidebar_changed_cb),
2365         (rb_shell_jump_to_entry_with_source):
2366         When the queue side pane is used, make 'jump to current' jump to the
2367         entry in the registered source for its type, rather than in the queue,
2368         and show it as playing in that source.
2369         
2370         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
2371         * sources/rb-sourcelist.h:
2372         Remove the 'preempted source' stuff, since it wasn't doing anything
2373         anyway.
2375 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2377         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
2378         (download_progress_cb): Canonicalise downloaded file location before
2379         setting the mountpoint property of the corresponding entry.
2380         Fixes #337287 and a couple of memory leaks.
2382 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2384         * metadata/rb-metadata-dbus-service.c: (test_can_save),
2385         (test_load), (main): Call g_set_prgname, report errors more
2386         usefully in test mode.
2387         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
2388         (rb_metadata_load): Don't ignore the have-type signal for non-audio
2389         files.  Run the event loop when the state change fails so we get the
2390         error messages from the bus.  Fixes #336921.
2392 2006-04-05  William Jon McCann  <mccann@jhu.edu>
2394         * data/art/Makefile.am: Install media-eject.
2396         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
2397         return value of rb_file.
2399         Fixes #337209
2401 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2403         Patch by: William Jon McCann  <mccann@jhu.edu>
2405         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
2406         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
2407         Fix GError leak.
2409 2006-04-04  William Jon McCann  <mccann@jhu.edu>
2411         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
2412         Don't try to add a date when we don't have one.  Fixes #336741.
2414         Also fix variable declaration in middle of block.
2416 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2418         * shell/rb-shell-player.c: (rb_shell_player_playpause):
2419         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
2421 2006-04-02  James Livingston  <doclivingston@gmail.com>
2423         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
2424         inverted logic causing imports to fail.
2426 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2428         * shell/main.c: (main): Fix dbusless build.
2430 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
2432         * player/rb-recorder-gst.c: fix packing of the C struct holding a
2433         wav header for non-gcc compilers (not tested much, was only written
2434         according to docs)
2436 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2438         * shell/main.c: (main): Check if we got a dbus connection before
2439         trying to create a proxy for the shell object.  Fixes #336634.
2441 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2443         * doc/reference/Makefile.am:
2444         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
2445         * shell/rb-source-header.c:
2446         * sources/rb-generic-player-source.c:
2447         (default_transform_playlist_uri):
2448         Fix various build issues.  Patch approximately 50% by Alex Lancaster
2449         <alexl@users.sourceforge.net>
2451 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2453         * configure.ac: Detect LIRC.
2454         
2455         * plugins/Makefile.am:
2456         * plugins/lirc/Makefile.am:
2457         * plugins/lirc/lirc.rb-plugin.desktop.in:
2458         * plugins/lirc/rb-lirc-plugin.c:
2459         LIRC plugin.
2461         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
2462         Remove obsolete files.
2464 2006-04-02  James Livingston  <doclivingston@gmail.com>
2466         * sources/rb-generic-player-source.c:
2467         (default_transform_playlist_uri): consider playlist paths as relative
2468         to the volume root by default, since that is what most players use.
2470 2006-04-02  James Livingston  <doclivingston@gmail.com>
2472         * lib/rb-util.c: (rb_mime_get_friendly_name):
2473         * lib/rb-util.h: add helper function to get the "friendly" name for a
2474         mime-type
2476         * metadata/rb-metadata-gst.c: (rb_metadata_init),
2477         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
2478         the user better error messages about undecodable streams, using the
2479         "friendly" name if possible. Fixes bug 128109.
2481 2006-04-02  James Livingston  <doclivingston@gmail.com>
2483         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
2484         (start_pipeline): fix building with gstreamer 0.8
2486 2006-04-02  James Livingston  <doclivingston@gmail.com>
2488         * sources/rb-podcast-source.c: (impl_delete),
2489         (rb_podcast_source_cmd_delete_feed),
2490         (rb_podcast_source_cmd_update_feed): copy the list before traversing
2491         it, since it may change during traversal. Fixes bug 336204.
2493 2006-04-01  James Livingston  <doclivingston@gmail.com>
2495         * data/art/media-eject.png: add the media-eject icon from Banshee
2496         (BSD-licensed), for use when the user's icon theme doesn't have one.
2498         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
2499         bug 334897.
2501 2006-04-01  James Livingston  <doclivingston@gmail.com>
2503         * shell/rb-shell-player.h:
2504         * shell/rb-shell-player.c: (rb_shell_player_play),
2505         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
2506         new rb_shell_player_{play,pause} functions, so everyone doesn't have
2507         to do rb_shell_player_playing followed by rb_shell_player_playpause.
2509         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
2510         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
2511         * shell/rb-shell.h: add rb_shell_get_ui_manager.
2513         * bindings/python/rb.defs: bind the above to Python, and remove some
2514         useless stuff from the bindings.
2516 2006-04-01  James Livingston  <doclivingston@gmail.com>
2518         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
2519         number tag.
2521         * shell/rb-shell.c:
2522         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
2524         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
2525         to true.
2527         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
2528         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
2529         method assigning, so it's understandable
2531         * sources/rb-library-source.c: (rb_library_source_class_init),
2532         (impl_paste): rather than hard-coding the types to ignore, use
2533         rb_source_can_copy.
2535 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2537         * sources/rb-library-source.c:
2538         (rb_library_source_preferences_sync):
2539         Don't crash if no audio profile is selected and the gconf schemas are 
2540         not installed.
2542 2006-03-31  James Livingston  <doclivingston@gmail.com>
2544         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
2545         "*" which caused compilation to fail
2547 2006-03-31  James Livingston  <doclivingston@gmail.com>
2549         * configure.ac:
2550         * Makefile.am:
2551         * backends/Makefile.am:
2552         * backends/gstreamer/Makefile.am:
2553         * backends/gstreamer/rb-encoder-gst.c:
2554         * backends/gstreamer/rb-encoder-gst.h:
2555         * backends/rb-encoder.c:
2556         * backends/rb-encoder.h: add a interface for transcoding, and a
2557         GStreamer implementation of it (based on Sound-Juicer's code).
2559         * shell/Makefile.am:
2560         * shell/rb-removable-media-manager.c:
2561         (rb_removable_media_manager_class_init),
2562         (rb_removable_media_manager_init),
2563         (rb_removable_media_manager_dispose),
2564         (rb_removable_media_manager_finalize),
2565         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
2566         (progress_cb), (completed_cb), (do_transfer),
2567         (rb_removable_media_manager_queue_transfer), (copy_entry),
2568         (rb_removable_media_manager_cmd_copy_tracks):
2569         * shell/rb-removable-media-manager.h: use the encoder interface to
2570         perform transfers of entries to other locations
2572         * shell/rb-shell-player.c: (open_location_thread):
2573         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2574         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
2575         (rb_shell_quit):
2576         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
2577         progress in the status bar.
2579         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2580         (rb_shell_preferences_sync),
2581         (rb_shell_preferences_browser_views_activated_cb):
2582         * data/glade/general-prefs.glade: move the browser views setting from
2583         the library tab to the general one.
2585         * data/glade/library-prefs.glade: add settings for the layout of the
2586         user's library, and their preferred encoding format (e.g. for CD
2587         ripping).
2589         * lib/rb-preferences.h:
2590         * data/rhythmbox.schemas: add keys for the above options (and a few
2591         other minor ones)
2593         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
2594         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
2595         entry, that isn't inserted into the database.
2597         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
2598         (rb_audiocd_create_track_entry):
2599         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
2600         cds, and set the mime-type of audio cd tracks correctly.
2602         * sources/rb-library-source.c: (rb_library_source_class_init),
2603         (rb_library_source_finalize),
2604         (rb_library_source_edit_profile_clicked_cb),
2605         (impl_get_config_widget), (rb_library_source_preferences_sync),
2606         (impl_receive_drag), (rb_library_source_path_changed_cb),
2607         (rb_library_source_filename_changed_cb),
2608         (rb_library_source_format_changed_cb), (sanitize_path),
2609         (filepath_parse_pattern), (layout_example_label_update),
2610         (rb_library_source_layout_path_changed),
2611         (rb_library_source_layout_filename_changed), (build_filename),
2612         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
2613         entries to the library. Large chunks of code for determining the
2614         destination file name stolen from Sound-Juicer.
2616         * sources/rb-sourcelist-model.c: (path_is_droppable):
2617         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
2618         * sources/rb-static-playlist-source.c:
2619         (rb_static_playlist_source_class_init):
2620         * sources/rb-removable-media-source.c:
2621         (rb_removable_media_source_class_init):
2622         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
2623         (rb_source_can_paste):
2624         * sources/rb-source.h: add a new _can_paste method, and use it (rather
2625         than _can_copy) to determine whether we can paste into the source.
2628 2006-03-31  Steve Frécinaux  <steve@istique.net>
2630         * plugins/rb-python-module.c: allow import of python modules with a '.'
2631         (gedit's bug 336403). Patch by Johan Dahlin.
2633 2006-03-31  James Livingston  <doclivingston@gmail.com>
2635         * sources/rb-library-source.c: 
2636         * sources/rb-library-source.h:
2637         * sources/rb-browser-source.c:
2638         * sources/rb-browser-source.h: Split RBLibrarySource into two.
2639         RBBrowserSource now contains all the stuff for having a source which
2640         views a particular entry type (including browsers and searching).
2641         RBLibrarySource derives from this, and includes the library-specific
2642         stuff, like importing and library watching. Fixes some issues where
2643         library-derived sources were doing things that should be
2644         library-specific. Fixes bug 335185.
2646         * data/ui/rhythmbox-ui.xml:
2647         * sources/Makefile.am: modifications for the above
2649         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2650         (rb_daap_source_get_paned_key):
2651         * sources/rb-daap-source.h:
2652         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
2653         * sources/rb-removable-media-source.c:
2654         (rb_removable_media_source_class_init):
2655         * sources/rb-removable-media-source.h: derive from RBBrowserSource
2656         instead of RBLibrarySource.
2658 2006-03-31  James Livingston  <doclivingston@gmail.com>
2660         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
2661         I buggered up when changing from GnomeVFSFileSize.
2663 2006-03-30  James Livingston  <doclivingston@gmail.com>
2665         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
2666         for "-Wno-error".
2668         * bindings/python/rb.override:
2669         * bindings/python/Makefile.am: make the RB python bindings depend on
2670         the RhythmDB ones, and use "-Wno-error" since the machine-generated
2671         code sometimes emits warnings.
2673         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2674         (rb_shell_player_error_get_type):
2675         * shell/rb-shell-player.h:
2676         * bindings/python/rb.defs: add bindings for RBShellPlayer
2678         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2679         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
2680         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
2681         * rhythmdb/rhythmdb.h:
2682         * shell/rb-shell.c: (rb_shell_get_song_properties):
2683         * widgets/rb-entry-view.c: (propid_from_name):
2684         * widgets/rb-property-view.c: (rb_property_view_class_init):
2685         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
2686         than just plain GPtrArray, and add bindings for it.
2688         * bindings/python/rhythmdb.override: wrap some functions that use
2689         GValues
2691 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2693         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
2694         Only watch directories from which entries of type SONG have been
2695         added.
2697 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2699         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
2700         No need to restore the selection after rebuilding the child model,
2701         since that can't have changed the selection.
2703 2006-03-29  James Livingston  <doclivingston@gmail.com>
2705         * bindings/python/override_common.c:
2706         * bindings/python/override_common.h: add some for missing files to
2707         cvs.
2709 2006-03-29  James Livingston  <doclivingston@gmail.com>
2711         * configure.ac:
2712         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
2713         copied from gedit's autofoo and we don't need it
2715         * bindings/python/rhythmdb.defs:
2716         * bindings/python/rhythmdb.override: add missing files to cvs
2718 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2720         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
2721         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
2722         before running any of the debug/test modes.
2723         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
2724         Make plugin loading work when running uninstalled from the shell/
2725         directory.
2727 2006-03-29  James Livingston  <doclivingston@gmail.com>
2729         * rhythmdb/rhythmdb-property-model.c:
2730         (rhythmdb_property_model_sync),
2731         (rhythmdb_property_model_column_get_type):
2732         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
2734         * rhythmdb/rhythmdb-private.h:
2735         * rhythmdb/rhythmdb-query-model.c:
2736         (rhythmdb_query_model_class_init):
2737         * rhythmdb/rhythmdb-query-model.h:
2738         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2739         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
2740         (rhythmdb_entry_get_type):
2741         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
2743         * widgets/rb-query-creator-properties.c:
2744         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
2745         was missing.
2747         * bindings/python/Makefile.am:
2748         * bindings/python/rb.defs:
2749         * bindings/python/rb.override:
2750         * plugins/rb-python-module.c: (rb_python_module_init_python): add
2751         Python bindings for RhythmDB.
2753 2006-03-29  James Livingston  <doclivingston@gmail.com>
2755         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
2756         sharing when using --no-registration
2758 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2760         * rhythmdb/rhythmdb-query-model.c:
2761         (rhythmdb_query_model_reapply_query):
2762         Don't remove entries while iterating, as it breaks the sequence
2763         nodes.  Instead, collect a list of removed entries and process it
2764         after iterating the sequence.  Fixes #334642.
2766 2006-03-29  James Livingston  <doclivingston@gmail.com>
2768         * plugins/rb-plugin-manager.c: (active_toggled_cb),
2769         (row_activated_cb), (plugin_manager_toggle_all):
2770         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
2771         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
2772         (button_press_cb), (source_name_edited_cb):
2773         * widgets/rb-property-view.c: (rb_property_view_set_property),
2774         (rb_property_view_post_row_deleted_cb),
2775         (rb_property_view_row_activated_cb),
2776         (rb_property_view_selection_changed_cb),
2777         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
2778         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
2780 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2782         * rhythmdb/rhythmdb-query-model.c:
2783         (rhythmdb_query_model_drag_data_received):
2784         Increment the reference count for entries added by drag and drop.
2785         Fixes #336045.
2787 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2789         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
2790         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
2791         Ignore invalid UTF-8 strings.  Fixes most of #334167.
2793 2006-03-27  James Livingston  <doclivingston@gmail.com>
2795         * shell/rb-shell.c: (rb_shell_constructor),
2796         (rb_shell_sync_window_state): fix a maximise-realise race that would
2797         cause some widgets to be resized after we had explicity set theri
2798         size. Hopefully fixes bug 331927.
2800 2006-03-27  James Livingston  <doclivingston@gmail.com>
2802         * plugins/rb-plugin-manager.c: (active_toggled_cb),
2803         (row_activated_cb), (plugin_manager_set_active),
2804         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
2805         configure button sensitivity when a plugin is enabled/disabled.
2807 2006-03-27  James Livingston  <doclivingston@gmail.com>
2809         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
2810         stop warnings, only the vbos is used anyway
2812         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
2813         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
2814         collection every now an then.
2816         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
2817         if we are finalising because the python object couldn't be created.
2819         * plugins/rb-python-module.c: (rb_python_module_new_object): return
2820         NULL if the python-side object couldn't be created. Stops crashes when
2821         the object is later used when it doesn't exist in Python.
2823         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
2824         (rb_python_shutdown): do better garbage collection when shutting down.
2825         Fixes the problem where Python was holding a reference to the shell,
2826         causing RB not to exit.
2828 2006-03-27  James Livingston  <doclivingston@gmail.com>
2830         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
2831         336131.
2833 2006-03-27  James Livingston  <doclivingston@gmail.com>
2835         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
2836         From bug 334829.
2838 2006-03-26  James Livingston  <doclivingston@gmail.com>
2840         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
2841         library location list to NULL after we free it. Fixes bug 336047.
2843 2006-03-26  James Livingston  <doclivingston@gmail.com>
2845         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
2847         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
2848         supplies. Fixes bug 335947.
2850 2006-03-25  James Livingston  <doclivingston@gmail.com>
2852         * data/glade/audioscrobbler-prefs.glade:
2853         * shell/rb-audioscrobbler.c:
2854         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
2855         "submit songs" checkbox, and make it not disable username/password
2856         entry. This will be needed when we support other last.fm stuff
2857         (profile access, radio, etc).
2859 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
2861         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2862         Volume should not display stock_volume-0 for volume > 0. Fixes bug
2863         335777.
2865 2006-03-24  James Livingston  <doclivingston@gmail.com>
2867         * shell/rb-shell-player.c: (rb_shell_player_set_property),
2868         (rb_shell_player_sync_play_order),
2869         (rb_shell_player_play_order_update_cb),
2870         (actually_set_playing_source): update the next/previous availablility
2871         in places where it was missing. Fixes bug 335490.
2873 2006-03-24  James Livingston  <doclivingston@gmail.com>
2875         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
2876         can't find the widget
2878         * lib/rb-util.c: (rb_uri_list_parse):
2879         * lib/rb-util.h: add function for parsing a URI list into strings.
2881         * metadata/Makefile.am: make the metdata helper build when linking
2882         with --as-needed
2884         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
2885         g_mkdir_with_parents instead of coding our own.
2887         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
2888         <itunes:author> over <generator>, instead of using whichever comes
2889         last.
2891         * rhythmdb/rhythmdb-private.h:
2892         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
2893         field, as we don't ever check it (to detect corruption). Saves a bit
2894         of memory.
2896 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2898         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
2899         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
2900         Escape '&' and '=' in the paths we get back from
2901         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
2903 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2905         * shell/rb-shell.c: (rb_shell_constructor):
2906         Issue startup notification after creating the main window, so
2907         notification is issued whether the window is visible or not.
2908         Fixes #335086.
2910 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2912         * sources/rb-auto-playlist-source.c: (impl_search),
2913         (rb_auto_playlist_source_query_complete_cb),
2914         (rb_auto_playlist_source_do_query):
2915         * sources/rb-library-source.c: (impl_search),
2916         (rb_library_source_query_complete_cb),
2917         (rb_library_source_do_query):
2918         Defer subset searches (where text is appended to an existing search)
2919         until the original query is complete.
2921 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
2923         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
2925         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
2926         (rb_refstring_get_sort_key): fixes for strict-aliasing
2928 2006-03-21  James Livingston  <jrl@ids.org.au>
2930         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
2931         importing a single file. Fixes bug 335307.
2933 2006-03-21  James Livingston  <jrl@ids.org.au>
2935         * shell/Makefile.am: remove the reference to backends/ that I
2936         accidently included.
2938 2006-03-21  James Livingston  <jrl@ids.org.au>
2940         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
2941         with Forte (on Solaris). Closes bug 335318.
2943         * configure.ac:
2944         * lib/Makefile.am:
2945         * player/rb-recorder-gst.c:
2946         * podcast/rb-podcast-parse.c:
2947         * remote/bonobo/Makefile.am:
2948         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
2949         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
2950         (rhythmdb_query_model_add_entry),
2951         (rhythmdb_query_model_add_results):
2952         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
2953         * rhythmdb/rhythmdb.h:
2954         * shell/Makefile.am:
2955         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
2956         (update_speed_combobox):
2957         * sources/rb-sourcelist-model.c:
2959 2006-03-21  James Livingston  <jrl@ids.org.au>
2961         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
2963         * player/Makefile.am:
2964         * shell/Makefile.am: work correctly with a separate build root.
2966 2006-03-21  James Livingston  <jrl@ids.org.au>
2968         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
2969         get handed NULL.
2971 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2973         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2974         Only create ignore entries when importing into the library.  
2975         Ignore entries for files in removable media sources don't help.
2977 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2979         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
2980         * shell/rb-source-header.h:
2981         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
2982         * widgets/rb-search-entry.h:
2983         Add functions to make the search box grab focus.
2985         * shell/rb-shell.c: (rb_shell_cmd_view_all):
2986         Focus the search box after handling the 'view all' action.
2988 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2990         * rhythmdb/rhythmdb.h:
2991         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2992         (rhythmdb_execute_multi_stat_info_cb),
2993         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
2994         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
2995         (action_thread_main):
2996         Collect all the get_file_info requests on startup into one gnome-vfs
2997         job to reduce overhead and avoid contention for the rhythmdb lock.
2998         Add a new method to call when all initial query models are set up.
2999         
3000         * shell/rb-shell.c: (idle_handle_load_complete):
3001         Call rhythmdb startup complete function when we've loaded all the
3002         playlists.  Fixes #334106.
3004 2006-03-20  James Livingston  <jrl@ids.org.au>
3006         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
3007         (rb_entry_view_selection_changed_cb),
3008         (rb_entry_view_have_complete_selection): make has_complete_selection
3009         not slow. Fixes a performance issue I added a week or so ago.
3011 2006-03-20  James Livingston  <jrl@ids.org.au>
3013         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
3014         before passing to strcmp. From bug 334559.
3016 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3018         * configure.ac:
3019         * lib/Makefile.am:
3020         * lib/rb-proxy-config.c:
3021         * lib/rb-proxy-config.h:
3022         Add a new object to watch the HTTP proxy configuration and emit
3023         signals when it changes.
3025         * shell/rb-audioscrobbler.c:
3026         * shell/rb-audioscrobbler.h:
3027         Use rb-proxy-config to watch HTTP proxy configuration.
3029         * shell/rb-shell.c:
3030         Construct rb-proxy-config object on startup, and remove all
3031         audioscrobbler references.
3033         * shell/Makefile.am:
3034         * plugins/audioscrobbler/Makefile.am:
3035         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
3036         Move all audioscrobbler code into the plugin.  We should move
3037         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
3038         point.  Don't use a private data structure in the plugin, since the
3039         class definition isn't in a header file.  Fixes #335091.
3041 2006-03-20  James Livingston  <jrl@ids.org.au>
3043         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
3044         don't enable Next if the source has an EOS type other than
3045         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
3047 2006-03-20  James Livingston  <jrl@ids.org.au>
3049         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
3050         (rb_song_info_forward_clicked_cb): deal with there being no
3051         next/previous entry.
3053         (rb_song_info_query_model_inserted_cb),
3054         (rb_song_info_query_model_deleted_cb),
3055         (rb_song_info_query_model_reordered_cb),
3056         (rb_song_info_query_model_changed_cb): monitor the query for changes,
3057         to update the button status. Fixes bug 333293.
3059 2006-03-20  James Livingston  <jrl@ids.org.au>
3061         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
3062         caused by my last commit
3064 2006-03-20  James Livingston  <jrl@ids.org.au>
3066         * bindings/python/Makefile.am:
3067         * bindings/python/rb.defs:
3068         * bindings/python/rb.override: add python bindings of RBRemoteProxy
3070         * shell/rb-shell.c: (rb_shell_constructor),
3071         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
3072         tray-icon detection slightly
3074 2006-03-19  Steve Frécinaux  <steve@istique.net>
3076         * data/ui/rhythmbox-ui.xml:
3077         * shell/rb-shell.c:
3079         Add an empty Tool Menu (hidden by default) containing placeholders for
3080         plugins.
3082         * configure.ac:
3083         * plugins/Makefile.am:
3084         * plugins/pythonconsole/Makefile.am:
3085         * plugins/pythonconsole/pythonconsole.py:
3086         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
3087         
3088         Python Console plugin
3090 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3092         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3093         Extra step to encode '&' and '=' to match what gnome-vfs does
3094         internally.
3095         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3096         (rhythmdb_tree_save):
3097         Increment rhythmdb xml version to 1.2, and force another uri
3098         re-canonicalisation when loading v1.1 databases.
3099         Fixes bug #333998.
3101 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3103         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
3104         (avahi_client_init), (browse_cb):
3105         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
3106         (avahi_client_init):
3107         Fix compilation with Avahi 0.5.x (bug #334551).
3109 2006-03-19  James Livingston  <jrl@ids.org.au>
3111         Add Increase/Decrease Volume menu items and keybindings. From bug
3112         123383.
3114         * data/ui/rhythmbox-ui.xml:
3115         * shell/rb-shell-player.c: (rb_shell_player_constructor),
3116         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
3117         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
3119 2006-03-19  James Livingston  <jrl@ids.org.au>
3121         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
3123         * shell/Makefile.am: fix the link order, so that we compile with
3124         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
3126 2006-03-19  James Livingston  <jrl@ids.org.au>
3128         patch by: Adam Petaccia  <adam@tpetaccia.com>
3130         * data/ui/rhythmbox-ui.xml: move preferences below "configure
3131         plugins". Fixes bug 335037.
3133 2006-03-18  James Livingston  <jrl@ids.org.au>
3135         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
3136         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
3137         332992.
3139         * widgets/rb-header.c: don't make artist/album info in the header the
3140         small size, since it's hard to read.
3142 2006-03-16  William Jon McCann  <mccann@jhu.edu>
3144         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
3145         (rhythmdb_finalize): Don't leak the hash tables.
3146         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
3147         (rhythmdb_commit_internal): Make sure to process the deletions.
3148         (rhythmdb_entry_delete): Use a hash.
3150         * podcast/rb-podcast-manager.c: Random analness about char*
3151         (rb_podcast_manager_remove_feed): Add debugging.
3152         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
3153         the result of gnome_vfs_unlink.  Don't leak a uri.
3155         Fixes #334786
3157 2006-03-18  James Livingston  <jrl@ids.org.au>
3159         * NEWS: update NEWS file
3161 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3163         * rhythmdb/rhythmdb-property-model.c:
3164         (rhythmdb_property_model_prop_changed_cb):
3165         Remove entries from the hash table after processing visible->hidden
3166         changes.
3168 2006-03-16  William Jon McCann  <mccann@jhu.edu>
3170         * sources/rb-daap-source.c (connection_connected_cb) 
3171         (connection_disconnected_cb): Add debug.
3172         (rb_daap_source_get_headers): Check for NULL connection.
3174         * daapsharing/rb-daap-src.c (rb_daap_src_open):
3175         Check return value of rb_daap_source_get_headers.
3177         Fixes #332089
3179 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3181         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
3182         Restore the selection after rebuilding the child model, so the
3183         selection is shown correctly after using the 'browse this
3184         album/artist/genre' menu items.
3186 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3188         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
3189         Clear the selection before changing the active model.
3190         Fixes crash reported in bug 334549.
3192 2006-03-15  James Livingston  <jrl@ids.org.au>
3194         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
3195         (rb_tray_icon_sync_action):
3196         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
3197         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
3198         for non-libnotify notification bubbles. Fixes bug 331721.
3200 2006-03-15  James Livingston  <jrl@ids.org.au>
3202         Add search-bar options to playlists. Fixes bug 334407.
3204         * sources/rb-auto-playlist-source.c:
3205         (rb_auto_playlist_source_class_init),
3206         (rb_auto_playlist_source_constructor),
3207         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
3208         (search_action_to_prop), (search_action_changed):
3209         * sources/rb-static-playlist-source.c:
3210         (rb_static_playlist_source_class_init),
3211         (rb_static_playlist_source_constructor),
3212         (construct_query_from_selection), (impl_get_search_actions),
3213         (search_action_to_prop), (search_action_changed):
3215 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3217         * shell/rb-source-header.c (rb_source_header_set_source_internal):
3218         Remove broken attempt at making the search bar buttons not
3219         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
3221 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3223         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
3224         Chain up to parent's dispose instead of finalize.  Fixes #334479.
3226 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3228         * widgets/rb-header.c (rb_header_sync): Escape album and
3229         artist before adding to markup.
3231 2006-03-14  William Jon McCann  <mccann@jhu.edu>
3233         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
3234         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
3235         (rb_header_set_property), (rb_header_get_property),
3236         (rb_header_sync):
3237         Remove the GnomeUrl song links until we can do it properly.
3238         Fixes #334453.
3240 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3242         * shell/rb-source-header.c: (rb_source_header_clear_search):
3243         Remove the stored search text from the hash table, so it doesn't
3244         reappear after switching to another source and back.
3246         * sources/rb-auto-playlist-source.c: (impl_search):
3247         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
3248         * sources/rb-static-playlist-source.c: (impl_search):
3249         Make sure all sources treat impl_search(NULL) and impl_search("") the
3250         same.  Fixes #334525.
3252 2006-03-14  James Livingston  <jrl@ids.org.au>
3254         Store which thread created new entries, and make rhythmdb_commit only
3255         insert the entries for the thread that calls it. This stops one thread
3256         calling rhythmdb_commit inserting entries that are half-way through
3257         construction by another thread (as happens with audio cds). From bug
3258         330226.
3260         * rhythmdb/rhythmdb.c: (rhythmdb_init),
3261         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
3262         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
3263         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
3264         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
3265         (rhythmdb_process_metadata_load),
3266         (rhythmdb_process_queued_entry_set_event),
3267         (rhythmdb_prop_get_type):
3269 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3271         * rhythmdb/rhythmdb-query-model.c:
3272         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
3273         (rhythmdb_query_model_finalize):
3274         Move object unrefs from _finalize into _dispose.
3275         
3276         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
3277         Remove extra g_object_ref that was causing query model leaks.
3278         
3279         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
3280         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
3281         (genre_selection_reset_cb), (rb_iradio_source_do_query):
3282         Remove the cached 'all' query, since it doesn't really help and it
3283         makes the code more complicated.  Attach the genre property view to
3284         the query model build from the search text, so only genres for
3285         stations matching the search terms are displayed.  Preserve the genre
3286         selection across searches.
3288         * widgets/rb-library-browser.c: 
3289         (rb_library_browser_class_init), (rb_library_browser_get_property):
3290         Add properties for the input and output models for the browser, and
3291         remove the 'changed' signal as we can just use notify::output-model.
3292         (ignore_selection_changes),
3293         (selection_restore_data_destroy), (query_complete_cb),
3294         (restore_selection): Helper functions for preserving selections across
3295         query model rebuilds.
3296         (rebuild_output_model):  New function for creating a query model to
3297         use as the display model for a source using the browser.
3298         (rebuild_child_model): Add a call to rebuild_output_model, add missing
3299         g_object_unrefs, reuse the parent's query model when there's no
3300         selection, and use ignore_selection_changes and restore_selection.
3301         (rb_library_browser_set_selection): rebuild_child_model emits the
3302         changed signal, so no need to do it here.
3303         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
3304         ignore_selection_changes and restore_selection. 
3305         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
3306         flag to rb_library_browser_set_model indicating whether the query is
3307         asynchronous.
3309         * sources/rb-static-playlist-source.c:
3310         (rb_static_playlist_source_class_init),
3311         (rb_static_playlist_source_dispose):
3312         (rb_static_playlist_source_constructor):  Add an extra reference on
3313         the base model, so it doesn't vanish when we set a new display model
3314         based on a search or browser selection.
3315         (impl_search): Ensure the search_text field in the source is NULL if
3316         the search box is empty.
3317         (construct_query_from_selection),
3318         (rb_static_playlist_source_do_query): Use the query model constructed
3319         from the search as the input model for the browser.
3320         (rb_static_playlist_source_browser_changed_cb): Use the browser's
3321         output model as the query model for the source.
3323         * sources/rb-auto-playlist-source.c:
3324         (rb_auto_playlist_source_finalize): Free more stuff.
3325         (rb_auto_playlist_source_constructor),
3326         (rb_auto_playlist_source_browser_changed_cb):
3327         Update for rb-library-browser changes, use the browser's output query
3328         model as the query model for the source.
3329         (impl_reset_filters), (impl_search), 
3330         (rb_auto_playlist_source_do_query),
3331         (rb_auto_playlist_source_set_query):
3332         Use the query model constructed from the search text as the input to
3333         the library browser, and when adding text to an existing search, apply
3334         the new query to the existing query model.
3335         
3336         * sources/rb-library-source.c: (rb_library_source_dispose):
3337         (rb_library_source_finalize): Chain dispose up to the parent class.
3338         (rb_library_source_constructor): Update for rb-library-browser
3339         changes. 
3340         (impl_search): Ensure search_text is NULL if the search box is empty,
3341         and use the subset flag to _do_query if text has been appended to an
3342         existing search.
3343         (search_action_changed), (impl_reset_filters):
3344         (rb_library_source_browser_changed_cb),
3345         (rb_library_source_do_query): Use the browser's output model as the
3346         query model for the source.
3348         Rework library and playlist sources to use a single query chain,
3349         and to limit the entries shown in property views based on the search
3350         terms.  Fixes bug #322787.
3352 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3354         * configure.ac:  Enable metadata helper by default, and fix a typo.
3356 2006-03-13  James Livingston  <jrl@ids.org.au>
3358         Make RBRefStrings lazily create the folded and sort-key strings when
3359         they are first used. This will same some memory by not creating ones
3360         that are never used, and delaying some of the others to when the user
3361         resorts or performs a similar action. Fixes bug 332992.
3363         * rhythmdb/rb-refstring.c: (rb_refstring_free),
3364         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
3365         (rb_refstring_get), (rb_refstring_get_folded),
3366         (rb_refstring_get_sort_key), (rb_refstring_hash),
3367         (rb_refstring_equal):
3368         * rhythmdb/rb-refstring.h:
3369         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3371 2006-03-12  William Jon McCann  <mccann@jhu.edu>
3373         * data/ui/rhythmbox-ui.xml:
3374         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3375         * lib/rb-stock-icons.h:
3376         * shell/rb-shell-player.c:
3377         * shell/rb-shell.c: (rb_shell_constructor):
3378         * shell/rb-source-header.c: (force_no_shadow),
3379         (ui_manager_add_widget_cb), (rb_source_header_constructor),
3380         (rb_source_header_class_init), (rb_source_header_init),
3381         (merge_source_ui_cb), (toolbar_set_homogeneous),
3382         (rb_source_header_set_source_internal),
3383         (rb_source_header_set_property), (rb_source_header_get_property),
3384         (rb_source_header_set_source), (rb_source_header_new),
3385         (rb_source_header_filter_changed_cb):
3386         * shell/rb-source-header.h:
3387         * sources/rb-library-source.c: (rb_library_source_class_init),
3388         (rb_library_source_init), (search_action_to_prop),
3389         (search_action_changed), (rb_library_source_constructor),
3390         (impl_search), (impl_reset_filters), (impl_get_search_actions),
3391         (construct_query_from_selection):
3392         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3393         (rb_podcast_source_init), (search_action_to_prop),
3394         (search_action_changed), (rb_podcast_source_constructor),
3395         (construct_query_from_selection), (impl_get_ui_actions),
3396         (impl_get_search_actions):
3397         * sources/rb-source.c: (rb_source_class_init),
3398         (rb_source_get_ui_actions), (default_get_search_actions),
3399         (rb_source_get_search_actions):
3400         * sources/rb-source.h:
3402         Add a search bar.  Fixes #328618
3404 2006-03-12  James Livingston  <jrl@ids.org.au>
3406         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
3407         * shell/main.c: (main): make --no-update not stat files checking for
3408         changes, instead of doing nothing. Fixes bug 125177.
3410 2006-03-12  James Livingston  <jrl@ids.org.au>
3412         * podcast/rb-podcast-manager.c:
3413         (rb_podcast_manager_thread_parse_feed):
3414         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
3415         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
3416         having an invalid mime-type. Fixed bug 329813.
3418 2006-03-12  James Livingston  <jrl@ids.org.au>
3420         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
3421         Finally lets us close bug 309609.
3423         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
3424         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
3425         0.10
3427         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
3428         inverted logic of the editable check.
3430 2006-03-12  James Livingston  <jrl@ids.org.au>
3432         Make API doc generation work again. Fixes bug 334276.
3434         * doc/reference/Makefile.am:
3435         * doc/reference/tmpl/rb-debug.sgml:
3436         * doc/reference/tmpl/rb-druid.sgml:
3437         * doc/reference/tmpl/rb-entry-view.sgml:
3438         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
3439         * doc/reference/tmpl/rb-metadata.sgml:
3440         * doc/reference/tmpl/rb-shell.sgml:
3441         * doc/reference/tmpl/rhythmbox-unused.sgml:
3442         * doc/reference/tmpl/rhythmdb.sgml:
3444 2006-03-12  James Livingston  <jrl@ids.org.au>
3446         * shell/rb-shell-clipboard.c:
3447         (rb_shell_clipboard_set_source_internal),
3448         (rb_shell_clipboard_sync): don't try to use the source's entry view if
3449         it doesn't have one. Fixes bug 331673.
3451         * sources/rb-source.c: (rb_source_class_init): provide a default
3452         have_url implementation that returns FALSE.
3454 2006-03-12  James Livingston  <jrl@ids.org.au>
3456         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
3457         doing a distclean. Fixes bug 334221.
3460         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
3462         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
3464 2006-03-11  James Livingston  <jrl@ids.org.au>
3466         * shell/rb-shell.c: (rb_shell_window_state_cb),
3467         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
3468         update the window width/height when iconified. Stops the window
3469         changing size when it is restored from the tray, fixing bug 333824. 
3471 2006-03-11  James Livingston  <jrl@ids.org.au>
3473         Try to get cvs to actually add the necessary files for plugin support
3475 2006-03-11  James Livingston  <jrl@ids.org.au>
3477         Add a plugin framework, with basic support for Python plugins (based
3478         on gedit's). Closes bug 330523.
3480         * Makefile.am:
3481         * shell/Makefile.am:
3482         * configure.ac: necessary autofoo.
3484         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
3486         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
3487         * lib/rb-file-helpers.h:
3489         * data/glade/plugins/glade:
3490         * lib/rb-preferences.h:
3491         * plugins/*:
3492         * bindings/*: plugin framework
3494         * plugins/sample/*:
3495         * plugins/sample-python/*: sample plugins
3497         * plugins/audioscrobbler/*:
3498         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
3499         (rb_audioscrobbler_set_property),
3500         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
3501         submission into a plugin. shell/audioscrobbler.* should really be
3502         moved, but that sucks with cvs.
3504         * shell/rb-shell.h:
3505         * shell/rb-shell.c: (rb_shell_constructor),
3506         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
3507         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
3508         (rb_shell_quit): start and stop plugin framework.
3510 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3512         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
3513         (rhythmdb_entry_delete):
3514         Emit entry-deleted signals when rhythmdb_commit is called, rather than
3515         immediately, so we can't get change notifications afterwards.  
3516         Fixes #331732.
3517         (rhythmdb_process_metadata_load): Add a commit after removing an
3518         entry so we can recreate it with a different type without getting
3519         confused.
3521 2006-03-11  James Livingston  <jrl@ids.org.au>
3523         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
3524         use the drive name for audio CDs, use "Unknown CD".
3526 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3528         patch by:  James Henstridge  <james@jamesh.id.au>
3530         * sources/rb-removable-media-source.c:
3531         (rb_removable_media_source_constructor):
3532         Get the device name from the GnomeVFSDrive if possible,
3533         since this is usually a more descriptive name.  Fixes #333080.
3535 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3537         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
3539         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
3540         Don't automatically download episodes when configured for manual
3541         updating.  Fixes #331564.
3543 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3545         * rhythmdb/rhythmdb-property-model.c:
3546         (rhythmdb_property_model_iter_from_string):
3547         Return an iterator for the 'all' property when name == NULL,
3548         and don't write to *iter if iter == NULL.
3550 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3552         * shell/rb-shell-player.c: (rb_shell_player_do_next):
3553         When switching to the play queue, still call _go_next on the normal
3554         play order, so self-emptying auto playlists ("play count = 0" etc.)
3555         don't restart once the queue is empty.
3557         * shell/rb-tray-icon.c:
3558         Change shortcut for 'show notifications' to 'o' so it doesn't clash
3559         with 'next'.
3561 2006-03-05  James Livingston  <jrl@ids.org.au>
3563         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
3564         don't submit tracks which could not be played. Fixed bug 333013.
3566         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
3567         tracks which could not be played.
3569 2006-03-05  James Livingston  <jrl@ids.org.au>
3571         Sync musicbrainz lookup code from Sound-Juicer cvs.
3573         * metadata/sj-metadata-musicbrainz.c:
3574         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
3575         (get_offline_track_listing), (artist_and_title_from_title),
3576         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
3577         (mb_list_albums), (mb_get_submit_url):
3578         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
3579         * metadata/sj-metadata.h:
3580         * metadata/sj-structures.c: (track_details_free),
3581         (album_details_free):
3582         * metadata/sj-structures.h:
3584 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3586         * lib/rb-debug.h:
3587         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
3588         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
3589         (rb_profiler_reset), (rb_profiler_free):
3590         Filter debug output by matching the file and function names against a
3591         match string.
3593         * shell/main.c: (main):
3594         Add -D command line option to specify the debug match string.
3596         * shell/rb-removable-media-manager.c:
3597         (rb_removable_media_manager_mount_volume):
3598         Fix some typos in debug output.
3600 2006-03-03  James Livingston  <jrl@ids.org.au>
3602         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
3603         * shell/rb-shell.c: (rb_shell_load_uri):
3604         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
3605         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
3606         use the new "recurse" property from totem-plparser, if present. Stop
3607         RB hanging for new users who don't have a 'net connection. From bug
3608         331508.
3610 2006-03-02  Bastien Nocera  <hadess@hadess.net>
3612         * shell/rb-removable-media-manager.c:
3613         (rb_removable_media_manager_mount_volume):
3614         * sources/Makefile.am:
3615         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
3616         Fix missing files on make dist (conditional files), only build the
3617         N770 support if there's HAL support, as we have no other ways of
3618         detecting it
3620 2006-03-03  James Livingston  <jrl@ids.org.au>
3622         * shell/rb-shell-clipboard.c:
3623         (rb_shell_clipboard_set_source_internal): really fix it this time.
3624         hopefully.
3626 2006-03-03  James Livingston  <jrl@ids.org.au>
3628         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
3629         with the idle function not being removed.
3631 2006-03-02  James Livingston  <jrl@ids.org.au>
3633         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
3634         * widgets/rb-entry-view.h: add function for determining whether all
3635         entries are selected.
3637         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
3638         (rb_shell_clipboard_set_source_internal),
3639         (rb_shell_clipboard_finalize),
3640         (rb_shell_clipboard_idle_poll_deletions),
3641         (rb_shell_clipboard_entryview_changed_cb),
3642         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
3643         removals, to update things.
3645         (rb_shell_clipboard_sync): update the Select All and Select None
3646         sensitivity, based on what is selected. Fixed bug 172220.
3648 2006-03-02  James Livingston  <jrl@ids.org.au>
3650         * widgets/rb-library-browser.c: (rebuild_child_model): save and
3651         restore the selections of later models. This means that selecting the
3652         artist for the selected album does not reset the album selection.
3654 2006-03-02  James Livingston  <jrl@ids.org.au>
3656         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
3657         Stops it emitting critical warnings.
3659 2006-03-02  James Livingston  <jrl@ids.org.au>
3661         * lib/rb-file-helpers.c: (rb_uri_append_uri):
3662         * lib/rb-file-helpers.h: Add uri concatenation function for when the
3663         second fragment is already escaped.
3665         * sources/rb-generic-player-source.c:
3666         (rb_generic_player_source_class_init),
3667         (rb_generic_player_source_constructor), (impl_show_popup),
3668         (rb_generic_player_source_load_playlists),
3669         (rb_generic_player_source_transform_playlist_uri),
3670         (handle_playlist_entry_cb), (visit_playlist_dirs),
3671         (default_load_playlists), (default_transform_playlist_uri):
3672         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
3673         the device. Allow subclasses to override the playlist loading, and
3674         (playlist uri)->(actual uri) mapping. A lot of devices which have
3675         playlists won't work right now, but people will see them and hopefully
3676         file bugs.
3678         * sources/rb-psp-source.c: (rb_psp_source_class_init),
3679         (rb_psp_source_create_playlists): Adapt the PSP for the above change
3680         
3681         * sources/Makefile.am:
3682         + sources/rb-nokia770-source.{c,h}:
3683         * shell/rb-removable-media-manager.c:
3684         (rb_removable_media_manager_mount_volume): Add support for reading
3685         playlists of Nokia 770s.
3687 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3689         * data/glade/podcast-properties.glade:
3690         * podcast/rb-podcast-properties-dialog.c:
3691         (rb_podcast_properties_dialog_init),
3692         (rb_podcast_properties_dialog_update),
3693         (rb_podcast_properties_dialog_update_location),
3694         (rb_podcast_properties_dialog_update_download_location):
3695         Add 'download location' field showing the path to the downloaded copy.
3696         Fixes #330696.
3698 2006-03-01  Bastien Nocera  <hadess@hadess.net>
3700         * configure.ac: simplify HAVE_HAL define
3702 2006-03-01  Bastien Nocera  <hadess@hadess.net>
3704         * configure.ac:
3705         * lib/rb-file-helpers.c: (rb_uri_append_path):
3706         * lib/rb-file-helpers.h:
3707         * shell/rb-removable-media-manager.c:
3708         (rb_removable_media_manager_mount_volume):
3709         * sources/Makefile.am:
3710         * sources/rb-ipod-source.c:
3711         * sources/rb-psp-source.*:
3712         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
3713         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
3715 2006-03-02  James Livingston  <jrl@ids.org.au>
3717         * shell/rb-shell-player.c: (rb_shell_player_set_property),
3718         (rb_shell_player_play), (rb_shell_player_jump_to_current),
3719         (swap_playing_source), (rb_shell_player_playpause),
3720         (rb_shell_player_sync_buttons), (actually_set_playing_source),
3721         (rb_shell_player_set_playing_source_internal): check for the entry
3722         view being NULL before trying to use it. Lets us support sources which
3723         don't have an entry view. From bug 331673.
3725 2006-03-01  Bastien Nocera  <hadess@hadess.net>
3727         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
3728         use gnome_vfs_read_entire_file with a URI, not a local filename
3730 2006-03-01  James Livingston  <jrl@ids.org.au>
3732         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
3733         first-seen and last-seen when merging duplicate entries.
3735 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3737         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
3738         * widgets/rb-property-view.h:  New function, allowing custom 
3739         interactive search functions for property views.
3740         
3741         * sources/rb-podcast-source.c: 
3742         (feed_select_change_cb): Only do a new query when the selection
3743         actually changes.
3744         (rb_podcast_source_constructor),
3745         (rb_podcast_source_feed_title_search_func):
3746         Interactive search function for podcast feed titles.  Fixes #327451.
3748 2006-03-01  James Livingston  <jrl@ids.org.au>
3750         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
3751         the uri in the callback, since it causes symbols to not be escaped.
3752         Fixes bug 332976.
3754         * data/ui/rhythmbox-ui.xml:
3755         * sources/rb-import-errors-source.c:
3756         (rb_import_errors_source_class_init),
3757         (rb_import_errors_source_constructor), (impl_get_status),
3758         (impl_move_to_trash),
3759         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
3760         import errors source
3761         
3762         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
3763         (rb_entry_view_append_column): unescape the URI for display.
3765 2006-03-01  James Livingston  <jrl@ids.org.au>
3767         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3768         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
3769         function fails.
3771 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
3773         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
3774         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
3775         * sources/rb-play-queue-source.c:
3776         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
3777         (rb_play_queue_source_update_count):  Use "Play Queue" instead
3778         of "Queued Songs".
3780         Fixes #331637.
3782 2006-03-01  James Livingston  <jrl@ids.org.au>
3784         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
3785         Fixes bug 332913.
3787 2006-03-01  James Livingston  <jrl@ids.org.au>
3789         * daapsharing/rb-daap-mdns-browser-howl.c:
3790         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
3791         * daapsharing/rb-daap-mdns-publisher-avahi.c:
3792         (rb_daap_mdns_publisher_class_init),
3793         (rb_daap_mdns_publisher_finalize):
3794         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
3795         * player/rb-recorder-gst.c: (rb_recorder_class_init),
3796         (rb_recorder_finalize):
3797         * rhythmdb/rhythmdb-query-model.c:
3798         (rhythmdb_query_model_constructor):
3799         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
3800         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
3801         * sources/rb-playlist-source-recorder.c:
3802         (rb_playlist_source_recorder_style_set),
3803         (rb_playlist_source_recorder_class_init),
3804         (rb_playlist_source_recorder_finalize):
3805         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
3806         other classes in the same way, so they don't break when derived from.
3808 2006-03-01  James Livingston  <jrl@ids.org.au>
3810         * sources/rb-generic-player-source.c:
3811         (rb_generic_player_source_constructor): don't get the parent class in
3812         a dumb way, and it breaks when the class is derived from.
3814 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
3816         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
3818 2006-03-01  James Livingston  <jrl@ids.org.au>
3820         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
3821         not work in glib 2.8 systems.
3823 2006-03-01  James Livingston  <jrl@ids.org.au>
3825         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
3826         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
3827         say it is crap.
3829         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
3830         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
3831         podcasts on ion-local places
3833         * rhythmdb/gsequence.c: (g_sequence_node_new),
3834         (g_sequence_node_free): use gslice if we are building against glib
3835         2.10.
3837         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
3838         local files too, so it doesn't block.
3840 2006-02-28  James Livingston  <jrl@ids.org.au>
3842         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
3843         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
3844         stats the file. Stops the UI blocking while stats are done.
3846 2006-02-28  James Livingston  <jrl@ids.org.au>
3848         * sources/rb-static-playlist-source.c:
3849         (rb_static_playlist_source_class_init),
3850         (rb_static_playlist_source_constructor), (impl_reset_filters),
3851         (impl_get_property_views), (impl_browser_toggled),
3852         (rb_static_playlist_source_do_query),
3853         (rb_static_playlist_source_browser_changed_cb): add browsers to static
3854         playlists. From bug 118862.
3856         * sources/rb-play-queue-source.c:
3857         (rb_play_queue_source_class_init): disable them for the play queue.
3859 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
3861         * data/glade/library-prefs.glade:  Add a mnemonic.
3862         * sources/rb-library-source.c:
3863         (rb_library_source_location_button_clicked_cb):  Use title
3864         capitalization for window title.
3866 2006-02-28  James Livingston  <jrl@ids.org.au>
3868         * sources/rb-auto-playlist-source.c:
3869         (construct_query_from_selection): don't create a subquery for only one
3870         criteria, as it's a silly effifiency degredation.
3872 2006-02-28  James Livingston  <jrl@ids.org.au>
3874         * rhythmdb/rhythmdb.h:
3875         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3876         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
3877         saved to disk
3879         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
3880         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3881         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
3882         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
3883         IGNORE (e.g. known video stream) create an entry of the Ignore type.
3884         This will make importing files quicker as we don't need to try files
3885         that we know are not going to be interesting - especially useful when
3886         using the library watching facility.
3888         Fixes bug 323179.
3890 2006-02-28  James Livingston  <jrl@ids.org.au>
3892         * shell/rb-shell.c: (rb_shell_constructor),
3893         (rb_shell_set_visibility): fix browser and source-list pane
3894         positioning, that I broke with the "remember visibility" patch.
3896 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3898         * metadata/rb-metadata-dbus-service.c: (main):
3899         Change argument handling so you can use --debug with the --load and
3900         --can-save test modes.
3901         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
3902         Use a separate GMainContext, not the default one.  Probably fixes
3903         #332344.
3905 2006-02-27  James Livingston  <jrl@ids.org.au>
3907         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
3908         first starting up. Fixes bug 330342.
3910 2006-02-27  James Livingston  <jrl@ids.org.au>
3912         * sources/rb-sourcelist-model.c:
3913         (rb_sourcelist_model_set_dnd_targets):
3914         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
3915         COPY action for draging sources and tracks, not MOVE as well. Stops
3916         Nautilus moving file away, and fixes bug 332488.
3918 2006-02-27  James Livingston  <jrl@ids.org.au>
3920         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
3922         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
3923         and Last Played metadata off iPods. Closes bug 324648.
3925 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3927         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
3928         Disable audioscrobbler when run with the --no-registration flag, since
3929         last.fm doesn't allow multiple concurrent clients per user.
3931 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3933         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
3934         Rename renamable sources when F2 is pressed when the sourcelist has
3935         focus.  Fixes #330700.
3937 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3939         * shell/rb-playlist-manager.c: (cleanup_edit_data),
3940         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
3941         (rb_playlist_manager_cmd_edit_automatic_playlist):
3942         Fix various crashes when deleting auto playlists previously edited
3943         by disconnecting signal handlers when the query editor is closed or
3944         the playlist is deleted.
3946 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3948         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
3949         removed load failure dialog, and actually use the friendly file type
3950         name in error messages.
3952 2006-02-24  James Livingston  <jrl@ids.org.au>
3954         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
3956         * sources/rb-library-source.c:
3957         (rb_library_source_location_button_clicked_cb),
3958         (rb_library_source_preferences_sync),
3959         (rb_library_source_library_location_cb): convert the library URI to
3960         for display, and back again. Fixes bug 332356.
3962 2006-02-23  James Livingston  <jrl@ids.org.au>
3964         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
3965         (rhythmdb_process_metadata_load), (monitor_subdirectory),
3966         (rhythmdb_sync_library_location): don't monitor files at all if
3967         watching is turned off. From bug 323096.
3969 2006-02-23  James Livingston  <jrl@ids.org.au>
3971         * data/rhythmbox.schemas:
3972         * lib/rb-preferences.h:
3973         * shell/rb-shell.c: (rb_shell_constructor),
3974         (rb_shell_set_visibility): remember main window visibility between
3975         sessions. Fixes bug 127320.
3977 2006-02-23  James Livingston  <jrl@ids.org.au>
3979         * data/glade/library-prefs.glade:
3980         * sources/rb-library-source.c: (impl_get_config_widget),
3981         (rb_library_source_location_button_clicked_cb),
3982         (rb_library_source_preferences_sync),
3983         (rb_library_source_library_location_cb),
3984         (rb_library_source_watch_toggled_cb): change the library-location
3985         widgets from the file-chooser drop menu to a text entry and Browse
3986         button. This is needed to prevent the location from chaning if the
3987         directory cannot be found. Fixes bug 328414.
3989 2006-02-23  James Livingston  <jrl@ids.org.au>
3991         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
3992         item. Fixes bug 329042.
3994 2006-02-23  James Livingston  <jrl@ids.org.au>
3996         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
3998         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
3999         comma in some podcast feeds. Fixes bug 332194.
4001 2006-02-23  James Livingston  <jrl@ids.org.au>
4003         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
4004         lower priority.
4006         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
4007         the internal audio cd URIs from "cdda://device:track" to
4008         "cdda://track#device" as it makes processing much easier.
4010         * shell/rb-shell-player.c: (rb_shell_player_open_location):
4011         * player/rb-player-gst.c: don't have the shell close the player
4012         between songs, as doing that should be backend-specific. Make the
4013         gstreamer backend close before starting a new track, unless the old
4014         and new ones are both tracks on the same audio cd. Just seek in that
4015         case.
4017 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4019         * doc/reference/rhythmbox.types: Fix doc build a bit more.
4021 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4023         * configure.ac: Enable more warnings in my stupid setup too.
4024         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
4025         #332210.
4027 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4029         * sources/rb-missing-files-source.h,
4030         * sources/rb-missing-files-source.c,
4031         * sources/rb-import-errors-source.h,
4032         * sources/rb-import-errors-source.c:
4033         Add library meta-sources, showing missing files and import errors.
4034         Fixes #167763, #142322.
4036         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
4037         * sources/rb-sourcelist-model.h:
4038         * sources/rb-sourcelist.c: (rb_sourcelist_append),
4039         (match_source_to_iter), (rb_sourcelist_source_to_iter),
4040         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
4041         (visibility_notify_cb):
4042         Store source visibility in the sourcelist model, so we can determine
4043         child source counts correctly and get the sourcelist expander column
4044         right.
4045         
4046         * widgets/rb-entry-view.h:
4047         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4048         (rb_entry_view_append_column), (set_column_visibility):
4049         Allow the creator of the entry view to specify which columns are
4050         always visible.
4052         * sources/rb-source.h:
4053         * sources/rb-source.c: (_autohide_update_visibility),
4054         (_rb_autohide_source_row_deleted_cb),
4055         (_rb_autohide_source_row_inserted_cb),
4056         (_rb_source_hide_when_empty):
4057         Allow sources to automatically hide themselves when empty.
4058         
4059         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
4060         * sources/rb-library-source.c: (rb_library_source_constructor):
4061         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4062         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
4063         Explicitly specify which columns are always visible.
4064         
4065         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4066         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
4067         Remove load error signal handling and load failure dialog.
4068         Create missing files and import errors sources for the library.
4070         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
4071         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
4072         Create DB entries for import errors rather than emitting the 'load
4073         error' signal; mark loaded entries visible.
4074         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
4075         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
4076         (rhythmdb_prop_get_type): Store string form of last seen time for
4077         hidden entries, since it's used in the missing files source.
4078         (rhythmdb_entry_import_error_get_type): 
4079         Add entry type for import errors.
4080         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
4081         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
4082         (rhythmdb_entry_move_to_trash_set_error),
4083         (rhythmdb_entry_move_to_trash):  
4084         Correct spelling, add missing rhythmdb_commit.
4085         * rhythmdb/rhythmdb.h:  
4086         Add import error entry type and last seen string property.
4087         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
4088         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4089         (save_entry):  Ignore string form of 'last seen' property.
4091         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
4092         Don't try to play hidden entries or import error entries.
4094         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
4095         * sources/Makefile.am: Add meta-source files
4096         * widgets/Makefile.am: Remove load failure dialog files
4098 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4100         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
4101         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
4102         few bits and pieces.
4104 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4106         * metadata/test-metadata.c: (load_metadata_cb):
4107         Fix compile warning for ignoring return value from getcwd, #332064.
4109 2006-02-21  James Livingston  <jrl@ids.org.au>
4111         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
4112         (edit_auto_playlist_deleted_cb),
4113         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
4114         playlist editor non-modal. Fixes bug 320030.
4116 2006-02-21  James Livingston  <jrl@ids.org.au>
4118         * shell/rb-shell.c: (rb_shell_constructor):
4119         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
4120         (rb_header_set_show_artist_album):
4121         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
4122         (rb_song_display_box_sync): make the queue sidebar and song display
4123         not get affected by gtk_widget_show_all. Fixes bug 332001.
4125 2006-02-21  James Livingston  <jrl@ids.org.au>
4127         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4129         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
4130         feeds which use timezone names instead of offsets. Doesn't actually
4131         parse the timezone name since they are not standardised. Fixes bug
4132         331691.
4134 2006-02-21  James Livingston  <jrl@ids.org.au>
4136         * help/C/figures/rb-notification-area.png:
4137         * help/C/figures/rb-sidebar.png:
4138         * help/C/quick-reference.xml: remove obsolete files from CVS.
4140         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
4141         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
4142         (rhythmdb_query_free), (rhythmdb_query_serialize),
4143         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
4144         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
4146         * widgets/rb-query-creator-properties.c: add prefix and suffix
4147         (escapedStringCriteriaGetWidgetData): use better escaping, so it
4148         doesn't escape the ':' separator in uris.
4150 2006-02-21  James Livingston  <jrl@ids.org.au>
4152         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
4153         on startup.
4155 2006-02-21  James Livingston  <jrl@ids.org.au>
4157         * NEWS: update with recent changes
4159 2006-02-21  James Livingston  <jrl@ids.org.au>
4161         * shell/rb-shell.c: (rb_shell_constructor),
4162         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
4163         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
4164         (rb_druid_browse_clicked_cb), (do_response):
4165         * widgets/rb-druid.h: Make running the druid not block RBShell
4166         starting up. This is required so that bonobo registration doesn't time
4167         out. Fixed bug 318766.
4169 2006-02-21  James Livingston  <jrl@ids.org.au>
4171         * rhythmdb/rhythmdb-property-model.c:
4172         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
4173         hash table after using it, not before. Fixed bug 331922.
4175 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4177         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
4178         (rb_shell_view_queue_as_sidebar_changed_cb):
4179         When playing from the queue, only attempt to highlight the queue
4180         source in the source list if it's actually visible there.  Otherwise,
4181         leave the preempted source highlighted.  Mostly fixes #330819.
4183 2006-02-20  James Livingston  <jrl@ids.org.au>
4185         * rhythmdb/rhythmdb-property-model.c:
4186         (rhythmdb_property_model_row_inserted_cb),
4187         (rhythmdb_property_model_prop_changed_cb),
4188         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
4189         store the roperty value in the entry-mapping table, so that receiving
4190         the remove signal from a query model before we get notified of a
4191         change doesn't cause a crash. Fixes bug 331770.
4193 2006-02-20  James Livingston  <jrl@ids.org.au>
4195         * data/ui/rhythmbox-ui.xml:
4196         * sources/rb-play-queue-source.c:
4197         (rb_play_queue_source_class_init),
4198         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
4199         playlist things in the queue popup source. From 330490.
4201         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
4202         previous commit
4204 2006-02-20  James Livingston  <jrl@ids.org.au>
4206         * widgets/rb-song-info.c: (rb_song_info_response_cb),
4207         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
4208         attempt to sync data for non-editable entries when using
4209         next/previous. Don't write our Year if it wasn't changed. Fixes bug
4210         331762.
4212 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
4214         * .cvsignore:
4215         * Makefile.am:
4216         * autogen.sh:
4217         * configure.ac:
4218         * help/.cvsignore:
4219         * help/Makefile.am: ported to gnome-doc-utils
4220         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
4221         * help/ChangeLog: added, for translators
4222         * help/C/rhytmbox-C.omf: removed, no longer used
4223         Know issue: figures are installed, but some are not showed; manual
4224         description added, but not showed in Yelp while browsing. I'll
4225         investigate, maybe are needed some little changes to
4226         help/C/rhythmbox.xml.
4228 2006-02-20  James Livingston  <jrl@ids.org.au>
4230         * data/ui/rhythmbox-ui.xml:
4231         * help/C/figures/rb-adv.png:
4232         * help/C/figures/rb-asst-finish.png:
4233         * help/C/figures/rb-asst-library.png:
4234         * help/C/figures/rb-asst-start.png:
4235         * help/C/figures/rb-basic.png:
4236         * help/C/figures/rb-browser.png:
4237         * help/C/figures/rb-context-menu.png:
4238         * help/C/figures/rb-empty.png:
4239         * help/C/figures/rb-full-play.png:
4240         * help/C/figures/rb-group-auto.png:
4241         * help/C/figures/rb-group-create.png:
4242         * help/C/figures/rb-group.png:
4243         * help/C/figures/rb-imported.png:
4244         * help/C/figures/rb-iradio-add.png:
4245         * help/C/figures/rb-iradio.png:
4246         * help/C/figures/rb-nextprev.png:
4247         * help/C/figures/rb-nobrowse-play.png:
4248         * help/C/figures/rb-notification-area-menu.png:
4249         * help/C/figures/rb-player.png:
4250         * help/C/figures/rb-prefs-general.png:
4251         * help/C/figures/rb-prefs-ipod.png:
4252         * help/C/figures/rb-prefs-library.png:
4253         * help/C/figures/rb-prefs.png:
4254         * help/C/figures/rb-repeat.png:
4255         * help/C/figures/rb-search.png:
4256         * help/C/figures/rb-shuffle.png:
4257         * help/C/figures/rb-stats.png:
4258         * help/C/figures/rb-toolbar-editor.png:
4259         * help/C/figures/rb-volume-mute.png:
4260         * help/C/figures/rhythmbox-group.png:
4261         * help/C/figures/rhythmbox-tray-icon.png:
4262         * help/C/user-guide.xml: remove old stuff from cvs
4264 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4266         * metadata/rb-metadata-dbus-client.c: 
4267         * metadata/rb-metadata-dbus-service.c:
4268         * metadata/rb-metadata-dbus.c:
4269         * metadata/rb-metadata-dbus.h:
4270         New files, adding an external service for reading and writing
4271         metadata, and an implementation of the RBMetaData interface that uses
4272         dbus to communicate with it.
4273         
4274         * metadata/rb-metadata.h,
4275         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
4276         (rb_metadata_get_field_name): Put metadata details in a static array
4277         instead of using a hash table, and add a field for language code (not
4278         used for anything)
4279         * metadata/rb-metadata-gst.c: Updates for changes in
4280         rb-metadata-common.c, fix signal handler closure leak for the typefind
4281         element's have-type signal, and add XML to the list of types we ignore.
4282         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
4283         Update for changes to rb_metadata_get_field_type
4284         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
4285         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
4286         here and there.
4287         
4288         * configure.ac: Add --enable-metadata-helper option (not enabled by
4289         default) to use the external metadata service
4290         * metadata/Makefile.am: Add new files
4291         * metadata/test-metadata.c:  Test program for the metadata service
4293         Fixes #329597. 
4295 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4297         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
4298         * sources/rb-podcast-source.c: (impl_get_ui_actions),
4299         (rb_podcast_source_cmd_new_podcast):
4300         Move 'new podcast' action to the podcast source, and add it to the
4301         toolbar.  Fixes #331562.
4303 2006-02-19  James Livingston  <jrl@ids.org.au>
4305         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
4306         menus, and away from move-to-trash. Fixes bug 331013.
4308 2006-02-19  James Livingston  <jrl@ids.org.au>
4310         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
4311         when deleting last entry. Fixes bug 331712.
4313 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4315         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4316         (rb_entry_view_button_press_cb):
4317         * widgets/rb-entry-view.h: Emit show-popup when right clicked
4318         anywhere, and include a flag indicating whether the click was over an
4319         entry or not.
4320         
4321         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
4322         (rb_playlist_source_songs_show_popup_cb):
4323         * sources/rb-playlist-source.h:
4324         Add the 'over entry' flag to the class show popup method, and in the
4325         default handler, ignore right clicks when not over an entry.
4326         
4327         * sources/rb-iradio-source.c:
4328         (rb_iradio_source_songs_show_popup_cb):
4329         * sources/rb-library-source.c:
4330         (rb_library_source_songs_show_popup_cb):
4331         * sources/rb-podcast-source.c:
4332         (rb_podcast_source_songs_show_popup_cb):
4333         Show the source list popup menu when right clicked while not over an
4334         entry.
4336         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
4337         For the queue sidebar, always display the popup so the 'clear queue'
4338         action is available regardless of where you click.  For the queue
4339         source, only display the popup when right clicked over an entry.
4340         Fixes #331392.
4342 2006-02-19  James Livingston  <jrl@ids.org.au>
4344         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
4345         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
4346         entry view, when we're not even using it
4348         * rhythmdb/rhythmdb-property-model.c:
4349         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
4350         function, rather than a copy of the code.
4352         * shell/rb-playlist-manager.c:
4353         (rb_playlist_manager_playlist_row_inserted_cb),
4354         (rb_playlist_manager_set_source_internal),
4355         (rb_playlist_manager_playlist_entries_changed): use the query-model
4356         directly, rather than the source's entry view.
4358         * shell/rb-source-header.c: don't use the entry view, just select the
4359         source widget.
4361 2006-02-18  James Livingston  <jrl@ids.org.au>
4363         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
4365         * help/C/figures/rb-iradio-main.png:
4366         * help/C/figures/rb-notification-area-menu.png:
4367         * help/C/figures/rb-notification-window.png:
4368         * help/C/figures/rb-notification-zone.png:
4369         * help/C/figures/rb-podcast-main.png:
4370         * help/C/figures/rb-statusbar.png:
4371         * help/C/figures/rb-toolbar-prevplaynext.png:
4372         * help/C/figures/rb-toolbar-repeat.png:
4373         * help/C/figures/rb-toolbar-shuffle.png:
4374         * help/C/figures/rb-toolbar.png:
4375         * help/C/figures/rb-volume-changer.png:
4376         * help/C/figures/rb-window-small.png:
4377         * help/C/figures/rb-window.png:
4378         * help/C/rhythmbox.xml: Update user guide with some of the changes
4379         that have occurred after 0.8.8. From bug 314001.
4381 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4383         * rhythmdb/rhythmdb-query-results.h,
4384           rhythmdb/rhythmdb-query-results.c:
4385         New interface for objects that accept query results from RhythmDB.
4387         * rhythmdb/rhythmdb-query-model.c:
4388         (rhythmdb_query_model_query_results_init),
4389         (rhythmdb_query_model_set_query),
4390         (rhythmdb_query_model_add_results),
4391         (rhythmdb_query_model_query_complete):
4392         * rhythmdb/rhythmdb-query-model.h:
4393         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
4395         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
4396         (rhythmdb_tree_do_full_query):
4397         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
4398         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
4399         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
4400         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
4401         * rhythmdb/rhythmdb.h:
4402         Pass query results through the RhythmDBQueryResults interface, rather
4403         than directly to a RhythmDBQueryModel.
4405         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
4406         (rb_podcast_manager_db_entry_deleted_cb):
4407         * sources/rb-auto-playlist-source.c:
4408         (rb_auto_playlist_source_do_query),
4409         (rb_auto_playlist_source_set_query):
4410         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
4411         * sources/rb-library-source.c: (rb_library_source_constructor),
4412         (rb_library_source_do_query):
4413         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
4414         (rb_podcast_source_do_query):
4415         * rhythmdb/rhythmdb-property-model.c:
4416         (rhythmdb_property_model_drag_data_get):
4417         Cast the query model to RhythmDBQueryResults when passing to one of
4418         the RhythmDB query methods.
4420         * rhythmdb/Makefile.am: Add new files.
4422 2006-02-18  James Livingston  <jrl@ids.org.au>
4424         * data/ui/rhythmbox-ui.xml:
4425         * shell/rb-playlist-manager.c:
4426         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
4427         "queue playlist" item to source context menu. Fixes bug 330490.
4429 2006-02-18  James Livingston  <jrl@ids.org.au>
4431         * data/glade/general-prefs.glade:
4432         * shell/rb-shell-preferences.c:
4433         (rb_shell_preferences_column_check_changed_cb),
4434         (rb_shell_preferences_sync):
4435         * sources/rb-library-source.c: (rb_library_source_constructor):
4436         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4437         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
4438         (rb_entry_view_append_column): Add a "quality" colume which indicates
4439         the bitrate of media. Part of bug 167659.
4441 2006-02-18  James Livingston  <jrl@ids.org.au>
4443         * shell/rb-play-order.c: (do_next_idle_cb),
4444         (default_playing_entry_removed): move to next track when playing entry
4445         is deleted. Fixes bug 131150.
4447         * shell/rb-shell-player.h: remove ancient stuff
4449 2006-02-17  William Jon McCann  <mccann@jhu.edu>
4451         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
4452         (rb_shell_clipboard_set_property): 
4453         * shell/rb-shell.c (rb_shell_sync_party_mode):
4454         Trigger a resync of the clipboard properties when changing party mode.
4456 2006-02-17  William Jon McCann  <mccann@jhu.edu>
4458         * sources/rb-static-playlist-source.c: Fix includes.
4460         * sources/rb-source.c (rb_source_can_rename) 
4461         (rb_source_can_delete, rb_source_can_move_to_trash):
4462         Return FALSE if in party mode.
4464         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
4465         Replace fullscreen with party mode.
4466         (rb_shell_window_delete_cb): Don't quit if in party mode.
4467         (rb_shell_view_party_mode_changed_cb): Setup party mode.
4468         (window_state_event_cb): Try to deiconify shell when iconified
4469         in party mode.
4470         (rb_shell_sync_party_mode): Sync party mode properties.
4471         Currently, that means [de]sensitizing close, quit, and small-display,
4472         going into fullscreen mode with window stuck and kept above, and
4473         toggling queue-only for the shell player.
4474         (rb_shell_sync_smalldisplay): Sensitive party mode.
4475         (rb_shell_get_party_mode): Get party mode setting.
4477         * shell/rb-shell-player.c (rb_shell_player_class_init) 
4478         (rb_shell_player_set_property, rb_shell_player_get_property):
4479         Add queue-only property.
4480         (rb_shell_player_entry_activated_cb): If in party mode
4481         only queue the entry on activation.
4483         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
4484         Break out from set_properties.  Desensitize some actions when
4485         in party mode.
4486         (rb_playlist_manager_set_property): Break out set_source_internal.
4488         * data/rhythmbox.schemas: Remove fullscreen mode.
4490         * data/ui/rhythmbox-ui.xml: Replace fullscreen
4491         action with party mode.
4493         Partial fix for #323933
4495 2006-02-17  James Livingston  <jrl@ids.org.au>
4497         * configure.ac:
4498         * shell/rb-removable-media-manager.c:
4499         (get_nautilus_burn_drive_for_path),
4500         (rb_removable_media_manager_playing_uri_changed_cb): only use
4501         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
4502         over the list when it doesn't.
4504 2006-02-17  James Livingston  <jrl@ids.org.au>
4506         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
4507         (rb_iradio_source_first_time_changed): Only do the import on the
4508         first change from FALSE to TRUE.
4510         * sources/rb-library-source.c:
4511         (rb_library_source_preferences_sync),
4512         (rb_library_source_library_location_cb): set the first-run done flag
4513         if the user presses close and then sets their watches library
4514         location. Fixes bug 325997.
4516 2006-02-17  James Livingston  <jrl@ids.org.au>
4518         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
4519         removable media manager gobject properties
4521         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
4522         (split_drive_from_cdda_uri),
4523         (rb_removable_media_manager_playing_uri_changed_cb),
4524         (rb_removable_media_manager_load_media): stop polling a cd drive
4525         when we are playing from it. Part of bug 330716.
4527 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4529         * rhythmdb/rhythmdb-query-model.c:
4530         (rhythmdb_query_model_set_property),
4531         (rhythmdb_query_model_finalize),
4532         (rhythmdb_query_model_base_entry_removed):
4533         Propagate entry removal from base models out to attached property
4534         models.  Fixes the rest of #331165.
4536 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4538         * rhythmdb/rhythmdb-property-model.c:
4539         (rhythmdb_property_model_row_inserted_cb),
4540         (rhythmdb_property_model_prop_changed_cb),
4541         (rhythmdb_property_model_insert):
4542         Don't store NULL as a hash table value if we want to use
4543         g_hash_table_lookup to check if a key exists, and get the checks for
4544         how and whether to handle entry changes the right way around.
4545         Fixes #331211 and half of #331165.
4547 2006-02-16  James Livingston  <jrl@ids.org.au>
4549         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
4550         the audio cd's TOC in a separate thread, so it doesn't block the UI.
4551         Fixes bug 329942.
4553 2006-02-16  James Livingston  <jrl@ids.org.au>
4555         * widgets/rb-library-browser.c: (reset_view_cb): make View All
4556         actually reset the browsers.
4558 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4560         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
4561         Escape the strings we pass into libnotify so we don't get blank
4562         notifications when the song name contains '&' etc.  Fixes #330784.
4564 2006-02-16  James Livingston  <jrl@ids.org.au>
4566         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
4567         enable "View All" when there is only a search box and no browser.
4568         Fixes bug 331395.
4570 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4572         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
4573         popup menu, which I forgot to commit with the patch for bug #330014.
4575 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4577         * shell/rb-shell-player.c: (open_location_thread):
4578         Sync button and entry view state once we've started the player, so the
4579         entry view gets into the playing state for iradio.
4581 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4583         * shell/rb-shell-player.c: (open_location_thread):
4584         Take GDK lock before doing anything UI-related.
4586 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4588         * shell/rb-shell.c: Move 'new iradio station' action to
4589         iradio source.
4591         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4592         (rb_iradio_source_init), (rb_iradio_source_finalize),
4593         (rb_iradio_source_constructor):
4594         Remove some unused stuff.
4596         (guess_uri_scheme), (rb_iradio_source_add_station),
4597         (rb_iradio_source_add_from_playlist),
4598         (impl_get_ui_actions), (new_station_location_added),
4599         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
4600         action, include it in the toolbar, and make sure the URI we add has a
4601         scheme.  Fixes #327059, more or less.
4603 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4605         * sources/rb-play-queue-source.c:
4606         (rb_play_queue_source_class_init),
4607         (rb_play_queue_source_constructor),
4608         (rb_play_queue_source_update_count),
4609         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
4610         Add a toolbar button to clear the play queue, and make it sensitive
4611         only when there are entries in the queue.  Fixes #330014.
4613         * sources/rb-source.c: (_rb_source_register_action_group):
4614         * sources/rb-source.h:  Add helper function to register an
4615         action group for a source.
4617         * sources/rb-library-source.c: (rb_library_source_constructor):
4618         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
4619         (register_action_group):  Use _rb_source_register_action_group.
4621 2006-02-15  James Livingston  <jrl@ids.org.au>
4623         * widgets/rb-song-info.c: (rb_song_info_add_completion),
4624         (rb_song_info_constructor), (rb_song_info_set_property): make
4625         tag-editing completion work for albums too.
4627 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4629         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
4630         Check the 'limit' checkbox for time-limited playlists.
4632 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
4634         * widgets/rb-song-info.c: Prove text-completion when editing title,
4635         artist or album
4637 2006-02-14  James Livingston  <jrl@ids.org.au>
4639         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
4640         tray icon popup menu. Fixes bug 331026.
4642 2006-02-14  James Livingston  <jrl@ids.org.au>
4644         * data/iradio-initial.pls: update the Virgin Radio stations to use the
4645         Ogg Vorbis streams, instead of the MP3 ones.
4647 2006-02-14  James Livingston  <jrl@ids.org.au>
4649         * rhythmdb/rhythmdb-property-model.c:
4650         (rhythmdb_property_model_class_init),
4651         (rhythmdb_property_model_drag_data_get):
4652         * rhythmdb/rhythmdb-query-model.c:
4653         (rhythmdb_query_model_title_sort_func):
4654         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
4655         LOCATION as the key. Fixes bug 330601.
4657 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4659         * sources/rb-playlist-source.c: (playlist_iter_func):
4660         Make it compile with older versions of totem-plparser too.      
4662 2006-02-13  James Livingston  <jrl@ids.org.au>
4664         * rhythmdb/rhythmdb.h:
4665         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
4666         structure private, since things should use the accessor functions
4667         rather than manipulating it directly - Only RhythmDB and the
4668         implementation classes should access it directly. Part of the RhythmDB
4669         cleanup of bug 330226.
4671         * iradio/rb-station-properties-dialog.c:
4672         (rb_station_properties_dialog_update_title),
4673         (rb_station_properties_dialog_update_title_entry),
4674         (rb_station_properties_dialog_update_genre),
4675         (rb_station_properties_dialog_update_location),
4676         (rb_station_properties_dialog_update_play_count),
4677         (rb_station_properties_dialog_update_bitrate),
4678         (rb_station_properties_dialog_update_last_played),
4679         (rb_station_properties_dialog_update_rating),
4680         (rb_station_properties_dialog_update_playback_error),
4681         (rb_station_properties_dialog_sync_entries):
4682         * podcast/rb-feed-podcast-properties-dialog.c:
4683         (rb_feed_podcast_properties_dialog_update_title),
4684         (rb_feed_podcast_properties_dialog_update_title_label),
4685         (rb_feed_podcast_properties_dialog_update_author),
4686         (rb_feed_podcast_properties_dialog_update_location),
4687         (rb_feed_podcast_properties_dialog_update_copyright),
4688         (rb_feed_podcast_properties_dialog_update_language),
4689         (rb_feed_podcast_properties_dialog_update_summary):
4690         * podcast/rb-podcast-manager.c:
4691         (rb_podcast_manager_entry_downloaded),
4692         (rb_podcast_manager_db_entry_added_cb),
4693         (download_progress_update_cb),
4694         (rb_podcast_manager_db_entry_deleted_cb):
4695         * podcast/rb-podcast-properties-dialog.c:
4696         (rb_podcast_properties_dialog_update_title),
4697         (rb_podcast_properties_dialog_update_title_label),
4698         (rb_podcast_properties_dialog_update_feed),
4699         (rb_podcast_properties_dialog_update_location),
4700         (rb_podcast_properties_dialog_update_play_count),
4701         (rb_podcast_properties_dialog_update_bitrate),
4702         (rb_podcast_properties_dialog_update_last_played),
4703         (rb_podcast_properties_dialog_update_rating),
4704         (rb_podcast_properties_dialog_update_date),
4705         (rb_podcast_properties_dialog_update_description):
4706         * rhythmdb/rhythmdb-query-model.c:
4707         (rhythmdb_query_model_entry_changed_cb),
4708         (rhythmdb_query_model_remove_from_main_list),
4709         (rhythmdb_query_model_update_limited_entries),
4710         (rhythmdb_query_model_drag_data_get),
4711         (rhythmdb_query_model_album_sort_func):
4712         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4713         (save_entry):
4714         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
4715         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
4716         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
4717         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
4718         (rhythmdb_entry_get_double):
4719         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
4720         * shell/rb-play-order-random-by-age-and-rating.c:
4721         (rb_random_by_age_and_rating_get_entry_weight):
4722         * shell/rb-play-order-random-by-age.c:
4723         (rb_random_by_age_get_entry_weight):
4724         * shell/rb-play-order-random-by-rating.c:
4725         (rb_random_by_rating_get_entry_weight):
4726         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
4727         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
4728         (rb_shell_player_set_playing_entry),
4729         (rb_shell_player_sync_replaygain),
4730         (rb_shell_player_sync_with_source),
4731         (rb_shell_player_get_playing_song_duration), (info_available_cb):
4732         * sources/rb-playlist-source.c: (playlist_iter_func),
4733         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
4734         (rb_playlist_source_entry_added_cb):
4735         * sources/rb-podcast-source.c:
4736         (rb_podcast_source_post_status_cell_data_func):
4737         * sources/rb-source.c: (rb_source_update_play_statistics):
4738         * sources/rb-sourcelist-model.c:
4739         (rb_sourcelist_model_drag_data_get):
4740         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
4741         (rb_static_playlist_source_add_entry),
4742         (rb_static_playlist_source_remove_entry):
4743         * widgets/rb-entry-view.c: (type_ahead_search_func),
4744         (rb_entry_view_playing_cell_data_func),
4745         (rb_entry_view_rating_cell_data_func),
4746         (rb_entry_view_pixbuf_clicked_cb):
4747         * widgets/rb-header.c: (rb_header_get_duration):
4748         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
4749         (rb_song_info_populate_dialog),
4750         (rb_song_info_update_playback_error),
4751         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
4752         (rb_song_info_update_location), (rb_song_info_update_play_count),
4753         (rb_song_info_update_last_played), (rb_song_info_update_rating),
4754         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
4755         (rb_song_info_sync_entry_single): fix the huge number of times that
4756         the internals got accessed directly.
4758 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4760         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
4761         trash' are grouped together.
4762         * shell/main.c: (main): Pass no-registration flag in to RBShell
4763         constructor, rather than mysteriously always passing TRUE.
4764         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
4765         Set dirty flag when entries are removed from the model, so the play
4766         queue is marked dirty appropriately.
4767         * AUTHORS: update my email address
4769 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4771         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
4773         * widgets/rb-druid.c: (path_dialog_response_cb):
4774         If the URI is local, don't display the 'file://' prefix.  
4775         Fixes #330919.
4777 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4779         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
4780         Attach the notification to the tray icon widget, so libnotify
4781         positions it less badly.  Fixes #330876.
4783 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4785         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
4786         Reverse the selection list before returning it, so we get it in the
4787         right order.  Fixes #330283 and some other weirdness.
4789 2006-02-11  James Livingston  <jrl@ids.org.au>
4791         * shell/rb-shell.c: (rb_shell_constructor),
4792         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
4793         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
4794         make small-mode and fullscreen mutually exclusive, since they don't
4795         work together
4797         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
4798         Mode.
4800 2006-02-10  James Livingston  <jrl@ids.org.au>
4802         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
4803         since it can cause it to be slower than real-time. Should fix bug
4804         322270.
4806 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4808         * rhythmdb/rhythmdb-query-model.c:
4809         (rhythmdb_query_model_set_property):
4810         Think just a little bit harder about that last commit.
4812 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4814         * rhythmdb/rhythmdb-query-model.c:
4815         (rhythmdb_query_model_set_property):
4816         Get the check for hidden entries the right way around.
4817         Fixes #330527, #330514.
4819         (rhythmdb_query_model_set_sort_order):
4820         Ignore no-op sort order changes, so we don't get critical
4821         messages when selecting 'all' in auto playlist browsers.
4823 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4825         Patch by: Christophe Fergeau  <teuf@gnome.org>
4827         * sources/rb-removable-media-source.c:
4828         (rb_removable_media_source_init),
4829         (rb_removable_media_source_constructor):
4830         Move icon setup code to the constructor, as the volume property
4831         haven't been set yet when _init is called.
4833 2006-02-09  William Jon McCann  <mccann@jhu.edu>
4835         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
4836         Make the source pixbuf a dynamic property.
4838         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
4839         (rb_source_set_pixbuf, rb_source_set_property) 
4840         (rb_source_get_property): Add icon property.
4842         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
4843         (rb_auto_playlist_source_init):
4844         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
4845         (rb_static_playlist_source_init):
4846         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
4847         (rb_removable_media_source_init): 
4848         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
4849         (rb_podcast_source_init): 
4850         * sources/rb-library-source.c (rb_library_source_class_init) 
4851         (rb_library_source_set_property, rb_library_source_get_property): 
4852         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
4853         (rb_iradio_source_init): Remove impl_get_pixbuf and
4854         set icon property on source base class.
4856         * sources/rb-daap-source.c (rb_daap_get_icon): Get
4857         a different icon for when the share is password protected
4858         and locked.
4859         (rb_daap_source_new): Set icon property.
4860         (composite_icons): Composite an emblem on a pixbuf.
4861         (create_pixbufs): Load global pixbufs.
4862         (destroy_pixbufs): unref global pixbufs.
4863         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
4864         (connection_auth_cb, connection_connected_cb) 
4865         (connection_disconnected_cb): Update icon when connection
4866         status changes.
4867         (rb_daap_source_activate): Connect signals.
4869         * daapsharing/rb-daap-share.c (name_collision_cb): Run
4870         dialog with parent.
4872         * daapsharing/rb-daap-marshal.list: Add new signal.
4874         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
4875         (rb_daap_collision_dialog_new_run): Set parent of dialog.
4877         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
4878         Add authenticate, connected, and disconnected signals.
4879         (connection_get_password): emit authenticate signal instead
4880         of running dialog directly.
4881         (connection_connected, connection_disconnected): Emit signals.
4882         (handle_login): Emit connected signal.
4883         (handle_logout): Emit disconnected signal.
4884         (rb_daap_connection_do_something): Fix leak.
4886         Fixes #330291
4888 2006-02-09  James Livingston  <jrl@ids.org.au>
4890         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
4891         entries from the base model if we don't have show-hidden set. Fixes
4892         bug 330514.
4894 2006-02-08  William Jon McCann  <mccann@jhu.edu>
4896         * daapsharing/rb-daap-share.c (message_get_session_id):
4897         Ugh. Use strtoul instead of atoi.
4898         (session_id_validate): Add debug statements.
4900 2006-02-08  William Jon McCann  <mccann@jhu.edu>
4902         * daapsharing/rb-daap-connection.c (http_response_handler):
4903         Report the actual uri from the message in debug statements.
4905 2006-02-08  William Jon McCann  <mccann@jhu.edu>
4907         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
4908         Add context argument.
4909         (message_get_session_id): New function to parse session id from
4910         the message.
4911         (message_get_revision_number): Break out function to parse
4912         revision number from the message.
4913         (session_id_validate): New function to validate given session id
4914         is valid for given context (ie. client address).
4915         (session_id_generate): Generate a random session id.
4916         (session_id_create): Create a unique session id and store it.
4917         (session_id_remove): Remove a session id from the store.
4918         (login_cb): Create a session id instead of using a constant one.
4919         (logout_cb): Validate session id.
4920         (update_cb): Use new message_get_revision_number function.
4921         (databases_cb): Validate session id.
4922         (server_cb): Add server context to argument list for callbacks.  It
4923         is needed to look up the remote host.
4924         (db_entry_changed_cb): Use braces.
4925         (soup_auth_callback): Remove FIXME.
4926         (rb_daap_share_server_start): Create session id store.
4927         (rb_daap_share_server_stop): Destroy session id store.
4929         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
4930         Don't base64-encode password here since it needs to be
4931         combined with the username first.
4933         * daapsharing/rb-daap-connection.c (build_message):
4934         Add username to Authorization token.
4935         (handle_login, handle_song_listing) 
4936         (rb_daap_connection_do_something): Session id
4937         must be an unsigned int.
4939         Fixes #329814
4941 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4943         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
4944         Don't check if we've got a playing entry, ask the player object (duh).
4945         Might actually fix #329993.     
4947 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4949         * sources/rb-static-playlist-source.c:
4950         (rb_static_playlist_source_add_list_uri):
4951         Canonicalise URIs before trying to add them to the playlist, and 
4952         don't try to add files to the database for which there is 
4953         already an entry.
4955 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4957         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
4958         Don't ask the entry view if we're playing, just check if we've got a
4959         playing entry.  Fixes #329993.
4961 2006-02-08  James Livingston  <jrl@ids.org.au>
4963         * rhythmdb/rhythmdb-query-model.c:
4964         (rhythmdb_query_model_set_property),
4965         (rhythmdb_query_model_finalize),
4966         (rhythmdb_query_model_base_complete): remove
4967         rhythmdb_query_model_base_entry_prop_changed, so that two signals
4968         don't get emitted for entry changes. Fixes bug 330301.
4970         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4971         (rb_library_browser_init), (rb_library_browser_constructor),
4972         (rb_library_browser_new): do stuff in the constructor, not the init
4973         function, so that the db property gets set on RBPropertyViews
4974         correctly. Fixes a crash when dragging properties to a playlist.
4976 2006-02-07  William Jon McCann  <mccann@jhu.edu>
4978         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
4979         Actually stop soup server.  Fixes #329816.
4981 2006-02-07  James Livingston  <jrl@ids.org.au>
4983         * lib/rb-util.h:
4984         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
4985         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
4986         (collate_values_cb), (rb_collate_hash_table_keys),
4987         (rb_collate_hash_table_values): add functions to compare, copy and
4988         free string-lists. add functions to collate the keys or values of a
4989         hash table into a list.
4991         * rhythmdb/rhythmdb-property-model.c:
4992         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
4993         (_remove_entry_cb), (_add_entry_cb),
4994         (rhythmdb_property_model_set_property),
4995         (rhythmdb_property_model_get_property),
4996         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
4997         (rhythmdb_property_model_row_inserted_cb),
4998         (rhythmdb_property_model_prop_changed_cb),
4999         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
5000         that are hidden, storing those that we have counted in a hash-table.
5002         * shell/Makefile.am: fix build order issue
5004         * shell/rb-shell-player.c: (rb_shell_player_set_property):
5005         * sources/rb-source.h:
5006         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
5007         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5008         * sources/rb-podcast-source.c: (feed_select_change_cb): add
5009         browser-toggled method, rename _get_exta_views to _get_property_views,
5010         since several things depend on returning only that.
5012         * sources/rb-source.c: (rb_source_class_init),
5013         (rb_source_browser_toggled), (default_get_property_views),
5014         (rb_source_get_property_views), (rb_source_row_deleted_cb),
5015         (rb_source_gather_hash_keys),
5016         (rb_source_gather_selected_properties): above changes, and move some
5017         utility functions up from RBLibraryView
5019         * widgets/rb-property-view.c:
5020         (rb_property_view_selection_changed_cb): fix leak.
5022         * rhythmdb/rhythmdb-query-model.c:
5023         (rhythmdb_query_model_set_property),
5024         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
5025         (rhythmdb_query_model_set_sort_order),
5026         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
5027         query model being resorted.
5029         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
5030         NULL query.
5032         * rhythmdb/rhythmdb.h:
5033         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
5034         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
5035         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
5036         two queries. Add a function to append "property={X,Y,Z,...}" to a
5037         query.
5039         * sources/rb-library-source.c: (rb_library_source_class_init),
5040         (rb_library_source_finalize), (rb_library_source_constructor),
5041         (rb_library_source_cmd_choose_genre),
5042         (rb_library_source_cmd_choose_artist),
5043         (rb_library_source_cmd_choose_album), (impl_search),
5044         (impl_get_property_views), (impl_reset_filters),
5045         (rb_library_source_preferences_sync),
5046         (rb_library_source_browser_views_activated_cb),
5047         (rb_library_source_state_prefs_sync),
5048         (construct_query_from_selection), (rb_library_source_do_query),
5049         (rb_library_source_browser_changed_cb):
5050         * widgets/Makefile.am:
5051         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
5052         browser" widgets, which contains several property views, based on the
5053         code from RBLibrarySource. Make RBLibrarySource use it.
5055         * sources/rb-auto-playlist-source.c:
5056         (rb_auto_playlist_source_class_init),
5057         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
5058         (rb_auto_playlist_source_constructor), (impl_reset_filters),
5059         (impl_get_property_views), (impl_browser_toggled),
5060         (construct_query_from_selection),
5061         (rb_auto_playlist_source_do_query),
5062         (rb_auto_playlist_source_set_query),
5063         (rb_auto_playlist_source_browser_changed_cb): Use the new
5064         library-browser widget to add browsers to automatic playlists.
5066 2006-02-07  James Livingston  <jrl@ids.org.au>
5068         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
5069         properly.
5070         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
5071         type of the source is taken into account. Fixes bug 329621.
5073 2006-02-07  James Livingston  <jrl@ids.org.au>
5075         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5076         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
5077         1.1, and perform URI canonicalistion when first upgrading. This should
5078         fix our remaining canonicalisation issues, such as bug 329988.
5080 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
5082         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
5083         Track the playing entry when the entry view isn't in the playing
5084         state, so we don't have to get the state changes exactly right.
5085         Fixes #330135.
5087 2006-02-06  James Livingston  <jrl@ids.org.au>
5089         * shell/rb-shell-player.c: (open_location_thread),
5090         (rb_shell_player_open_location): fix several iradio issues: having to
5091         press play after double-clicking on a station, not working correctly
5092         without a http:// prefix, and ignoring totem-plparser results other
5093         than success or error (e.g. IGNORE).
5095 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
5097         Addition of dbus methods for dealing with static playlists and the
5098         play queue.  Fixes #329958.
5100         * shell/Makefile.am:
5101         * shell/rb-playlist-manager.h:
5102         * shell/rb-playlist-manager.xml:
5103         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
5104         (rb_playlist_manager_get_playlists),
5105         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
5106         (rb_playlist_manager_create_static_playlist),
5107         (rb_playlist_manager_delete_playlist),
5108         (rb_playlist_manager_add_to_playlist),
5109         (rb_playlist_manager_remove_from_playlist),
5110         (rb_playlist_manager_export_playlist):
5111         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
5112         to create, delete, list, modify, export, and import  static playlists.
5113         
5114         * shell/main.c: (main): Register playlist manager object with dbus.
5116         * shell/rb-shell.h:
5117         * shell/rb-shell.xml:
5118         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
5119         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
5120         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
5121         object, and implement the addToQueue and removeFromQueue methods.
5122         
5123         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
5124         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
5125         formats.
5127 2006-02-05  James Livingston  <jrl@ids.org.au>
5129         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
5130         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
5131         (save_entry): allow storage of booleans in the on-disk db, and
5132         save/load the HIDDEN property.
5134         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
5135         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
5136         to the state it was when RB shutdown. This makes RB appear to start
5137         faster, as tracks can appear before the stat is done. Remote files
5138         still start hidden. From bug 325215.
5140 2006-02-05  James Livingston  <jrl@ids.org.au>
5142         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
5143         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
5144         really cares about the difference from "entry-added", and it isn't
5145         emitted by the tree backend anyway.
5147         * rhythmdb/rhythmdb-query-model.c:
5148         (rhythmdb_query_model_constructor):
5149         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5150         remove the references to the entry-restored signal.
5152 2006-02-05  James Livingston  <jrl@ids.org.au>
5154         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
5155         issue.
5157 2006-02-05  James Livingston  <jrl@ids.org.au>
5159         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
5160         things are NULL before using g_object_unref. Fixes bug 327452.
5162         * player/rb-recorder-gst.c: (rb_recorder_construct):
5163         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
5164         rather than assertion.
5166         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
5167         emit a warning, rather than asserting if an unknown playlist type is
5168         encountered.
5170 2006-02-05  James Livingston  <jrl@ids.org.au>
5172         * widgets/Makefile.am:
5173         * widgets/rb-simple-view.c:
5174         * widgets/rb-simple-view.h: Move the two features that this class
5175         provides into RBPropertyView, and remove this class. Closes bug
5176         327500.
5178         * podcast/rb-feed-podcast-properties-dialog.c:
5179         * podcast/rb-feed-podcast-properties-dialog.h:
5180         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5181         (rb_podcast_source_feeds_show_popup_cb):
5182         * sources/rb-podcast-source.h:
5183         * widgets/rb-property-view.c: (rb_property_view_class_init),
5184         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
5185         (rb_property_view_append_column_custom),
5186         (rb_property_view_button_press_cb):
5187         * widgets/rb-property-view.h: Updated for the above change.
5189 2006-02-04  James Livingston  <jrl@ids.org.au>
5191         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
5192         too close to Move to Trash and people aren't likely to use it often.
5194 2006-02-04  James Livingston  <jrl@ids.org.au>
5196         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
5198 2006-02-04  James Livingston  <jrl@ids.org.au>
5200         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
5201         passed a path instead of a URI.
5203         * sources/rb-generic-player-source.c: (default_get_mount_path):
5204         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
5205         the path. This fixes bug 329723.
5207 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
5209         * daapsharing/rb-daap-structure.c:
5210         (rb_daap_content_code_string_as_int32):
5211         Use network byte order.
5213 2006-02-03  William Jon McCann  <mccann@jhu.edu>
5215         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
5216         Use a hash for source lookup.
5217         (mdns_service_added, mdns_service_removed): Handle
5218         service-added and service-removed signals from RBDaapMdnsBrowser.
5219         (remove_source): GDestroyNotify function for when sources
5220         are removed from the hash.
5221         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
5222         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
5223         (rb_daap_sources_shutdown): Update.
5224         (source_host_find): GHRFunc for finding a source by ip.
5225         (rb_daap_source_find_for_uri): Use the hash source lookup.
5227         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
5228         Namespace keys.
5229         (password_check_button_toggled_cb): Handle password enabled.
5230         (share_name_entry_focus_out_event_cb): Namespace keys.
5231         Handle changes more robustly.
5232         (share_password_entry_focus_out_event_cb): Handle password entry.
5233         (add_daap_preferences): Connect to password signals.
5235         * lib/rb-preferences.h: Add DAAP keys.
5237         * data/glade/daap-prefs.glade: Add password UI.
5239         * data/rhythmbox.schemas: Add password keys.
5241         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
5242         assert with warning.
5244         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
5245         gconf keys to lib/rb-preferences.h.  Namespace
5246         the gconf keys.
5247         (create_share): Add password support.
5248         (enable_sharing_changed_cb): Namespaced keys.
5249         (require_password_changed_cb): Handle key change.
5250         (share_name_changed_cb): Namespaced keys.
5251         (share_password_changed_cb): Handle key change.
5252         (rb_daap_sharing_init): Namespaced keys.
5253         (rb_daap_sharing_shutdown): Ditto.
5255         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
5256         Add password property.
5257         (rb_daap_share_set_name): Break out prop set function.
5258         (published_cb): New RBDaapMdnsPublisher signal handler.
5259         (name_collision_cb): Ditto.
5260         (rb_daap_share_init): Create publisher object and
5261         connect to signals.
5262         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
5263         (rb_daap_share_set_property): Break out prop set functions.
5264         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
5265         Unref publisher.
5266         (rb_daap_share_new): Add password argument.  Start
5267         publishing and DAAP server.
5268         (message_set_from_rb_daap_structure): Change print to debug.
5269         (server_info_cb): Set auth method to publish.
5270         (logout_cb): Handle DAAP client logout.
5271         (update_cb): Remove C++ comments.
5272         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
5273         (server_cb): Add debug.
5274         (soup_auth_callback): Handle auth requests.
5275         (rb_daap_share_server_start): Split up functions for starting
5276         server and publishing.  Add auth handling to server.
5277         (rb_daap_share_server_stop): Split stop server and publish.
5278         No C++ comments.
5279         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
5280         Start and stop publishing.
5281         (rb_daap_share_restart): Restart server and publishing.
5282         (rb_daap_share_maybe_restart): Conditionally restart.
5284         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
5285         (rb_daap_collision_dialog_new_run): Don't use
5286         separators in dialogs.
5288         * daapsharing/rb-daap-connection.h: Add private
5289         data to class structure.
5291         * daapsharing/rb-daap-connection.c: Move
5292         some includes to top of file.  Make private
5293         data struct name consistent with others.
5294         (rb_daap_connection_class_init): Rename
5295         private.
5296         (rb_daap_connection_init): Get and store the pointer
5297         to the private data once instead of in every
5298         function.  Create a username value "Rhythmbox_VERSION".
5299         (connection_get_password): Don't get private.
5300         (build_message): Ditto.
5301         (http_response_handler): Don't init variables in
5302         declaration.  Add debug.  Spacing.
5303         (http_get, entry_set_string_prop, handle_server_info) 
5304         (handle_login, handle_update, handle_database_info) 
5305         (handle_song_listing, handle_playlists, handle_playlist_entries) 
5306         (rb_daap_connection_constructor, rb_daap_connection_logout) 
5307         (rb_daap_connection_state_done): Don't get private.
5308         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
5309         spacing.  Correctly base64 encode the Authentication token.
5310         Add username to auth token.
5311         (rb_daap_connection_get_playlists): Don't get private.
5312         (rb_daap_connection_dispose): Ditto.  Free username.
5313         (rb_daap_connection_set_property) 
5314         (rb_daap_connection_get_property): Don't get private.
5316         * daapsharing/Makefile.am: Conditionally
5317         compile MDNS backends.  Add marshall stuff.
5319         * daapsharing/.cvsignore: Update.
5321         * configure.ac: Add conditional to see which
5322         MDNS backend we should use.
5324         * daapsharing/rb-daap-mdns.[ch]: Removed files.
5326         * daapsharing/rb-daap-marshal.list:
5327         * daapsharing/rb-daap-mdns-browser-avahi.c:
5328         * daapsharing/rb-daap-mdns-browser-howl.c:
5329         * daapsharing/rb-daap-mdns-browser.h:
5330         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5331         * daapsharing/rb-daap-mdns-publisher-howl.c:
5332         * daapsharing/rb-daap-mdns-publisher.h:
5333         Split rb-daap-mdns.c into two classes.  One for
5334         publishing and one for browsing.  Split out
5335         the avahi and howl backends into different files.
5337         Fixes #322966
5338         
5339 2006-02-04  James Livingston  <jrl@ids.org.au>
5341         patch by: Jan Schmidt <thaytan@mad.scientist.com>
5343         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
5344         crash if metadata reader gives us NULL for strings.
5346 2006-02-03  James Livingston  <jrl@ids.org.au>
5348         * shell/rb-shell-player.c: (open_location_thread),
5349         (rb_shell_player_open_location):
5350         retrieve iradio playlists files in a thread, so that with GStreamer
5351         0.10 the UI doesn't block while connecting to stations. The streamer
5352         connection is synchronous with 0.8, so that will still block (a bit).
5353         Fixed bug 128106.
5355         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
5356         because _open_entry does that automatically when it is ready to.
5358 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
5360         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5361         (rb_podcast_source_post_status_cell_data_func):
5362         Leave the podcast status column blank for episodes that have not been
5363         downloaded.
5365 2006-02-03  James Livingston  <jrl@ids.org.au>
5367         Add support for source-specific toolbar items, and make the Burn
5368         Playlist item only available for playlists. Also add Update All
5369         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
5371         * data/ui/rhythmbox-ui.xml:
5372         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5373         (impl_get_ui_actions): make the Burn CD toolbar item only for
5374         playlists
5376         * lib/rb-stock-icons.c: (rb_stock_icons_init):
5377         * lib/rb-stock-icons.h: load the Eject icon as stock.
5379         * shell/rb-removable-media-manager.c: use the eject icon for the eject
5380         action
5382         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
5383         (rb_shell_select_source):
5384         * sources/rb-source.c: (rb_source_class_init),
5385         (rb_source_disconnect), (default_get_ui_actions),
5386         (rb_source_get_ui_actions):
5387         * sources/rb-source.h: add support for source-specific toolbar items
5389         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
5390         Eject and Rip toolbar items
5392         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5393         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
5394         item.
5396 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
5398         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
5399         * shell/main.c: (main):
5400         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
5401         Replace all g_critical calls with g_warning, since none of them are
5402         the sort of thing the process should die over.  Fixes #329398.
5404 2006-02-03  James Livingston  <jrl@ids.org.au>
5406         * configure.ac: mention gst-plugins-base in the error message for not
5407         finding GStreamer 0.10, since not having that will cause it to fail.
5409 2006-02-03  James Livingston  <jrl@ids.org.au>
5411         * configure.ac: fix typo that means you get the wrong error message if
5412         you explicity request a particular playback engine, and it can't be
5413         found.
5415 2006-02-03  James Livingston  <jrl@ids.org.au>
5417         * data/glade/library-prefs.glade: allow the watched library location
5418         to be a non-local place.
5420 ============ Version 0.9.3
5423 2006-02-02  James Livingston  <jrl@ids.org.au>
5425         * NEWS: update NEWS
5426         * configure.ac: bump version to 0.9.3
5428         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
5429         <caillon@redhat.com>, fixed bug 329517. 
5431 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
5433         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
5435         * widgets/rb-song-info.c: (rb_song_info_constructor):
5436         Make year and disc number fields non-editable if tag editing
5437         is disabled.  Fixes #329463.
5439 2006-02-01  James Livingston  <jrl@ids.org.au>
5441         * rhythmdb/rhythmdb-property-model.c:
5442         (rhythmdb_property_model_row_inserted_cb),
5443         (rhythmdb_property_model_prop_changed_cb),
5444         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
5445         correctly. Fixes bug 327061.
5447         * rhythmdb/rhythmdb-query-model.c:
5448         (rhythmdb_query_model_entry_changed_cb): emit change notification of
5449         the HIDDEN property when an entry is removed for being hidden.
5451         * rhythmdb/rhythmdb-query-model.h:
5452         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
5453         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
5454         models's "connected" property. Whatever it was needed for seems to
5455         have gone.
5457 2006-02-01  James Livingston  <jrl@ids.org.au>
5459         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
5461         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
5462         (rb_shell_player_playing_changed_cb): block the signal to prevent
5463         re-entrancy. Fixes bug 329329 and fixes the first click of the play
5464         button pausing.
5466 2006-02-01  James Livingston  <jrl@ids.org.au>
5468         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
5469         /should/ now work, if the neccessary plugins get ported.
5471 2006-01-30  James Livingston  <jrl@ids.org.au>
5473         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
5474         string properties to "Unknown" is the string is empty. Kind of fixes
5475         bug 327495.
5477         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
5478         gettext calls once, rather than once per time the function is used.
5479         This stops us making tens of thousands of gettext calls on startup,
5480         which reduces the cpu-time of startup by 10-20%
5482 2006-01-29  James Livingston  <jrl@ids.org.au>
5484         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
5485         (rhythmdb_add_uri):
5486         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
5487         for files containing known video streams.
5490 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5492         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
5493         required.
5495 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5497         * INSTALL.quick: More random updates
5499         * rhythmdb/rhythmdb-query-model.c:
5500         (rhythmdb_query_model_class_init),
5501         (rhythmdb_query_model_set_property),
5502         (rhythmdb_query_model_get_property),
5503         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
5504         Remove user sort data handling, take a property ID and a reverse
5505         flag instead.
5506         (rhythmdb_query_model_insert_into_main_list),
5507         (rhythmdb_query_model_insert_into_limited_list),
5508         (rhythmdb_query_model_do_reorder),
5509         (_reverse_sorting_func):
5510         Handle reverse sorting by calling _reverse_sorting_func, which
5511         calls the real sort function and reverses the result.
5512         (rhythmdb_query_model_set_sort_order):
5513         Allow this to be called to set the initial sort order for limited
5514         queries, and handle reverse sorting when reordering.
5515         (rhythmdb_query_model_location_sort_func),
5516         (rhythmdb_query_model_album_sort_func),
5517         (rhythmdb_query_model_artist_sort_func),
5518         (rhythmdb_query_model_genre_sort_func),
5519         (rhythmdb_query_model_track_sort_func),
5520         (rhythmdb_query_model_double_ceiling_sort_func),
5521         (rhythmdb_query_model_ulong_sort_func),
5522         (rhythmdb_query_model_date_sort_func),
5523         (rhythmdb_query_model_string_sort_func):
5524         Sort functions moved from rb-entry-view.c.
5525         * rhythmdb/rhythmdb-query-model.h:
5526         Add the sort functions, and update the changed functions.
5527         
5528         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
5529         Just call _resort_model when the query model is set, since it
5530         does all the same things.
5531         (rb_entry_view_append_column):
5532         Rework bits so the rating column doesn't have to be so much of a
5533         special case.
5534         (rb_entry_view_append_column_custom):
5535         Take a property ID to sort on, rather than arbitrary custom data.
5536         (rb_entry_view_resort_model):
5537         Query model does all the reverse sort handling now.
5538         * widgets/rb-entry-view.h: Update _append_column_custom.
5540         * sources/rb-play-queue-source.c:
5541         (rb_play_queue_source_constructor):
5542         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5543         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5544         (rb_podcast_source_post_date_cell_sort_func),
5545         (rb_podcast_source_post_status_cell_sort_func),
5546         (rb_podcast_source_post_feed_cell_sort_func):
5547         Updates required by all the other changes.
5549         * rhythmdb/rhythmdb-property-model.c:
5550         (rhythmdb_property_model_drag_data_get):
5551         Sort the query results on the selected property,
5552         so they arrive in the expected order.  All the other changes were made
5553         to make this possible.  Fixes bug #327494.
5555 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5556         
5557         * shell/rb-shell-clipboard.c:
5558         Use GTK_STOCK_REMOVE icon for the remove action in
5559         the play queue too.
5561 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5563         * sources/rb-play-queue-source.c:
5564         (rb_play_queue_source_constructor),
5565         (rb_play_queue_source_update_count):
5566         Don't make the 'queued songs' column clickable,
5567         and add the queued song count to the column title.
5569 2006-01-29  James Livingston  <jrl@ids.org.au>
5571         * configure.ac: remove "experimental" marking from DAAP, and enable by
5572         default if the dependencies are found.
5574 2006-01-29  James Livingston  <jrl@ids.org.au>
5576         * NEWS: update NEWS
5578 2006-01-29  James Livingston  <jrl@ids.org.au>
5580         patch by: William Jon McCann  <mccann@jhu.edu>
5582         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5583         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
5584         property used for the feed list. Fixes problem with feeds with no
5585         episodes not showing up.
5587 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5588         
5589         * shell/rb-play-order-random-by-age-and-rating.c:
5590         (rb_random_by_age_and_rating_get_entry_weight):
5591         Fix compile errors, bug #328978.
5593 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
5595         * INSTALL.quick, README: Random updates
5596         * README.lirc: Add notes on controlling Rhythmbox with LIRC
5598 2006-01-28  James Livingston  <jrl@ids.org.au>
5600         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
5601         default rating back to 0 (from 2.5, which was needed for autorating).
5603         * shell/rb-play-order-random-by-age-and-rating.c:
5604         (rb_random_by_age_and_rating_get_entry_weight):
5605         * shell/rb-play-order-random-by-rating.c:
5606         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
5607         2.5 for the purposes of weighting entries.
5609 2006-01-28  James Livingston  <jrl@ids.org.au>
5611         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
5612         translator comments, to make it clearer what the "friendly time"
5613         formatting strings mean.
5615 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
5617         * daapsharing/rb-daap-connection.c: (http_response_handler):
5618         Fix the sense of the overflow check so it'll accept valid input.
5620 2006-01-27  James Livingston  <jrl@ids.org.au>
5622         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
5624         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
5625         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
5627 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
5629         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5630         
5631         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
5632         Don't include the artist field in the window title if it's blank.
5633         Fixes #325973.
5635 2006-01-26  William Jon McCann  <mccann@jhu.edu>
5637         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
5638         Use stock delete icon for move to trash and stock remove
5639         for remove menu item.
5641 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
5643         * shell/rb-shell.c: (rb_shell_constructor),
5644         (idle_handle_load_complete):  Don't start the playlist save
5645         timeout until we've loaded the playlists, otherwise we'll
5646         write an empty playlist file if startup takes too long.
5648 2006-01-25  William Jon McCann  <mccann@jhu.edu>
5650         * shell/rb-shell.c: Make view toolbar toggle use
5651         shift+ctrl+t.  Fixes #327585.
5653 2006-01-25  James Livingston  <jrl@ids.org.au>
5655         patch by: Christope Fergeau  <teuf@gnome.org>
5657         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
5658         (http_response_handler): fix a potential buffer overflow issue.
5660 2006-01-25  James Livingston  <jrl@ids.org.au>
5662         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
5663         Year column wide enough to display "Unknown"
5665 2006-01-25  James Livingston  <jrl@ids.org.au>
5667         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5668         (rb_podcast_source_post_status_cell_data_func): make the episode
5669         status wording better. Part of bug 321607.
5671 2006-01-25  James Livingston  <jrl@ids.org.au>
5673         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
5674         others with a separator.
5676         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
5677         stock Delete icon.
5679 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
5681         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
5683 2006-01-23  James Livingston  <jrl@ids.org.au>
5685         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
5686         0.3.2. Fixed bug 328158.
5688 2006-01-23  James Livingston  <jrl@ids.org.au>
5690         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
5691         (gulong_gst_date_transform), (rb_metadata_class_init):
5692         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
5694 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
5696         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
5697         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
5698         (record_entry_change): Protect added_entries and changed_entries with
5699         a mutex, so it doesn't crash on startup on SMT/SMP machines.
5701 2006-01-23  James Livingston  <jrl@ids.org.au>
5703         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
5704         the browser for audio CDs.
5706 2006-01-22  James Livingston  <jrl@ids.org.au>
5708         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
5709         NEVER_FAIL as it causes the daemon-not-running error to never be
5710         reported, resulting in bug 319438 re-occurring.
5712 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
5714         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
5715         Just call the podcast manager's update method.  Unbreaks the 'update
5716         all feeds' command.
5718 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
5720         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
5722 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
5724         * configure.ac: Don't disable DAAP with gstreamer 0.10
5726         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
5727         (rb_daap_src_class_init), (rb_daap_src_init),
5728         (rb_daap_src_finalize), (rb_daap_src_set_property),
5729         (rb_daap_src_get_property), (rb_daap_src_write),
5730         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
5731         (_split_uri), (rb_daap_src_open):
5732         * daapsharing/rb-daap-src.h:
5733         Mostly fix seeking, handle chunked transfer encoding, and port to
5734         gstreamer 0.10.
5735         
5736         * player/rb-player-gst.c:
5737         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
5738         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
5740         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
5741         being fixed.
5743 2006-01-21  James Livingston  <jrl@ids.org.au>
5745         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
5746         for Year metadata in DAAP sources. Fixes bug 327700.
5748         * daapsharing/rb-daap-connection.c: (handle_song_listing):
5750 2006-01-20  William Jon McCann  <mccann@jhu.edu>
5752         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
5753         enum values instead of magic numbers.
5755         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
5756         Add number of songs that match each property title into
5757         the cell.  Also show the number of properties that match
5758         in the All entry.
5759         (rb_property_view_constructor): Use enum values instead of
5760         magic numbers.
5762         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
5763         Query podcast posts instead of feeds for browser.  Use
5764         post SUBTITLE which is the location for the property view.
5765         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
5766         (construct_query_from_selection) 
5767         (rb_podcast_source_cmd_delete_feed) 
5768         (rb_podcast_source_cmd_properties_feed) 
5769         (rb_podcast_source_cmd_update_feed): Use variable to make
5770         it clear what the selection data represents.
5771         (rb_podcast_source_feed_title_cell_data_func): Add number
5772         of posts that belong to each feed in the browser.
5774         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
5775         (rhythmdb_property_model_delete_prop): Decrement the refcount
5776         for the All entry.
5777         (rhythmdb_property_model_get_column_type): Use column enum
5778         values instead of magic numbers.  Add NUMBER column.
5779         (rhythmdb_property_model_get_value): Use enum.
5780         Add NUMBER column that represents the refcount for
5781         the title of that property.
5782         (rhythmdb_property_model_perform_sync): Don't fake up
5783         a title for All here.
5785         Fixes #327372.
5786         
5787 2006-01-21  James Livingston  <jrl@ids.org.au>
5789         Make Rhythmbox start faster by not blocking the UI while database
5790         initialisation and loading occurs. Closes bug 323348.
5792         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
5793         start 10 seconds later instead of immediately.
5794         
5795         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
5796         safe to call from any thread.
5798         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
5799         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
5800         so the UI doesn't block.
5802 2006-01-18  James Livingston  <jrl@ids.org.au>
5804         * sources/rb-static-playlist-source.c:
5805         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
5806         cause crashes. Oops. fixes bug 327477.
5808 2006-01-17  William Jon McCann  <mccann@jhu.edu>
5810         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
5811         Set GST element state to NULL before unreffing.
5812         Fixes #327422.
5814 2006-01-18  James Livingston  <jrl@ids.org.au>
5816         * sources/rb-static-playlist-source.c:
5817         (rb_static_playlist_source_do_query): don't filter on the SONG entry
5818         type, since the playlists can contain non-song entries. Fixes bug
5819         327448.
5821         * sources/rb-play-queue-source.c:
5822         (rb_play_queue_source_class_init): disable the search box for the
5823         queue.
5825 2006-01-18  James Livingston  <jrl@ids.org.au>
5827         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
5828         dragging of podcast episodes. Fixed bug 327450.
5830 2006-01-18  James Livingston  <jrl@ids.org.au>
5832         * rhythmdb/rhythmdb-query-model.c:
5833         (rhythmdb_query_model_drag_data_received): fix possible assertion when
5834         dragging to an emoty playlist.
5836 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
5838         * sources/rb-playlist-source-recorder.c:
5839         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
5841 2006-01-17  James Livingston  <jrl@ids.org.au>
5843         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
5845         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
5846         different number of tracks than exist on the cd, since that happens
5847         with audio+data hybrid CDs. Part of bug 325046.
5849 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
5851         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5852         Remove useless call to gtk_tree_view_column_set_clickable().
5854         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
5855         Don't store sort data for columns if the sort function is NULL,
5856         so only sortable columns will be in the column sort data map.
5857         (rb_entry_view_set_columns_clickable): Only make columns we can sort
5858         on clickable.
5859         (rb_entry_view_constructor):  The 'playing icon' column is never
5860         clickable, so don't connect a signal handler for it.
5862         Fixes bug 326811.
5864 2006-01-17  James Livingston  <jrl@ids.org.au>
5866         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
5867         are 0.8 only. Fix element detection.
5869         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
5870         saving the new metadata failed
5872 2006-01-17  James Livingston  <jrl@ids.org.au>
5874         * shell/rb-shell-player.c: (do_next_idle),
5875         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
5876         (eos_cb): release audio device when a playlist finishes. Fixes bug
5877         323679.
5879 2006-01-17  James Livingston  <jrl@ids.org.au>
5881         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
5882         canonicalise the URIs when things are added via library watching.
5884 2006-01-16  William Jon McCann  <mccann@jhu.edu>
5886         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5887         Off by one error in default speed index.
5889 2006-01-16  William Jon McCann  <mccann@jhu.edu>
5891         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
5892         (update_speed_combobox, update_speed_combobox):
5893         Get a list of the actually supported write speeds from
5894         n-c-b >= 2.13.90.  Otherwise use fallback list.
5896 2006-01-17  James Livingston  <jrl@ids.org.au>
5898         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
5899         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
5900         don't get stuck on recursive symlinks. Fixed bug 125452.
5902 2006-01-17  James Livingston  <jrl@ids.org.au>
5904         Add support for mass-storage audio players. Players are detected via
5905         either the HAL "audio_player" capability, or a ".is_audio_player" file
5906         in the root of the volume. Closes bug 325602.
5908         * configure.ac: separate using HAL from ipod support.
5910         * lib/rb-file-helpers.c: (rb_uri_is_local):
5911         * lib/rb-file-helpers.h: add function to determine whether a URI is
5912         local.
5914         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
5915         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
5916         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
5917         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
5918         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
5919         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
5920         directories can be scanned for files to add as  non-SONG entries.
5922         * shell/rb-removable-media-manager.c:
5923         (rb_removable_media_manager_mount_volume): add checking for
5924         mass-storage players.
5926         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
5927         * sources/rb-ipod-source.c: (rb_ipod_source_new),
5928         (hal_udi_is_ipod):
5929         * sources/rb-removable-media-source.c:
5930         (rb_removable_media_source_class_init),
5931         (rb_removable_media_source_constructor): move some things up to the
5932         RBRemovableMediaSource, rather than making subclasses do it.
5934         * sources/Makefile.am:
5935         * sources/rb-generic-player-source.c:
5936         * sources/rb-generic-player-source.h: add mass-storage player source.
5938 2006-01-16  James Livingston  <jrl@ids.org.au>
5940         patch by: William Jon McCann  <mccann@jhu.edu>
5942         * rhythmdb/rhythmdb-query-model.c:
5943         (rhythmdb_query_model_base_row_deleted): fix build issue from last
5944         commit.
5946 2006-01-16  James Livingston  <jrl@ids.org.au>
5948         Patch to add support for "chained queries" and putting hidden tracks
5949         in query models. Use chained queries to add search box support to
5950         normal playlists, and to make hidden entries not get lost. Fixes bug
5951         319278.
5953         * rhythmdb/rhythmdb-query-model.h:
5954         * rhythmdb/rhythmdb-query-model.c:
5955         (rhythmdb_query_model_class_init),
5956         (rhythmdb_query_model_set_property),
5957         (rhythmdb_query_model_get_property):
5958         (rhythmdb_query_model_finalize): add "show-hidden" and
5959         "base-model" properties.
5961         (rhythmdb_query_model_set_connected),
5962         (rhythmdb_query_model_has_pending_changes),     
5963         (rhythmdb_query_model_entry_added_cb),
5964         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
5965         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
5966         (rhythmdb_query_model_remove_entry),
5967         (rhythmdb_query_model_drag_data_received),
5968         (rhythmdb_query_model_base_row_inserted),
5969         (rhythmdb_query_model_base_row_deleted),
5970         (rhythmdb_query_model_base_non_entry_dropped),
5971         (rhythmdb_query_model_base_complete),
5972         (rhythmdb_query_model_base_entry_prop_changed),
5973         (rhythmdb_query_model_base_rows_reordered),
5974         (rhythmdb_query_model_row_drop_possible): handle base-model by
5975         chaining events and operations where necessary. Make hidden entries
5976         not get added only if "show-hidden" is false.
5978         (rhythmdb_query_model_child_index_to_base_index),
5979         (rhythmdb_query_model_base_index_to_child_index),
5980         (rhythmdb_query_model_get_entry_index): utility functions for handling
5981         base-model entries.
5983         (rhythmdb_query_model_reapply_query): apply the current query, and
5984         remove entries that don't match it.
5986         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
5987         empty queries.
5989         * sources/rb-source.c: (rb_source_set_property): move the unref later
5990         to fix problem if it is the last reference.
5992         * sources/rb-static-playlist-source.c:
5993         (rb_static_playlist_source_class_init),
5994         (rb_static_playlist_source_init),
5995         (rb_static_playlist_source_finalize),
5996         (rb_static_playlist_source_constructor), (impl_reset_filters),
5997         (impl_search), (rb_static_playlist_source_do_query),
5998         (impl_save_contents_to_xml),
5999         (rb_static_playlist_source_add_location_internal): use a chained query
6000         model to filter out hidden entries and implement the search box.
6002 2006-01-15  James Livingston  <jrl@ids.org.au>
6004         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
6005         the default playlist loading, which I broke earlier.
6007 2006-01-15  James Livingston  <jrl@ids.org.au>
6009         patch by: William Jon McCann  <mccann@jhu.edu>
6011         * sources/rb-playlist-source.c: (playlist_iter_func): use
6012         totem-plparser's new API version macros to check for API changes.
6013         Handle the recent API change.
6015 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
6017         * sources/rb-library-source.c: (impl_get_config_widget):
6018         Ref the preferences object to match the unref in the
6019         finalizer.  Fixes some portion of #323505.
6021 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
6023         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
6024         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
6025         Fix valgrind warnings about accessing uninitialised values.
6027 2006-01-14  William Jon McCann  <mccann@jhu.edu>
6029         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
6031 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
6033         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
6034         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
6035         Stops the 'now playing' icon from being displayed after the play
6036         order finishes.
6038 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
6040         * podcast/rb-podcast-manager.c:
6041         (rb_podcast_manager_db_entry_deleted_cb):
6042         Don't try to delete files we never downloaded, and cancel downloads
6043         for deleted episodes.  Fixes bug #326862.
6044         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
6045         Don't complain about NULL data items in the selection list.
6047 2006-01-14  James Livingston  <jrl@ids.org.au>
6049         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
6050         Make the name ofthe queue non editable. Fixes bug 326918.
6052 2006-01-13  William Jon McCann  <mccann@jhu.edu>
6054         * sources/rb-playlist-source-recorder.c (burn_cd) 
6055         (ask_rewrite_disc): Don't use our locally copied functions
6056         if we have at least 2.13.
6058 2006-01-13  William Jon McCann  <mccann@jhu.edu>
6060         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
6061         Correct the argument type for the process_error signal.
6062         May fix bug #323154.
6064 2006-01-13  James Livingston  <jrl@ids.org.au>
6066         save the queue to disk when exiting, and reload on startup. Fixed bug
6067         326677 .
6069         * shell/rb-playlist-manager.c:
6070         (rb_playlist_manager_load_playlists),
6071         (rb_playlist_manager_save_playlists_async): don't disable saving of
6072         the queue
6074         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6075         add the queue source as a gobject property.
6077         * sources/rb-play-queue-source.c:
6078         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
6079         code to save the queue to xml
6081         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
6082         load the queue from xml.
6083         * sources/rb-playlist-xml.h:
6085         * sources/rb-static-playlist-source.c:
6086         (rb_static_playlist_source_load_from_xml),
6087         (rb_static_playlist_source_new_from_xml):
6088         * sources/rb-static-playlist-source.h: split the playlist xml loading
6089         from the static playlist creation function, so the queue can use it.
6091 2006-01-13  James Livingston  <jrl@ids.org.au>
6093         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
6094         assertion that should be there. Fixes bug 325923.
6095         
6096         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
6097         return NULL if the entry already exists (e.g. as another type).
6098         * daapsharing/rb-daap-connection.c: (handle_song_listing):
6099         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6100         (rb_podcast_manager_insert_feed):
6101         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
6102         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
6103         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
6104         for the above function returning NULL.
6106 2006-01-12  James Livingston  <jrl@ids.org.au>
6108         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
6109         is enabled. Fixes bug 326673.
6110         
6111         * doc/reference/tmpl/eggtrayicon.sgml:
6112         * doc/reference/tmpl/rb-daap-src.sgml:
6113         * doc/reference/tmpl/rb-source.sgml:
6114         * doc/reference/tmpl/rb-statusbar.sgml:
6115         * doc/reference/tmpl/rb-tree-model-sort.sgml:
6116         * doc/reference/tmpl/rhythmbox-unused.sgml:
6117         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
6119 2006-01-11  James Livingston  <jrl@ids.org.au>
6121         * widgets/rb-song-info.c: (rb_song_info_constructor),
6122         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
6123         (rb_song_info_populate_dialog): fill in the fields if all tracks have
6124         the same value for properties. From bug 326054.
6126 2006-01-11  James Livingston  <jrl@ids.org.au>
6128         * sources/rb-source.h:
6129         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
6130         (rb_shell_player_set_playing_source_internal), (eos_cb):
6131         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
6132         every entry.
6134         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
6135         source use this. Closes bug 322077.
6137 2006-01-10  William Jon McCann  <mccann@jhu.edu>
6139         * widgets/eggtrayicon.c (egg_tray_icon_notify):
6140         In order for set_icon_data_from_pixbuf() to be
6141         effective, one must not set an icon in _new().
6143 2006-01-10  William Jon McCann  <mccann@jhu.edu>
6145         * widgets/eggtrayicon.c (egg_tray_icon_init) 
6146         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
6147         (egg_tray_icon_notify): Add support for libnotify 0.3.
6148         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
6149         * configure.ac: Determine the version of libnotify.
6150         Fixes #326333.
6152 2006-01-08  James Livingston  <jrl@ids.org.au>
6154         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
6155         trying to share a track with unknown length.
6157 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
6159         * shell/rb-shell-player.c: (rb_shell_player_init):
6160         Sync volume on startup so it doesn't default to 0.
6162 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
6164         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6165         (rb_shell_player_get_property), (rb_shell_player_open_location),
6166         (info_available_cb):  Add the iradio streamed song title as a
6167         property, and emit a signal when it changes.
6169         * shell/rb-shell.c: (rb_shell_constructor),
6170         (rb_shell_player_elapsed_changed_cb),
6171         (rb_shell_player_stream_song_changed_cb):
6172         Issue a notification when the iradio song title changes.
6173         Fixes #326166.
6175 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
6177         * shell/rb-shell-player.c: (rb_shell_player_init),
6178         (rb_shell_player_finalize), (rb_shell_player_set_property),
6179         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
6180         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
6181         (rb_shell_player_set_volume_relative),
6182         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
6183         (rb_shell_player_get_mute):
6184         * shell/rb-shell-player.h:
6185         * shell/rb-shell-player.xml:
6186         Store volume as a property on RBShellPlayer, rather than in gconf.
6187         Add some methods to control volume via dbus.
6189         * shell/rb-shell.c: (rb_shell_constructor),
6190         (rb_shell_volume_widget_changed_cb),
6191         (rb_shell_player_volume_changed_cb):
6192         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
6193         Update volume using player properties rather than gconf, and sync the
6194         volume with the volume control button when something else changes it.
6195         Fixes #323840.
6197 2006-01-07  William Jon McCann  <mccann@jhu.edu>
6199         * shell/rb-tray-icon.c (tray_popup_position_menu):
6200         Make tray menu align with edge of panel.
6202         patch from Jaap A. Haitsma <jaap@haitsma.org>
6203         Fixes #319913
6205 2006-01-07  William Jon McCann  <mccann@jhu.edu>
6206         * shell/rb-shell.c (sourcelist_drag_received_cb): 
6207         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
6208         (rb_playlist_manager_new_playlist_from_selection_data):
6209         Make a reasonable default name for playlists created from
6210         dropped data.  Fixes #326116.
6212 2006-01-07  William Jon McCann  <mccann@jhu.edu>
6214         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6215         Use new gconf key.
6216         (burn_cd): Always eject CD after burning.  Too many drives
6217         get confused if we don't.  Save the speed used if the burn
6218         was completed successfully.
6220         * data/rhythmbox.schemas: Use our own speed instead of from
6221         n-c-b. The situation is that the default_speed for n-c-b is most
6222         likely the maximum write speed.  This is fine for n-c-b because it
6223         has burn-proof turned on.  We can't turn it on for audio CDs
6224         because the results are poor in quality.  So we'll just pick a
6225         default that should work for everyone (4).
6227 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6228         
6229         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
6230         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
6232 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6234         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
6235         in my previous commit.  Fixes #326037.
6237 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
6239         patch by: Jonathan Matthew
6241         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
6242         error on Fedora Rawhide.
6244 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6246         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
6247         Assume HTTP URLs ending with .xml or .rss are podcasts.
6248         (rb_shell_add_uri): Handle adding podcast feeds.
6250         * sources/rb-podcast-source.c: (rb_podcast_source_new):
6251         Register as the source for podcast feeds.
6253 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6255         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
6256         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
6257         (rb_shell_preferences_append_view_page):
6258         * shell/rb-shell-preferences.h:
6259         Fix typo in function name.  Fixes #325992.
6261 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
6263         * shell/rb-audioscrobbler.c:
6264         Add '+' to the list of characters to URI-encode, so it doesn't get
6265         interpreted as a space.
6267 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
6269         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
6270         (rb_daap_connection_do_something):  Don't crash if the DAAP server
6271         goes away while we're still trying to log in.
6273 2006-01-06  James Livingston  <jrl@ids.org.au>
6275         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
6277 2006-01-06  James Livingston  <jrl@ids.org.au>
6279         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
6280         support for Year to automatic playlists. Closes bug 321341.
6282         * rhythmdb/rhythmdb-query-model.c:
6283         (rhythmdb_query_model_set_property):
6284         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
6285         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
6286         (rhythmdb_query_free), (rhythmdb_query_serialize),
6287         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
6288         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
6289         * rhythmdb/rhythmdb.h: Support special
6290         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
6291         year in date.
6293         * widgets/rb-query-creator-properties.c:
6294         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
6295         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
6297 2006-01-06  James Livingston  <jrl@ids.org.au>
6299         * configure.ac: make the playback backend selection work correctly
6301         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
6302         (rb_daap_src_class_init), (rb_daap_src_dispose),
6303         (rb_daap_src_change_state), (rb_daap_src_initialize):
6304         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
6305         doesn't work for this class. Fixes bug 325934
6307 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
6309         * configure.ac: Fix check for libnotify.
6311 2006-01-05  William Jon McCann  <mccann@jhu.edu>
6313         * sources/rb-playlist-source.c (xml_get_and_trim_names):
6314         Get name element for current lang and remove all name nodes
6315         from the XML tree.
6316         (get_playlist_name_from_xml): Try to get name element or
6317         fall back to name attribute.
6318         (rb_playlist_source_new_from_xml): Get name before turning over
6319         to sub-types for parsing so that we can remove name elements
6320         from the tree if necessary.
6322         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
6323         Load default playlists file if per user playlists are not found.
6325         * data/playlists.xml.in: 
6326         * data/Makefile.am: 
6327         * data/.cvsignore: Add default set of playlists.
6328         Fixes #323004
6330 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
6332         * shell/main.c: (main): Don't use the dbus interface to show the
6333         window if we're also going to use the bonobo interface.
6335 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
6337         * shell/rb-history.c: (rb_history_set_playing):
6338         Allow setting the playing song to NULL.
6339         (rb_history_append), (rb_history_delete_link):
6340         Don't randomly change position when entries are added and removed,
6341         it confuses play orders.
6342         
6343         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
6344         Random orders always have a next entry if the model is not empty.
6345         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
6346         Go back to the start of the history if we're past its end.
6348         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
6349         (rb_shuffle_play_order_go_next): Go back to the start of the history
6350         if we're past its end.
6351         (rb_shuffle_sync_history_with_query_model): Go back to the start of
6352         the history if the current entry is removed.
6354         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
6355         (rb_play_order_entry_deleted_cb): Only update have next/previous for
6356         the play order when the query has finished. This wasted about 10% CPU
6357         while the query was running.
6359         Fixes #324641: assertion failures when the query model was changed
6360         such that the playing song was no longer present.
6362 2006-01-05  James Livingston  <jrl@ids.org.au>
6364         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
6365         (rb_daap_src_dispose), (rb_daap_src_change_state):
6366         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
6367         (rhythmdb_gda_finalize):
6368         * widgets/rb-cell-renderer-pixbuf.c:
6369         * widgets/rb-cell-renderer-rating.c:
6370         (rb_cell_renderer_rating_class_init),
6371         (rb_cell_renderer_rating_finalize):
6372         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
6373         * widgets/rb-load-failure-dialog.c:
6374         (rb_load_failure_dialog_class_init),
6375         (rb_load_failure_dialog_finalize):
6376         * widgets/rb-rating.c: (rb_rating_class_init),
6377         (rb_rating_finalize):
6378         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
6379         (rb_search_entry_finalize): use G_DEFINE_TYPE
6381         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
6383 2006-01-05  James Livingston  <jrl@ids.org.au>
6385         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
6387         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
6388         the tarball.
6390         * shell/rb-history.c: (rb_history_class_init),
6391         (rb_history_finalize):
6392         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
6393         (rb_playlist_manager_finalize):
6394         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
6395         (rb_remote_init): use G_DEFINE_TYPE.
6397 2006-01-05  James Livingston  <jrl@ids.org.au>
6399         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
6400         changes
6402 2006-01-04  William Jon McCann  <mccann@jhu.edu>
6404         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
6405         Disable burn action when source is not a playlist.
6406         Fixes #323578.
6408 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
6410         Optionally use libnotify to display song change and other
6411         notifications, and provide an option to disable notifications.
6412         Fixes #320355 and innumerable informal complaints.
6414         * widgets/eggtrayicon.c: (egg_tray_icon_init),
6415         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
6416         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
6417         (egg_tray_icon_notify):
6418         * widgets/eggtrayicon.h:
6419         * configure.ac:
6420         * shell/Makefile.am:
6421         Optionally use libnotify instead of eggnotificationbubble.
6423         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
6424         (rb_tray_icon_constructor), 
6425         (rb_tray_icon_show_notifications_changed_cb),
6426         (rb_tray_icon_hide_notify_cb)
6427         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
6428         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
6429         EggNotificationBubble pointer to eggtrayicon.
6431         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
6432         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
6433         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
6435 2006-01-04  William Jon McCann  <mccann@jhu.edu>
6437         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
6438         Request a minimum size for the progress bar so that
6439         the window doesn't shrink too small.
6441 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6443         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
6444         (add_db_entry), (db_entry_deleted_cb):
6445         Don't track the number of songs currently present, track the next ID
6446         to assign.  Fixes potential ID conflict problems.
6447         
6448         (db_entry_changed_cb), (rb_daap_share_start_publish),
6449         (rb_daap_share_stop_publish):
6450         Watch for db entry changes, and when songs become non-hidden after
6451         a successful stat, add them to the mapping tables.   Fixes #325178,
6452         making the DAAP server usable again.
6454 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6455         
6456         * shell/rb-statusbar.c: (rb_statusbar_class_init),
6457         (rb_statusbar_construct), (rb_statusbar_init),
6458         (rb_statusbar_finalize), (rb_statusbar_set_property),
6459         (rb_statusbar_get_property), (rb_statusbar_new),
6460         (rb_statusbar_sync_with_source):
6461         * shell/rb-statusbar.h:
6462         Remove visibility management code, stop watching for play order
6463         changes (status bar doesn't show play order any more), remove unused
6464         'player' property, and some other minor cleanup.
6465         
6466         * shell/rb-shell.c: (rb_shell_constructor),
6467         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
6468         (rb_shell_sync_statusbar_visibility):
6469         Manage status bar visibility here rather than in the status bar
6470         itself, so we can take small mode into account.  Fixes #323589.
6472 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6474         * widgets/eggnotificationbubble.c: (draw_bubble):
6475         Move the bubble off the visible screen while setting up bevels.  
6476         Fixes #316810.
6478 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6480         * shell/rb-shell-player.c: (rb_shell_player_init),
6481         (rb_shell_player_finalize): 
6482         Remove unused structure members.
6483         
6484         (do_next_idle), (rb_shell_player_error):
6485         Only queue one call to do_next_idle, so we don't skip tracks if we get
6486         two errors for the same song.  Fixes #325216.
6488 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6490         * data/glade/podcast-feed-properties.glade,
6491          podcast/rb-feed-podcast-properties-dialog.c:
6492         (rb_feed_podcast_properties_dialog_init),
6493         (rb_feed_podcast_properties_dialog_update):
6494         Add 'last episode' field to the podcast feed properties dialog.
6496         * podcast/rb-feed-podcast-properties-dialog.c:
6497         (rb_feed_podcast_properties_dialog_update_last_update),
6498         (rb_feed_podcast_properties_dialog_update_last_episode),
6499          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6500         Use last-seen property for the time at which we last updated the feed,
6501         and post-time for the time the last episode was published.
6503         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
6504         Handle upgrades from 0.9.2; if no post-time was found for a podcast
6505         feed, use last-seen (which in 0.9.2 was the last post time).
6507         Fixes #323894.
6509 2006-01-01  James Livingston  <jrl@ids.org.au>
6511         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
6513         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
6514         year from the ipod database.
6516 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6518         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
6519         Only set the pipeline back to NULL state for really uninteresting
6520         files.  This was causing deadlocks with various video files.
6521         Fixes #324912.
6523 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6525         * data/glade/song-info-multiple.glade:
6526         Add disc number label and field.
6527         * widgets/rb-song-info.c: (rb_song_info_construct_single),
6528         (rb_song_info_constructor): 
6529         Handle widgets for disc number.
6530         (rb_song_info_sync_entries_multiple):
6531         Set disc number property on selected entries.
6532         Fixes #324777.
6534 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6536         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
6537         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
6538         Activate the default widget when enter is pressed in these dialogs.
6539         Fixes #322887.
6541 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6543         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
6544         Use rb_shell_player_get_playing_entry, so we get the right entry
6545         when playing from the queue.  Fixes #325379.
6547 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
6549         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6550         Include podcast posts with no publication date.  Typically
6551         seen in static collections rather than feeds.
6553 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
6555         * shell/main.c: (main): Don't attempt to handle
6556         bonobo-only arguments if we couldn't get a bonobo
6557         client proxy.
6559 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
6561         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
6562         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
6563         abort if daap sharing is disabled and then re-enabled.
6565 2005-12-29  William Jon McCann  <mccann@jhu.edu>
6567         * podcast/rb-podcast-parse.c (rb_insert_item):
6568         Add debugging.
6569         (rb_podcast_parser_start_element): Support itunes:image.
6570         Add debugging.  Don't abuse the break statement.  Warn
6571         if state is unknown.
6572         (rb_podcast_parser_end_element): Add debugging.  Warn
6573         if state is unknown.
6574         (rb_podcast_parser_characters): Warn if state is unknown.
6576         Fixes parsing of feeds that use the itunes:image element.
6577         Fixes #324632
6579 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
6581         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
6582         (stations_view_drag_data_received_cb):
6583         Remove calls to rhythmdb_entry_lookup_by_location, as
6584         rb_iradio_source_add_station does that anyway.
6585         
6586         (rb_iradio_source_add_from_playlist):
6587         If the URL doesn't point to a playlist, add it as the stream
6588         URL instead.
6590 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
6592         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
6593         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
6594         so we don't get an assertion failure.
6595         Fixes #325025.
6597 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
6599         * shell/main.c: (load_uri_args): don't compile this in if
6600         neither bonobo nor dbus are enabled.  Fixes #324890.
6602 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
6604         * sources/rb-audiocd-source.c:
6605         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
6606         so it closes the device.
6608 2005-12-20  James Livingston  <jrl@ids.org.au>
6610         * metadata/rb-metadata-gst.c: make the state changes time-out again,
6611         so that it doesn't spend forever getting stuck on the one file. Don't
6612         report errors for failing to change state on known non-audio files.
6614         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
6615         audio sink creation if we can't create the gconfaudiosink. This lets
6616         it work with only gst-plugins-base on 0.10.
6618 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
6620         * rhythmdb/rhythmdb-query-model.c:
6621         (rhythmdb_query_model_set_sort_order):
6622         Fix a tiny memory leak in the previous commit.
6624 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
6626         * rhythmdb/rhythmdb-query-model.c:
6627         (rhythmdb_query_model_set_sort_order):
6628         Don't try to emit reorders for empty query models, since it doesn't
6629         achieve anything and it results in a few warnings.
6631 2005-12-19  William Jon McCann  <mccann@jhu.edu>
6633         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
6634         Make burn dialog non-resizable so that the expander can shrink.
6635         Fixes #308951.
6637 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
6639         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
6640         add entries without a location, rather than those with one.
6642 2005-12-19  James Livingston  <jrl@ids.org.au>
6644         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
6645         the error isn't set.
6647 2005-12-19  James Livingston  <jrl@ids.org.au>
6648         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
6649         add entries without a location. Fixes bug 324290.
6651         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
6652         without a location.
6654         * shell/main.c: (main): don't crash if dbus initialisation fails
6655         without setting an error
6657 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
6659         * sources/rb-library-source.c: Remove unused structure members
6660         (rb_library_source_do_query): Actually use the cached 'all' query.
6661         Fixes #324025.
6662         
6663 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
6665         * sources/rb-audiocd-source.c 
6666         (rb_audiocd_get_cd_info): tab
6667         (rb_audiocd_scan_songs): Return boolean success/failure,
6668         fix error messages a bit.
6669         (metadata_cb): Don't crash if we have no tracks
6670         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
6671         the CD.
6672         Fixes #324222.
6674 2005-12-15  William Jon McCann  <mccann@jhu.edu>
6676         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
6677         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
6678         key.
6680         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
6681         Fixes #324157
6683 2005-12-14  William Jon McCann  <mccann@jhu.edu>
6685         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
6686         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
6687         (fullscreen_changed_cb): 
6688         * lib/rb-preferences.h: 
6689         * data/ui/rhythmbox-ui.xml: 
6690         * data/rhythmbox.schemas:
6691         Add fullscreen mode.
6693         Fixes #324075.
6695 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
6697         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
6698         configure.  It was not working with RPM.
6699         * data/Makefile.am: Switched dbus directory location to use
6700         datadir instead of variable that was not working.
6702 2005-12-13  James Livingston  <jrl@ids.org.au>
6704         patch by: Alex Lancaster <alexl@users.sourceforge.net>
6706         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
6707         the podcast browser work again. Closes bug 323856.
6709 2005-12-12  William Jon McCann  <mccann@jhu.edu>
6711         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
6712         Remove C99ism.
6714         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
6715         (rb_utf_friendly_time):
6716         * lib/rb-cut-and-paste-code.h:
6718         * podcast/rb-feed-podcast-properties-dialog.c:
6719         (rb_feed_podcast_properties_dialog_parse_time):
6720         * podcast/rb-podcast-properties-dialog.c:
6721         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
6722         to display the date in a more user friendly way.
6723         For example, if the feed was updated yesterday it will say:
6724         Last updated: Yesterday 10:00 AM
6725         instead of printing the date.
6727 2005-12-12  William Jon McCann  <mccann@jhu.edu>
6729         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
6730         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
6731         (rb_validate_item_propert, rb_podcast_parser_start_element) 
6732         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
6733         Use RB style.  Check for NULL before strcmp.  No C++ comments.
6734         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
6735         Don't set invalid mime type when mime type is NULL.  Fix leaks.
6736         (rb_podcast_parse_date): Add support for some real world
6737         date formats.
6738         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
6739         (rb_podcast_parse_item_free): Style and no need to check
6740         for NULL before g_free.
6742         May fix #323742
6744 2005-12-12  James Livingston  <jrl@ids.org.au>
6746         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
6747         with gstreamer 0.10, which replaced audioscale.
6749         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
6750         function to free the SoupSession
6752         * shell/rb-source-header.c: (rb_source_header_set_property),
6753         (rb_source_header_disclosure_toggled_cb),
6754         (rb_source_header_view_browser_changed_cb),
6755         (rb_source_header_sync_control_state):
6756         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
6757         * sources/rb-library-source.c: (rb_library_source_class_init):
6758         * sources/rb-source.c: (rb_source_class_init),
6759         (rb_source_get_status), (default_get_browser_key),
6760         (rb_source_get_browser_key), (rb_source_can_browse),
6761         (rb_source_notify_status_changed),
6762         (rb_source_notify_filter_changed):
6763         * sources/rb-source.h: seperate the enabling of browsers from the use
6764         of a gconf key.
6766 2005-12-11  William Jon McCann  <mccann@jhu.edu>
6768         * data/glade/podcast-feed-properties.glade: 
6769         * data/glade/podcast-properties.glade: Use scrolled viewports
6770         for description text.  Fix regression of #320509.
6772 2005-12-11  James Livingston  <jrl@ids.org.au>
6774         * sources/rb-auto-playlist-source.c:
6775         (rb_auto_playlist_source_class_init), (impl_reset_filters),
6776         (impl_search), (rb_auto_playlist_source_do_query),
6777         (rb_auto_playlist_source_set_query),
6778         (rb_auto_playlist_source_get_query): add support for the search box
6779         to automatic playlists.
6781         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
6782         memory leak.
6784 2005-12-11  James Livingston  <jrl@ids.org.au>
6786         * NEWS: update NEWS
6788 2005-12-11  James Livingston  <jrl@ids.org.au>
6790         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
6791         (rhythmdb_load), (monitor_subdirectory),
6792         (rhythmdb_sync_library_location):  start the library sync and
6793         monitoring in an idle callback.
6795 2005-12-10  William Jon McCann  <mccann@jhu.edu>
6797         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
6798         (rb_podcast_source_constructor): Remove unused pixbuf column.
6799         (rb_podcast_source_set_property, rb_podcast_source_get_property):
6800         Use consistent style.
6802         Fixes #322961.
6804 2005-12-11  James Livingston  <jrl@ids.org.au>
6806         * rhythmdb/rhythmdb-property-model.c:
6807         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
6808         (rhythmdb_property_model_insert),
6809         (rhythmdb_property_model_delete_prop):
6810         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
6811         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
6812         (destroy_tree_property):
6813         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
6814         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
6815         GMemChunks, they are crap and deprecated. Improves startup-time and
6816         memory usage slightly.
6818 2005-12-10  William Jon McCann  <mccann@jhu.edu>
6820         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
6821         Added license and website info.
6823         * MAINTAINERS.old: Add Colin.
6824         * MAINTAINERS: Add James.
6825         * AUTHORS: Put back in order.  Add extra space between name and email
6826         to make it easier to read.  Add James and jonathan.
6828         * widgets/rb-song-info.c (rb_song_info_init) 
6829         (rb_song_info_constructor): Make sure close button is primary/rightmost.
6831 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
6833         Play queue implementation. Closes bug 107787.
6835         * data/rhythmbox.schemas: add items for whether the queue should be
6836         displayed as a sidebar, and the height of the sourcelist if it is.
6838         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
6839         playlist, and podcast popups; add 'view queue as sidebar' menu item,
6840         add popups for queue as source and as sidebar.  We need a separate
6841         popup for the sidebar view because otherwise it's hard to tell which
6842         of the visible entry views the action came from.
6844         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
6846         * po/POTFILES.in: Add new file
6848         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
6849         Add helper function for deciding if a podcast episode is available for
6850         playback.
6852         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
6853         reorder entries in the query model.
6854         (idle_process_update): Handle new update type used to insert entries
6855         at a particular position in the query model.
6856         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
6857         parameter to specify the position (-1 meaning 'at the end').
6858         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
6859         parameter.
6860         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
6861         bad entry removal updates for entries that aren't in the model.
6862         (rhythmdb_query_model_emit_reorder): Add helper function for
6863         reordering rows.
6864         (rhythmdb_query_model_move_entry): New method for moving entries
6865         around in the model
6866         (rhythmdb_query_model_entry_added_cb),
6867         (rhythmdb_query_model_update_limited_entries),
6868         (rhythmdb_query_model_do_reorder),
6869         (rhythmdb_query_model_do_insert): Pass through the index parameter,
6870         use rhythmdb_query_model_emit_reorder where appropriate.
6872         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
6873         Don't allow the queue to be deleted.
6874         (handle_playlist_entry_cb): Update for method signature change
6875         (rb_playlist_manager_save_playlists_async),
6876         (rb_playlist_manager_get_playlists): Don't save the play queue,
6877         don't report it as a playlist.
6879         * shell/rb-play-order.c: Include queue play order in the list of
6880         available orders.
6882         * shell/rb-shell.c
6883         (rb_shell_class_init), (rb_shell_get_property): Add new property 
6884         for access to the clipboard object.
6885         (rb_shell_constructor): Handle playing-from-queue signal to update the
6886         sourcelist display; add queue sidebar in to UI, listen for queue
6887         sidebar pane changes, and read initial settings from gconf.
6888         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
6889         Only tell the sourcelist the source has changed if the new source is 
6890         not the queue, as we update the sourcelist differently in that case.
6891         (rb_shell_set_window_title): Only use the cached window title if the
6892         playing state was the same when it was created.
6893         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
6894         (rb_shell_sync_pane_visibility): Only hide the side pane if the
6895         sourcelist is hidden and the queue is shown as a source.
6896         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
6897         mode, since it doesn't make any sense.
6898         (sourcelist_visibility_changed_cb): Update the visibility of the pane
6899         too.
6900         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
6901         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
6902         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
6903         playing from queue shown as sidebar.
6905         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
6906         MusicProperties action here from rb-shell-player.c, since it acts like
6907         cut/copy/paste etc.
6908         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
6909         (rb_shell_clipboard_get_property): new property for queue source.
6910         Watch for selection changes in the sidebar entry view as well as the
6911         normal one.
6912         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
6913         actions and MusicProperties.
6914         (rb_shell_clipboard_cmd_queue_delete),
6915         (rb_shell_clipboard_cmd_add_song_to_queue),
6916         (rb_shell_clipboard_cmd_song_info),
6917         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
6919         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
6920         actually came from (could be the playing source, or the queue), add a 
6921         new play order object for the queue, add a property for the queue
6922         source, add a signal for when we switch between playing from the
6923         source and from the queue.
6924         (rb_shell_player_set_property): Handle playing directly from the
6925         queue so we stop once the queue is empty.  Create queue play order
6926         when we get the queue source.
6927         (rb_shell_player_get_playing_source): Return the source we're actually
6928         playing from.
6929         (rb_shell_player_get_playing_entry): Get playing entry from queue if
6930         that's where it is.
6931         (rb_shell_player_set_playing_entry): Update the queue play order if 
6932         that's where we're playing from.
6933         (rb_shell_player_play_order_update_cb): Take has next/previous for the
6934         queue into consideration too.
6935         (swap_playing_source): Helper function for switching the playing
6936         source.
6937         (rb_shell_player_do_previous): Check the queue, even though there's
6938         never a previous entry in it (yet), swap playing source if it changed.
6939         (rb_shell_player_do_next): Check the queue for entries to play before
6940         the normal play order, and swap playing source if it changed.
6941         (rb_shell_player_do_previous_or_seek): Check the queue for previous
6942         entries to go to as well.
6943         (rb_shell_player_playpause): Check the queue before the selection and
6944         the play order, and swap playing source if it changed.
6945         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
6946         (rb_shell_player_entry_activated_cb): Use
6947         rb_podcast_manager_entry_downloaded, do some tapdancing to make
6948         activating queue entries work properly (move the activated entry to
6949         the start of the queue and then play it); if we were playing from the
6950         queue, clear its playing entry so it'll start again from the start
6951         after the activated entry.
6952         (rb_shell_player_sync_buttons): MusicProperties action handler moved
6953         to rb-shell-clipboard.c
6954         (actually_set_playing_source): Add helper for updating the playing
6955         source.
6956         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
6957         signal if we stop or start doing so; use actually_set_playing_source; 
6958         emit playing-source-changed if we actually did change source.
6960         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
6961         rb_static_playlist_source_add_location.
6963         * sources/rb-library-source.c (rb_library_source_class_init): Allow
6964         enqueueing of songs from the library.
6966         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
6967         enqueueing of sonsg from playlists.
6968         (rb_playlist_source_entry_added_cb): Add extra parameter for
6969         rhythmdb_query_model_add_entry.
6970         
6971         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
6972         Implement (can_)add_to_queue for this class.
6973         (rb_podcast_source_entry_activated): Use
6974         rb_podcast_manager_entry_downloaded.
6975         (impl_can_add_to_queue): Return TRUE if at least one entry that has
6976         been downloaded is selected.
6977         (impl_add_to_queue): Only add downloaded entries to the queue.
6979         * sources/rb-source.{c,h}:
6980         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
6981         methods.
6982         (rb_source_class_init): Don't allow enqueueing by default; implement 
6983         add_to_queue though.
6984         (default_add_to_queue): Add all selected entries to the queue.
6985         
6986         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
6987         would be playing if there wasn't anything in the queue).
6988         (set_source_playing): Helper function for manipulating tree store.
6989         (rb_sourcelist_set_playing_source): Use set_source_playing
6990         (rb_sourcelist_preempt_playing_source): Update preempted source
6991         pointer, manipulate source states.
6993         * sources/rb-static-playlist-source.{c,h}:
6994         (rb_static_playlist_source_add_location_internal),
6995         (rb_static_playlist_source_add_location),
6996         (rb_static_playlist_source_add_entry): Add index parameter for
6997         specifying where in the playlist the new entry goes.
6998         (rb_static_playlist_source_new_from_xml), (impl_paste),
6999         (rb_static_playlist_source_add_list_uri),
7000         (rb_static_playlist_source_add_location_swapped),
7001         (rb_static_playlist_source_add_locations),
7002         (rb_static_playlist_source_non_entry_dropped),
7003         (rb_static_playlist_source_row_inserted):
7004         Handle new index parameter everywhere it appears
7005         (rb_static_playlist_source_move_entry): New method for moving entries
7006         around in the playlist.
7008         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
7009         warnings when trying to scroll entry views that have never been
7010         displayed.
7012         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
7013         play order that removes the old entry when switching to a new one.
7015         * sources/rb-play-queue-source.{c,h}: New files, implementing a
7016         static playlist subclass that has a second entry view for the sidebar
7017         view using alternate formatting, and that displays the number of
7018         entries it contains in its source list entry.
7020 2005-12-10  James Livingston  <jrl@ids.org.au>
7022         * rhythmdb/rhythmdb-query-model.c:
7023         (rhythmdb_query_model_add_entry),
7024         (rhythmdb_query_model_drag_data_received):
7025         * sources/rb-static-playlist-source.c:
7026         (rb_static_playlist_source_non_entry_dropped): when things are
7027         dropped, ignore any blank lines in the list of uris. Make the source
7028         responsible for adding new items to the db.
7030         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
7031         empty string.
7033 2005-12-10  James Livingston  <jrl@ids.org.au>
7035         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7036         (rb_shell_player_sync_buttons),
7037         (rb_shell_player_selection_changed_cb): watch for the
7038         "selection-changed" signal, so that the Song Properties get enabled.
7039         Closes bug 323694.
7041 2005-12-10  James Livingston  <jrl@ids.org.au>
7043         * data/rhythmbox.schemas: fix the gconf schema
7045 2005-12-10  James Livingston  <jrl@ids.org.au>
7047         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
7048         the decoded-pad callback with gstreamer 0.8, it causes problems.
7050 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
7052         Remove more junk from RBEntryView. Closes bug 323640.
7054         * widgets/rb-entry-view.{c,h}:
7055         Remove unused private structure members, replace 'playing' boolean
7056         with an enum (so we know if we're paused too), and store a pointer to
7057         the RBShellPlayer too.  
7058         (rb_entry_view_class_init), (rb_entry_view_set_property),
7059         (rb_entry_view_get_property):
7060         Remove 'entry-selected' and 'changed' signals and
7061         'playing-entry' property, add 'selection-changed' signal and
7062         'shell-player' and 'playing-state' properties.
7063         (rb_entry_view_new): Take the shell player object reference
7064         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
7065         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
7066         No longer needed, shell player is the place to get this information.
7067         (rb_entry_view_busy), (rb_entry_view_get_duration),
7068         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
7069         (rb_entry_view_get_next_from_entry),
7070         (rb_entry_view_get_previous_from_entry),
7071         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
7072         (rb_entry_view_get_num_entries):
7073         Removed, callers should go to the query model directly.
7074         (rb_entry_view_playing_song_changed): Update active query model, emit
7075         row changed signals to update pixbufs, and scroll to the playing song
7076         when the playing song changes, based on a signal from the shell
7077         player.
7078         (queue_changed_sig), (rb_entry_view_row_changed_cb),
7079         (emit_entry_changed): Evil, removed.
7080         (rb_entry_view_selection_changed_cb): Remove old signals, add new
7081         selection-changed signal.
7082         (rb_entry_view_select_none), (rb_entry_view_select_entry):
7083         Remove selection lock.  It didn't work anyway.
7084         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
7085         (rb_entry_view_emit_row_changed): Simple helper function to emit
7086         row-changed signals.
7088         * widgets/Makefile.am: Entry view needs headers from the shell/
7089         directory.
7090         * widgets/rb-song-info.{c,h}: Use the query model for everything except
7092         scrolling the entry view to show the entry being displayed.
7093         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
7094         'source' property so we can watch for query model changes.
7095         (rb_song_info_finalize): Unref objects, disconnect signal handlers
7096         (rb_song_info_set_property): Watch for query model changes, don't
7097         watch for entry view changes.
7098         (rb_song_info_new): Take source as a parameter, use the source's entry
7099         view unless one was specifically supplied.
7100         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
7101         Use query model rather than entry view to move between songs.
7102         (rb_song_info_update_buttons): Use query model.
7103         (rb_song_info_query_model_changed_cb): Handle query model changes.
7105         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
7106         Only one copy of the code to enable/disable the CD burning action
7107         (rb_playlist_manager_playlist_entries_changed):
7108         Use the query model to get the number of entries, not the entry view.
7110         * shell/rb-play-order-random-by-age-and-rating.c,
7111         shell/rb-play-order-random-by-age.c,
7112         shell/rb-play-order-random-by-rating.c,
7113         shell/rb-play-order-random-equal-weights.c:
7114         Use G_DEFINE_TYPE
7116         * shell/rb-shell-player.{c,h}:
7117         Remove a few unused entries from the structure.
7118         (rb_shell_player_set_property):
7119         Don't use the 'changed' signal on the entry view (it's evil)
7120         (rb_shell_player_have_first): No longer needed
7121         (rb_shell_player_play): Just tell the entry view it's playing
7122         (rb_shell_player_playpause): Tell the entry view it's paused
7123         when pausing.
7124         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
7125         (rb_shell_player_property_row_activated_cb):
7126         Get the entry to play using the query model, not the entry view.
7127         (rb_shell_player_sync_buttons): Update entry view state while we're
7128         here.
7129         (rb_shell_player_set_playing_source_internal): Update entry view state
7130         (rb_shell_player_get_playing): Ask the entry view, not the player.
7131         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
7132         and rb_shell_set_window_title work properly, so you get "(Paused)" in
7133         the window title and tray icon tooltip.
7134         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
7136         * sources/rb-iradio-source.c, sources/rb-library-source.c,
7137         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
7138         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
7139         view constructor, pass the source in to the song info widget
7140         constructor.
7142         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
7143         Use 'selection-changed' instead of 'changed', since that's what the
7144         clipboard cares about.
7145         (rb_shell_clipboard_set_source): Don't die if source == NULL
7147 2005-12-10  James Livingston  <jrl@ids.org.au>
7149         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
7150         * sources/rb-playlist-source-recorder.c:
7151         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
7152         stuff not use the deprecated API when compiled against 2.13
7154 2005-12-10  James Livingston  <jrl@ids.org.au>
7156         patch by: Alex Lancaster <alexl@users.sourceforge.net>
7158         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
7159         problem where the genre tag was getting set to the artist. Closes bug
7160         323642.
7162 2005-12-09  William Jon McCann  <mccann@jhu.edu>
7164         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
7165         Return NULL if can't get first iter.
7167         Fixes #323663
7169 2005-12-09  William Jon McCann  <mccann@jhu.edu>
7171         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
7172         updated rb_station_properties_dialog_new API.
7173         (rb_iradio_source_add_from_playlist): New public function.
7174         (rb_iradio_source_first_time_changed): Use add_from_playlist.
7176         * shell/rb-shell.c (new_station_location_added): Handle
7177         iradio location added signal.
7178         (rb_shell_cmd_new_station): Use new iradio station dialog.
7180         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
7181         (rb_station_properties_dialog_new): Don't squeeze new
7182         station functionality into this class.
7183         (rb_station_properties_dialog_response_cb): ditto.
7184         (rb_station_properties_dialog_update_title): Make
7185         consistent with other properties dialogs.
7186         (rb_station_properties_dialog_location_changed_cb): Do nothing.
7188         * iradio/rb-new-station-dialog.[ch]: 
7189         * iradio/Makefile.am: Add new station dialog.
7191         * data/glade/station-new.glade: New file based on
7192         new podcast feed dialog.
7193         * data/glade/station-properties.glade: Updated to
7194         be consistent with song properties dialog.
7196         Fixes #323306.
7198 2005-12-10  James Livingston  <jrl@ids.org.au>
7200         patch by: StÃ¥le Lyngaas <staale@lyngaas.com>
7202         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7203         submit songs longer than 30 minutes. Fixes bug 323639.
7205 2005-12-09  William Jon McCann  <mccann@jhu.edu>
7207         * shell/rb-shell.c (idle_save_playlist_manager): Use new
7208         async save function.
7209         (rb_shell_finalize): Remove save timeout sources.  Reorder
7210         steps a bit to make saving db and playlists a bit more
7211         failsafe in case something goes wrong later.
7212         (rb_shell_constructor): Keep track of save timeout source.
7213         (add_to_library_response_cb): Keep track of db save timeout source.
7215         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
7216         g_atomic.
7217         (rb_playlist_manager_shutdown): New function to shutdown
7218         threads etc. before exit.
7219         (rb_playlist_manager_finalize): Moved handling outstanding
7220         threads stuff to shutdown since if there are outstanding threads
7221         they hold a ref and finalize is never called.
7222         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
7223         of signal which may be required for sync save.
7224         (rb_playlist_manager_save_playlists_async): Renamed old
7225         save_playlists to save_playlists_async.  Use g_atomic.
7226         (rb_playlist_manager_save_playlists): New function to
7227         perform sync saves (symmetric with RhythmDB API).
7228         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
7230         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
7231         Style consistency anality.
7232         (rhythmdb_finalize): Remove save timeout source.
7233         (rhythmdb_set_property, rhythmdb_get_property) 
7234         (rhythmdb_process_events): More anality and keep track of
7235         save timeout source.
7236         (action_thread_main): No need to call g_thread_exit.
7237         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
7238         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
7239         (write_encoded_gvalue, read_encoded_property): La la la.
7241         Fixes #322940.
7243 2005-12-10  James Livingston  <jrl@ids.org.au>
7245         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
7246         non-audio files.
7248 2005-12-10  James Livingston  <jrl@ids.org.au>
7250         * Makefile.am:
7251         * configure.ac: remove the rpm spec files, so that automake works.
7252         oops
7254         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
7255         locking issue
7257 2005-12-09  James Livingston  <jrl@ids.org.au>
7259         * debian/: try to get cvs to actually remove the files
7261 2005-12-09  James Livingston  <jrl@ids.org.au>
7263         * rhythmbox.spec.in:
7264         * debian/: remove the distro package stuff, they are *really* old, and
7265         downstream manage it anyway.
7267 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
7269         Rework play orders to work off query models rather than 
7270         entry views, and track the playing entry themselves rather
7271         than relying on the entry view to do it.  This makes the entry
7272         view mostly just a widget. Closes bug 323612.
7274         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
7275         Use query model rather than entry view to get the number
7276         of entries in playlists.
7278         * rhythmdb/rhythmdb-query-model.{c.h}
7279         (rhythmdb_query_model_tree_path_to_entry),
7280         (rhythmdb_query_model_iter_to_entry),
7281         (rhythmdb_query_model_get_next_from_entry),
7282         (rhythmdb_query_model_get_previous_from_entry):
7283         New utility functions for iterating through query models.
7284         (rhythmdb_query_model_compute_status_normal):
7285         Have one copy of this code, not four.
7287         * shell/rb-play-order.{c,h}:
7288         Add signals for when next/previous availability changes, and
7289         when the playing entry is removed, and add a property for
7290         the current playing entry.  Add gtkdoc comments too.
7291         (rb_play_order_class_init): Add new property and signals.
7292         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
7293         (rb_play_orer_query_model_changed_cb),
7294         (rb_play_order_query_model_changed): 
7295         Use query model rather than entry view.
7296         (rb_play_order_set_property), (rb_play_order_get_property):
7297         Handle new playing-entry property.  Call playing_entry_changed virtual
7298         method so subclasses can do any processing required.
7299         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
7300         (rb_play_order_set_playing_entry):
7301         Just use the playing-entry property.
7302         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
7303         Utility methods for subclasses.
7304         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
7305         Update next/previous availability, check if the playing entry
7306         was removed.
7307         (default_playing_entry_removed):
7308         Keep the current behaviour of just stopping playback when the 
7309         playing entry is deleted.
7310         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
7311         these for subclasses that don't have go_next/go_previous, but do
7312         have get_next/get_previous.
7313         (rb_play_order_update_have_next_previous): Emit signal if the
7314         availability of next/previous entries has changed.
7316         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
7317         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
7318         Use G_DEFINE_TYPE, replace entry view iterator with query model 
7319         methods.
7320         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
7321         on the last song in the shuffled order, go back to the start. This
7322         means if you press 'play' again you'll get the whole order again, not
7323         just one song.
7325         * shell/rb-shell-player.c:
7326         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
7327         play order rather than the entry view.
7328         (rb_shell_player_set_property): Update the play order when the
7329         selected source changes and we aren't playing anything.
7330         (rb_shell_player_sync_play_order): Copy the playing entry across to
7331         the new play order so playback continues from the same song, and watch
7332         for updates to have_next/have_previous.
7333         (rb_shell_player_play_order_update_cb): Enable/disable the
7334         next/previous actions when next/previous entry availability changes.
7335         (rb_shell_player_jump_to_current): Just use the play order's idea of
7336         what's playing, not the entry view's; if not playing anything, clear
7337         the selection, so when a playlist ends and you hit play again, it'll
7338         start at the start rather than the end.
7339         (rb_shell_player_do_previous): restructure a bit.
7340         (rb_shell_player_do_next): restructure, jump to new playing entry in
7341         an idle handler instead of directly.
7342         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
7343         song if there is one.
7344         (rb_shell_player_playpause): Jump to playing song, don't update the
7345         play order if we got the song from the selection.
7346         (rb_shell_player_playing_entry_deleted_cb): Not needed.
7347         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
7348         looks after next/previous actions now.  Don't break if called while
7349         there is no selected source.
7350         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
7351         (rb_shell_player_set_playing_source_internal),
7352         (rb_shell_player_error): No need to track the attempted playing entry
7353         any more, since the play order does that.
7355         * shell/rb-shell.c:
7356         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
7357         rb_shell_player_get_playing_entry rather than going through the entry
7358         view.
7360         * shell/rb-statusbar.c (rb_statusbar_set_property),
7361         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
7362         than the entry view for status bar text changes.
7363         (rb_statusbar_sync_status): Ask the query model directly
7365         * sources/rb-source.{c}: Add query model property.
7366         (default_get_status): Get status text from query model, should be
7367         suitable for most sources.
7368         (rb_source_set_property): Listen for changes to the query model 
7369         to update the status text.
7370         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
7371         (idle_emit_status_changed): Emit status-changed signals when query
7372         model changes. 
7374         * sources/rb-library-source.c, sources/rb-podcast-source.c:
7375         (impl_get_status): Not needed, RBSource does this now
7376         (rb_library_source_do_query) (rb_podcast_source_do_query): 
7377         Update RBSource's query model reference.
7379         * sources/rb-playlist-source.c:
7380         Remove query-model property, since RBSource has one now
7381         (impl_get_status): Not needed, RBSource does this now
7382         (rb_playlist_source_row_deleted): Use query model iterator helper
7383         function.
7384         (rb_playlist_source_set_query_model): Update RBSource's query model
7385         reference too.
7387         * sources/rb-iradio-source.c:
7388         (impl_get_status): Ask the query model directly.
7389         (rb_iradio_source_do_query): Update RBSource's query model reference
7390         when we create a new query.
7392         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
7393         Use query model rather than entry view.
7395         * widgets/rb-entry-view.{c,h}: 
7396         Remove playing_entry_deleted signal (now in play order).
7397         (entry_from_tree_path), (entry_from_tree_iter): Not needed
7398          as RhythmDBQueryModel has equivalent helper functions.
7399         (rb_entry_view_*): Use query model helpers instead of the above two
7400         functions.
7402 2005-12-09  James Livingston  <jrl@ids.org.au>
7404         * configure.ac:
7405         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
7406         (rb_recorder_enabled):
7407         * shell/rb-removable-media-manager.c: (poll_tray_opened):
7408         * sources/rb-playlist-source-recorder.c:
7409         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
7410         whether libnautilusburn has the _drive_unref function, and if so use
7411         it. Stops it complaining about deprecated API.
7413 2005-12-09  James Livingston  <jrl@ids.org.au>
7415         * configure.ac: drop the minimum gstreamer version back down, it
7416         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
7418 2005-12-09  James Livingston  <jrl@ids.org.au>
7420         * widgets/rb-song-info.c: (rb_song_info_class_init),
7421         (rb_song_info_show), (rb_song_info_constructor),
7422         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
7423         (rb_song_info_forward_clicked_cb): save metadata changes when the
7424         Next/Previous buttons are pressed (closes bug 320952). use
7425         G_DEFINE_TYPE.
7427 2005-12-09  James Livingston  <jrl@ids.org.au>
7429         Patch by: <jonathan@kaolin.hn.org>
7431         * sources/rb-iradio-source.c:
7432         (stations_view_drag_data_received_cb):
7433         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
7434         of urls. Fixes bug 323610.
7436 2005-12-09  James Livingston  <jrl@ids.org.au>
7438          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
7439          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
7441         * configure.ac:
7442         * metadata/rb-metadata-gst.c:
7443         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
7444         (rb_player_construct), (rb_player_new):
7445         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
7446         (rb_recorder_gst_signal_error), (pipe_message),
7447         (rb_recorder_new_pad_cb), (rb_recorder_construct),
7448         (rb_recorder_new):
7449         * shell/main.c: (main):
7450         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
7451         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
7453 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
7455         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
7457         * shell/rb-playlist-manager.c:
7458           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
7459           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
7460           (rb_playlist_manager_set_automatic_playlist),
7461           (rb_playlist_manager_cmd_new_automatic_playlist),
7462           (rb_playlist_manager_cmd_edit_automatic_playlist):
7463            Use new playlist subclasses.
7464           (rb_playlist_manager_save_playlists): Only read the dirty flag
7465            for local playlists, minor pointless reformatting
7467         * sources/Makefile.am: add new files
7469         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
7470           split lots of stuff out into two
7471           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
7472           make RBPlaylistSource abstract, add virtual methods for showing a
7473           popup for the entry view and saving the playlist to XML.
7474           Other stuff is subclass-specific, or already virtual in RBSource.
7476         * sources/rb-playlist-xml: Define playlist XML tags and attributes
7477           in one place, since they're used across three source files now
7479         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
7480           Use new static playlist class
7482         * sources/rb-ipod-source.c: (add_rb_playlist):
7483           Use new static playlist class
7485         * sources/rb-static-playlist-source.{c,h},
7486         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
7487         files.
7489         * po/POTFILES.in: add new files
7491 2005-12-07  James Livingston  <jrl@ids.org.au>
7493         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
7494         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
7495         metadata loads not attempt to write changes to disk.
7497 2005-12-07  James Livingston  <jrl@ids.org.au>
7499         patch by: Alex Lancaster <alexl@users.sourceforge.net>
7501         * data/glade/song-info-multiple.glade:
7502         * widgets/rb-song-info.c: (rb_song_info_constructor),
7503         (rb_song_info_sync_entries_multiple): allow the year to be changed on
7504         multiple songs at once.
7506 2005-12-06  James Livingston  <jrl@ids.org.au>
7508         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
7509         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
7511 2005-12-06  James Livingston  <jrl@ids.org.au>
7513         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
7514         names rather than adding a horizontal scroll bar.
7516 2005-12-06  James Livingston  <jrl@ids.org.au>
7518         * rhythmdb/rhythmdb-query-model.c:
7519         (rhythmdb_query_model_update_limited_entries),
7520         (rhythmdb_query_model_drag_data_received): remove some pointless debug
7521         messages
7523         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
7524         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
7525         always hide rather than remove DB entries, which will make RB not lose
7526         information when tag editing happens or people move files to trash and
7527         then change their mind. Also fix some races where the monitoring code
7528         would notice the temporary files generated by saving metadata.
7530 2005-12-05  William Jon McCann  <mccann@jhu.edu>
7532         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
7533         Hide internals and add tooltips.
7534         (rb_song_display_box_size_allocate): Hide internals.
7535         (sanitize_string, info_url): Copied from rb-header.
7536         (rb_song_display_box_sync): New public function.
7538         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
7539         (rb_header_init): Use a separate row for the seek bar.
7540         (rb_header_finalize): Don't unref widgets.
7541         (rb_header_sync): Use rb_song_display_box_sync.
7542         (rb_header_set_urldata)
7543         (rb_header_set_show_artist_album): Hide instead of remove widgets.
7544         (rb_header_set_show_position_slider): Set visibility of seek bar.
7545         (rb_header_set_show_timeline): Set sensitivity of seek bar.
7546         (rb_header_get_elapsed_string): Don't shift when you first start playback.
7548         * shell/rb-statusbar.c (rb_statusbar_init)
7549         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
7551         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
7552         (rb_shell_constructor): Remove hseparator.  Monitor
7553         toolbar visibility settings.  Add toolbar.  Add
7554         volume button to toolbar.  Add tooltips for volume button.
7555         (rb_shell_view_toolbar_changed_cb) 
7556         (rb_shell_sync_toolbar_visibility)
7557         (toolbar_visibility_changed_cb): Set visibility of
7558         toolbar.
7559         (rb_shell_sync_smalldisplay): Set the toolbar style to
7560         icons only when in small display mode.
7561         (rb_shell_volume_widget_changed_cb): Save volume setting.
7563         * shell/rb-shell-player.c (rb_shell_player_constructor):
7564         Remove pause and stop actions.  Make play action "important"
7565         so that text is visible in horizontal toolbar position.
7566         Remove control buttons.
7567         (rb_shell_player_init) 
7568         (rb_shell_player_sync_song_position_slider_visibility):
7569         Set visbibility of seek bar.
7570         (rb_shell_player_cmd_play, rb_shell_player_playpause):
7571         Make play action a toggle.
7572         (rb_shell_player_sync_volume): Volume control moved
7573         to player.
7574         (gconf_song_position_slider_visibility_changed):
7575         Set visbibility of seek bar.
7576         (rb_shell_player_sync_buttons):
7577         Set sensitivity of actions instead of buttons.
7578         (rb_shell_player_playing_changed_cb): Add callback
7579         for player notify::playing changes.
7581         * lib/rb-preferences.h: Add hide toolbar and seek
7582         bar key names.
7584         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
7585         seek bar menu items.  Remove pause and stop actions
7586         from the control menu.  Add a toolbar.
7588         * data/rhythmbox.schemas: Add toolbar_hidden
7589         song_position_slider_hidden keys.
7591         Patch by: James Livingston  <jrl@ids.org.au>
7592                   William Jon McCann  <mccann@jhu.edu>
7593         Fixes #316238.
7595 2005-12-05  James Livingston  <jrl@ids.org.au>
7597         * data/glade/library-prefs.glade:
7598         * data/rhythmbox.schemas:
7599         * lib/rb-preferences.h:
7600         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
7601         (rhythmdb_sync_library_location):
7602         * sources/rb-library-source.c: (rb_library_source_class_init),
7603         (rb_library_source_finalize), (rb_library_source_constructor),
7604         (impl_get_config_widget), (rb_library_source_preferences_sync),
7605         (rb_library_source_watch_toggled_cb): allow people to disable library
7606         monitoring, because with nothing set the file chooser button selects
7607         the Home folder (and hence that will get monitored).
7609 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
7611         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
7612         attempt to fix problem with RSS parsing showing invalid feed types.
7613         Fixes bug 323153
7615 2005-12-04  James Livingston  <jrl@ids.org.au>
7617         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
7618         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
7619         importing a remote directory not block the UI.
7621 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
7623         * data/glade/podcast-feed-properties.glade:
7624         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
7626 2005-12-04  James Livingston  <jrl@ids.org.au>
7628         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
7630         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
7631         to && to fix a mistake in the earlier podcast patch.
7633 2005-12-03  James Livingston  <jrl@ids.org.au>
7635         * data/glade/podcast-new.glade:
7636         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
7637         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
7639         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
7640         GValue, which stops occasional errors.
7642         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7643         compile issue.
7645 2005-12-03  James Livingston  <jrl@ids.org.au>
7647         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
7649         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7650         crasher with some podcasts feeds.
7652 2005-12-03  James Livingston  <jrl@ids.org.au>
7654         * data/rhythmbox.schemas: fix the gconf schema
7656 2005-12-03  James Livingston  <jrl@ids.org.au>
7658         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
7659         add a selection timeout to the sourcelist. This lets you hold a track
7660         over the playlist source, and then have the view switch so you can
7661         insert the track in the middle of the playlist. Closes bug 323044.
7663         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
7664         (select_on_drag_timeout), (remove_select_on_drag_timeout),
7665         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
7666         (rb_tree_dnd_add_drag_dest_support):
7667         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
7668         timeout.
7670         * sources/rb-sourcelist-model.c:
7671         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
7672         the source list.
7674 2005-12-02  Bastien Nocera  <hadess@hadess.net>
7676         * data/glade/audioscrobbler-prefs.glade: add a space before the web
7677         links, so that the text doesn't touch the button
7679 2005-12-02  James Livingston  <jrl@ids.org.au>
7681         Add full support for gnome-vfs remote files. Closes bug 140355.
7683         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
7684         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
7685         for authentication information from the user doesn't block the UI.
7687         (rhythmdb_entry_set_visibility): don't emit the signal twice.
7689         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
7690         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
7691         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
7692         (rhythmdb_process_stat_event), (emit_load_error_idle),
7693         (rhythmdb_process_metadata_load),
7694         (rhythmdb_process_queued_entry_set_event),
7695         (rhythmdb_process_file_created_or_modified),
7696         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
7697         (queue_stat_uri), (add_thread_main),
7698         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
7699         (rhythmdb_load), (rhythmdb_save_thread_main),
7700         (threadsafe_entry_set), (rhythmdb_query_internal),
7701         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
7702         (rhythmdb_do_full_query_internal),
7703         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
7704         (rhythmdb_volume_unmounted_cb),
7705         (rhythmdb_check_changed_file): trivial changes to support the
7706         asynchronous stats.
7708         * shell/main.c: (main): activate the authentication manager.
7710         * shell/rb-playlist-manager.c:
7711         (rb_playlist_manager_cmd_load_playlist),
7712         (rb_playlist_manager_cmd_save_playlist):
7713         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
7714         (rb_shell_cmd_add_file_to_library):
7715         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
7716         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
7717         remote files.
7719 2005-12-02  James Livingston  <jrl@ids.org.au>
7721         * shell/rb-playlist-manager.c: makes playlist menu items use the
7722         elipses correctly. Fixes bug 322283.
7724 2005-12-02  James Livingston  <jrl@ids.org.au>
7726         * shell/rb-playlist-manager.c:
7727         (rb_playlist_manager_load_playlists): fix silly mistake
7729 2005-12-02  James Livingston  <jrl@ids.org.au>
7731         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
7732         print out metadata-write unless --debug was passed.
7734         * rhythmdb/rhythmdb.c: (rhythmdb_load):
7735         * shell/rb-playlist-manager.c:
7736         (rb_playlist_manager_load_playlists): block writes to disk if they are
7737         still being loaded.
7739 2005-12-02  James Livingston  <jrl@ids.org.au>
7741         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
7742         ctrl-T, because Ctrl-D is used by "small mode"
7744 2005-12-02  James Livingston  <jrl@ids.org.au>
7746         * shell/rb-shell-preferences.c:
7747         (rb_shell_preferences_append_view_page):
7748         * sources/rb-library-source.c: (impl_get_config_widget):
7749         * sources/rb-podcast-source.c: (impl_get_config_widget):
7750         * sources/rb-source.c: (rb_source_get_config_widget):
7751         * sources/rb-source.h: Make the preference actually work.
7753         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
7754         if Rhythmbox is being run for the first time.
7756 2005-12-02  James Livingston  <jrl@ids.org.au>
7758         Add support for Rhythmbox to watch your library, and automatically add
7759         new tracks. Fixes bug 160159.
7761         * data/glade/library-prefs.glade: add "library location" preference
7762         * data/rhythmbox.schemas: add gconf key for the library location
7764         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
7765         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
7766         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
7767         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
7768         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
7769         (rhythmdb_load_thread_main), (rhythmdb_load),
7770         (monitor_subdirectory), (monitor_library_directory),
7771         (monitor_entry_file), (rhythmdb_sync_library_location),
7772         (library_location_changed_cb), (rhythmdb_check_changed_file),
7773         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
7774         specifiec in the gconf key for new additions. Also fix monitoring code
7775         so that it works properly, and notices deletions.
7777         * lib/rb-preferences.h:
7778         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7779         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
7780         * shell/rb-audioscrobbler.h:
7781         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
7782         (rb_shell_preferences_append_view_page),
7783         (rb_shell_preferences_new):
7784         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
7785         it's preferences pane, so that we don't need #ifdef's through
7786         rb-shell-preferences.
7788         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7789         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
7790         "preferences" property, so that sources can acccess it. This is needed
7791         because the library location pref needs to take effect when the window
7792         is closed.
7794         * sources/rb-library-source.c:
7795         (rb_library_source_library_location_changed),
7796         (rb_library_source_dispose), (rb_library_source_finalize),
7797         (rb_library_source_constructor), (impl_get_config_widget),
7798         (rb_library_source_preferences_sync),
7799         (rb_library_source_process_library_location_change),
7800         (rb_library_source_prefs_update),
7801         (rb_library_source_process_library_handle_selection),
7802         (rb_library_source_library_location_cb): set up and control the
7803         "library location" preference.
7805         * sources/rb-audiocd-source.c:(rb_source_class_init):
7806         * sources/rb-source.c: (rb_source_class_init): remove some pointless
7807         code.
7809 2005-12-01  William Jon McCann  <mccann@jhu.edu>
7811         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
7812         (rb_feed_podcast_properties_dialog_update_title): 
7813         * data/glade/podcast-feed-properties.glade:
7814         Make the feed properties dialog consistent with the podcast
7815         properties dialog.
7817 2005-12-01  William Jon McCann  <mccann@jhu.edu>
7819         * metadata/.cvsignore: 
7820         * po/.cvsignore: 
7821         * podcast/.cvsignore: Updated.
7823         * shell/main.c (main): Support DBus 0.6 flags.
7825 2005-11-30  Bastien Nocera  <hadess@hadess.net>
7827         * data/ui/rhythmbox-ui.xml:
7828         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
7829         (rhythmbd_entry_move_to_trash_set_error),
7830         (rhythmdb_entry_move_to_trash):
7831         * rhythmdb/rhythmdb.h:
7832         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
7833         (rb_shell_clipboard_cmd_delete),
7834         (rb_shell_clipboard_cmd_move_to_trash):
7835         * sources/rb-library-source.c: (rb_library_source_class_init),
7836         (impl_delete), (impl_move_to_trash):
7837         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
7838         (impl_delete), (impl_move_to_trash):
7839         * sources/rb-removable-media-source.c:
7840         (rb_removable_media_source_class_init):
7841         * sources/rb-source.c: (rb_source_class_init),
7842         (rb_source_can_move_to_trash), (rb_source_delete),
7843         (rb_source_move_to_trash):
7844         * sources/rb-source.h:
7845         Add move_to_trash member for the sources, implement move to trash for
7846         the library and playlists
7847         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
7848         local files to the trash, and deleting them from the database
7849         (Closes: #315389)
7851 2005-11-30  William Jon McCann  <mccann@jhu.edu>
7853         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
7854         (rb_tray_icon_init, rb_tray_icon_finalize): 
7855         * shell/rb-statusbar.c (rb_statusbar_class_init) 
7856         (rb_statusbar_init, rb_statusbar_finalize): 
7857         * shell/rb-source-header.c (rb_source_header_class_init) 
7858         (rb_source_header_init, rb_source_header_finalize): 
7859         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
7860         (rb_shell_finalize): 
7861         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
7862         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
7863         * shell/rb-shell-player.c (rb_shell_player_class_init) 
7864         (rb_shell_player_init, rb_shell_player_finalize): 
7865         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
7866         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
7867         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
7868         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
7869         * shell/rb-play-order.c (rb_play_order_class_init) 
7870         (rb_play_order_init, rb_play_order_finalize): 
7871         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
7872         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
7873         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
7874         (rb_random_play_order_init, rb_random_play_order_finalize): 
7875         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
7876         (rb_history_finalize): 
7877         * shell/rb-commander.c (rb_commander_class_init) 
7878         (rb_commander_init, rb_commander_finalize): 
7879         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
7880         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
7881         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
7882         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
7883         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
7884         (rb_podcast_properties_dialog_init) 
7885         (rb_podcast_properties_dialog_finalize): 
7886         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
7887         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
7888         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
7889         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
7890         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
7891         (rb_feed_podcast_properties_dialog_init) 
7892         (rb_feed_podcast_properties_dialog_finalize): 
7893         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
7894         (rb_metadata_init, rb_metadata_finalize): 
7895         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
7896         (rb_station_properties_dialog_init) 
7897         (rb_station_properties_dialog_finalize): 
7898         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
7899         (rb_daap_share_init, rb_daap_share_dispose): 
7901         Use g_type_class_add_private in all classes. Closes bug 313688.
7902         
7903 2005-11-30  James Livingston  <jrl@ids.org.au>
7905         patch by: William Jon McCann <mccann@jhu.edu> to use
7906         g_type_class_add_private in all classes. Closes bug 313688.
7908         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
7909         (rb_thread_finalize):
7910         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
7911         (rb_player_finalize):
7912         * rhythmdb/rhythmdb-property-model.c:
7913         (rhythmdb_property_model_class_init),
7914         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
7915         * rhythmdb/rhythmdb-query-model.c:
7916         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
7917         (rhythmdb_query_model_finalize):
7918         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
7919         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
7920         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
7921         (rhythmdb_finalize):
7922         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7923         (rb_daap_source_init), (rb_daap_source_dispose):
7924         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
7925         (rb_iradio_source_init), (rb_iradio_source_finalize):
7926         * sources/rb-library-source.c: (rb_library_source_class_init),
7927         (rb_library_source_init), (rb_library_source_finalize):
7928         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
7929         (rb_playlist_source_init), (rb_playlist_source_dispose):
7930         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7931         (rb_podcast_source_init), (rb_podcast_source_finalize):
7932         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
7933         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
7934         * sources/rb-sourcelist-model.h:
7935         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
7936         (rb_sourcelist_init), (rb_sourcelist_finalize):
7937         * sources/rb-sourcelist.h:
7938         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
7939         * widgets/rb-cell-renderer-rating.c:
7940         (rb_cell_renderer_rating_init),
7941         (rb_cell_renderer_rating_class_init),
7942         (rb_cell_renderer_rating_finalize):
7943         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
7944         (rb_druid_finalize):
7945         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
7946         (rb_entry_view_init), (rb_entry_view_finalize):
7947         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7948         (rb_header_finalize):
7949         * widgets/rb-load-failure-dialog.c:
7950         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
7951         (rb_load_failure_dialog_finalize):
7952         * widgets/rb-property-view.c: (rb_property_view_class_init),
7953         (rb_property_view_init), (rb_property_view_finalize):
7954         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
7955         (rb_rating_finalize):
7956         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
7957         (rb_search_entry_init), (rb_search_entry_finalize):
7958         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
7959         (rb_simple_view_init), (rb_simple_view_finalize):
7960         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
7961         (rb_song_display_box_init), (rb_song_display_box_finalize):
7962         * widgets/rb-song-info.c: (rb_song_info_class_init),
7963         (rb_song_info_init), (rb_song_info_finalize):
7964         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
7965         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
7967 2005-11-30  James Livingston  <jrl@ids.org.au>
7969         * iradio/rb-station-properties-dialog.c:
7970         (rb_station_properties_dialog_init),
7971         (rb_station_properties_dialog_new):
7972         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
7973         * lib/rb-glade-helpers.h:
7974         * podcast/rb-feed-podcast-properties-dialog.c:
7975         (rb_feed_podcast_properties_dialog_init),
7976         (rb_feed_podcast_properties_dialog_new):
7977         * podcast/rb-podcast-properties-dialog.c:
7978         (rb_podcast_properties_dialog_init),
7979         (rb_podcast_properties_dialog_new):
7980         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
7981         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
7982         * sources/rb-library-source.c: (impl_get_config_widget):
7983         * sources/rb-playlist-source-recorder.c:
7984         (rb_playlist_source_recorder_init):
7985         * widgets/rb-song-info.c: (rb_song_info_construct_single),
7986         (rb_song_info_constructor): create a single rb_glade_boldify_label()
7987         in rb-glade-helpers, rather than having eight implementation
7988         throughout the code.
7990 2005-11-30  James Livingston  <jrl@ids.org.au>
7992         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
7993         * lib/rb-util.h:
7994         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
7995         move the duration->string function into rb-utils, as it gets used in a
7996         few places.
7998         patch by: William Jon McCann <mccann@jhu.edu>
8000         * data/glade/podcast-properties.glade:
8001         * podcast/rb-podcast-properties-dialog.c:
8002         (rb_podcast_properties_dialog_init),
8003         (rb_podcast_properties_dialog_update),
8004         (rb_podcast_properties_dialog_update_title),
8005         (rb_podcast_properties_dialog_update_feed),
8006         (rb_podcast_properties_dialog_update_duration),
8007         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
8008         info dialog look more like the song info dialog. Use the same "Feed"
8009         value that is displayed in the treeview (ie. the album field), displays
8010         the duration, uses units in the bitrate field, and sort the fields in
8011         the same order.
8013 2005-11-29  James Livingston  <jrl@ids.org.au>
8015         * rhythmdb/rhythmdb-marshal.list:
8016         * rhythmdb/rhythmdb.h:
8017         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8018         (emit_load_error_idle), (rhythmdb_process_metadata_load),
8019         (entry_to_rb_metadata), (emit_save_error_idle),
8020         (action_thread_main): emit error signal when metadata write fails.
8022         * shell/rb-shell.c: (rb_shell_constructor),
8023         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
8024         "metadata save" error and display it to the user.
8026 2005-11-29  James Livingston  <jrl@ids.org.au>
8028         * data/ui/rhythmbox-ui.xml:
8029         * sources/rb-podcast-source.c:
8030         (rb_podcast_source_songs_show_popup_cb),
8031         (rb_podcast_source_cmd_download_post),
8032         (rb_podcast_source_cmd_cancel_download): split download and cancel
8033         download commands. Replace usage of "Post" with "Esisode". Fixes bug
8034         321653.
8036 2005-11-18  William Jon McCann  <mccann@jhu.edu>
8038         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
8039         title on alert dialogs per the HIG.
8041         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
8042         the term Burn.
8043         (free_song_list): Routine to free song list.
8044         (rb_playlist_source_recorder_finalize): Use free_song_list.
8045         (rb_playlist_source_recorder_add_from_model): Return FALSE
8046         if unable to add all songs.  Check that duration of all
8047         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
8048         Fixes #321753.
8050         * sources/rb-playlist-source-recorder.c (check_media_length)
8051         (rb_playlist_source_recorder_start): Only check the duration
8052         and current media if the playlist length is longer than a
8053         standard CD (74 min).  Otherwise, just let the Recorder do the
8054         check.
8055         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
8056         drive at init.
8057         (rb_recorder_set_device): Don't leak drives.
8058         (rb_recorder_get_media_length): Use drive that was already set.
8059         (rb_recorder_burn): Let the recorder handle checking media type/size.
8060         Fixes bug 321754.
8062 2005-11-29  James Livingston  <jrl@ids.org.au>
8064         * rhythmdb/rhythmdb-query-model.c:
8065         (rhythmdb_query_model_set_sort_order):
8066         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
8067         emitting the tree-model "resorted" signal.
8069         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8070         (rb_entry_view_finalize), (rb_entry_view_set_property),
8071         (rb_entry_view_constructor), (rb_entry_view_resort_model):
8072         * widgets/rb-entry-view.h: add a function to resort the entry view,
8073         using the above function.
8075         * sources/rb-iradio-source.c:
8076         (rb_iradio_source_songs_view_sort_order_changed_cb):
8077         * sources/rb-library-source.c: (rb_library_source_finalize),
8078         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
8079         * sources/rb-playlist-source.c:
8080         (rb_playlist_source_songs_sort_order_changed_cb):
8081         * sources/rb-podcast-source.c:
8082         (rb_podcast_source_posts_view_sort_order_changed_cb),
8083         (rb_podcast_source_do_query): use the above function instead of
8084         re-creating the query model. This makes changing the sorting an order
8085         of magnitude faster, as it uses a single resorted signal rather than
8086         deleting and re-adding everything (which emits 2N signals). Closes bug
8087         315389.
8089 2005-11-29  James Livingston  <jrl@ids.org.au>
8091         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
8092         autosizing, which results in large speedups. Closes bug 312122.
8094         * po/ja.po: change the date format, so that it is a constant width
8096         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8097         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8098         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
8099         (rb_entry_view_constructor): make columns use fixed widths,
8100         disable column autosizing, and enable fixed-height mode.
8102         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
8103         (rb_entry_view_get_time_date_column_sample):
8104         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
8105         and get the canonical date format for the locale.
8107 ============ Version 0.9.2
8109 2005-11-28  James Livingston  <jrl@ids.org.au>
8111         * configure.ac: bump version to 0.9.2
8112         * NEWS: update with changes for 0.9.2
8114 2005-11-28  James Livingston  <jrl@ids.org.au>
8116         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8118         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
8119         Disable saving, renaming and delting for DAAP playlists.
8120         Fixes bug 322627.
8122 2005-11-28  James Livingston  <jrl@ids.org.au>
8124         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
8125         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
8126         prevent bug 322619.
8128         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
8129         * sources/rb-removable-media-source.c:
8130         (rb_removable_media_source_class_init): fix ipod browser visibility
8131         problem.
8133 2005-11-28  James Livingston  <jrl@ids.org.au>
8135         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
8136         Avahi 0.6 support actually work. Fixes bug 322519.
8138 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
8140         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
8141         avahi is specified in --with-mdns
8143 2005-11-27  James Livingston  <jrl@ids.org.au>
8145         patch by: Bastien Nocera <hadess@hadess.net>
8147         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
8148         not the private one. Fixes bug 322485.
8150 2005-11-26  James Livingston  <jrl@ids.org.au>
8152         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
8153         Avahi 0.6, as well as 0.5.
8155         * configure.ac:
8156         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
8157         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
8158         (add_service):
8160 2005-11-25  James Livingston  <jrl@ids.org.au>
8162         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
8163         321926.
8165 2005-11-25  James Livingston  <jrl@ids.org.au>
8167         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
8168         correct type for checking the date against 0. Stops a warning when
8169         saving metadata.
8171 2005-11-25  James Livingston  <jrl@ids.org.au>
8173         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
8174         adjustment to be inside the element's limits. Without this songs that
8175         have large ReplayGain values will recieve no increase because they are
8176         outside the acceptable range, causing them to remain quiet.
8178 2005-11-25  James Livingston  <jrl@ids.org.au>
8180         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
8181         * sources/rb-daap-source.c: (rb_daap_source_class_init):
8182         * sources/rb-ipod-source.c:
8183         * sources/rb-source.h:
8184         * sources/rb-library-source.h:
8185         * sources/rb-library-source.c: (rb_library_source_class_init),
8186         (rb_library_source_constructor),
8187         (rb_library_source_has_first_added_column),
8188         (rb_library_source_has_drop_support):
8189         * sources/rb-removable-media-source.c:
8190         (rb_removable_media_source_class_init): Make library-derived sources
8191         not show the Date Added column, as it doesn't make sense. Fixes bug
8192         322269.
8193         Move some of the feature funcs from the ipod and audio cd sources up to
8194         the removable media source.
8196 2005-11-24  James Livingston  <jrl@ids.org.au>
8198         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
8199         errors. oops.
8201 2005-11-24  James Livingston  <jrl@ids.org.au>
8203         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8204         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
8205         (rb_iradio_source_constructor): Chain up dispose method and use
8206         G_DEFINE_TYPE
8208 2005-11-24  James Livingston  <jrl@ids.org.au>
8210         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
8211         mistake in the last commit that can cause crashes.
8213 2005-11-24  James Livingston  <jrl@ids.org.au>
8215         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
8216         instead of g_printerr.
8218         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
8219         rb_debug instead of g_warning. The message happens every time for
8220         removable media/daap shares, so it's not unusual.
8222 2005-11-24  James Livingston  <jrl@ids.org.au>
8224         patch by: Tom Parker <palfrey@tevp.net>
8226         * configure.ac: fix libsoup test for enabling daap
8228 2005-11-23  James Livingston  <jrl@ids.org.au>
8230         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
8231         (rb_query_creator_init), (rb_query_creator_constructor),
8232         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
8233         empty row to queries with no criteria. Fixes bug 322078. use
8234         G_DEFINE_TYPE.
8236 2005-11-23  James Livingston  <jrl@ids.org.au>
8238         patch by:  <baptiste.millemathias@gmail.com>
8240         * help/C/quick-reference.xml: update the quick reference to have the
8241         correct key bindings.
8243 2005-11-22  James Livingston  <jrl@ids.org.au>
8245         * sources/rb-library-source.c: (genres_selection_reset_cb),
8246         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
8247         reset the query when all browser selections are removed.
8249 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
8251         * podcast/rb-podcast-manager.c:
8252         (rb_podcast_manager_db_entry_deleted_cb):
8253         Use a custom loop to remove podcast posts, rather than
8254         gtk_tree_model_foreach(), as deleting the entries within
8255         that loop causes the iterator to return the first entry
8256         twice.  Instead, we need to find the next entry before
8257         removing the current one. Fixes bug 321956.
8258         (rb_podcast_manager_entry_remove_cb): No longer needed.
8260 2005-11-22  James Livingston  <jrl@ids.org.au>
8262         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8263         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
8264         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
8266 2005-11-22  James Livingston  <jrl@ids.org.au>
8268         * sources/rb-podcast-source.c:
8269         (rb_podcast_source_post_date_cell_sort_func),
8270         (rb_podcast_source_post_status_cell_sort_func),
8271         (rb_podcast_source_post_feed_cell_sort_func):
8272         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
8273         (rb_entry_view_album_sort_func),
8274         (rb_entry_view_double_ceiling_sort_func),
8275         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
8276         the entry's location as a last resort when sorting, so the sort order
8277         is stable. This will stop entries moving around when two entries have
8278         the same sorting, and one of them gets played.
8280 2005-11-22  James Livingston  <jrl@ids.org.au>
8282         * daapsharing/rb-daap-connection.c:
8283         (rb_daap_connection_class_init), (rb_daap_connection_init),
8284         (connection_get_password), (build_message),
8285         (http_response_handler), (http_get), (handle_server_info),
8286         (handle_login), (handle_update), (handle_database_info),
8287         (handle_song_listing), (handle_playlists),
8288         (handle_playlist_entries), (rb_daap_connection_new),
8289         (rb_daap_connection_constructor), (rb_daap_connection_logout),
8290         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
8291         (rb_daap_connection_get_headers),
8292         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
8293         (rb_daap_connection_set_property),
8294         (rb_daap_connection_get_property):
8295         * daapsharing/rb-daap-connection.h:
8296         * sources/rb-daap-source.c: (rb_daap_source_dispose),
8297         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
8298         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
8299         of destroying the object when it is going to be used by a callback and
8300         fixes a double-free. Fixes bugs 321930 and 322007.
8302 2005-11-22  James Livingston  <jrl@ids.org.au>
8304         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
8305         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
8306         notification if there aren't any. Fixes bug 321968.
8308 2005-11-22  James Livingston  <jrl@ids.org.au>
8310         * rhythmdb/rhythmdb-property-model.c:
8311         (rhythmdb_property_model_set_property),
8312         (rhythmdb_property_model_finalize),
8313         (rhythmdb_property_model_compare),
8314         (rhythmdb_property_model_insert),
8315         (rhythmdb_property_model_delete_prop): Fix property model sorting
8316         where the display and sort keys are different. Fixes bug 321980.
8318 2005-11-22  James Livingston  <jrl@ids.org.au>
8320         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
8321         when import as a file or passed on the command line, and load them as
8322         playlists.
8324 2005-11-22  James Livingston  <jrl@ids.org.au>
8326         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
8328         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
8329         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
8330         a broken daap server. Fixes bug 321919.
8332 2005-11-22  James Livingston  <jrl@ids.org.au>
8334         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
8335         drag-and-drop for both the episodes and feeds list.
8336         
8337         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
8338         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
8339         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
8341         * widgets/rb-property-view.c: (rb_property_view_class_init),
8342         (rb_property_view_set_property), (rb_property_view_get_property),
8343         (rb_property_view_new), (rb_property_view_constructor):
8344         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
8345         (rb_simple_view_new), (rb_simple_view_constructor):
8346         * widgets/rb-simple-view.h: add a "draggable" property to property
8347         views and set it to false for the feed list. Fixes bug 321284.
8349 2005-11-22  James Livingston  <jrl@ids.org.au>
8351         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
8353         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
8354         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
8355         * sources/rb-ipod-source.c: (add_rb_playlist):
8356         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8357         (rb_playlist_source_set_property),
8358         (rb_playlist_source_get_property), (rb_playlist_source_new),
8359         (impl_receive_drag), (rb_playlist_source_add_location),
8360         (rb_playlist_source_new_from_xml):
8361         * sources/rb-playlist-source.h: give playlists and (optional)
8362         entry-type, and reject entries that don't match. Fixes bug 322006.
8364 2005-11-21  James Livingston  <jrl@ids.org.au>
8366         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
8367         (rb_source_header_finalize): remove the weak references when the
8368         source header is finalised. Stops the callbacks being called after the
8369         object is destroyed.
8371 2005-11-21  James Livingston  <jrl@ids.org.au>
8373         * shell/main.c: (main): don't try to acquite bonobo/dbus when
8374         --no-registration was passed. It causes warnings that make it
8375         impossible to run with --no-registration --g-fatal-warnings
8377 2005-11-21  James Livingston  <jrl@ids.org.au>
8379         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
8380         of strings when they are still in use. Fixes bug 321547.
8382         (rb_daap_connection_destroy): fix memory leak
8384 2005-11-21  James Livingston  <jrl@ids.org.au>
8386         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
8387         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
8388         (rb_daap_mdns_resolve_cancel), (publish_cb),
8389         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
8390         support.
8392 2005-11-21  James Livingston  <jrl@ids.org.au>
8394         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
8395         sorting by genre
8397 2005-11-20  James Livingston  <jrl@ids.org.au>
8399         * podcast/rb-podcast-manager.c:
8400         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
8401         that we don't leak thread structures. Fixes bug 321636, and probably
8402         321775.
8404 2005-11-20  James Livingston  <jrl@ids.org.au>
8406         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
8407         (lookup_cd):
8408         * podcast/rb-podcast-manager.c: (start_job),
8409         (rb_podcast_manager_db_entry_deleted_cb),
8410         (rb_podcast_manager_entry_remove_cb):
8411         * podcast/rb-podcast-parse.c: (rb_insert_item),
8412         (rb_podcast_parse_load_feed):
8413         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
8414         * shell/rb-removable-media-manager.c:
8415         (rb_removable_media_manager_append_media_source):
8416         * shell/rb-shell.c: (add_to_library_response_cb):
8417         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
8418         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
8419         * sources/rb-iradio-source.c:
8420         (stations_view_drag_data_received_cb):
8421         * sources/rb-library-source.c: (string_list_equal),
8422         (impl_get_extra_views), (impl_receive_drag):
8423         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
8424         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
8425         (impl_receive_drag):
8426         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
8427         (rb_entry_view_append_column_custom), (harvest_entries):
8428         * widgets/rb-property-view.c:
8429         (rb_property_view_selection_changed_cb):
8430         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
8431         switch from using g_list_append to g_list_prepend. This changes
8432         operations from O(n^2) to O(n), which in cases like deleting a lot of
8433         tracks can give huge improvements in speed. Closes bug 321696.
8435 2005-11-20  James Livingston  <jrl@ids.org.au>
8437         * sources/rb-sourcelist.c: (rb_sourcelist_init),
8438         (rb_sourcelist_update_expander_visibility): fix indenting of child
8439         sources.
8441 2005-11-20  James Livingston  <jrl@ids.org.au>
8443         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
8444         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
8445         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
8446         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
8447         (add_service), (entry_group_cb): dynamically allocate memory, rather
8448         than using static variables.
8450         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
8451         re-enable the daap share if the name hasn't changed.
8452         * shell/rb-shell-preferences.c:
8453         (share_name_entry_focus_out_event_cb): don't ask the daap share to
8454         change it's name when the checkbox is disabled. Fixed bug 321748.
8456 2005-11-18  James Livingston  <jrl@ids.org.au>
8458         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
8459         as hidden if it is on the current workspace.
8461 2005-11-17  William Jon McCann  <mccann@jhu.edu>
8463         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
8464         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
8465         (rb_podcast_properties_dialog_parse_time): 
8466         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
8467         (rb_feed_podcast_properties_dialog_parse_time):
8468         Rework the way the last mod time strings are created.  It was using
8469         thread unsafe functions, not creating value UTF, and not not checking
8470         the value of the result before modifying it.  This new method fixes
8471         these problems.
8473 2005-11-18  James Livingston  <jrl@ids.org.au>
8475         Don't reset the search box when viewing a different source, because it
8476         will change what is being played. Closes 321593.
8478         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
8479         the search box
8481         * shell/rb-source-header.c: (rb_source_header_class_init),
8482         (rb_source_header_init), (rb_source_header_finalize): use
8483         G_DEFINE_TYPE.
8485         (rb_source_header_set_property),
8486         (rb_source_header_source_weak_destroy_cb),
8487         (rb_source_header_search_cb): store the search text when leaving a
8488         source and put it in the search box when viewing it again.
8490 2005-11-18  James Livingston  <jrl@ids.org.au>
8492         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8493         (save_entry):
8494         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
8495         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
8496         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
8497         time stamp.
8499         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
8500         last-seen as the timestamp of the last update of the feed. Don't
8501         re-add episodes that have been deleted. Closes 319759.
8503 2005-11-18  James Livingston  <jrl@ids.org.au>
8505         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
8506         that don't have the day name at the start. Closes 321645.
8508 2005-11-18  James Livingston  <jrl@ids.org.au>
8510         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
8511         (rb_podcast_manager_copy_post),
8512         (rb_podcast_manager_get_podcast_dir):
8513         * podcast/rb-podcast-manager.h:
8514         * sources/rb-podcast-source.c: (impl_get_config_widget),
8515         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
8516         download location switching to / if the prefs were opened before
8517         downloading an episode. Closes 321611.
8519 2005-11-18  James Livingston  <jrl@ids.org.au>
8521         * data/glade/podcast-new.glade:
8522         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
8523         (rb_new_podcast_dialog_set_property),
8524         (rb_new_podcast_dialog_get_property),
8525         (rb_new_podcast_dialog_response_cb),
8526         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
8527         for entering new podcast urls in. Closes bug 321610.
8529 2005-11-18  James Livingston  <jrl@ids.org.au>
8531         * sources/rb-podcast-source.c: (construct_query_from_selection),
8532         (rb_podcast_source_do_query): allow podcast list to be re-sorted
8533         without restarting RB. Closes bug 321612.
8535 2005-11-18  James Livingston  <jrl@ids.org.au>
8537         * widgets/rb-entry-view.c: (set_column_visibility),
8538         (rb_entry_view_sync_columns_visible): when changing visibility of one
8539         column, don't hide and re-show all the others. Makes a show/hide
8540         column operation a lot faster.
8542 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
8544         Closes bug 321702.
8546         * iradio/rb-station-properties-dialog.c
8547          (rb_station_properties_dialog_update_bitrate):
8548         Mark the bitrate value as being kbps, using the same
8549         translatable format string as rb-song-info.c
8551         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
8552          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
8554         * shell/rb-shell-player.c (info_available_cb):
8555          Use RB_METADATA_FIELD_BITRATE to update the iradio
8556          station's bitrate value.
8558 2005-11-17  James Livingston  <jrl@ids.org.au>
8560         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
8562         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
8563         free a NULL date.
8565 2005-11-17  James Livingston  <jrl@ids.org.au>
8567         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
8569         * lib/rb-stock-icons.c: emit a single warning rather than multiple
8570         assertions. Lookup the icon size correctly.
8572 2005-11-16  William Jon McCann  <mccann@jhu.edu>
8574         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
8575         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
8576         Fix build errors.
8578 2005-11-16  James Livingston  <jrl@ids.org.au>
8580         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
8581         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
8582         (rb_shell_preferences_sync_column_button): block the toggle signal of
8583         the column checkboxes while setting their initial state. This stops
8584         the visibility being re-set, which causes a lot of time being spent
8585         measuring the columns aagin when opening the prefs window.
8587         Use G_DEFINE_TYPE.
8589 2005-11-16  James Livingston  <jrl@ids.org.au>
8591         * sources/rb-sourcelist.c: (rb_sourcelist_init),
8592         (rb_sourcelist_edit_source_name): don't assume that the editable
8593         source name is in the first column, because it isn't. Fixes bug
8594         320137.
8596 2005-11-16  James Livingston  <jrl@ids.org.au>
8598         * daapsharing/rb-daap-mdns.h:
8599         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
8600         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
8601         parts can know why operations failed. Avahi can report that the daemon
8602         was not running. Howl doesn't do this (yet).
8603         
8604         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
8605         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
8606         (browse_cb): don't display mdns errors to the user, if it wa because
8607         the daemon was not running.
8609 2005-11-16  James Livingston  <jrl@ids.org.au>
8611         * rhythmdb/rhythmdb-property-model.c:
8612         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
8613         (rhythmdb_property_model_compare),
8614         (rhythmdb_property_model_insert),
8615         (rhythmdb_property_model_insert_prop),
8616         (rhythmdb_property_model_delete),
8617         (rhythmdb_property_model_delete_prop),
8618         (rhythmdb_property_model_get_value): use RBRefStrings rather than
8619         copying the string and re-creating the sort key. Saves a little bit of
8620         memory and time.
8622         (rhythmdb_property_model_perform_sync),
8623         (rhythmdb_property_model_sync): perform the count sync in an idle
8624         callback, so that it doesn't have to be re-run once per value when
8625         loading.
8627 2005-11-16  James Livingston  <jrl@ids.org.au>
8629         * rhythmdb/rhythmdb-query-model.c:
8630         (rhythmdb_query_model_entry_deleted_cb),
8631         (rhythmdb_query_model_remove_entry): remove deleted entries from the
8632         limited list. Stops problems if they are deleted, and then things on
8633         the main list are
8635 2005-11-16  James Livingston  <jrl@ids.org.au>
8637         * NEWS: update NEWS
8639         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
8640         button's minimise-to-tray action
8642 2005-11-16  James Livingston  <jrl@ids.org.au>
8644         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
8645         leak. Disable adding newly created files for now, because it doesn't
8646         work properly.
8648         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
8649         (rb_sourcelist_model_finalize):
8650         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
8651         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
8653 2005-11-16  James Livingston  <jrl@ids.org.au>
8655         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
8656         problem where a GError* wasn't being set to NULL. Actually check the
8657         result.
8659 2005-11-16  James Livingston  <jrl@ids.org.au>
8661         * doc/reference/tmpl/rb-entry-view.sgml:
8662         * doc/reference/tmpl/rhythmbox-unused.sgml:
8663         * doc/reference/tmpl/rhythmdb-query-model.sgml:
8664         * doc/reference/tmpl/rhythmdb.sgml:
8665         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
8666         docs, including the patch that was on bug 
8668         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
8669         API, because it should only be used by RhythmDB itself.
8671 2005-11-16  James Livingston  <jrl@ids.org.au>
8673         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
8674         pausing by middle clicking on the tray icon.
8676 2005-11-15  James Livingston  <jrl@ids.org.au>
8678         * configure.ac: enable audioscrobbler support by default, if libsoup
8679         is present.
8681 2005-11-15  James Livingston  <jrl@ids.org.au>
8683         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8684         Closes bug 321157.
8686         * configure.ac:
8687         * daapsharing/rb-daap-connection.c: (build_message),
8688         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
8689         support gzip encoded daap connections.
8691         (handle_song_listing): fix leak
8693 2005-11-15  James Livingston  <jrl@ids.org.au>
8695         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8696         * sources/rb-podcast-source.c:
8697         (rb_podcast_source_post_date_cell_data_func): make the date format
8698         translatable again, so that translators can choose the best format for
8699         their locale (%x is huge in some locales)
8701 2005-11-15  James Livingston  <jrl@ids.org.au>
8703         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
8704         (end_job): mark podcast episodes as failed, if the metadata load
8705         fails. This will prevent people playing non-audio enclosures, helping
8706         stop bug 320366.
8708 2005-11-14  James Livingston  <jrl@ids.org.au>
8710         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
8711         video sink to fakesink. This will stop problems (potentially crashers)
8712         that will occur if the file contains a video stream.
8714         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
8715         rather than using magic numbers everywhere.
8717         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8718         * sources/rb-podcast-source.c:
8719         (rb_podcast_source_songs_show_popup_cb),
8720         (rb_podcast_source_cmd_download_post),
8721         (rb_podcast_source_post_status_cell_data_func),
8722         (rb_podcast_source_entry_activated_cb): use the above constants.
8724         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
8725         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
8726         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
8727         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
8728         (cancel_job), (download_progress_cb),
8729         (rb_podcast_manager_cancel_download),
8730         (rb_podcast_manager_insert_feed): use the constants, and fix a
8731         trhead-safety issue.
8733 2005-11-14  Bastien Nocera  <hadess@hadess.net>
8735         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
8736         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
8737         entry-changed events after stats on startup, fixes entry deleted from
8738         filtered views not disappearing
8740 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
8742         Fix rhythmdb query model refcount and polling problems. Closes bug
8743         321410.
8745         * rhythmdb/rhythmdb-property-model.c:
8746         (rhythmdb_property_model_finalize):
8747          Unref the query model if we have one.
8749         * rhythmdb/rhythmdb-query-model.h:
8750          Remove poll and cancel methods.  Query cancellation
8751          never did anything anyway.
8753         * rhythmdb/rhythmdb-query-model.c:
8754         (rhythmdb_query_model_init): Remove GAsyncQueues.
8755          Replace the GAsyncQueue-based update processing
8756          with a simpler g_idle_add approach; still has the
8757          same queueing properties, but now we don't poll the
8758          model forever and updates are processed immediately.
8760         (_unref_entry), (rhythmdb_query_model_finalize):
8761          Unref DB entries when finalized
8763         (rhythmdb_query_model_has_pending_changes):
8764          Use our own counter to decide if there are updates pending
8766         (rhythmdb_query_model_process_update), (idle_process_update):
8767          Process updates using g_idle_add, or directly if possible
8769         (rhythmdb_query_model_signal_complete),
8770         (rhythmdb_query_model_add_entries):
8771          Change to new update processing method
8773         (idle_poll_model), (rhythmdb_query_model_poll):
8774          Remove GAsyncQueue-based update processing.
8776         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
8777          No need to poll the model any more - updates are processed
8778          directly for synchronous queries.
8780         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8781          Property model needs to be unref'd here
8783         * sources/rb-library-source.c: (rb_library_source_do_query):
8784          Don't try to cancel the active query (it never worked anyway),
8785          remove obsolete poll call, unref property models as required,
8786          and don't unref the cached 'all' query, since hold on to it.
8787          We unref it when the sort order changes, which forces the query
8788          to be rerun.
8790         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8791          Unref the property model as required
8793         (rb_podcast_source_do_query):
8794          Treat any query with no selected feeds and no search text as
8795          an 'all' query.  Unref query models except for the cached
8796          'all' query, since we hold on to that.
8798         (rb_podcast_source_cmd_update_all):
8799          Unref the property model as required.
8801         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
8802          Don't try to cancel the query (it never worked anyway)
8804         (rb_entry_view_poll_model):
8805          No need for this any more.
8807         * widgets/rb-entry-view.h:
8808          Remove obsolete function rb_entry_view_poll_model
8810         * widgets/rb-property-view.c: (rb_property_view_set_property):
8811          Ref and unref the property model as required.
8813 2005-11-14  James Livingston  <jrl@ids.org.au>
8815         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8817         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
8818         for error. Closes bug 321416.
8820 2005-11-14  James Livingston  <jrl@ids.org.au>
8822         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8824         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
8825         a crasher if a feed's last-post value isn't set. Closes bug 321353.
8827 2005-11-14  James Livingston  <jrl@ids.org.au>
8829         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
8830         * shell/rb-removable-media-manager.c:
8831         (rb_removable_media_manager_set_uimanager):
8832         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
8833         translation domain for GTK action groups.
8835 2005-11-12  James Livingston  <jrl@ids.org.au>
8837         * po/POTFILES.in: remove the old station-new files
8839 2005-11-12  James Livingston  <jrl@ids.org.au>
8841         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8842         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
8843         (save_entry): cause Rhythmbox to re-read the metadata from a file,
8844         when upgrading from a pre-Date-supporting version to a version that
8845         supports Date metadata. Closes bug 320760.
8847 2005-11-12  James Livingston  <jrl@ids.org.au>
8849         Add "update all podcast feeds" command. Closes bug 319954.
8851         * data/ui/rhythmbox-ui.xml: add to source context menu.
8853         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8854         (register_action_group), (rb_podcast_source_cmd_download_post),
8855         (rb_podcast_source_cmd_delete_feed),
8856         (rb_podcast_source_cmd_properties_feed),
8857         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
8858         rather than the shell.
8860         (rb_podcast_source_update_feed_func),
8861         (rb_podcast_source_cmd_update_all): update every feed.
8863 2005-11-11  James Livingston  <jrl@ids.org.au>
8865         * shell/rb-shell-player.c: (rb_shell_player_class_init),
8866         (rb_shell_player_constructor), (rb_shell_player_finalize):
8867         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
8868         others follow the HIG recommentations.
8870 2005-11-11  James Livingston  <jrl@ids.org.au>
8872         * podcast/rb-podcast-manager.c:
8873         (rb_podcast_manager_subscribe_feed): check that the url is valid,
8874         before trying to use it.
8876 2005-11-11  James Livingston  <jrl@ids.org.au>
8878         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
8879         (rb_entry_view_append_column): When sorting by year, sort by album
8880         within a particular year.
8882 2005-11-11  James Livingston  <jrl@ids.org.au>
8884         * NEWS: updates
8886 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
8887         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
8888         spelling of "Language."
8890 2005-11-11  James Livingston  <jrl@ids.org.au>
8892         * rhythmdb/rhythmdb-property-model.c:
8893         (rhythmdb_property_model_row_inserted_cb),
8894         (rhythmdb_property_model_prop_changed_cb),
8895         (rhythmdb_property_model_entry_removed_cb),
8896         (rhythmdb_property_model_insert_prop),
8897         (rhythmdb_property_model_sync): display the count after the "All"
8898         entry of a property model.
8900         * widgets/rb-property-view.c: (rb_property_view_class_init),
8901         (rb_property_view_finalize), (rb_property_view_constructor): use
8902         G_DEFINE_TYPE
8904 2005-11-10  James Livingston  <jrl@ids.org.au>
8906         * rhythmdb/rhythmdb-query-model.c:
8907         (rhythmdb_query_model_remove_entry):
8908         * rhythmdb/rhythmdb-query-model.h: make
8909         rhythmdb_query_model_remove_entry return whether the entry was in the
8910         model.
8912         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
8913         don't add non-SONG entries, as it doesn't really work and can cause
8914         crashes.
8916         (rb_playlist_source_remove_location): assert if the playlist and model
8917         differ on whether the entry is in the playlist
8919 2005-11-10  James Livingston  <jrl@ids.org.au>
8921         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
8922         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
8923         (rb_podcast_manager_thread_parse_feed),
8924         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
8925         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
8926         emulating one with a list and mutex. Fixes a couple of threading
8927         issues.
8928         
8929         (rb_podcast_manager_insert_feed): fix some problems with ignoring
8930         updated feeds.
8931         
8932         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
8933         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
8934         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
8935         * podcast/rb-podcast-parse.c: (rb_insert_item),
8936         (rb_podcast_parse_channel_free):
8937         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
8938         fix some typos, and make a bit of code clearer.
8940 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
8942         Make the "delete podcast" dialog better. Closes bug 320899.
8944         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
8945         Add PROP_WINDOW for rb_shell_get_property so we can access the
8946         GtkWindow widget of the main window. 
8947         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
8948         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
8949         podcast feed delete dialog less confusing as well.
8951 2005-11-09  James Livingston  <jrl@ids.org.au>
8953         * shell/rb-removable-media-manager.c:
8954         (rb_removable_media_manager_mount_volume),
8955         (rb_removable_media_manager_scan): Fix a crasher where we were getting
8956         NULL for a cd volume.
8958 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
8960         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
8961         method return a gboolean indicating whether the changes
8962         to the entry have already been applied.
8964         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
8965         only modify the entry if impl_entry_set returns FALSE.
8967         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
8968         When setting the location of an entry, update the
8969         hash table mapping locations to entries.
8971 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
8973         * data/glade/Makefile.am:
8974         * iradio/Makefile.am:
8975           Remove 'new station' dialog.
8977         * iradio/rb-station-properties-dialog.h:
8978         * sources/rb-iradio-source.c: (impl_song_properties):
8979         * shell/rb-shell.c: (rb_shell_cmd_new_station):
8980          Add 'new station' mode parameter to
8981          rb_station_properties_dialog_new.
8983         * (rb_station_properties_dialog_response_cb),
8984         (rb_station_properties_dialog_create_station):
8985          When in 'new station' mode, create the station
8986          when OK button is pressed.
8988         * iradio/rb-station-properties-dialog.c:
8989         (rb_station_properties_dialog_location_changed_cb):
8990          Only enable OK button if a location is specified
8991         (rb_station_properties_dialog_init),
8992         (rb_station_properties_dialog_new),
8993         (rb_station_properties_dialog_update),
8994         (rb_station_properties_dialog_update_title),
8995         (rb_station_properties_dialog_rated_cb),
8996         (rb_station_properties_dialog_update_play_count),
8997         (rb_station_properties_dialog_update_bitrate),
8998         (rb_station_properties_dialog_update_last_played),
8999         (rb_station_properties_dialog_update_rating),
9000         (rb_station_properties_dialog_update_playback_error),
9001         (rb_station_properties_dialog_show):
9002          Handle 'new station' mode, where there's no current
9003          station to edit.
9005 2005-11-08  James Livingston  <jrl@ids.org.au>
9007         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
9008         keybinding for track columns consistent between library and playlist
9009         sources.
9011 2005-11-07  James Livingston  <jrl@ids.org.au>
9013         * data/ui/rhythmbox-ui.xml:
9014         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
9015         "Edit" item to playlist menu. Closes bug 311470.
9017 2005-11-07  James Livingston  <jrl@ids.org.au>
9019         patch by: Jaap A. Haitsma <jaap@haitsma.org>
9021         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
9022         confirmation to save dialogs, with gtk 2.8 or higher.
9024 2005-11-07 James Livingston  <jrl@ids.org.au>
9025         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
9026         requirement to a general on, because people are going to have it for
9027         the other dependencies.
9029 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
9031         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
9032         delete dialog less confusing.  Use HIG recommended button order.
9033         Closes bug 320840.
9035 2005-11-06  James Livingston  <jrl@ids.org.au>
9037         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
9038         drag-and-drop error.
9039         
9040         * sources/rb-library-source.c: (rb_library_source_constructor): only
9041         add drag-and-drop for the Library itself, subclasses can add support
9042         themselves if they want it.
9044         * sources/rb-removable-media-source.c:
9045         (rb_removable_media_source_class_init): by default removable media
9046         sources do not support dnd
9048 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
9050         * data/glade/station-properties.glade:
9051          Add box containing error icon and error message label
9052         * iradio/rb-station-properties-dialog.c:
9053         (rb_station_properties_dialog_class_init),
9054         (rb_station_properties_dialog_finalize):
9055          Change this class to use G_DEFINE_TYPE
9056         (rb_station_properties_dialog_init),
9057         (rb_station_properties_dialog_update),
9058         (rb_station_properties_dialog_update_playback_error):
9059          Display error icon and message when there is one, and hide the error
9060          box otherwise.
9061         (rb_station_properties_dialog_show): Hack widget show
9062          method to update the visibility of the error info box when showing
9063          the widget.  Otherwise the icon is displayed all the time (same thing
9064          is done in rb-song-info). Closes bug 320749.
9066 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
9068         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
9069         parsing of the duration of podcast episodes from the feed. Closes bug
9070         320748.
9072 2005-11-05  James Livingston  <jrl@ids.org.au>
9074         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
9075         release date metadata ("Year"). Closes bug 166093.
9077         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
9078         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
9079         (rb_metadata_gst_add_tag_data):
9080         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9081         (save_entry):
9082         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
9083         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
9084         (set_props_from_metadata), (rhythmdb_entry_set_internal),
9085         (rhythmdb_prop_get_type):
9086         * rhythmdb/rhythmdb.h: add support for "date" property
9087         
9088         * data/glade/general-prefs.glade:
9089         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
9090         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
9091         (rb_entry_view_append_column):
9092         * widgets/rb-entry-view.h:
9093         * sources/rb-library-source.c: (rb_library_source_constructor):
9094         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
9095         "Year" colums
9097         * data/glade/song-info.glade:
9098         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
9099         (rb_song_info_construct_single), (rb_song_info_constructor),
9100         (rb_song_info_populate_dialog), (rb_song_info_update_year),
9101         (rb_song_info_sync_entry_single): Add "Year" to song info window
9103         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
9104         sorted by year.
9106 2005-11-05  James Livingston  <jrl@ids.org.au>
9108         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
9109         description if it's very long.
9111 2005-11-05  James Livingston  <jrl@ids.org.au>
9113         pathc by: Artem Baguinski <femistofel@gmail.com>
9115         * help/C/Makefile.am:
9116         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
9117         Closes bug 320613.
9119 2005-11-05  James Livingston  <jrl@ids.org.au>
9121         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9123         * daapsharing/rb-daap-share.c: (write_next_chunk),
9124         (message_finished), (databases_cb): Use chunked file loading and
9125         sending in the DAAP server. This should reduce the amount of memory
9126         required to send files to the client.
9128 2005-11-05  James Livingston  <jrl@ids.org.au>
9130         * configure.ac: make the nautilus_burn_drive_door_is_open detection
9131         work better on some systems. Closes 320622.
9133 2005-11-05  James Livingston  <jrl@ids.org.au>
9135         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
9136         homepage, so that users can find out what AudioScrobbler is. Add
9137         access keys.
9139         * data/glade/daap-prefs.glade:
9140         * data/glade/general-prefs.glade:
9141         * data/glade/library-prefs.glade: make the indent be more consistent
9143         * data/glade/podcast-prefs.glade: 
9144         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9145         (impl_get_config_widget): move thing out of code into glade, where
9146         they belong
9148 2005-11-05  James Livingston  <jrl@ids.org.au>
9150         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
9151         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
9153 2005-11-04  James Livingston  <jrl@ids.org.au>
9155         * configure.ac: don't print DAAP configure info twice
9157 2005-11-04  James Livingston  <jrl@ids.org.au>
9159         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
9160         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
9161         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
9162         #ifdefs, since we removed the symbol. Oops
9164 2005-11-04  James Livingston  <jrl@ids.org.au>
9166         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
9167         after the connect line, not before. Oops.
9169 2005-11-04  James Livingston  <jrl@ids.org.au>
9171         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
9172         fix some warnings
9174 2005-11-03  James Livingston  <jrl@ids.org.au>
9176         * NEWS: update the news file
9178         * data/glade/general-prefs.glade: make the prefs refer to "time" not
9179         "duration" column.
9181         * data/ui/rhythmbox-ui.xml:
9182         * shell/rb-playlist-manager.c:
9183         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9184         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
9185         and "delete" for feeds.
9187 2005-11-03  James Livingston  <jrl@ids.org.au>
9189         * sources/rb-podcast-source.c: (impl_delete),
9190         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
9191         feed. Closes 319760.
9193 2005-11-03  James Livingston  <jrl@ids.org.au>
9195         Don't start playing from the remote site when a un-downloaded podcast
9196         is activated. Closes 319983.
9197         
9199         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
9200         (write_job_data), (download_progress_cb): write the local location as
9201         soon as any data is recieved
9203         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
9204         the mountpoint to NULL for podcast episodes that haven't yet been
9205         downloaded.
9206         
9207         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
9208         start playing a podcast if it hasn't been downloaded.
9209         
9210         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9211         (rb_podcast_source_entry_activated_cb): begin downloading when the
9212         podcast is activated.
9214 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
9216         * data/glade/general-prefs.glade:  Fix capitalization.
9217         * shell/rb-removable-media-manager.c:  Add a mnemonic.
9218         * sources/rb-podcast-source.c:
9219         (rb_podcast_source_songs_show_popup_cb),
9220         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
9222 2005-11-03  James Livingston  <jrl@ids.org.au>
9224         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
9226         * shell/rb-removable-media-manager.c:
9227         (rb_removable_media_manager_mount_volume): don't check network or
9228         autofs mounts, as they're not going to be removable media. Stops
9229         sending lots of warnings to syslog. Closes 320571.
9231         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
9232         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
9233         320570.
9235 2005-11-03  James Livingston  <jrl@ids.org.au>
9237         Add support for playing audio CDs. Metadata lookup is done using
9238         SoundJuicer's MusicBrainz lookup code, which can be switched to using
9239         the library when it gets broken out of S-J.
9240         
9241         Add a "rescan media" menu item, and commands for ejecting removable
9242         media.
9244         Move nautilus-cd-burner from optional to required depenency.
9246         * configure.ac:
9247         * data/ui/rhythmbox-ui.xml:
9248         * metadata/Makefile.am:
9249         + metadata/sj-error.c:
9250         + metadata/sj-error.h:
9251         + metadata/sj-metadata-marshal.list:
9252         + metadata/sj-metadata-musicbrainz.c:
9253         + metadata/sj-metadata-musicbrainz.h:
9254         + metadata/sj-metadata.c:
9255         + metadata/sj-metadata.h:
9256         + metadata/sj-structures.c:
9257         + metadata/sj-structures.h:
9258         * player/Makefile.am:
9259         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
9260         * po/POTFILES.in:
9261         * shell/Makefile.am:
9262         * shell/rb-removable-media-manager.c:
9263         (rb_removable_media_manager_dispose), (poll_tray_opened),
9264         (end_cd_drive_monitor), (begin_cd_drive_monitor),
9265         (rb_removable_media_manager_load_media),
9266         (rb_removable_media_manager_mount_volume),
9267         (rb_removable_media_manager_cmd_eject_medium),
9268         (rb_removable_media_manager_cmd_scan_media),
9269         (rb_removable_media_manager_check_volume),
9270         (rb_removable_media_manager_unmount_volume_swap),
9271         (rb_removable_media_manager_scan):
9272         * sources/Makefile.am:
9273         + sources/rb-audiocd-source.c:
9274         + sources/rb-audiocd-source.h:
9275         * tests/Makefile.am:
9277 2005-11-02  James Livingston  <jrl@ids.org.au>
9279         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9281         * sources/rb-iradio-source.c:
9282         (stations_view_drag_data_received_cb):
9283         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
9284         don't crash when the second uri is missing frm the drop, which
9285         browsers sometimes do.
9287 2005-11-01  James Livingston  <jrl@ids.org.au>
9289         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
9290         (rb_podcast_manager_insert_feed):
9291         * podcast/rb-podcast-manager.h:
9292         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
9293         (rb_set_item_value), (rb_validate_item_propert),
9294         (rb_podcast_parse_date), (rb_podcast_parse_time):
9295         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
9296         from the feed.
9298 2005-10-31  James Livingston  <jrl@ids.org.au>
9300         * ChangeLog:
9301         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
9302         huge
9304 2005-10-31  James Livingston  <jrl@ids.org.au>
9306         * sources/rb-podcast-source.c:
9307         (rb_podcast_source_post_date_cell_data_func): generate the date string
9308         in a way that is correct in all locales.
9309         
9310         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
9311         (rhythmdb_entry_sync_mirrored): make the last played/date added
9312         columns use the same format.
9314 2005-10-30  James Livingston  <jrl@ids.org.au>
9317         * podcast/rb-podcast-manager.c:
9318         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
9319         
9320         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
9321         iradio errors better.
9323 2005-10-30  James Livingston  <jrl@ids.org.au>
9325         patch by: Artem Baguinski <femistofel@gmail.com>
9327         * metadata/rb-metadata-gst.c: (rb_metadata_init):
9329 2005-10-30  James Livingston  <jrl@ids.org.au>
9331         * podcast/rb-podcast-manager.c:
9332         (rb_podcast_manager_subscribe_feed),
9333         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
9334         already been added, usually as a radio station. Closes 319434.
9336 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
9338         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
9339         mnemonics & resize issues)
9340         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
9341         & mnemonics)
9342         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
9343         widget for the "download location" label.
9345         Closes bug 320184.
9347 2005-10-29  James Livingston  <jrl@ids.org.au>
9349         Allow the search box to match words from multiple properties. Closes
9350         bug 139196. Thanks to the person from IRC who did a lot of the initial
9351         work.
9354         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
9355         * lib/rb-util.h: Add functions to split a string into words, and one
9356         to perform "search folding" which is currently like casefolding but
9357         also strips punctuation
9358         
9359         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
9360         (rhythmdb_query_preprocess):
9361         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
9362         against title, artist, album and genre (for the search box)
9363         
9364         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
9365         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9366         (save_entry), (search_match_properties),
9367         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
9368         splitting into words and matching across multiple properties.
9369         
9370         * sources/rb-library-source.c: (construct_query_from_selection): use
9371         the new SEARCH_MATCH property for the search box
9372         
9373         * widgets/rb-entry-view.c: (type_ahead_search_func):
9375 2005-10-29  James Livingston  <jrl@ids.org.au>
9377         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9378         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
9379         
9380         * shell/rb-playlist-manager.c:
9381         * shell/rb-shell.c: use the above stock ids, so that the icons get set
9382         correctly.
9383         
9384         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
9385         initial state of the shuffle/repeat menu items correctly. Patch from
9386         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
9388 2005-10-29  James Livingston  <jrl@ids.org.au>
9390         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
9391         double-free.
9392         
9393         * widgets/rb-cell-renderer-pixbuf.c:
9394         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
9395         icon go black when row is not selected
9396         
9397         * doc/reference/tmpl/rb-daap-connection.sgml:
9398         * doc/reference/tmpl/rhythmdb.sgml: doc updates
9400 2005-10-29  James Livingston  <jrl@ids.org.au>
9402         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
9403         silly mistake, where it could think partial downloads has been
9404         completed.
9406 2005-10-29  James Livingston  <jrl@ids.org.au>
9408         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9410         * data/glade/song-info.glade:
9411         * widgets/rb-song-info.c: (rb_song_info_construct_single),
9412         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
9413         (rb_song_info_sync_entry_single): show the disc number in the song
9414         info window. From bug 311199.
9416 2005-10-29  James Livingston  <jrl@ids.org.au>
9418         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
9419         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
9420         regularly. Closes 155306.
9422 2005-10-29  James Livingston  <jrl@ids.org.au>
9424         * podcast/rb-podcast-manager.c:
9425         (rb_podcast_manager_download_entry),
9426         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
9427         (rb_podcast_manager_insert_feed):
9428         * podcast/rb-podcast-manager.h:
9429         * podcast/rb-podcast-parse.c: (rb_set_item_value),
9430         (rb_podcast_parser_start_element):
9431         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
9432         don't download them again. However, it can't resume
9433         partially-downloaded ones.
9435 2005-10-28  James Livingston  <jrl@ids.org.au>
9437         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
9438         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
9439         work. Don't attempt to write duration as a tag.
9441         Thanks to Artem Baguinski <femistofel@gmail.com>
9443 2005-10-28  James Livingston  <jrl@ids.org.au>
9445         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9446         don't disable the status-bar menu item when the current source doesn't
9447         use the search box.
9449 2005-10-28  James Livingston  <jrl@ids.org.au>
9451         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
9452         crash if the file has unknown length
9454 2005-10-27  James Livingston  <jrl@ids.org.au>
9456         * daapsharing/rb-daap-connection.c:
9457         (rb_daap_connection_state_done): don't assert when a daap server
9458         doesn't have any playlists
9460 2005-10-27  James Livingston  <jrl@ids.org.au>
9462         * sources/rb-sourcelist-model.c:
9463         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
9464         source for the sourcelist. Closes bug 319817.
9466 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
9468         Patch by: Renato Araujo <renatox@gmail.com>
9470         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
9471           Fix for a crasher caused by previous patch.
9473 2005-10-26  James Livingston  <jrl@ids.org.au>
9475         * data/glade/podcast-prefs.glade:
9476         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
9477         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
9478         * sources/rb-podcast-source.c: (rb_podcast_source_new):
9479         * podcast/rb-podcast-manager.c:
9480         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
9481         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
9482         * shell/rb-shell.c: Change some strings to make them more consistent.
9483         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
9484         makes it clearer which is which. "Episode" may not be the best term,
9485         but it seems to be widely used.
9486         
9487         Also fix some strings that weren't marked as translatable.
9488         
9489         * podcast/rb-feed-podcast-properties-dialog.c:
9490         (rb_feed_podcast_properties_dialog_class_init),
9491         (rb_feed_podcast_properties_dialog_finalize):
9492         * podcast/rb-new-podcast-dialog.c:
9493         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
9494         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
9495         (rb_simple_view_finalize), (rb_simple_view_constructor):
9496         * podcast/rb-podcast-properties-dialog.c:
9497         (rb_podcast_properties_dialog_class_init),
9498         (rb_podcast_properties_dialog_finalize):
9499         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
9500         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
9501         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9502         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
9503         use G_DEFINE_TYPE, instead of doing it manually.
9505 2005-10-26  James Livingston  <jrl@ids.org.au>
9507         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
9508         <jrl@ids.org.au>
9510         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
9511         (rb_metadata_init): Check that the necessary plugins are present to do
9512         id3 editing.
9513         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
9514         corrupted before replacing the original.
9516 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
9518         reviewed by: James Livingston <jrl@ids.org.au>
9520         Assign sequential IDs to playlists for DAAP rather than using the
9521         address of the playlist object.  Less flaky, and should work on 64bit
9522         platforms. Closes bug 319304.
9524         * daapsharing/rb-daap-share.c: 
9525         (rb_daap_share_set_property): watch for playlist creation
9526         (_find_by_id), (_find_by_source): playlist list search functions
9527         (rb_daap_share_playlist_created),
9528         (rb_daap_share_process_playlist),
9529         (rb_daap_share_playlist_destroyed):
9530          update playlist list as it changes, use weak refs on 
9531          playlists to get notified on destroy.
9532         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
9533          destroy playlist list on shutdown
9534         (add_playlist_to_mlcl): use playlist ID rather than pointer in
9535          DAAP response
9536         (databases_cb): search for playlist ID in list rather than just
9537          converting it to a pointer; return HTTP 404 if playlist not 
9538          found.
9539         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
9540          is already used for the main library
9542 2005-10-26  James Livingston  <jrl@ids.org.au>
9544         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9546         * daapsharing/rb-daap-connection.c: (build_message),
9547         (http_response_handler), (http_get), (handle_server_info),
9548         (handle_login), (handle_update), (handle_database_info),
9549         (handle_song_listing), (handle_playlists),
9550         (handle_playlist_entries), (handle_logout),
9551         (rb_daap_connection_new), (rb_daap_connection_logout),
9552         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
9553         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
9554         * daapsharing/rb-daap-connection.h:
9555         * sources/rb-daap-source.c: (rb_daap_source_activate),
9556         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
9557         (rb_daap_source_disconnect): Make connecting to DAAP sources
9558         asynchronous, so that non-responsive servers don't hang the UI. Closes
9559         316225.
9561 2005-10-26  James Livingston  <jrl@ids.org.au>
9563         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9565         * rhythmdb/rhythmdb-query-model.c:
9566         (rhythmdb_query_model_do_reorder): generate the row re-order map
9567         correctly.
9568         
9569         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
9570         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
9571         Update selection when rows get re-ordered. Closes 319718.
9573 2005-10-26  James Livingston  <jrl@ids.org.au>
9575         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
9577         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
9578         actually set the db pointer in play orders. Closes 319818.
9580 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
9582         Patch by: Renato Araujo <renatox@gmail.com>
9584         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
9585         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
9586         (rb_podcast_manager_update_synctime),
9587         (rb_podcast_manager_config_changed),
9588         (rb_podcast_manager_insert_feed):
9589         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9590         (save_entry):
9591         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
9592         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
9593         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
9595 2005-10-25  James Livingston  <jrl@ids.org.au>
9597         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
9598         (db_entry_deleted_cb): don't share tracks that are hidden because the
9599         file is missing.
9601 2005-10-22  James Livingston  <jrl@ids.org.au>
9603         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
9604         crash if an entry couldn't be playerd, without streamer setting an
9605         error.
9607         
9608         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
9610         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
9611         (rb_new_podcast_dialog_text_changed): enable the add button when a url
9612         is pasted into the dialog.
9613         
9614         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
9615         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
9616         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
9617         (rb_podcast_parse_channel_free):
9618         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
9619         feeds
9621 2005-10-22  James Livingston  <jrl@ids.org.au>
9623         * sources/rb-iradio-source.c:
9624         (rb_iradio_source_first_time_changed): Make merging the default
9625         stations actually work.
9626         
9627         * sources/rb-podcast-source.c:
9628         (rb_podcast_source_post_status_cell_data_func): fix problem where some
9629         people weren't seing the percentages in the stats column.
9631 2005-10-21  James Livingston  <jrl@ids.org.au>
9633         Patch from Caio Marcelo <cmarcelo@gmail.com>
9635         * shell/rb-shell.c: (rb_shell_window_state_cb),
9636         (rb_shell_get_visibility), (idle_hide_mainwindow),
9637         (rb_shell_set_visibility): Make the "show window" item in the tray
9638         icon menu show the toggle state correctly. Use a better policy on
9639         deciding whether the window is "visible" or not. Closes bug 308053.
9641 2005-10-21  James Livingston  <jrl@ids.org.au>
9643         * doc/reference/tmpl/rb-shell-preferences.sgml:
9644         * shell/Makefile.am: fix building with gtk-doc
9646         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9647         don't submit podcasts to audioscrobbler
9648         
9649         
9650         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
9651         
9652         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
9653         (rb_set_item_value): strip spaces surrounding podcast urls
9654         
9656         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
9657         
9658         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
9660 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
9662         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
9663          Audioscrobbler/Last.fm support
9665         * configure.ac:
9666         * data/glade/Makefile.am:
9667         * data/glade/audioscrobbler-prefs.glade:
9668         * data/rhythmbox.schemas:
9669         * lib/Makefile.am:
9670         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
9671         * lib/md5.h:
9672         * lib/rb-preferences.h:
9673         * po/POTFILES.in:
9674         * shell/Makefile.am:
9675         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
9676         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
9677         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
9678         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
9679         (rb_audioscrobbler_timeout_cb), (mkmd5),
9680         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
9681         (rb_audioscrobbler_do_handshake),
9682         (rb_audioscrobbler_do_handshake_cb),
9683         (rb_audioscrobbler_submit_queue),
9684         (rb_audioscrobbler_submit_queue_cb),
9685         (rb_audioscrobbler_import_settings),
9686         (rb_audioscrobbler_preferences_sync),
9687         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
9688         (rb_audioscrobbler_gconf_changed_cb),
9689         (rb_audioscrobbler_song_changed_cb),
9690         (rb_audioscrobbler_username_entry_changed_cb),
9691         (rb_audioscrobbler_username_entry_activate_cb),
9692         (rb_audioscrobbler_password_entry_changed_cb),
9693         (rb_audioscrobbler_password_entry_activate_cb),
9694         (rb_audioscrobbler_enabled_check_changed_cb),
9695         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
9696         (rb_audioscrobbler_load_entry_from_string),
9697         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
9698         (rb_audioscrobbler_print_queue),
9699         (rb_audioscrobbler_free_queue_entries):
9700         * shell/rb-audioscrobbler.h:
9701         * shell/rb-shell-preferences.c:
9702         (rb_shell_preferences_append_audioscrobbler_config):
9703         * shell/rb-shell-preferences.h:
9704         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9705         (rb_shell_select_source), (rb_shell_cmd_preferences):
9706         * sources/Makefile.am:
9708 2005-10-21  James Livingston  <jrl@ids.org.au>
9710         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
9712         * Makefile.am:
9713         * NEWS:
9714         * configure.ac:
9715         * data/art/Makefile.am:
9716         * data/glade/Makefile.am:
9717         * data/rhythmbox.schemas:
9718         * data/ui/rhythmbox-ui.xml:
9719         * doc/reference/Makefile.am:
9720         * doc/reference/tmpl/rhythmdb.sgml:
9721         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9722         * lib/rb-stock-icons.h:
9723         * po/POTFILES.in:
9724         * podcast/Makefile.am:
9725         + podcast/rb-feed-podcast-properties-dialog.c:
9726         + podcast/rb-feed-podcast-properties-dialog.h:
9727         + podcast/rb-new-podcast-dialog.c:
9728         + podcast/rb-new-podcast-dialog.h:
9729         + podcast/rb-podcast-manager.c:
9730         + podcast/rb-podcast-manager.h:
9731         + podcast/rb-podcast-marshal.list:
9732         + podcast/rb-podcast-parse.c:
9733         + podcast/rb-podcast-parse.h:
9734         + podcast/rb-podcast-properties-dialog.c:
9735         + podcast/rb-podcast-properties-dialog.h:
9736         * rhythmdb/rhythmdb-property-model.c:
9737         (rhythmdb_property_model_set_property),
9738         (rhythmdb_property_model_enable_drag):
9739         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9740         (rhythmdb_tree_parser_end_element), (save_entry),
9741         (rhythmdb_tree_save):
9742         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
9743         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
9744         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
9745         (rhythmdb_entry_podcast_feed_get_type):
9746         * rhythmdb/rhythmdb.h:
9747         * shell/Makefile.am:
9748         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
9749         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9750         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
9751         (rb_shell_quit):
9752         * sources/Makefile.am:
9753         + sources/rb-podcast-source.c:
9754         + sources/rb-podcast-source.h:
9755         * widgets/Makefile.am:
9756         * widgets/rb-property-view.c: (rb_property_view_class_init),
9757         (rb_property_view_constructor),
9758         (rb_property_view_selection_changed_cb),
9759         (rb_property_view_get_treeview):
9760         * widgets/rb-property-view.h:
9761         + widgets/rb-simple-view.c:
9762         + widgets/rb-simple-view.h:
9764 2005-10-20  James Livingston  <jrl@ids.org.au>
9766         * NEWS: update with changes since 0.9.1
9768         * configure.ac: check whether collate_key_for_filename is available
9769         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
9770         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
9771         it if it isn't available in glib (i.e. building against 2.6)
9772         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
9773         collation to get "natural sorting". Closes bug 158599.
9775 2005-10-20  James Livingston  <jrl@ids.org.au>
9777         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
9779         * doc/reference/tmpl/rb-shell-player.sgml:
9780         * shell/rb-shell-player.c: (rb_shell_player_class_init),
9781         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
9782         (rb_shell_player_get_playing),
9783         (rb_shell_player_get_playing_time_string),
9784         (rb_shell_player_get_playing_time),
9785         (rb_shell_player_set_playing_time), (tick_cb),
9786         (rb_shell_player_get_playing_path), (filter_mmkeys):
9787         * shell/rb-shell-player.h:
9788         * shell/rb-shell-player.xml:
9789         * shell/rb-shell.c: (rb_shell_constructor),
9790         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
9791         (rb_shell_set_window_title), (rb_shell_playing_impl),
9792         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
9793         Merge the duration_changed and elapsed_changed DBUS signals into one
9794         elapsed_changed signal. Check that the output argument isn't NULL
9795         before trying to put things in it.
9797 2005-10-20  James Livingston  <jrl@ids.org.au>
9799         * rhythmdb/rhythmdb-query-model.c:
9800         (rhythmdb_query_model_entry_added_cb),
9801         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
9802         problem where hidden entries could be shown in playlists.
9803         
9804         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
9805         issues when switching in and out of small mode.
9807 2005-10-19  James Livingston  <jrl@ids.org.au>
9809         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
9810         (rb_shell_constructor), (rb_shell_window_state_cb),
9811         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
9812         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
9813         (rb_shell_view_smalldisplay_changed_cb),
9814         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
9815         (rb_shell_sync_paned): remove gconf window-state races, prevent
9816         changing small mode too often, fix window event races. Closes 122806.
9818         
9819         Patch from Caio Marcelo <cmarcelo@gmail.com>
9821         * data/rhythmbox.schemas:
9822         * shell/rb-shell.c: (rb_shell_window_state_cb),
9823         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
9824         Remember the position of the window. Closes 315289.
9826 2005-10-19  James Livingston  <jrl@ids.org.au>
9828         Patch from Christophe Fergeau  <teuf@gnome.org>
9830         * configure.ac: determine whether libgpod is present when neither
9831         --with-ipod nor --without-ipod is passed
9833 2005-10-19  James Livingston  <jrl@ids.org.au>
9835         Patch from Caio Marcelo <cmarcelo@gmail.com>
9837         * shell/rb-shell-player.c: (do_next_idle),
9838         (rb_shell_player_do_previous), (rb_shell_player_do_next),
9839         (rb_shell_player_do_previous_or_seek),
9840         (rb_shell_player_previous_button_cb),
9841         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
9842         (rb_shell_player_cmd_next), (eos_cb):
9843         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
9844         end of the playlist is reached.
9846 2005-10-19  Christopher Aillon  <caillon@redhat.com>
9848         * lib/rb-thread.c: fix a few GSource leaks
9850 2005-10-19  James Livingston  <jrl@ids.org.au>
9852         * doc/reference/tmpl/bacon-volume.sgml:
9853         * doc/reference/tmpl/disclosure-widget.sgml:
9854         * doc/reference/tmpl/eel-gconf-extensions.sgml:
9855         * doc/reference/tmpl/eggnotificationbubble.sgml:
9856         * doc/reference/tmpl/eggtrayicon.sgml:
9857         * doc/reference/tmpl/gsequence.sgml:
9858         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
9859         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
9860         * doc/reference/tmpl/rb-daap-connection.sgml:
9861         * doc/reference/tmpl/rb-daap-dialog.sgml:
9862         * doc/reference/tmpl/rb-daap-mdns.sgml:
9863         * doc/reference/tmpl/rb-daap-share.sgml:
9864         * doc/reference/tmpl/rb-daap-sharing.sgml:
9865         * doc/reference/tmpl/rb-daap-source.sgml:
9866         * doc/reference/tmpl/rb-daap-src.sgml:
9867         * doc/reference/tmpl/rb-daap-structure.sgml:
9868         * doc/reference/tmpl/rb-debug.sgml:
9869         * doc/reference/tmpl/rb-dialog.sgml:
9870         * doc/reference/tmpl/rb-druid.sgml:
9871         * doc/reference/tmpl/rb-entry-view.sgml:
9872         * doc/reference/tmpl/rb-enums.sgml:
9873         * doc/reference/tmpl/rb-file-helpers.sgml:
9874         * doc/reference/tmpl/rb-glade-helpers.sgml:
9875         * doc/reference/tmpl/rb-header.sgml:
9876         * doc/reference/tmpl/rb-history.sgml:
9877         * doc/reference/tmpl/rb-ipod-source.sgml:
9878         * doc/reference/tmpl/rb-iradio-source.sgml:
9879         * doc/reference/tmpl/rb-library-source.sgml:
9880         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
9881         * doc/reference/tmpl/rb-metadata.sgml:
9882         * doc/reference/tmpl/rb-new-station-dialog.sgml:
9883         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
9884         * doc/reference/tmpl/rb-play-order-linear.sgml:
9885         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
9886         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
9887         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
9888         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
9889         * doc/reference/tmpl/rb-play-order-random.sgml:
9890         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
9891         * doc/reference/tmpl/rb-play-order.sgml:
9892         * doc/reference/tmpl/rb-player.sgml:
9893         * doc/reference/tmpl/rb-playlist-manager.sgml:
9894         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
9895         * doc/reference/tmpl/rb-playlist-source.sgml:
9896         * doc/reference/tmpl/rb-preferences.sgml:
9897         * doc/reference/tmpl/rb-property-view.sgml:
9898         * doc/reference/tmpl/rb-query-creator-private.sgml:
9899         * doc/reference/tmpl/rb-query-creator.sgml:
9900         * doc/reference/tmpl/rb-rating-helper.sgml:
9901         * doc/reference/tmpl/rb-rating.sgml:
9902         * doc/reference/tmpl/rb-recorder.sgml:
9903         * doc/reference/tmpl/rb-refstring.sgml:
9904         * doc/reference/tmpl/rb-removable-media-manager.sgml:
9905         * doc/reference/tmpl/rb-removable-media-source.sgml:
9906         * doc/reference/tmpl/rb-search-entry.sgml:
9907         * doc/reference/tmpl/rb-shell-clipboard.sgml:
9908         * doc/reference/tmpl/rb-shell-glue.sgml:
9909         * doc/reference/tmpl/rb-shell-player-glue.sgml:
9910         * doc/reference/tmpl/rb-shell-player.sgml:
9911         * doc/reference/tmpl/rb-shell-preferences.sgml:
9912         * doc/reference/tmpl/rb-shell.sgml:
9913         * doc/reference/tmpl/rb-song-display-box.sgml:
9914         * doc/reference/tmpl/rb-song-info.sgml:
9915         * doc/reference/tmpl/rb-source-header.sgml:
9916         * doc/reference/tmpl/rb-source.sgml:
9917         * doc/reference/tmpl/rb-sourcelist-model.sgml:
9918         * doc/reference/tmpl/rb-sourcelist.sgml:
9919         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
9920         * doc/reference/tmpl/rb-statusbar.sgml:
9921         * doc/reference/tmpl/rb-stock-icons.sgml:
9922         * doc/reference/tmpl/rb-string-helpers.sgml:
9923         * doc/reference/tmpl/rb-thread.sgml:
9924         * doc/reference/tmpl/rb-tray-icon.sgml:
9925         * doc/reference/tmpl/rb-tree-dnd.sgml:
9926         * doc/reference/tmpl/rb-tree-model-sort.sgml:
9927         * doc/reference/tmpl/rb-util.sgml:
9928         * doc/reference/tmpl/rhythmbox-unused.sgml:
9929         * doc/reference/tmpl/rhythmdb-property-model.sgml:
9930         * doc/reference/tmpl/rhythmdb-query-model.sgml:
9931         * doc/reference/tmpl/rhythmdb-tree.sgml:
9932         * doc/reference/tmpl/rhythmdb.sgml: update for changes
9933         
9934         * doc/reference/Makefile.am: make docs build with changed ipod support
9935         
9936         * po/POTFILES.in: remove sources/itunesdb
9938 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
9940         * sources/itunesdb.c:
9941         * sources/itunesdb.h: removed now useless files
9943 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
9945         * configure.ac:
9946         * shell/Makefile.am:
9947         * sources/Makefile.am:
9948         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
9949         code
9950         [1]: http://www.gtkpod.org/libgpod.html
9953 2005-10-18  James Livingston  <jrl@ids.org.au>
9955         patch from Funda Wang <fundawang@linux.net.cn>
9957         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
9958         the notification bubble string translatable.
9960 ============ Version 0.9.1
9962 2005-10-16  James Livingston  <jrl@ids.org.au>
9964         * configure.ac: bump version to 0.9.1
9965         * NEWS: update translation credits
9967 2005-10-16  James Livingston  <jrl@ids.org.au>
9969         * rhythmdb/rhythmdb-query-model.c:
9970         (rhythmdb_query_model_class_init),
9971         (rhythmdb_query_model_drag_data_received): 
9972         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
9973         notified when things are dropped into the entry view.
9974         
9975         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
9976         (rb_playlist_source_add_location_swapped),
9977         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
9978         (rb_playlist_source_non_entry_dropped),
9979         (rb_playlist_source_row_inserted): Use the new signal so that dropping
9980         things onto a playlist's entry view work correctly, and doesn't cause
9981         crashes. Allow folders to be dropped as well. (Closes 318308)
9983 2005-10-16  James Livingston  <jrl@ids.org.au>
9985         * NEWS: Update some more
9987         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9988         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
9989         with the paned size, so that it doesn't move when the window is
9990         maximised/restored. Closes bug 315852.
9992         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
9993         display the playcount column, as it's useless (it never get changed).
9995 2005-10-14  James Livingston  <jrl@ids.org.au>
9997         * Makefile.am:
9998         * data/Makefile.am:
9999         * doc/reference/Makefile.am: get "make distcheck" to pass again
10001 2005-10-11  James Livingston  <jrl@ids.org.au>
10003         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
10004         destroy the connection when retrieving the playlists fails, because
10005         tracks have already been added. Closes 318380.
10007 2005-10-11  James Livingston  <jrl@ids.org.au>
10009         * sources/rb-sourcelist.c: (rb_sourcelist_append),
10010         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
10011         (source_name_edited_cb): Ask for the columns to be resized when a
10012         source is added, deleted or changes name.
10014 2005-10-11  James Livingston  <jrl@ids.org.au>
10016         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
10017         create a thread when processing a directory. This stops up created one
10018         thread for each file in a playlist we're trying to load. Closes
10019         317850.
10021         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
10022         typo that made sort-by-artist not work correctly.
10024 2005-10-11  James Livingston  <jrl@ids.org.au>
10026         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
10027         support is enabled
10029 2005-10-11  James Livingston  <jrl@ids.org.au>
10031         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
10032         * lib/rb-file-helpers.h: add a function to turn uris into our
10033         canonical path-escaped form
10034         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
10035         above function when import playlists. This will fix the problem of
10036         duplicate entries due to different representations of the uri (bug
10037         158211).
10039 2005-10-11  James Livingston  <jrl@ids.org.au>
10041         * shell/rb-shell.c: (rb_shell_get_visibility),
10042         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
10043         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
10044         window hiding so that Alt-F4 works again.
10046         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
10047         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
10048         (rb_entry_view_string_sort_func): Stop some crashes where a string
10049         property was set to NULL.
10051 2005-10-10  James Livingston  <jrl@ids.org.au>
10053         * doc/reference/rhythmbox.types: fix gtk-doc generation
10055 2005-10-09  James Livingston  <jrl@ids.org.au>
10057         * sources/rb-sourcelist.c: (rb_sourcelist_init):
10058         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
10059         accelerators, so that we don't have as many conflicting keys.
10061 2005-10-08  James Livingston  <jrl@ids.org.au>
10063         * data/iradio-initial.pls: Update the list of radio stations. Thanks
10064         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
10065         bug 129285.
10067 2005-10-07  James Livingston  <jrl@ids.org.au>
10069         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
10070         local path names in the same way as every other URI. This should stop
10071         duplicates occurring due to different escapings. Closes bug 158211.
10073 2005-10-06  James Livingston  <jrl@ids.org.au>
10075         * NEWS: more updates
10076         
10077         patch from Jaap Haitsma <jaap@haitsma.org>:
10079         * configure.ac:
10080         * data/Makefile.am:
10081         * data/art/Makefile.am:
10082         - data/art/rhythmbox-paused.png:
10083         - data/art/rhythmbox-playback-error.png:
10084         - data/art/rhythmbox-playing.png:
10085         - data/art-clearlooks/:
10086         * lib/rb-file-helpers.c: (rb_file):
10087         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10088         * lib/rb-stock-icons.h:
10089         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10090         * widgets/rb-cell-renderer-pixbuf.c:
10091         (rb_cell_renderer_pixbuf_render):
10092         * widgets/rb-entry-view.c: (rb_entry_view_init),
10093         (rb_entry_view_set_playing):
10094         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
10095         stock icons instead of custom art. Drop remanents of art-clearlooks.
10097 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
10099         * configure.ac: Added ne in ALL_LINGUAS
10101 2005-10-02  James Livingston  <jrl@ids.org.au>
10103         * data/glade/Makefile.am: actually install the daap prefs glade file
10105 2005-09-30  James Livingston  <jrl@ids.org.au>
10107         * po/POTFILES.in: mremove rb-string-helper.c from the list of
10108         translatable files, so that make check works and we don't annoy the
10109         translators.
10110         
10111         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
10112         sanity checking, in case a db entry is missing some properties.
10114 2005-09-29  James Livingston  <jrl@ids.org.au>
10116         - lib/rb-string-helpers.c:
10117         - lib/rb-string-helpers.h:
10118         * lib/Makefile.am:
10119         * rhythmdb/rhythmdb-tree.c:
10120         * rhythmdb/rhythmdb.c:
10121         * shell/main.c: (main):
10122         * shell/rb-shell.c:
10123         * widgets/rb-entry-view.c:
10124         * widgets/rb-property-view.c: remove rb-string-helpers, as they
10125         utility functions haven't been used in a while.
10127 2005-09-27  James Livingston  <jrl@ids.org.au>
10129         * data/art-clearlooks/Makefile.am:
10130         - data/art-clearlooks/rhythmbox-album.png:
10131         - data/art-clearlooks/rhythmbox-audiocd.png:
10132         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
10133         - data/art-clearlooks/rhythmbox-dnd.png:
10134         - data/art-clearlooks/rhythmbox-ipod.png:
10135         - data/art-clearlooks/rhythmbox-iradio.png:
10136         - data/art-clearlooks/rhythmbox-library.png:
10137         - data/art-clearlooks/rhythmbox-next.png:
10138         - data/art-clearlooks/rhythmbox-pause.png:
10139         - data/art-clearlooks/rhythmbox-play.png:
10140         - data/art-clearlooks/rhythmbox-playlist-menu.png:
10141         - data/art-clearlooks/rhythmbox-playlist.png:
10142         - data/art-clearlooks/rhythmbox-previous.png:
10143         - data/art-clearlooks/rhythmbox-repeat.png:
10144         - data/art-clearlooks/rhythmbox-rewind.png:
10145         - data/art-clearlooks/rhythmbox-shuffle.png:
10146         - data/art-clearlooks/rhythmbox-stop.png:
10147         - data/art-clearlooks/rhythmbox-visuals.png:
10148         - data/art-clearlooks/rhythmbox-volume-max.png:
10149         - data/art-clearlooks/rhythmbox-volume-medium.png:
10150         - data/art-clearlooks/rhythmbox-volume-min.png:
10151         - data/art-clearlooks/rhythmbox-volume-mute.png:
10152         - data/art-clearlooks/rhythmbox-volume-zero.png:
10153         * data/art/Makefile.am:
10154         - data/art/rhythmbox-album.png:
10155         - data/art/rhythmbox-audiocd.png:
10156         - data/art/rhythmbox-automatic-playlist.png:
10157         - data/art/rhythmbox-dnd.png:
10158         - data/art/rhythmbox-ipod.png:
10159         - data/art/rhythmbox-iradio.png:
10160         - data/art/rhythmbox-library.png:
10161         - data/art/rhythmbox-next.png:
10162         - data/art/rhythmbox-pause.png:
10163         - data/art/rhythmbox-play.png:
10164         - data/art/rhythmbox-playlist-menu.png:
10165         - data/art/rhythmbox-playlist.png:
10166         - data/art/rhythmbox-previous.png:
10167         - data/art/rhythmbox-repeat.png:
10168         - data/art/rhythmbox-rewind.png:
10169         - data/art/rhythmbox-shuffle.png:
10170         - data/art/rhythmbox-stop.png:
10171         - data/art/rhythmbox-visuals.png:
10172         - data/art/rhythmbox-volume-max.png:
10173         - data/art/rhythmbox-volume-medium.png:
10174         - data/art/rhythmbox-volume-min.png:
10175         - data/art/rhythmbox-volume-mute.png:
10176         - data/art/rhythmbox-volume-zero.png:
10177         * lib/rb-stock-icons.c: (rb_stock_icons_init):
10178         * lib/rb-stock-icons.h:
10179         * shell/rb-playlist-manager.c:
10180         * shell/rb-shell-player.c:
10181         * sources/rb-daap-source.c: (rb_daap_get_icon):
10182         * sources/rb-ipod-source.c:
10183         * sources/rb-iradio-source.c: (rb_iradio_source_init):
10184         * sources/rb-library-source.c: (rb_library_source_new):
10185         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10186         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
10187         that hasn't been used in a LONG time, and also remove art that are
10188         now stock icons.
10190 2005-09-27  James Livingston  <jrl@ids.org.au>
10192         * README: point to the gnome.org web sites, and update the example
10193         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
10194         
10195         * rhythmdb/rhythmdb-query-model.c:
10196         (rhythmdb_query_model_set_property),
10197         (rhythmdb_query_model_get_property),
10198         (rhythmdb_query_model_finalize):
10199         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
10200         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
10201         * rhythmdb/rhythmdb.h:
10202         * sources/rb-iradio-source.c: (impl_search):
10203         * sources/rb-library-source.c: (impl_search): Add query
10204         "preprocessing", which performs operations such as casefolding any
10205         strings that will be compared to any of the *_FOLDED properties.
10206         Closes bug 316039
10208 2005-09-27  James Livingston  <jrl@ids.org.au>
10210         * data/glade/daap-prefs.glade:
10211         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
10212         file for the daap preferences pane
10213         
10214         * sources/rb-sourcelist.c: (rb_sourcelist_init),
10215         (rb_sourcelist_append), (rb_sourcelist_remove),
10216         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
10217         don't display the column for source expanders unless there is an
10218         expandable source.
10220 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
10222         * .cvsignore:
10223         * Makefile.am:
10224         * configure.ac:
10225         * doc/.cvsignore:
10226         * doc/Makefile.am:
10227         * doc/reference/.cvsignore:
10228         * doc/reference/Makefile.am:
10229         * doc/reference/rhythmbox-docs.sgml:
10230         * doc/reference/rhythmbox-sections.txt:
10231         * doc/reference/rhythmbox.types:
10232         * doc/reference/tmpl/bacon-volume.sgml:
10233         * doc/reference/tmpl/disclosure-widget.sgml:
10234         * doc/reference/tmpl/eel-gconf-extensions.sgml:
10235         * doc/reference/tmpl/eggnotificationbubble.sgml:
10236         * doc/reference/tmpl/eggtrayicon.sgml:
10237         * doc/reference/tmpl/gsequence.sgml:
10238         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
10239         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
10240         * doc/reference/tmpl/rb-daap-connection.sgml:
10241         * doc/reference/tmpl/rb-daap-dialog.sgml:
10242         * doc/reference/tmpl/rb-daap-mdns.sgml:
10243         * doc/reference/tmpl/rb-daap-share.sgml:
10244         * doc/reference/tmpl/rb-daap-sharing.sgml:
10245         * doc/reference/tmpl/rb-daap-source.sgml:
10246         * doc/reference/tmpl/rb-daap-src.sgml:
10247         * doc/reference/tmpl/rb-daap-structure.sgml:
10248         * doc/reference/tmpl/rb-debug.sgml:
10249         * doc/reference/tmpl/rb-dialog.sgml:
10250         * doc/reference/tmpl/rb-druid.sgml:
10251         * doc/reference/tmpl/rb-entry-view.sgml:
10252         * doc/reference/tmpl/rb-enums.sgml:
10253         * doc/reference/tmpl/rb-file-helpers.sgml:
10254         * doc/reference/tmpl/rb-glade-helpers.sgml:
10255         * doc/reference/tmpl/rb-header.sgml:
10256         * doc/reference/tmpl/rb-history.sgml:
10257         * doc/reference/tmpl/rb-ipod-source.sgml:
10258         * doc/reference/tmpl/rb-iradio-source.sgml:
10259         * doc/reference/tmpl/rb-library-source.sgml:
10260         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
10261         * doc/reference/tmpl/rb-metadata.sgml:
10262         * doc/reference/tmpl/rb-new-station-dialog.sgml:
10263         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
10264         * doc/reference/tmpl/rb-play-order-linear.sgml:
10265         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
10266         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
10267         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
10268         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
10269         * doc/reference/tmpl/rb-play-order-random.sgml:
10270         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
10271         * doc/reference/tmpl/rb-play-order.sgml:
10272         * doc/reference/tmpl/rb-player.sgml:
10273         * doc/reference/tmpl/rb-playlist-manager.sgml:
10274         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
10275         * doc/reference/tmpl/rb-playlist-source.sgml:
10276         * doc/reference/tmpl/rb-preferences.sgml:
10277         * doc/reference/tmpl/rb-property-view.sgml:
10278         * doc/reference/tmpl/rb-query-creator-private.sgml:
10279         * doc/reference/tmpl/rb-query-creator.sgml:
10280         * doc/reference/tmpl/rb-rating-helper.sgml:
10281         * doc/reference/tmpl/rb-rating.sgml:
10282         * doc/reference/tmpl/rb-recorder.sgml:
10283         * doc/reference/tmpl/rb-refstring.sgml:
10284         * doc/reference/tmpl/rb-removable-media-manager.sgml:
10285         * doc/reference/tmpl/rb-removable-media-source.sgml:
10286         * doc/reference/tmpl/rb-search-entry.sgml:
10287         * doc/reference/tmpl/rb-shell-clipboard.sgml:
10288         * doc/reference/tmpl/rb-shell-glue.sgml:
10289         * doc/reference/tmpl/rb-shell-player-glue.sgml:
10290         * doc/reference/tmpl/rb-shell-player.sgml:
10291         * doc/reference/tmpl/rb-shell-preferences.sgml:
10292         * doc/reference/tmpl/rb-shell.sgml:
10293         * doc/reference/tmpl/rb-song-display-box.sgml:
10294         * doc/reference/tmpl/rb-song-info.sgml:
10295         * doc/reference/tmpl/rb-source-header.sgml:
10296         * doc/reference/tmpl/rb-source.sgml:
10297         * doc/reference/tmpl/rb-sourcelist-model.sgml:
10298         * doc/reference/tmpl/rb-sourcelist.sgml:
10299         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
10300         * doc/reference/tmpl/rb-statusbar.sgml:
10301         * doc/reference/tmpl/rb-stock-icons.sgml:
10302         * doc/reference/tmpl/rb-string-helpers.sgml:
10303         * doc/reference/tmpl/rb-thread.sgml:
10304         * doc/reference/tmpl/rb-tray-icon.sgml:
10305         * doc/reference/tmpl/rb-tree-dnd.sgml:
10306         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10307         * doc/reference/tmpl/rb-util.sgml:
10308         * doc/reference/tmpl/rhythmdb-property-model.sgml:
10309         * doc/reference/tmpl/rhythmdb-query-model.sgml:
10310         * doc/reference/tmpl/rhythmdb-tree.sgml:
10311         * doc/reference/tmpl/rhythmdb.sgml:
10312         * macros/.cvsignore:
10313         * shell/Makefile.am:
10314         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
10315         (rb_source_finalize), (rb_source_set_property),
10316         (rb_source_get_property), (default_get_pixbuf),
10317         (_rb_source_show_popup):
10318         * sources/rb-source.h:
10319         Add support for gtk-doc in rhythmbox.
10320         Convert RBSource to use newer glib functions, such as add_private.
10321         Gives RBSource a default get_pixbuf implementation.
10323 2005-09-25  James Livingston  <jrl@ids.org.au>
10325         * NEWS: Update with about a months worth of changes
10327         * data/glade/song-info-multiple.glade:
10328         * data/glade/song-info.glade:
10329         * data/rhythmbox.schemas:
10330         * lib/rb-preferences.h:
10331         * rhythmdb/rhythmdb.h:
10332         * shell/rb-shell-player.c:
10333         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
10334         few remaining parts of autorating.
10336 2005-09-24  James Livingston  <jrl@ids.org.au>
10338         * shell/rb-shell.c: (rb_shell_constructor),
10339         (rb_shell_window_state_cb), (rb_shell_set_visibility),
10340         (rb_shell_window_configure_cb): store window state in the gconf keys,
10341         so that it gets used. Closes bugs 313893 and 137068.
10343 2005-09-20  James Livingston  <jrl@ids.org.au>
10345         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
10346         crash if the entry has a NULL string in a property
10347         
10348         * shell/rb-removable-media-manager.c:
10349         (rb_removable_media_manager_load_media): fix some memory leaks
10350         
10351         (rb_removable_media_manager_mount_volume),
10352         (rb_removable_media_manager_eject_medium_cb),
10353         (rb_removable_media_manager_cmd_eject_medium): use
10354         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
10355         
10356         * sources/rb-removable-media-source.c:
10357         (rb_removable_media_source_set_property),
10358         (rb_removable_media_source_get_property): use
10359         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
10361 2005-09-18  James Livingston  <jrl@ids.org.au>
10363         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
10364         column
10366         * data/glade/general-prefs.glade:
10367         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
10368         (rb_shell_preferences_column_check_changed_cb),
10369         (rb_shell_preferences_sync): add checkbox to control visibility
10370         of the column
10371         
10372         
10373         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
10374         (save_entry):
10375         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
10376         (rhythmdb_prop_get_type):
10377         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
10378         was as "last played" is handled
10379         
10380         * sources/rb-library-source.c: (rb_library_source_constructor):
10381         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10382         Make the column show in the library and playlists
10383         
10384         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
10385         * widgets/rb-entry-view.h: add the column
10386         
10387         * widgets/rb-query-creator-properties.c: allow automatic playlists to
10388         be sorted by the column
10390 2005-09-16  James Livingston  <jrl@ids.org.au>
10392         * shell/rb-shell-player.c: (rb_shell_player_init),
10393         (rb_shell_player_do_previous_or_seek),
10394         (rb_shell_player_previous_button_cb),
10395         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
10396         (rb_shell_player_playpause_button_cb): Make the previous button act
10397         the same as the menu item. Fix an inversion of the "previous track or
10398         seek" logic.
10399         
10400         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10401         
10402         (rb_shell_player_playpause): make --play-pause stop source that can't
10403         be paused
10405 2005-09-15  James Livingston  <jrl@ids.org.au>
10407         * configure.ac: increase totem-plparser requirements to 1.1.5
10409         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
10410         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
10411         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
10412         use the newer playlist APIs to save the name of the playlist, and use
10413         the name of a loaded playlist.
10415         Closes bug 309817.
10417 2005-09-15  James Livingston  <jrl@ids.org.au>
10419         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10421         * shell/Makefile.am: stop some linker warnings
10423         * shell/main.c: (main): make --no-registration work with dbus
10425 2005-09-15  James Livingston  <jrl@ids.org.au>
10427         * daapsharing/rb-daap-sharing.c: (create_share):
10428         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
10429         reference sinking and counting issues that I caused.
10431 2005-09-15  James Livingston  <jrl@ids.org.au>
10433         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
10434         playing" icon in the "now playing" column header.
10436 2005-09-14  James Livingston  <jrl@ids.org.au>
10438         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
10439         daap shares, when sharing is turned off.
10441 2005-09-12  Bastien Nocera  <hadess@hadess.net>
10443         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
10444         the GConf value's default, especially for badly installed schema
10445         files
10447 2005-09-12  James Livingston  <jrl@ids.org.au>
10449         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
10451         Patch from Paolo Borelli <pborelli@katamail.com>
10453         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
10454         grip when maximised. Closes bug 316055.
10456 2005-09-11  James Livingston  <jrl@ids.org.au>
10458         Patch from William Jon McCann <mccann@jhu.edu>
10460         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
10461         subclass of GtkStatusbar instead of GtkHBox.
10462         (rb_statusbar_construct): Don't set border width.
10463         (rb_statusbar_init): Use resize grip.  Don't use
10464         markup.
10465         (set_statusbar_tooltip, unset_statusbar_tooltip) 
10466         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
10467         Connect tooltips for actions.
10468         (rb_statusbar_sync_status): Push new message to statusbar.
10469         (rb_statusbar_set_progress): Don't use markup.
10470         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
10471         flag here since it prevents actually showing or hiding.
10472         (rb_statusbar_sync_with_source): Push new message to statusbar.
10474 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
10476         * daapsharing/rb-daap-structure.c:
10477         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
10478         around debugging definition.
10480 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
10481         
10482         * daapsharing/rb-daap-structure.c:
10483         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
10484         type = version.
10486         * daapsharing/rb-daap-mdns.c/h:
10487         (resolve_cb): Updated mDNS resolve callback to send service-name &
10488         name (read from Machine Name in the TXT data or equal to service-name
10489         if not in TXT).
10491         * daapsharing/rb-daap-source.c:
10492         (rb_daap_source_class_init), (rb_daap_source_set_property), 
10493         (rb_daap_source_get_property), (rb_daap_source_new),
10494         (find_source_by_service_name), (resolve_cb), (browse_cb), 
10495         (stop_resolver), (start_browsing), (stop_browsing), 
10496         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
10497         and added 'host' and 'port' gobject properties.  Updated to use new
10498         mDNS resolve callback sending service-name & name arguments.
10500 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
10502         * daapsharing/rb-daap-mdns.c:
10503         (howl_strerror): New function to report errors from Howl
10504         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
10505         (get_sw_discovery), (get_avahi_client): Better error reporting from
10506         Howl & Avahi.
10508         * sources/rb-daap-source.:
10509         (start_browsing), (stop_browsing): Fixed a bug where browsing would
10510         not get started or stopped in some situations.
10511         
10512 2005-09-12  James Livingston  <jrl@ids.org.au>
10514         * shell/rb-removable-media-manager.c: add a missing include, that
10515         would stop compilation if ipod support wasn't turned on
10517 2005-09-11  James Livingston  <jrl@ids.org.au>
10519         * daapsharing/rb-daap-dialog.c: (encode_base64),
10520         (rb_daap_password_dialog_new_run),
10521         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
10522         it is no broken in to two pieces, and remove a use of a goto
10523         
10524         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
10525         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
10526         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
10527         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
10528         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
10529         memory leaks, and some code style things.
10530         
10531         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
10532         (rb_daap_share_init), (rb_daap_share_set_property),
10533         (rb_daap_share_dispose), (rb_daap_share_new),
10534         (rb_daap_share_get_property): make the DB and the playlist manager
10535         gobject properties.
10536         
10537         (message_add_standard_headers),
10538         (message_set_from_rb_daap_structure), (server_info_cb),
10539         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
10540         (server_cb), (add_db_entry), (db_entry_added_cb),
10541         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
10542         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
10543         style and use CONF_PREFIX in the gconf keys
10544         
10545         * daapsharing/rb-daap-sharing.c: (create_share),
10546         (enable_sharing_changed_cb), (share_name_changed_cb),
10547         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
10548         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10549         (rb_daap_src_instance_init), (rb_daap_src_dispose),
10550         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
10551         (rb_daap_src_get_property), (rb_daap_src_getcaps),
10552         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
10553         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
10554         (rb_daap_src_get_time): Deal with gconf callbacks where the key
10555         hasn't actually changed, fix some memory leaks, code style and release
10556         gconf notifications when the object is destroyed.
10557         
10558         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
10559         (rb_daap_source_class_init), (rb_daap_source_init),
10560         (rb_daap_source_dispose), (rb_daap_source_set_property),
10561         (rb_daap_source_get_property), (rb_daap_source_new),
10562         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
10563         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
10564         (rb_daap_sources_init), (rb_daap_sources_shutdown),
10565         (rb_daap_source_activate), (rb_daap_source_disconnect),
10566         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
10567         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
10568         release gconf notifications, handle gconf callbacks where the key
10569         hasn't changed, make "real name" and "password protected" gobject
10570         properties, fix some code style and fix a memory leak.
10572 2005-09-11  James Livingston  <jrl@ids.org.au>
10574         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10576         * shell/rb-playlist-manager.c:
10577         (rb_playlist_manager_save_playlists),
10578         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
10579         when we aren't supposed to. (Closes bug 315886)
10581 2005-09-11  James Livingston  <jrl@ids.org.au>
10583         * shell/rb-removable-media-manager.c:
10584         (rb_removable_media_manager_class_init),
10585         (rb_removable_media_manager_init),
10586         (rb_removable_media_manager_dispose),
10587         (rb_removable_media_manager_set_property),
10588         (rb_removable_media_manager_get_property),
10589         (rb_removable_media_manager_new),
10590         (rb_removable_media_manager_load_media),
10591         (rb_removable_media_manager_volume_mounted_cb),
10592         (rb_removable_media_manager_volume_unmounted_cb),
10593         (rb_removable_media_manager_mount_volume),
10594         (rb_removable_media_manager_unmount_volume),
10595         (rb_removable_media_manager_source_deleted_cb),
10596         (rb_removable_media_manager_append_media_source),
10597         (rb_removable_media_manager_set_uimanager),
10598         (rb_removable_media_manager_eject_medium_cb),
10599         (rb_removable_media_manager_cmd_eject_medium):
10600         * shell/rb-removable-media-manager.h:
10601         * sources/rb-removable-media-source.c:
10602         (rb_removable_media_source_class_init),
10603         (rb_removable_media_source_init),
10604         (rb_removable_media_source_dispose),
10605         (rb_removable_media_source_set_property),
10606         (rb_removable_media_source_get_property), (impl_get_pixbuf),
10607         (impl_delete_thyself):
10608         * sources/rb-removable-media-source.h: Add the four files that I
10609         somehow managed not to add to cvs in the last commit. Oops.
10611 2005-09-11  James Livingston  <jrl@ids.org.au>
10613         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
10614         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
10615         
10616         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
10617         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
10618         removable-media-manager on startup, and handle creation of sources.
10619         
10620         * sources/rb-ipod-source.h:
10621         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
10622         (rb_ipod_source_init), (rb_ipod_source_constructor),
10623         (rb_ipod_source_dispose), (rb_ipod_source_new),
10624         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
10625         the iPod source over to the removable media framework.
10626         
10627         * sources/rb-library-source.c: (paned_size_allocate_cb),
10628         (rb_library_source_get_paned_key): fix a potential bug is a
10629         library-derived source doesn't have a paned-key
10631 2005-09-11  Bastien Nocera  <hadess@hadess.net>
10633         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
10634         mp3 when we can't get the suffix of a file (Closes: #315941)
10636 2005-09-10  James Livingston  <jrl@ids.org.au>
10638         * configure.ac: fix the mdns tests, so that it doesn't complain about
10639         not finding one, if daap support isn't being compiled in
10641 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
10643         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
10645         * daapsharing/rb-daap-dialog.c:
10646         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
10647         HIG compliancy & images.
10649         * daapsharing/rb-daap-mdns.c:
10650         (browse_cb), (resolve_cb): Better detection of local services.  
10651         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
10652         Howl's limitations.  Fix the way collision handling is done under
10653         Avahi.
10655         * daapsharing/rb-daap-share.c:
10656         (publish_cb): Better name collision handling (at least for Avahi).
10658 2005-09-10  James Livingston  <jrl@ids.org.au>
10660         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
10661         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
10662         preferences more HIG compliant (Closes #315889)
10663         
10664         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
10665         list of files to be translated
10667 2005-09-10  James Livingston  <jrl@ids.org.au>
10669         * configure.ac: fix it so that --enable-daap=no works
10670         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
10671         uninstalled
10673 2005-09-10  James Livingston  <jrl@ids.org.au>
10675         Patch from Christophe Fergeau <teuf@gnome.org>
10677         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
10678         the ipod code.
10680 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
10681         * README.daap: Updating documentation
10683 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
10684         * AUTHORS: Added myself.
10686         * daapsharing/rb-daap-connection.c:
10687         (connection_login), (rb_connection_new): Reorganized password
10688         handling.
10690         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
10692         * shell/rb-shell.c:
10693         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
10695         * sources/rb-daap-source.c:
10696         (rb_daap_source_activate): Better error handling when we are unable to
10697         connect.
10698         
10699 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
10700         * README.daap: Fixed some terminology.
10702         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
10703         New --with-mdns=auto|howl|avahi flag to specify.
10705         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
10706         name collision dialogs.
10708         * daapsharing/rb-daap-connection.c:
10709         (connection_get_password), (build_message), (http_get)
10710         (connection_login): Ask for & use a password if the share demands it.
10712         * daapsharing/rb-daap-connection.h: Changed prototype of
10713         rb_daap_connection_new.
10714         
10715         * daapsharing/rb-daap-mdns.c: 
10716         (resolve_cb): Better detection of your own music share so it doesn't 
10717         appear in the sourcelist.
10719         * daapsharing/rb-daap-share.c:
10720         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
10721         that start on any available port.
10723         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
10725         * sources/rb-daap-source.c:
10726         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
10727         (browse_cb): Handle passworded shares. Resolve the host immediately
10728         instead of when activated.
10729         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
10730         (rb_daap_source_new): New GConf keys for UI state.
10731         (rb_daap_source_activate): Use RBPlaylistSource instead of
10732         RBDAAPPlaylistSource
10733         
10734         * sources/rb-daap-playlist-source.c/h: Removed
10736         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
10737         if the playlist is local (i.e. not DAAP or iPod).
10738         
10739         * shell/rb-playlist-manager.c:
10740         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
10741         wouldn't get saved if the last playlist hadn't changed.  Only save
10742         local playlists.
10743         
10744 2005-09-09  James Livingston  <jrl@ids.org.au>
10746         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
10747         iPod preferences pane, as it already uses the browser views as the
10748         library.
10750 2005-09-09  James Livingston  <jrl@ids.org.au>
10752         * sources/rb-library-source.c: (rb_library_source_finalize),
10753         (rb_library_source_constructor): fix gconf monitoring of library
10754         preference keys.
10755         * sources/rb-library-source.h: remove declaration of function that
10756         does not exist
10758 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
10760         * player/rb-player-gst.c:
10761         (rb_player_set_time): Fix seeking in daap streams.
10763 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
10765         * data/rhythmbox.schemas: Turn music share browsing on by default.
10767 2005-09-07  James Livingston  <jrl@ids.org.au>
10769         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
10771 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
10772         * player/rb-player-gst.c: 
10773         (rb_player_get_time): Fix for extra << & == that accidentally made
10774         it in.
10776         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
10777         
10778 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
10779         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
10780         it in last time.  Sorry.
10782 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
10783         
10784         * player/rb-player-gst.c:
10785         (rb_player_get_time): Fix a small crash appearing when
10786         the uri isn't set in the player, but rb_player_get_time() is
10787         still called.
10789         * configure.ac: Also check for libsoup 2.4, which is what ships with
10790         Gnome 2.12.
10792         * po/POTFILES.in: Added music sharing files that have translatable 
10793         strings.
10795         * README.daap: New file explaining "How Music Sharing Works"  
10797 2005-09-06  Bastien Nocera  <hadess@hadess.net>
10799         * daapsharing/.cvsignore: added
10801 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
10803         * daapsharing/*: Music sharing library.
10804         
10805         * sources/rb-daap-source.c/h: Music share RBSource.
10806         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
10808         * configure.ac: --enable-daap flag to turn on music sharing. Requires
10809         libsoup and a mutlicast DNS implementation (howl or avahi).
10811         * data/rhythmbox.schemas: New GConf keys for music sharing.
10813         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
10814         source right click menu.
10816         * player/rb-player-gst.c: Changes to properly play & seek in remote
10817         music share files.
10819         * shell/rb-playlist-manager.c/h:
10820         (rb_playlist_manager_get_playlists): New function to get a GList * of
10821         the playlists.
10822         (rb_playlist_manager_save_playlists): Don't save music share playlists
10823         and fixed a GObject reference leak.
10825         * shell/rb-shell.c/h:
10826         (rb_shell_append_source): No longer a local function.  Now takes a
10827         parent RBSource * argument, NULL to append a toplevel source.
10828         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
10829         source (useful for disconnecting from remote music share,
10830         specifically).
10831         (rb_shell_quit): Stop music sharing/browsing.
10832         (rb_shell_playlist_added_cb): Work with tree source structure.
10833         (rb_shell_get_property): "playlist-manager" property accessor.
10834         (rb_shell_class_init): New "playlist-manager" property.
10835         (rb_shell_construor): Append sources as toplevel sources.  Initialize
10836         daap sharing/browsing.
10837         (rb_shell_select_source): Notify source of activation/deactivation.
10839         * shell/rb-shell-prefernces.c: Music sharing preferences.
10841         * sources/rb-source.c/h: New activate, deactivate and disconnect
10842         class functions.  Activate & deactivate are notification style 
10843         functions that will tell a source when it is selected/unselected.
10844         Disconnect can be hooked up to a UI object to disconnect the source.
10846         * sources/rb-sourcelist-model.c:
10847         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
10848         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
10849         append a toplevel source.
10851 2005-09-05  James Livingston  <jrl@ids.org.au>
10853         * rhythmdb/rhythmdb-query-model.c:
10854         (rhythmdb_query_model_entry_changed_cb),
10855         (rhythmdb_query_model_do_reorder): Update the query model's totals if
10856         the duration of filesize of an entry changes.  Emit the row-changed
10857         signals that I forgot to put back in, when I was doing query sorting.
10859         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
10860         out "0 minutes" or "0 bytes".
10862 2005-09-04  James Livingston  <jrl@ids.org.au>
10864         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
10865         remove a leftover bit of the "internal-name" property of sources.
10867 2005-09-03  James Livingston  <jrl@ids.org.au>
10869         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
10870         extraneous debug message
10871         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
10872         crasher would affect any library-derived sources (which was also a
10873         memory leak).
10875 2005-09-02  Colin Walters  <walters@verbum.org>
10877         * configure.ac: Fix sytnax error.
10879         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
10880         code to disable minimization icons - need to figure out
10881         why it doesn't work...
10883 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
10885         * data/glade/song-info-multiple.glade:
10886         * data/glade/song-info.glade:
10887         * widgets/rb-song-info.c: (rb_song_info_constructor):
10888         Add a mnemonic to the newly added "Automatically rate" label
10889         in the properties dialog and use a bold typeface like all the 
10890         other labels in the dialog. (Closes bug 315089)
10892 2005-09-03  James Livingston  <jrl@ids.org.au>
10894         * sources/rb-library-source.c: (rb_library_source_class_init),
10895         (rb_library_source_finalize), (rb_library_source_constructor),
10896         (rb_library_source_set_property), (rb_library_source_get_property),
10897         (impl_get_paned_key), (paned_size_allocate_cb),
10898         (rb_library_source_state_prefs_sync), (impl_show_popup),
10899         (rb_library_source_get_paned_key):
10900         * sources/rb-library-source.h: Allow sources derived from
10901         RBLibrarySource to use different gconf keys for sort order, browser
10902         visibility and browser pane position. Fix a crasher if a derived
10903         source overrides _get_pixbuf.
10905 2005-09-02  Colin Walters  <walters@verbum.org>
10907         * shell/rb-shell.c (rb_shell_set_visibility): Move
10908         hint setting which seems to avoid races more.
10909         
10910 2005-09-03  James Livingston  <jrl@ids.org.au>
10912         * shell/rb-shell.c: fix compilation with iPod support enabled
10913         
10914 2005-09-02  Colin Walters  <walters@verbum.org>
10916         * shell/rb-shell.c (struct RBShellPrivate): Add
10917         idle_hide_mainwindow_id.
10918         (rb_shell_constructor): Move taskbar skipping hint into
10919         rb_shell_set_visibility.
10920         (idle_hide_mainwindow): New function.
10921         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
10922         racy hack to avoid rb appearing in taskbar when minimized.
10924 2005-09-01  Colin Walters  <walters@verbum.org>
10926         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
10928         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
10929         from gtkstatusicion.c.
10931         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
10933         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
10934         TrayShowWindow entry.
10935         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
10936         (rb_tray_icon_constructor): Create action group here.
10937         (rb_tray_icon_finalize): Destroy action group.
10938         (rb_tray_icon_set_property): Don't take an action group.
10939         (rb_tray_icon_new): Ditto.
10940         (tray_popup_position_menu): Some mostly boilerplate code
10941         to position menu.
10942         (rb_tray_icon_button_press_event_cb): Position menu.
10943         (rb_tray_icon_get_geom): New function used for the shell
10944         to set minimization hints.
10946         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
10948         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
10949         (struct RBShellPrivate): Change visible to iconified.
10950         (set_icon_geometry): New function from Søren Sandmann to
10951         tell Metacity where to draw the minimization animiation.
10952         (rb_shell_window_state_cb): Update iconified.
10953         (rb_shell_get_visibility): New function to say whether
10954         or not we're currently visible.
10955         (rb_shell_set_visibility): Update to minimize to
10956         tray or present as appropriate.
10957         (rb_shell_window_delete_cb): On window close, just
10958         minimize to tray if we're deleted.
10959         (rb_shell_set_window_title): Kill old notification code.
10960         (rb_shell_toggle_visibility): Nwe function.
10961         (rb_shell_cmd_toggle_visibility): Call it.
10962         (rb_shell_constructor): Skip the taskbar.
10963         (tray_destroy_cb): Better debugging.
10964         
10965 2005-09-01  Colin Walters  <walters@verbum.org>
10967         * data/ui/rhythmbox-ui.xml: Add MusicClose.
10969         * configure.ac: Enable bonobo by default.
10970         
10971 2005-09-01  Colin Walters  <walters@verbum.org>
10973         * configure.ac: Default to old art.  Add macros subdir.
10975         * Makefile.am (SUBDIRS): Add macros.
10977         * macros/Makefile.am: New.
10978         
10979 2005-09-01  Colin Walters  <walters@verbum.org>
10981         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
10982         rb-shell-player.xml.
10984         * remote/dbus/rb-remote-dbus.h: Deleted.
10985         
10986         * remote/dbus/Makefile.am: Delete all the junk, just dist
10987         rb-print-playing.py and rb-set-rating.py.
10989         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
10991         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
10993 2005-09-02  James Livingston  <jrl@ids.org.au>
10995         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
10996         file from cvs
10998         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
10999         (rb_shell_constructor): Patches from Jonathan Matthew
11000         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
11001         a crash when using "browse this artist".
11003 2005-08-31  Colin Walters  <walters@verbum.org>
11005         * configure.ac: Add --with-old-art configure switch.  Also
11006         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
11007         but it doesn't work.
11009         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
11010         Don't use eel_create_colorized_pixbuf for new art.
11011         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
11013         * data/art-clearlooks: New artwork.
11014         
11015 2005-08-31  Colin Walters  <walters@verbum.org>
11017         * shell/main.c (main): Fix Bastien's commit to continue to focus
11018         the window with GTK+ 2.8 at least.
11019         
11020 2005-08-31  Colin Walters  <walters@verbum.org>
11022         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
11023         is already loaded.
11025         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
11027 2005-08-31  Bastien Nocera  <hadess@hadess.net>
11029         * README: remove mentions of the xine-lib backend
11030         * shell/main.c: (main): make it compilable with gtk+ < 2.8
11032 2005-08-30  Colin Walters  <walters@verbum.org>
11034         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
11035         Make non-visible sources insensitive.
11036         
11037 2005-08-30  Colin Walters  <walters@verbum.org>
11039         * shell/rb-shell.c: Don't use GConf for selected source; it's
11040         confusing to have the selected source change after startup,
11041         and since we don't save other things it's not worth saving this.
11043         * sources/rb-playlist-source.c:
11044         * sources/rb-library-source.c:
11045         * sources/rb-iradio-source.c:
11046         * sources/rb-ipod-source.c: Delete internal-name property usage.
11047         * sources/rb-source.c: Delete internal-name property.
11049         * data/rhythmbox.schemas: Delete selected_source.
11050         
11051 2005-08-30  Colin Walters  <walters@verbum.org>
11053         * sources/rb-sourcelist.c: Make playing source bold instead of
11054         displaying a pixbuf; it's much less ugly.
11055         
11056 2005-08-30  Colin Walters  <walters@verbum.org>
11058         * sources/rb-source.c:
11059         * sources/rb-source.h: New virtual method try_playlist.
11061         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
11062         impl_try_playlist.
11063         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
11064         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
11065         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
11066         need to.
11067         (stations_view_drag_data_received_cb): Don't check for iradio uris;
11068         in theory we should though...
11070         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
11071         list in rb_shell_construct now.
11072         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
11073         RBiPodSource.
11074         (rb_shell_constructor): Create library, iradio, ipod here.
11075         (rb_shell_source_deleted_cb): Use source directly instead of
11076         indirecting through type.
11077         (rb_shell_sync_selected_source): Ditto.
11078         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
11079         from the type instead of special-casing.
11080         (rb_shell_guess_type_for_uri) 
11081         (rb_shell_add_uri)
11082         (handle_one_uri_with_possible_metadata): New functions.
11083         (rb_shell_load_uri): Refactor to allow loading playlists again,
11084         also use other URI infrastructure.
11086         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
11087         (rb_shell_player_error): Always set entry error on error, instead
11088         of depending on EOF behavior.
11090         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
11091         to just invoke rb_shell_add_uri.
11092         (rb_playlist_manager_parse_file): Return error instead of tossing
11093         up dialog box directly.
11094         (load_playlist_response_cb): Display error here.
11095         (add_uri_to_playlist): Delete.
11096         (handle_playlist_entry_into_playlist_cb): Renamed to
11097         handle_playlist_entry_cb.
11099         * shell/rb-playlist-manager.h: Add error, update prototype.
11101         * lib/rb-file-helpers.c:
11102         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
11104 2005-08-29  Colin Walters  <walters@verbum.org>
11106         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
11107         if entry already exists.  Use rhythmdb_entry_set_uninserted.
11109         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
11110         needlessly duping string, and use rhythmdb_entry_set_uninserted.
11111         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
11113         * shell/rb-shell.h (enum RBShellError): Add some more errors.
11114         Prototype rb_shell_set_song_property.
11116         * shell/rb-shell.xml: Export setSongProperty.
11118         * shell/rb-shell.c (rb_shell_set_song_property): New function.
11119         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
11120         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
11122         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
11123         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
11124         want to notify of the change.
11125         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
11127         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
11128         logic error; idle functions would be enqueued for each set.
11129         (rhythmdb_entry_set): Fix assertion logic error.
11131         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
11132         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
11133         Return if the entry already exists.
11134         
11135 2005-08-29  Colin Walters  <walters@verbum.org>
11137         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
11138         "inserted" member which we use to keep track of
11139         whether or not an entry is in the DB.  Prototype
11140         rhythmdb_entry_set_uninserted.
11142         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
11143         flag.
11144         (rhythmdb_entry_insert): Assert entry is not already inserted.
11145         (rhythmdb_process_metadata_load): Update to call _set_uninserted
11146         just after creating entry.
11147         (rhythmdb_entry_set): Document, and fail on uninserted entries.
11148         (rhythmdb_entry_set_nonotify): Ditto.
11149         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
11150         entries.
11151         (rhythmdb_entry_set_internal): Change notify flag to
11152         notify_if_inserted.  Also move notification after assertions.
11154         Update all existing callers of rhythmdb_entry_set_internal
11155         to give TRUE for notify_if_inserted; this should be what
11156         we want but may be an efficiency hit.
11157         
11158 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
11160         * shell/rb-shell-player.c: (rb_shell_player_init),
11161         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
11162         (rb_shell_player_set_playing_source_internal),
11163         (rb_shell_player_sync_with_selected_source): Notify the player when an
11164         entry has updated the title, album or artist field, and resync the big
11165         display.
11166         
11167         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11168         * sources/rb-library-source.c: (rb_library_source_class_init),
11169         (impl_get_config_widget):
11170         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
11171         * sources/rb-source.c:
11172         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
11173         get_album functions in rb-source and adapted other sources accordingly.
11174         
11175 2005-08-29  Colin Walters  <walters@verbum.org>
11177         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
11178         signal_change member.
11179         (threadsafe_entry_set): New function.
11180         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
11181         (rhythmdb_entry_set_nonotify): New function; just call
11182         threadsafe_entry_set with FALSE.
11183         (rhythmdb_entry_set_internal): Take a notify flag; if true
11184         add the change to our pending set.
11186         Also update all internal callers of rhythmdb_entry_set_internal
11187         to pass FALSE.  Some of these may be bugs however and need to
11188         pass TRUE...
11190         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
11191         rhythmdb_entry_set, and rename rhythmdb_entry_set to
11192         rhythmdb_entry_set_nonotify.
11194         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
11195         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
11197         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
11199         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
11200         * sources/rb-source.c (rb_source_update_play_statistics): 
11201         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
11202         * sources/rb-ipod-source.c (entry_set_string_prop) 
11203         (load_ipod_db_idle_cb): 
11204         * shell/rb-shell.c (rb_shell_set_rating_impl): 
11205         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
11206         (info_available_cb): 
11207         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
11208         (rb_station_properties_dialog_sync_entries): 
11209         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
11211         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
11212         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
11213         
11214 2005-08-29  Colin Walters  <walters@verbum.org>
11216         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
11218         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
11219         linking insanity.
11221         * widgets/rb-header.c (sanitize_string): New function, extracted
11222         from old info_url.  Be sure to always strip the string.
11223         (info_url): Rewrite to take artist/album, and generate a sane
11224         URL for them from last.fm, which is better than allmusic.com in
11225         that they support Rhythmbox, and have a *SANE* URL scheme.
11226         (artist_info_url, album_info_url): Delete.
11227         (rb_header_sync): Use info_url.
11229 2005-08-29  James Livingston  <jrl@ids.org.au>
11231         * sources/rb-source.c: (rb_source_search): Check to ensure that this
11232         is implemented before calling it. Many sources don't implement the
11233         method.
11235 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
11237         * data/glade/create-playlist.glade:  Cleanup the layout,
11238         and add a few more mnemonics.
11239         * shell/rb-playlist-manager.c:
11240         (rb_playlist_manager_cmd_load_playlist),
11241         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
11242         capitalization for window titles.
11243         * widgets/rb-query-creator-properties.c: Add mnemonics
11244         to checkbutton labels.
11245         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
11246         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
11248 2005-08-28  Colin Walters  <walters@verbum.org>
11250         * data/rhythmbox.schemas: Delete search_text for library
11251         and iradio; this isn't a persistent value anymore.
11252         Closes #313757.
11253         
11254         * sources/rb-source.h:
11255         * sources/rb-source.c: Delete impl_can_search.
11257         * sources/rb-iradio-source.c: Delete search_text usage.
11258         * sources/rb-library-source.c: Ditto.
11260         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
11261         search when source is set, and just do rb_source_search in
11262         rb_source_header_search_cb.
11264         * shell/rb-shell.c (rb_shell_append_source): Don't
11265         initiate search.
11267         * shell/Makefile.am: Don't dist dashboard.c.
11269 2005-08-28  Colin Walters  <walters@verbum.org>
11271         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
11272         
11273 2005-08-28  Colin Walters  <walters@verbum.org>
11275         * data/org.gnome.Rhythmbox.service.in: New.
11277         * data/Makefile.am: Install service file.
11279         * configure.ac: Define DBUS_SERVICES_DIR.
11281         * autogen.sh: Set ACLOCAL_FLAGS.
11283         * macros/acinclude.m4: New.
11284         
11285 2005-08-28  Colin Walters  <walters@verbum.org>
11287         Initial patch from Jonathan Matthew; closes 313684.
11289         * rhythmdb/rhythmdb-tree.c:
11290         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
11291         (save_entry): Return on error.
11292         (rhythmdb_tree_save): Handle error when saving the
11293         db; additionally, handle errors from fclose and unlink,
11294         and print error too.
11296 2005-08-28  Colin Walters  <walters@verbum.org>
11298         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
11299         extra _.
11300         
11301 2005-08-28  Colin Walters  <walters@verbum.org>
11303         * configure.ac: Change iPod support to --with-ipod;
11304           automatically enable it if we have HAL.  Try to
11305           support both HAL 0.5 and HAL 0.2.  Break out
11306           totem-plparser into its own check so later we
11307           can do version tests there too.
11308           Kill dashboard support.
11309         
11310         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
11311         to support HAL > 0.5, but preserve the old code for HAL < 0.5
11312         Closes #310017.
11313         
11314         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
11315         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
11317         * sources/Makefile.am: Also handle
11318         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
11320         * shell/dashboard.c: Delete; someone should just write a little
11321         python shim which lists on the D-BUS interface and writes the
11322         stuff to Dashboard.  Even better Dashboard should be ported
11323         to D-BUS and do the listening itself, perhaps on an abstract
11324         "org.gnome.MusicPlayer" interface or something.
11326         * shell/rb-shell.c: Kill dashboard support.
11328 2005-08-28  Colin Walters  <walters@verbum.org>
11330         * remote/dbus/rb-print-playing.py: New file.
11332 2005-08-28  Colin Walters  <walters@verbum.org>
11334         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
11335         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
11337         * shell/rb-shell-player.h:
11338         * shell/rb-shell-player.c: Add playing-uri-changed signal.
11339         * shell/rb-shell-player.xml: Export it.
11341         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
11342         (rb_shell_error_quark): New.
11344         * shell/rb-shell.h: Prototype.  Also add RBShellError.
11345         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
11346         
11347 2005-08-28  Colin Walters  <walters@verbum.org>
11349         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
11350         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
11351         bonobo_unlock.
11352         (rb_remote_bonobo_preinit): Lock setting moved here.
11353         (rb_remote_bonobo_init): From here.
11355         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
11356         Also invoke handle_cmdline in the right place.
11357         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
11358         GFunc.
11360 2005-08-28  James Livingston  <jrl@ids.org.au>
11362         * NEWS: keep the NEWS file up to date, so we don't have to do it all
11363         when 0.9.1 comes around.
11365 2005-08-28  James Livingston  <jrl@ids.org.au>
11367         * iradio/rb-new-station-dialog.c:
11368         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
11369         bug 314477.
11371 2005-08-28  James Livingston  <jrl@ids.org.au>
11373         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
11375         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
11376         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
11377         is a song is longer than 60 minutes. Closes bug 313311.
11379 2005-08-27  James Livingston  <jrl@ids.org.au>
11381         * data/glade/create-playlist.glade:
11382         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
11383         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
11384         "minutes" as an option in the playlist limit menu.
11386         * rhythmdb/rhythmdb-query-model.c:
11387         (rhythmdb_query_model_class_init),
11388         (rhythmdb_query_model_set_property),
11389         (rhythmdb_query_model_get_property),
11390         (rhythmdb_query_model_update_limited_entries): Allow query models to
11391         have a time limit
11392         
11393         * shell/rb-playlist-manager.c:
11394         (rb_playlist_manager_set_automatic_playlist),
11395         (rb_playlist_manager_cmd_edit_automatic_playlist):
11396         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
11397         (rb_playlist_source_get_query), (impl_receive_drag),
11398         (rb_playlist_source_new_from_xml),
11399         (rb_playlist_source_save_to_xml),
11400         (rb_playlist_source_songs_sort_order_changed_cb),
11401         (rb_playlist_source_do_query):
11402         * sources/rb-playlist-source.h:
11403         * widgets/rb-query-creator.h: Allow playlists to be limited by time
11405 2005-08-27  James Livingston  <jrl@ids.org.au>
11407         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
11409         * configure.ac:
11410         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
11411         non-standard location. Closes bug 314640.
11413 2005-08-26  Colin Walters  <walters@verbum.org>
11414         
11415         Patch from Olivier Blin <oblin@mandriva.com>
11417         * widgets/eggnotificationbubble.c (draw_bubble): 
11418         Handle extreme-left case as well.
11419         
11420 2005-08-26  Colin Walters  <walters@verbum.org>
11422         * shell/rb-shell.c (idle_save_state): Don't do this.
11423         (rb_shell_construct): Remove idle calls to idle_save_state.
11424         We should save the playlists automatically when they're
11425         modified.
11426         (rb_shell_load_uri): Don't try to re-stat entry if it already
11427         exists.
11429         * shell/rb-shell-player.c: Keep track of entry we are attempting
11430         to play.
11431         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
11432         Don't double-free error.
11433         (rb_shell_player_play_entry): Signal errors.
11434         (rb_shell_player_entry_activated_cb): Ditto.
11435         (rb_shell_player_property_row_activated_cb): Ditto.
11436         (rb_shell_player_set_playing_source_internal): Unset attempted
11437         playing entry.
11438         (rb_shell_player_error): Refactor to be usable both sync and
11439         async.  Handle case where displayed entry differs from entry.
11440         (error_cb): Move GDK locking here.
11442         * shell/main.c (main): Drop most commandline arguments for D-BUS;
11443         people can just use dbus-send or python.  We only support focusing
11444         and loading files.
11445         (load_uri_args): New function, extracted from handle_cmdline.
11446         (dbus_load_uri, bonobo_load_uri): New functions.
11448         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
11449         appropriate.
11451         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
11452         * remote/dbus/rb-remote-dbus.c: Deleted.
11454         * player/rb-player-gst.c: Clear any pending idle handlers when we
11455         close the player.  Signal errors generated during open/play etc
11456         as synchronous errors.
11458         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
11459         
11460 2005-08-26  Colin Walters  <walters@verbum.org>
11462         * shell/rb-shell.c (rb_shell_present): Try harder.
11464 2005-08-26  Colin Walters  <walters@verbum.org>
11466         * shell/rb-shell.c (rb_shell_present): Try to handle
11467         GTK_MINOR_VERSION < 8.
11469 2005-08-26  James Livingston  <jrl@ids.org.au>
11471         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
11472         <pbrobinson@gmail.com>
11474 2005-08-26  Colin Walters  <walters@verbum.org>
11476         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
11478 2005-08-25  Colin Walters  <walters@verbum.org>
11480         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
11481         Delete.
11482         (rb_shell_player_do_next_with_rating): Move back into
11483         rb_shell_player_do_next.
11484         (rb_shell_player_entry_activated_cb): Remove call to
11485         rb_shell_player_auto_adjust_rating.
11486         (do_next_idle): Just call rb_shell_player_do_next.
11488         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
11490 2005-08-25  Colin Walters  <walters@verbum.org>
11492         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
11493         before gtk_window_present_with_time.
11494         
11495 2005-08-25  Colin Walters  <walters@verbum.org>
11497         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
11498         default.
11500         * shell/rb-shell.c (rb_shell_constructor): Adapted from
11501         rb_shell_construct.  This is so we only have to do g_object_new.
11502         (rb_shell_get_player): New function.
11503         (rb_shell_get_player_path): Ditto.
11504         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
11505         
11506         * shell/rb-shell.h: Prototype them.
11508         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
11509         export over D-BUS.
11510         (reemit_playing_signal): New function.
11511         (rb_shell_player_open_playlist_location): Use return values from
11512         rb_player_open, rb_player_close, etc. instead of checking "error".
11513         Return a gboolean on failure.
11514         (rb_shell_player_open_entry): Just open entry location, don't
11515         print to stderr.
11516         (rb_shell_player_play): Handle retval from rb_player_play.  Return
11517         a gboolean.
11518         (do_next_idle): Move logic for handling of end of playlist here.
11519         (rb_shell_player_set_playing_entry): Take a GError, return a
11520         gboolean.  Update to use gboolean return values.
11521         (rb_shell_player_do_previous): Delete lots of crazy duplicate
11522         logic.  Signal an error on end of playlist.  Also signal error if
11523         we're not playing.  Move heuristic for replaying the song into
11524         rb_shell_player_cmd_previous.
11525         (rb_shell_player_do_next_with_rating): Signal error on end of
11526         playlist.
11527         (rb_shell_player_do_next): Return errors.
11528         (rb_shell_player_cmd_previous): Heuristic for restarting song
11529         moved here; the idea is you generally only want that from the GUI.
11530         (rb_shell_player_cmd_play): Handle error.
11531         (rb_shell_player_playpause): Signal errors.
11532         (filter_mmkeys): Use rb_shell_player_cmd_previous and
11533         rb_shell_player_cmd_next in favor of the internal _do functions.
11534         
11535         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
11536         errors.  Update prototypes for above changes.
11538         * shell/main.c: More tightly integrate D-BUS; register various
11539         major singleton objects here.  Fix handle_cmdline so we only
11540         process extra arguments, not every argument.
11542         * shell/Makefile.am: Generate D-BUS glue headers.
11544         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
11545         into shell/main.c.  Now this file just acts as a client library.
11546         Not heavily tested.
11548         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
11549         Moved here.
11550         (rb_remote_bonobo_init): Move long CORBA rant here along with
11551         setting of lock functions.
11553         * player/rb-player-gst.c (rb_player_construct)
11554         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
11555         on error.
11557         * player/rb-player.h: Update prototypes.
11559         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
11560         rb-remote-bonobo.c.
11561         (rb_threads_init): Don't set gdk lock functions here.
11563 2005-08-25  James Livingston  <jrl@ids.org.au>
11565         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
11567         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
11568         * lib/rb-tree-dnd.h:
11569         * rhythmdb/rhythmdb-property-model.c:
11570         (rhythmdb_property_model_class_init),
11571         (rhythmdb_property_model_drag_source_init),
11572         (rhythmdb_property_model_iter_parent),
11573         (rhythmdb_property_model_row_draggable),
11574         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
11575         (rhythmdb_property_model_drag_data_get),
11576         (rhythmdb_property_model_enable_drag):
11577         * rhythmdb/rhythmdb-property-model.h:
11578         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
11579         (rb_playlist_manager_set_property), (append_new_playlist_source),
11580         (rb_playlist_manager_save_playlists):
11581         * shell/rb-shell.c: (rb_shell_construct),
11582         (sourcelist_drag_received_cb):
11583         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11584         * sources/rb-playlist-source.c: (impl_receive_drag):
11585         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
11586         (rb_sourcelist_model_drag_dest_init),
11587         (rb_sourcelist_model_set_dnd_targets),
11588         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
11589         (rb_sourcelist_model_row_drop_position),
11590         (rb_sourcelist_model_get_drag_target),
11591         (rb_sourcelist_model_drag_data_get):
11592         * sources/rb-sourcelist-model.h:
11593         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
11594         (rb_sourcelist_init), (rb_sourcelist_get_property),
11595         (rb_sourcelist_selection_changed_cb):
11596         * sources/rb-sourcelist.h:
11597         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
11598         improve drag-n-drop support. Allow dragging of item from property
11599         views to the source list, to create new automatic playlists. Allow
11600         playlist re-ordering. Fix dragging from Rhythmbox to other
11601         applications. (Closes bug 147337)
11603 2005-08-24  Colin Walters  <walters@verbum.org>
11605         Patch from Olivier Blin <oblin@mandriva.com>
11607         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
11608         correctly in the case where the window is next to monitor edge.
11610 2005-08-24  James Livingston  <jrl@ids.org.au>
11612         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
11613         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
11614         a gobject property to get the query model that backs the playlist.
11616 2005-08-24  James Livingston  <jrl@ids.org.au>
11618         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
11619         (handle_playlist_entry_into_playlist_cb),
11620         (rb_playlist_manager_playlist_entries_changed): Disable the "create
11621         audio cd" menu item when a non-playlist source is selected, or the
11622         playlist is empty. (Closes Bug 313253)
11624 2005-08-24  James Livingston  <jrl@ids.org.au>
11626         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
11627         Fix the playlist length checkso it doesn't report 0 for automatic
11628         playlists. This was stopping automati playlists being burnt to cd.
11630 2005-08-24  James Livingston  <jrl@ids.org.au>
11632         * configure.ac:
11633         * sources/rb-playlist-source-recorder.c: (burn_cd):
11634         * sources/rb-playlist-source.c:
11635         (rb_playlist_source_songs_sort_order_changed_cb):
11636         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
11637         more warnings that occur when compiling RPMs on Fedora.
11639 2005-08-24  James Livingston  <jrl@ids.org.au>
11641         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
11642         was stopping some distros gcc version compiling.
11644 2005-08-24  James Livingston  <jrl@ids.org.au>
11646         * NEWS:
11647         * data/glade/create-playlist.glade:
11648         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
11649         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
11650         (rhythmdb_query_free), (rhythmdb_query_serialize),
11651         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
11652         * rhythmdb/rhythmdb.h:
11653         * shell/rb-playlist-manager.c:
11654         (rb_playlist_manager_set_automatic_playlist),
11655         (rb_playlist_manager_cmd_edit_automatic_playlist):
11656         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
11657         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
11658         (impl_receive_drag), (rb_playlist_source_new_from_xml),
11659         (rb_playlist_source_save_to_xml),
11660         (rb_playlist_source_songs_sort_order_changed_cb),
11661         (rb_playlist_source_do_query):
11662         * sources/rb-playlist-source.h:
11663         * widgets/Makefile.am:
11664         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
11665         (rb_entry_view_set_sorting_order):
11666         * widgets/rb-query-creator-private.h:
11667         * widgets/rb-query-creator-properties.c:
11668         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
11669         (stringCriteriaGetWidgetData),
11670         (escapedStringCriteriaSetWidgetData),
11671         (escapedStringCriteriaGetWidgetData), (set_rating_score),
11672         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
11673         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
11674         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
11675         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
11676         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
11677         (relativeTimeCriteriaCreateWidget),
11678         (relativeTimeCriteriaSetWidgetData),
11679         (relativeTimeCriteriaGetWidgetData):
11680         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
11681         (rb_query_creator_class_init), (rb_query_creator_constructor),
11682         (rb_query_creator_dispose), (rb_query_creator_set_property),
11683         (rb_query_creator_get_property), (rb_query_creator_load_query),
11684         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
11685         (get_entry_for_property), (rb_query_creator_get_query),
11686         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
11687         (limit_toggled_cb), (lookup_row_by_widget),
11688         (remove_button_click_cb), (append_row),
11689         (get_property_index_from_proptype), (select_criteria_from_value),
11690         (property_option_menu_changed), (create_property_option_menu),
11691         (create_criteria_option_menu), (sort_option_menu_changed),
11692         (setup_sort_option_menu):
11693         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
11694         playlists. The two most notable improvements are 1) adding more
11695         properties to the query creator, making it much easier to add more in
11696         the future, and 2) allow playlists to be sorted, from the query editor
11697         if they gave limits, and by clicking on column headers if they don't.
11699         Files added: widgets/rb-query-creator-private.h,
11700         sources/rb-query-creator-properties.c
11702 2005-08-21  James Livingston  <jrl@ids.org.au>
11704         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
11705         error=NULL. This stops some crashes.
11707 2005-08-19  Colin Walters  <walters@verbum.org>
11709         Patch from Olivier Blin <oblin@mandriva.com>
11711         * widgets/eggnotificationbubble.c (force_window): Support top
11712         orientation.
11713         * widgets/eggnotificationbubble.h: Remove
11714         egg_notification_bubble_force_window from header.
11715         
11716 2005-08-18  James Livingston  <jrl@ids.org.au>
11718         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
11719         with the changes since then.
11721 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
11723         * shell/rb-shell-player.c: (rb_shell_player_init),
11724         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
11725         (rb_shell_player_volume_widget_changed_cb):
11726         * sources/rb-iradio-source.c:
11727         * sources/rb-library-source.c:
11728         * sources/rb-playlist-source.c:
11729         * widgets/Makefile.am:
11730         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
11731         (bacon_volume_button_class_init), (bacon_volume_button_init),
11732         (bacon_volume_button_dispose), (bacon_volume_button_new),
11733         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
11734         (bacon_volume_button_scroll), (bacon_volume_button_press),
11735         (cb_button_timeout), (cb_button_press), (cb_button_release),
11736         (bacon_volume_release_grab), (cb_dock_press),
11737         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
11738         (bacon_volume_scale_new), (bacon_volume_scale_press),
11739         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
11740         * widgets/bacon-volume.h:
11741         * widgets/rb-volume.c:
11742         * widgets/rb-volume.h:
11743           Use BaconVolumeButton (#300867).
11745 2005-08-17  James Livingston  <jrl@ids.org.au>
11747         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
11748         (rhythmdb_process_metadata_load): don't reset the First Seen time
11749         whenever we recheck the metadata.
11751 2005-08-17  James Livingston  <jrl@ids.org.au>
11753         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
11754         temporary workaround to stop crashes when trying to burn an empty
11755         playlist. Doesn't disable the menu item which is the better solution
11756         (Bug 313253).
11758 2005-08-15  James Livingston  <jrl@ids.org.au>
11760         * shell/rb-source-header.c: (rb_source_header_init),
11761         (rb_source_header_sync_control_state),
11762         (rb_source_header_search_activate_cb):
11763         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
11764         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
11765         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11766         (rb_search_entry_init), (rb_search_entry_searching),
11767         (rb_search_entry_activate_cb):
11768         * widgets/rb-search-entry.h: Move focus to the entry view when user
11769         presses enter in the search box. Patch from Paolo Borelli
11770         <pborelli@katamail.com> (Closes bug 128110)
11772 2005-08-15  James Livingston  <jrl@ids.org.au>
11774         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11775         (rb_playlist_manager_new_playlist):
11776         * shell/rb-playlist-manager.h:
11777         * shell/rb-shell.c: (rb_shell_construct),
11778         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
11779         the source list to be shown when a new playlist is created. (Closes
11780         bug 161935)
11782 2005-08-15  James Livingston  <jrl@ids.org.au>
11784         * widgets/rb-header.c: (rb_header_init),
11785         (rb_header_set_show_timeline): disable the seek slider, rather than
11786         hiding it, which more closely follows the HIG. (Closes bug 139102)
11788 2005-08-13  Colin Walters  <walters@verbum.org>
11790         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
11791         rb_shell_hidden_notify.
11792         (rb_shell_hidden_notify): Notify if the shell is hidden.
11793         (rb_shell_set_visibility_impl): Debug goo.
11795         * shell/rb-shell.h: Export rb_shell_hidden_notify.
11797         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
11798         when the user clicks on notification.
11800         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
11801         CD burn is complete.
11802         (rb_playlist_source_recorder_finalize): Unref shell.
11803         (rb_playlist_source_recorder_new): Take shell.
11805         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
11806         Pass shell to RBPlaylistSourceRecorder.
11807         
11808 2005-08-13  Colin Walters  <walters@verbum.org>
11810         * lib/rb-thread.c:
11811         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
11812           time to convert.
11814 2005-08-13  Colin Walters  <walters@verbum.org>
11816         * widgets/eggnotificationbubble.h:
11817         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
11818         * widgets/eggtrayicon.c:
11819         * widgets/eggtrayicon.h: Add notification API.
11820         * shell/rb-tray-icon.c:
11821         * shell/rb-tray-icon.h: Add notification API.
11822         * shell/rb-shell.c: Notify on song change.
11824 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
11826         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
11827         Correct an inversion of two lines causing NULL to be unreffed
11829 ============ Version 0.9.0
11831 2005-08-10  Bastien Nocera  <hadess@hadess.net>
11833         * configure.ac: 0.9.0, whee!
11834         * NEWS: badly updated
11835         * remote/bonobo/Makefile.am:
11836         * remote/bonobo/rb-remote-bonobo.h:
11837         * shell/Makefile.am:
11838         * shell/main.c: make distcheck fixes