Updated Macedonian translation <arangela@cvs.gnome.org>
[rhythmbox.git] / ChangeLog
blob036afc40f32bcf300b6719a159cfa37a7b5f7b07
1 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
3         * daapsharing/rb-daap-connection.c: (http_response_handler):
4         Fix the sense of the overflow check so it'll accept valid input.
6 2006-01-27  James Livingston  <jrl@ids.org.au>
8         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
10         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
11         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
13 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
15         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
16         
17         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
18         Don't include the artist field in the window title if it's blank.
19         Fixes #325973.
21 2006-01-26  William Jon McCann  <mccann@jhu.edu>
23         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
24         Use stock delete icon for move to trash and stock remove
25         for remove menu item.
27 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
29         * shell/rb-shell.c: (rb_shell_constructor),
30         (idle_handle_load_complete):  Don't start the playlist save
31         timeout until we've loaded the playlists, otherwise we'll
32         write an empty playlist file if startup takes too long.
34 2006-01-25  William Jon McCann  <mccann@jhu.edu>
36         * shell/rb-shell.c: Make view toolbar toggle use
37         shift+ctrl+t.  Fixes #327585.
39 2006-01-25  James Livingston  <jrl@ids.org.au>
41         patch by: Christope Fergeau  <teuf@gnome.org>
43         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
44         (http_response_handler): fix a potential buffer overflow issue.
46 2006-01-25  James Livingston  <jrl@ids.org.au>
48         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
49         Year column wide enough to display "Unknown"
51 2006-01-25  James Livingston  <jrl@ids.org.au>
53         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
54         (rb_podcast_source_post_status_cell_data_func): make the episode
55         status wording better. Part of bug 321607.
57 2006-01-25  James Livingston  <jrl@ids.org.au>
59         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
60         others with a separator.
62         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
63         stock Delete icon.
65 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
67         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
69 2006-01-23  James Livingston  <jrl@ids.org.au>
71         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
72         0.3.2. Fixed bug 328158.
74 2006-01-23  James Livingston  <jrl@ids.org.au>
76         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
77         (gulong_gst_date_transform), (rb_metadata_class_init):
78         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
80 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
82         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
83         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
84         (record_entry_change): Protect added_entries and changed_entries with
85         a mutex, so it doesn't crash on startup on SMT/SMP machines.
87 2006-01-23  James Livingston  <jrl@ids.org.au>
89         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
90         the browser for audio CDs.
92 2006-01-22  James Livingston  <jrl@ids.org.au>
94         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
95         NEVER_FAIL as it causes the daemon-not-running error to never be
96         reported, resulting in bug 319438 re-occurring.
98 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
100         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
101         Just call the podcast manager's update method.  Unbreaks the 'update
102         all feeds' command.
104 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
106         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
108 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
110         * configure.ac: Don't disable DAAP with gstreamer 0.10
112         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
113         (rb_daap_src_class_init), (rb_daap_src_init),
114         (rb_daap_src_finalize), (rb_daap_src_set_property),
115         (rb_daap_src_get_property), (rb_daap_src_write),
116         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
117         (_split_uri), (rb_daap_src_open):
118         * daapsharing/rb-daap-src.h:
119         Mostly fix seeking, handle chunked transfer encoding, and port to
120         gstreamer 0.10.
121         
122         * player/rb-player-gst.c:
123         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
124         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
126         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
127         being fixed.
129 2006-01-21  James Livingston  <jrl@ids.org.au>
131         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
132         for Year metadata in DAAP sources. Fixes bug 327700.
134         * daapsharing/rb-daap-connection.c: (handle_song_listing):
136 2006-01-20  William Jon McCann  <mccann@jhu.edu>
138         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
139         enum values instead of magic numbers.
141         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
142         Add number of songs that match each property title into
143         the cell.  Also show the number of properties that match
144         in the All entry.
145         (rb_property_view_constructor): Use enum values instead of
146         magic numbers.
148         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
149         Query podcast posts instead of feeds for browser.  Use
150         post SUBTITLE which is the location for the property view.
151         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
152         (construct_query_from_selection) 
153         (rb_podcast_source_cmd_delete_feed) 
154         (rb_podcast_source_cmd_properties_feed) 
155         (rb_podcast_source_cmd_update_feed): Use variable to make
156         it clear what the selection data represents.
157         (rb_podcast_source_feed_title_cell_data_func): Add number
158         of posts that belong to each feed in the browser.
160         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
161         (rhythmdb_property_model_delete_prop): Decrement the refcount
162         for the All entry.
163         (rhythmdb_property_model_get_column_type): Use column enum
164         values instead of magic numbers.  Add NUMBER column.
165         (rhythmdb_property_model_get_value): Use enum.
166         Add NUMBER column that represents the refcount for
167         the title of that property.
168         (rhythmdb_property_model_perform_sync): Don't fake up
169         a title for All here.
171         Fixes #327372.
172         
173 2006-01-21  James Livingston  <jrl@ids.org.au>
175         Make Rhythmbox start faster by not blocking the UI while database
176         initialisation and loading occurs. Closes bug 323348.
178         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
179         start 10 seconds later instead of immediately.
180         
181         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
182         safe to call from any thread.
184         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
185         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
186         so the UI doesn't block.
188 2006-01-18  James Livingston  <jrl@ids.org.au>
190         * sources/rb-static-playlist-source.c:
191         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
192         cause crashes. Oops. fixes bug 327477.
194 2006-01-17  William Jon McCann  <mccann@jhu.edu>
196         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
197         Set GST element state to NULL before unreffing.
198         Fixes #327422.
200 2006-01-18  James Livingston  <jrl@ids.org.au>
202         * sources/rb-static-playlist-source.c:
203         (rb_static_playlist_source_do_query): don't filter on the SONG entry
204         type, since the playlists can contain non-song entries. Fixes bug
205         327448.
207         * sources/rb-play-queue-source.c:
208         (rb_play_queue_source_class_init): disable the search box for the
209         queue.
211 2006-01-18  James Livingston  <jrl@ids.org.au>
213         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
214         dragging of podcast episodes. Fixed bug 327450.
216 2006-01-18  James Livingston  <jrl@ids.org.au>
218         * rhythmdb/rhythmdb-query-model.c:
219         (rhythmdb_query_model_drag_data_received): fix possible assertion when
220         dragging to an emoty playlist.
222 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
224         * sources/rb-playlist-source-recorder.c:
225         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
227 2006-01-17  James Livingston  <jrl@ids.org.au>
229         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
231         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
232         different number of tracks than exist on the cd, since that happens
233         with audio+data hybrid CDs. Part of bug 325046.
235 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
237         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
238         Remove useless call to gtk_tree_view_column_set_clickable().
240         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
241         Don't store sort data for columns if the sort function is NULL,
242         so only sortable columns will be in the column sort data map.
243         (rb_entry_view_set_columns_clickable): Only make columns we can sort
244         on clickable.
245         (rb_entry_view_constructor):  The 'playing icon' column is never
246         clickable, so don't connect a signal handler for it.
248         Fixes bug 326811.
250 2006-01-17  James Livingston  <jrl@ids.org.au>
252         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
253         are 0.8 only. Fix element detection.
255         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
256         saving the new metadata failed
258 2006-01-17  James Livingston  <jrl@ids.org.au>
260         * shell/rb-shell-player.c: (do_next_idle),
261         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
262         (eos_cb): release audio device when a playlist finishes. Fixes bug
263         323679.
265 2006-01-17  James Livingston  <jrl@ids.org.au>
267         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
268         canonicalise the URIs when things are added via library watching.
270 2006-01-16  William Jon McCann  <mccann@jhu.edu>
272         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
273         Off by one error in default speed index.
275 2006-01-16  William Jon McCann  <mccann@jhu.edu>
277         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
278         (update_speed_combobox, update_speed_combobox):
279         Get a list of the actually supported write speeds from
280         n-c-b >= 2.13.90.  Otherwise use fallback list.
282 2006-01-17  James Livingston  <jrl@ids.org.au>
284         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
285         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
286         don't get stuck on recursive symlinks. Fixed bug 125452.
288 2006-01-17  James Livingston  <jrl@ids.org.au>
290         Add support for mass-storage audio players. Players are detected via
291         either the HAL "audio_player" capability, or a ".is_audio_player" file
292         in the root of the volume. Closes bug 325602.
294         * configure.ac: separate using HAL from ipod support.
296         * lib/rb-file-helpers.c: (rb_uri_is_local):
297         * lib/rb-file-helpers.h: add function to determine whether a URI is
298         local.
300         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
301         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
302         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
303         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
304         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
305         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
306         directories can be scanned for files to add as  non-SONG entries.
308         * shell/rb-removable-media-manager.c:
309         (rb_removable_media_manager_mount_volume): add checking for
310         mass-storage players.
312         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
313         * sources/rb-ipod-source.c: (rb_ipod_source_new),
314         (hal_udi_is_ipod):
315         * sources/rb-removable-media-source.c:
316         (rb_removable_media_source_class_init),
317         (rb_removable_media_source_constructor): move some things up to the
318         RBRemovableMediaSource, rather than making subclasses do it.
320         * sources/Makefile.am:
321         * sources/rb-generic-player-source.c:
322         * sources/rb-generic-player-source.h: add mass-storage player source.
324 2006-01-16  James Livingston  <jrl@ids.org.au>
326         patch by: William Jon McCann  <mccann@jhu.edu>
328         * rhythmdb/rhythmdb-query-model.c:
329         (rhythmdb_query_model_base_row_deleted): fix build issue from last
330         commit.
332 2006-01-16  James Livingston  <jrl@ids.org.au>
334         Patch to add support for "chained queries" and putting hidden tracks
335         in query models. Use chained queries to add search box support to
336         normal playlists, and to make hidden entries not get lost. Fixes bug
337         319278.
339         * rhythmdb/rhythmdb-query-model.h:
340         * rhythmdb/rhythmdb-query-model.c:
341         (rhythmdb_query_model_class_init),
342         (rhythmdb_query_model_set_property),
343         (rhythmdb_query_model_get_property):
344         (rhythmdb_query_model_finalize): add "show-hidden" and
345         "base-model" properties.
347         (rhythmdb_query_model_set_connected),
348         (rhythmdb_query_model_has_pending_changes),     
349         (rhythmdb_query_model_entry_added_cb),
350         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
351         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
352         (rhythmdb_query_model_remove_entry),
353         (rhythmdb_query_model_drag_data_received),
354         (rhythmdb_query_model_base_row_inserted),
355         (rhythmdb_query_model_base_row_deleted),
356         (rhythmdb_query_model_base_non_entry_dropped),
357         (rhythmdb_query_model_base_complete),
358         (rhythmdb_query_model_base_entry_prop_changed),
359         (rhythmdb_query_model_base_rows_reordered),
360         (rhythmdb_query_model_row_drop_possible): handle base-model by
361         chaining events and operations where necessary. Make hidden entries
362         not get added only if "show-hidden" is false.
364         (rhythmdb_query_model_child_index_to_base_index),
365         (rhythmdb_query_model_base_index_to_child_index),
366         (rhythmdb_query_model_get_entry_index): utility functions for handling
367         base-model entries.
369         (rhythmdb_query_model_reapply_query): apply the current query, and
370         remove entries that don't match it.
372         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
373         empty queries.
375         * sources/rb-source.c: (rb_source_set_property): move the unref later
376         to fix problem if it is the last reference.
378         * sources/rb-static-playlist-source.c:
379         (rb_static_playlist_source_class_init),
380         (rb_static_playlist_source_init),
381         (rb_static_playlist_source_finalize),
382         (rb_static_playlist_source_constructor), (impl_reset_filters),
383         (impl_search), (rb_static_playlist_source_do_query),
384         (impl_save_contents_to_xml),
385         (rb_static_playlist_source_add_location_internal): use a chained query
386         model to filter out hidden entries and implement the search box.
388 2006-01-15  James Livingston  <jrl@ids.org.au>
390         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
391         the default playlist loading, which I broke earlier.
393 2006-01-15  James Livingston  <jrl@ids.org.au>
395         patch by: William Jon McCann  <mccann@jhu.edu>
397         * sources/rb-playlist-source.c: (playlist_iter_func): use
398         totem-plparser's new API version macros to check for API changes.
399         Handle the recent API change.
401 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
403         * sources/rb-library-source.c: (impl_get_config_widget):
404         Ref the preferences object to match the unref in the
405         finalizer.  Fixes some portion of #323505.
407 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
409         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
410         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
411         Fix valgrind warnings about accessing uninitialised values.
413 2006-01-14  William Jon McCann  <mccann@jhu.edu>
415         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
417 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
419         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
420         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
421         Stops the 'now playing' icon from being displayed after the play
422         order finishes.
424 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
426         * podcast/rb-podcast-manager.c:
427         (rb_podcast_manager_db_entry_deleted_cb):
428         Don't try to delete files we never downloaded, and cancel downloads
429         for deleted episodes.  Fixes bug #326862.
430         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
431         Don't complain about NULL data items in the selection list.
433 2006-01-14  James Livingston  <jrl@ids.org.au>
435         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
436         Make the name ofthe queue non editable. Fixes bug 326918.
438 2006-01-13  William Jon McCann  <mccann@jhu.edu>
440         * sources/rb-playlist-source-recorder.c (burn_cd) 
441         (ask_rewrite_disc): Don't use our locally copied functions
442         if we have at least 2.13.
444 2006-01-13  William Jon McCann  <mccann@jhu.edu>
446         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
447         Correct the argument type for the process_error signal.
448         May fix bug #323154.
450 2006-01-13  James Livingston  <jrl@ids.org.au>
452         save the queue to disk when exiting, and reload on startup. Fixed bug
453         326677 .
455         * shell/rb-playlist-manager.c:
456         (rb_playlist_manager_load_playlists),
457         (rb_playlist_manager_save_playlists_async): don't disable saving of
458         the queue
460         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
461         add the queue source as a gobject property.
463         * sources/rb-play-queue-source.c:
464         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
465         code to save the queue to xml
467         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
468         load the queue from xml.
469         * sources/rb-playlist-xml.h:
471         * sources/rb-static-playlist-source.c:
472         (rb_static_playlist_source_load_from_xml),
473         (rb_static_playlist_source_new_from_xml):
474         * sources/rb-static-playlist-source.h: split the playlist xml loading
475         from the static playlist creation function, so the queue can use it.
477 2006-01-13  James Livingston  <jrl@ids.org.au>
479         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
480         assertion that should be there. Fixes bug 325923.
481         
482         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
483         return NULL if the entry already exists (e.g. as another type).
484         * daapsharing/rb-daap-connection.c: (handle_song_listing):
485         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
486         (rb_podcast_manager_insert_feed):
487         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
488         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
489         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
490         for the above function returning NULL.
492 2006-01-12  James Livingston  <jrl@ids.org.au>
494         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
495         is enabled. Fixes bug 326673.
496         
497         * doc/reference/tmpl/eggtrayicon.sgml:
498         * doc/reference/tmpl/rb-daap-src.sgml:
499         * doc/reference/tmpl/rb-source.sgml:
500         * doc/reference/tmpl/rb-statusbar.sgml:
501         * doc/reference/tmpl/rb-tree-model-sort.sgml:
502         * doc/reference/tmpl/rhythmbox-unused.sgml:
503         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
505 2006-01-11  James Livingston  <jrl@ids.org.au>
507         * widgets/rb-song-info.c: (rb_song_info_constructor),
508         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
509         (rb_song_info_populate_dialog): fill in the fields if all tracks have
510         the same value for properties. From bug 326054.
512 2006-01-11  James Livingston  <jrl@ids.org.au>
514         * sources/rb-source.h:
515         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
516         (rb_shell_player_set_playing_source_internal), (eos_cb):
517         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
518         every entry.
520         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
521         source use this. Closes bug 322077.
523 2006-01-10  William Jon McCann  <mccann@jhu.edu>
525         * widgets/eggtrayicon.c (egg_tray_icon_notify):
526         In order for set_icon_data_from_pixbuf() to be
527         effective, one must not set an icon in _new().
529 2006-01-10  William Jon McCann  <mccann@jhu.edu>
531         * widgets/eggtrayicon.c (egg_tray_icon_init) 
532         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
533         (egg_tray_icon_notify): Add support for libnotify 0.3.
534         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
535         * configure.ac: Determine the version of libnotify.
536         Fixes #326333.
538 2006-01-08  James Livingston  <jrl@ids.org.au>
540         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
541         trying to share a track with unknown length.
543 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
545         * shell/rb-shell-player.c: (rb_shell_player_init):
546         Sync volume on startup so it doesn't default to 0.
548 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
550         * shell/rb-shell-player.c: (rb_shell_player_class_init),
551         (rb_shell_player_get_property), (rb_shell_player_open_location),
552         (info_available_cb):  Add the iradio streamed song title as a
553         property, and emit a signal when it changes.
555         * shell/rb-shell.c: (rb_shell_constructor),
556         (rb_shell_player_elapsed_changed_cb),
557         (rb_shell_player_stream_song_changed_cb):
558         Issue a notification when the iradio song title changes.
559         Fixes #326166.
561 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
563         * shell/rb-shell-player.c: (rb_shell_player_init),
564         (rb_shell_player_finalize), (rb_shell_player_set_property),
565         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
566         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
567         (rb_shell_player_set_volume_relative),
568         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
569         (rb_shell_player_get_mute):
570         * shell/rb-shell-player.h:
571         * shell/rb-shell-player.xml:
572         Store volume as a property on RBShellPlayer, rather than in gconf.
573         Add some methods to control volume via dbus.
575         * shell/rb-shell.c: (rb_shell_constructor),
576         (rb_shell_volume_widget_changed_cb),
577         (rb_shell_player_volume_changed_cb):
578         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
579         Update volume using player properties rather than gconf, and sync the
580         volume with the volume control button when something else changes it.
581         Fixes #323840.
583 2006-01-07  William Jon McCann  <mccann@jhu.edu>
585         * shell/rb-tray-icon.c (tray_popup_position_menu):
586         Make tray menu align with edge of panel.
588         patch from Jaap A. Haitsma <jaap@haitsma.org>
589         Fixes #319913
591 2006-01-07  William Jon McCann  <mccann@jhu.edu>
592         * shell/rb-shell.c (sourcelist_drag_received_cb): 
593         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
594         (rb_playlist_manager_new_playlist_from_selection_data):
595         Make a reasonable default name for playlists created from
596         dropped data.  Fixes #326116.
598 2006-01-07  William Jon McCann  <mccann@jhu.edu>
600         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
601         Use new gconf key.
602         (burn_cd): Always eject CD after burning.  Too many drives
603         get confused if we don't.  Save the speed used if the burn
604         was completed successfully.
606         * data/rhythmbox.schemas: Use our own speed instead of from
607         n-c-b. The situation is that the default_speed for n-c-b is most
608         likely the maximum write speed.  This is fine for n-c-b because it
609         has burn-proof turned on.  We can't turn it on for audio CDs
610         because the results are poor in quality.  So we'll just pick a
611         default that should work for everyone (4).
613 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
614         
615         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
616         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
618 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
620         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
621         in my previous commit.  Fixes #326037.
623 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
625         patch by: Jonathan Matthew
627         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
628         error on Fedora Rawhide.
630 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
632         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
633         Assume HTTP URLs ending with .xml or .rss are podcasts.
634         (rb_shell_add_uri): Handle adding podcast feeds.
636         * sources/rb-podcast-source.c: (rb_podcast_source_new):
637         Register as the source for podcast feeds.
639 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
641         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
642         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
643         (rb_shell_preferences_append_view_page):
644         * shell/rb-shell-preferences.h:
645         Fix typo in function name.  Fixes #325992.
647 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
649         * shell/rb-audioscrobbler.c:
650         Add '+' to the list of characters to URI-encode, so it doesn't get
651         interpreted as a space.
653 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
655         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
656         (rb_daap_connection_do_something):  Don't crash if the DAAP server
657         goes away while we're still trying to log in.
659 2006-01-06  James Livingston  <jrl@ids.org.au>
661         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
663 2006-01-06  James Livingston  <jrl@ids.org.au>
665         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
666         support for Year to automatic playlists. Closes bug 321341.
668         * rhythmdb/rhythmdb-query-model.c:
669         (rhythmdb_query_model_set_property):
670         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
671         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
672         (rhythmdb_query_free), (rhythmdb_query_serialize),
673         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
674         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
675         * rhythmdb/rhythmdb.h: Support special
676         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
677         year in date.
679         * widgets/rb-query-creator-properties.c:
680         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
681         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
683 2006-01-06  James Livingston  <jrl@ids.org.au>
685         * configure.ac: make the playback backend selection work correctly
687         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
688         (rb_daap_src_class_init), (rb_daap_src_dispose),
689         (rb_daap_src_change_state), (rb_daap_src_initialize):
690         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
691         doesn't work for this class. Fixes bug 325934
693 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
695         * configure.ac: Fix check for libnotify.
697 2006-01-05  William Jon McCann  <mccann@jhu.edu>
699         * sources/rb-playlist-source.c (xml_get_and_trim_names):
700         Get name element for current lang and remove all name nodes
701         from the XML tree.
702         (get_playlist_name_from_xml): Try to get name element or
703         fall back to name attribute.
704         (rb_playlist_source_new_from_xml): Get name before turning over
705         to sub-types for parsing so that we can remove name elements
706         from the tree if necessary.
708         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
709         Load default playlists file if per user playlists are not found.
711         * data/playlists.xml.in: 
712         * data/Makefile.am: 
713         * data/.cvsignore: Add default set of playlists.
714         Fixes #323004
716 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
718         * shell/main.c: (main): Don't use the dbus interface to show the
719         window if we're also going to use the bonobo interface.
721 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
723         * shell/rb-history.c: (rb_history_set_playing):
724         Allow setting the playing song to NULL.
725         (rb_history_append), (rb_history_delete_link):
726         Don't randomly change position when entries are added and removed,
727         it confuses play orders.
728         
729         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
730         Random orders always have a next entry if the model is not empty.
731         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
732         Go back to the start of the history if we're past its end.
734         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
735         (rb_shuffle_play_order_go_next): Go back to the start of the history
736         if we're past its end.
737         (rb_shuffle_sync_history_with_query_model): Go back to the start of
738         the history if the current entry is removed.
740         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
741         (rb_play_order_entry_deleted_cb): Only update have next/previous for
742         the play order when the query has finished. This wasted about 10% CPU
743         while the query was running.
745         Fixes #324641: assertion failures when the query model was changed
746         such that the playing song was no longer present.
748 2006-01-05  James Livingston  <jrl@ids.org.au>
750         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
751         (rb_daap_src_dispose), (rb_daap_src_change_state):
752         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
753         (rhythmdb_gda_finalize):
754         * widgets/rb-cell-renderer-pixbuf.c:
755         * widgets/rb-cell-renderer-rating.c:
756         (rb_cell_renderer_rating_class_init),
757         (rb_cell_renderer_rating_finalize):
758         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
759         * widgets/rb-load-failure-dialog.c:
760         (rb_load_failure_dialog_class_init),
761         (rb_load_failure_dialog_finalize):
762         * widgets/rb-rating.c: (rb_rating_class_init),
763         (rb_rating_finalize):
764         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
765         (rb_search_entry_finalize): use G_DEFINE_TYPE
767         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
769 2006-01-05  James Livingston  <jrl@ids.org.au>
771         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
773         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
774         the tarball.
776         * shell/rb-history.c: (rb_history_class_init),
777         (rb_history_finalize):
778         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
779         (rb_playlist_manager_finalize):
780         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
781         (rb_remote_init): use G_DEFINE_TYPE.
783 2006-01-05  James Livingston  <jrl@ids.org.au>
785         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
786         changes
788 2006-01-04  William Jon McCann  <mccann@jhu.edu>
790         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
791         Disable burn action when source is not a playlist.
792         Fixes #323578.
794 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
796         Optionally use libnotify to display song change and other
797         notifications, and provide an option to disable notifications.
798         Fixes #320355 and innumerable informal complaints.
800         * widgets/eggtrayicon.c: (egg_tray_icon_init),
801         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
802         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
803         (egg_tray_icon_notify):
804         * widgets/eggtrayicon.h:
805         * configure.ac:
806         * shell/Makefile.am:
807         Optionally use libnotify instead of eggnotificationbubble.
809         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
810         (rb_tray_icon_constructor), 
811         (rb_tray_icon_show_notifications_changed_cb),
812         (rb_tray_icon_hide_notify_cb)
813         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
814         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
815         EggNotificationBubble pointer to eggtrayicon.
817         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
818         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
819         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
821 2006-01-04  William Jon McCann  <mccann@jhu.edu>
823         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
824         Request a minimum size for the progress bar so that
825         the window doesn't shrink too small.
827 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
829         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
830         (add_db_entry), (db_entry_deleted_cb):
831         Don't track the number of songs currently present, track the next ID
832         to assign.  Fixes potential ID conflict problems.
833         
834         (db_entry_changed_cb), (rb_daap_share_start_publish),
835         (rb_daap_share_stop_publish):
836         Watch for db entry changes, and when songs become non-hidden after
837         a successful stat, add them to the mapping tables.   Fixes #325178,
838         making the DAAP server usable again.
840 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
841         
842         * shell/rb-statusbar.c: (rb_statusbar_class_init),
843         (rb_statusbar_construct), (rb_statusbar_init),
844         (rb_statusbar_finalize), (rb_statusbar_set_property),
845         (rb_statusbar_get_property), (rb_statusbar_new),
846         (rb_statusbar_sync_with_source):
847         * shell/rb-statusbar.h:
848         Remove visibility management code, stop watching for play order
849         changes (status bar doesn't show play order any more), remove unused
850         'player' property, and some other minor cleanup.
851         
852         * shell/rb-shell.c: (rb_shell_constructor),
853         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
854         (rb_shell_sync_statusbar_visibility):
855         Manage status bar visibility here rather than in the status bar
856         itself, so we can take small mode into account.  Fixes #323589.
858 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
860         * widgets/eggnotificationbubble.c: (draw_bubble):
861         Move the bubble off the visible screen while setting up bevels.  
862         Fixes #316810.
864 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
866         * shell/rb-shell-player.c: (rb_shell_player_init),
867         (rb_shell_player_finalize): 
868         Remove unused structure members.
869         
870         (do_next_idle), (rb_shell_player_error):
871         Only queue one call to do_next_idle, so we don't skip tracks if we get
872         two errors for the same song.  Fixes #325216.
874 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
876         * data/glade/podcast-feed-properties.glade,
877          podcast/rb-feed-podcast-properties-dialog.c:
878         (rb_feed_podcast_properties_dialog_init),
879         (rb_feed_podcast_properties_dialog_update):
880         Add 'last episode' field to the podcast feed properties dialog.
882         * podcast/rb-feed-podcast-properties-dialog.c:
883         (rb_feed_podcast_properties_dialog_update_last_update),
884         (rb_feed_podcast_properties_dialog_update_last_episode),
885          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
886         Use last-seen property for the time at which we last updated the feed,
887         and post-time for the time the last episode was published.
889         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
890         Handle upgrades from 0.9.2; if no post-time was found for a podcast
891         feed, use last-seen (which in 0.9.2 was the last post time).
893         Fixes #323894.
895 2006-01-01  James Livingston  <jrl@ids.org.au>
897         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
899         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
900         year from the ipod database.
902 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
904         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
905         Only set the pipeline back to NULL state for really uninteresting
906         files.  This was causing deadlocks with various video files.
907         Fixes #324912.
909 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
911         * data/glade/song-info-multiple.glade:
912         Add disc number label and field.
913         * widgets/rb-song-info.c: (rb_song_info_construct_single),
914         (rb_song_info_constructor): 
915         Handle widgets for disc number.
916         (rb_song_info_sync_entries_multiple):
917         Set disc number property on selected entries.
918         Fixes #324777.
920 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
922         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
923         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
924         Activate the default widget when enter is pressed in these dialogs.
925         Fixes #322887.
927 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
929         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
930         Use rb_shell_player_get_playing_entry, so we get the right entry
931         when playing from the queue.  Fixes #325379.
933 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
935         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
936         Include podcast posts with no publication date.  Typically
937         seen in static collections rather than feeds.
939 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
941         * shell/main.c: (main): Don't attempt to handle
942         bonobo-only arguments if we couldn't get a bonobo
943         client proxy.
945 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
947         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
948         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
949         abort if daap sharing is disabled and then re-enabled.
951 2005-12-29  William Jon McCann  <mccann@jhu.edu>
953         * podcast/rb-podcast-parse.c (rb_insert_item):
954         Add debugging.
955         (rb_podcast_parser_start_element): Support itunes:image.
956         Add debugging.  Don't abuse the break statement.  Warn
957         if state is unknown.
958         (rb_podcast_parser_end_element): Add debugging.  Warn
959         if state is unknown.
960         (rb_podcast_parser_characters): Warn if state is unknown.
962         Fixes parsing of feeds that use the itunes:image element.
963         Fixes #324632
965 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
967         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
968         (stations_view_drag_data_received_cb):
969         Remove calls to rhythmdb_entry_lookup_by_location, as
970         rb_iradio_source_add_station does that anyway.
971         
972         (rb_iradio_source_add_from_playlist):
973         If the URL doesn't point to a playlist, add it as the stream
974         URL instead.
976 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
978         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
979         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
980         so we don't get an assertion failure.
981         Fixes #325025.
983 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
985         * shell/main.c: (load_uri_args): don't compile this in if
986         neither bonobo nor dbus are enabled.  Fixes #324890.
988 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
990         * sources/rb-audiocd-source.c:
991         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
992         so it closes the device.
994 2005-12-20  James Livingston  <jrl@ids.org.au>
996         * metadata/rb-metadata-gst.c: make the state changes time-out again,
997         so that it doesn't spend forever getting stuck on the one file. Don't
998         report errors for failing to change state on known non-audio files.
1000         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
1001         audio sink creation if we can't create the gconfaudiosink. This lets
1002         it work with only gst-plugins-base on 0.10.
1004 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
1006         * rhythmdb/rhythmdb-query-model.c:
1007         (rhythmdb_query_model_set_sort_order):
1008         Fix a tiny memory leak in the previous commit.
1010 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
1012         * rhythmdb/rhythmdb-query-model.c:
1013         (rhythmdb_query_model_set_sort_order):
1014         Don't try to emit reorders for empty query models, since it doesn't
1015         achieve anything and it results in a few warnings.
1017 2005-12-19  William Jon McCann  <mccann@jhu.edu>
1019         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
1020         Make burn dialog non-resizable so that the expander can shrink.
1021         Fixes #308951.
1023 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
1025         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
1026         add entries without a location, rather than those with one.
1028 2005-12-19  James Livingston  <jrl@ids.org.au>
1030         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
1031         the error isn't set.
1033 2005-12-19  James Livingston  <jrl@ids.org.au>
1034         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
1035         add entries without a location. Fixes bug 324290.
1037         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
1038         without a location.
1040         * shell/main.c: (main): don't crash if dbus initialisation fails
1041         without setting an error
1043 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
1045         * sources/rb-library-source.c: Remove unused structure members
1046         (rb_library_source_do_query): Actually use the cached 'all' query.
1047         Fixes #324025.
1048         
1049 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
1051         * sources/rb-audiocd-source.c 
1052         (rb_audiocd_get_cd_info): tab
1053         (rb_audiocd_scan_songs): Return boolean success/failure,
1054         fix error messages a bit.
1055         (metadata_cb): Don't crash if we have no tracks
1056         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
1057         the CD.
1058         Fixes #324222.
1060 2005-12-15  William Jon McCann  <mccann@jhu.edu>
1062         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
1063         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
1064         key.
1066         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1067         Fixes #324157
1069 2005-12-14  William Jon McCann  <mccann@jhu.edu>
1071         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
1072         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
1073         (fullscreen_changed_cb): 
1074         * lib/rb-preferences.h: 
1075         * data/ui/rhythmbox-ui.xml: 
1076         * data/rhythmbox.schemas:
1077         Add fullscreen mode.
1079         Fixes #324075.
1081 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
1083         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
1084         configure.  It was not working with RPM.
1085         * data/Makefile.am: Switched dbus directory location to use
1086         datadir instead of variable that was not working.
1088 2005-12-13  James Livingston  <jrl@ids.org.au>
1090         patch by: Alex Lancaster <alexl@users.sourceforge.net>
1092         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
1093         the podcast browser work again. Closes bug 323856.
1095 2005-12-12  William Jon McCann  <mccann@jhu.edu>
1097         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
1098         Remove C99ism.
1100         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
1101         (rb_utf_friendly_time):
1102         * lib/rb-cut-and-paste-code.h:
1104         * podcast/rb-feed-podcast-properties-dialog.c:
1105         (rb_feed_podcast_properties_dialog_parse_time):
1106         * podcast/rb-podcast-properties-dialog.c:
1107         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
1108         to display the date in a more user friendly way.
1109         For example, if the feed was updated yesterday it will say:
1110         Last updated: Yesterday 10:00 AM
1111         instead of printing the date.
1113 2005-12-12  William Jon McCann  <mccann@jhu.edu>
1115         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
1116         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
1117         (rb_validate_item_propert, rb_podcast_parser_start_element) 
1118         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
1119         Use RB style.  Check for NULL before strcmp.  No C++ comments.
1120         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
1121         Don't set invalid mime type when mime type is NULL.  Fix leaks.
1122         (rb_podcast_parse_date): Add support for some real world
1123         date formats.
1124         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
1125         (rb_podcast_parse_item_free): Style and no need to check
1126         for NULL before g_free.
1128         May fix #323742
1130 2005-12-12  James Livingston  <jrl@ids.org.au>
1132         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
1133         with gstreamer 0.10, which replaced audioscale.
1135         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
1136         function to free the SoupSession
1138         * shell/rb-source-header.c: (rb_source_header_set_property),
1139         (rb_source_header_disclosure_toggled_cb),
1140         (rb_source_header_view_browser_changed_cb),
1141         (rb_source_header_sync_control_state):
1142         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
1143         * sources/rb-library-source.c: (rb_library_source_class_init):
1144         * sources/rb-source.c: (rb_source_class_init),
1145         (rb_source_get_status), (default_get_browser_key),
1146         (rb_source_get_browser_key), (rb_source_can_browse),
1147         (rb_source_notify_status_changed),
1148         (rb_source_notify_filter_changed):
1149         * sources/rb-source.h: seperate the enabling of browsers from the use
1150         of a gconf key.
1152 2005-12-11  William Jon McCann  <mccann@jhu.edu>
1154         * data/glade/podcast-feed-properties.glade: 
1155         * data/glade/podcast-properties.glade: Use scrolled viewports
1156         for description text.  Fix regression of #320509.
1158 2005-12-11  James Livingston  <jrl@ids.org.au>
1160         * sources/rb-auto-playlist-source.c:
1161         (rb_auto_playlist_source_class_init), (impl_reset_filters),
1162         (impl_search), (rb_auto_playlist_source_do_query),
1163         (rb_auto_playlist_source_set_query),
1164         (rb_auto_playlist_source_get_query): add support for the search box
1165         to automatic playlists.
1167         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
1168         memory leak.
1170 2005-12-11  James Livingston  <jrl@ids.org.au>
1172         * NEWS: update NEWS
1174 2005-12-11  James Livingston  <jrl@ids.org.au>
1176         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
1177         (rhythmdb_load), (monitor_subdirectory),
1178         (rhythmdb_sync_library_location):  start the library sync and
1179         monitoring in an idle callback.
1181 2005-12-10  William Jon McCann  <mccann@jhu.edu>
1183         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
1184         (rb_podcast_source_constructor): Remove unused pixbuf column.
1185         (rb_podcast_source_set_property, rb_podcast_source_get_property):
1186         Use consistent style.
1188         Fixes #322961.
1190 2005-12-11  James Livingston  <jrl@ids.org.au>
1192         * rhythmdb/rhythmdb-property-model.c:
1193         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
1194         (rhythmdb_property_model_insert),
1195         (rhythmdb_property_model_delete_prop):
1196         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1197         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
1198         (destroy_tree_property):
1199         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
1200         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
1201         GMemChunks, they are crap and deprecated. Improves startup-time and
1202         memory usage slightly.
1204 2005-12-10  William Jon McCann  <mccann@jhu.edu>
1206         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
1207         Added license and website info.
1209         * MAINTAINERS.old: Add Colin.
1210         * MAINTAINERS: Add James.
1211         * AUTHORS: Put back in order.  Add extra space between name and email
1212         to make it easier to read.  Add James and jonathan.
1214         * widgets/rb-song-info.c (rb_song_info_init) 
1215         (rb_song_info_constructor): Make sure close button is primary/rightmost.
1217 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
1219         Play queue implementation. Closes bug 107787.
1221         * data/rhythmbox.schemas: add items for whether the queue should be
1222         displayed as a sidebar, and the height of the sourcelist if it is.
1224         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
1225         playlist, and podcast popups; add 'view queue as sidebar' menu item,
1226         add popups for queue as source and as sidebar.  We need a separate
1227         popup for the sidebar view because otherwise it's hard to tell which
1228         of the visible entry views the action came from.
1230         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
1232         * po/POTFILES.in: Add new file
1234         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
1235         Add helper function for deciding if a podcast episode is available for
1236         playback.
1238         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
1239         reorder entries in the query model.
1240         (idle_process_update): Handle new update type used to insert entries
1241         at a particular position in the query model.
1242         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
1243         parameter to specify the position (-1 meaning 'at the end').
1244         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
1245         parameter.
1246         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
1247         bad entry removal updates for entries that aren't in the model.
1248         (rhythmdb_query_model_emit_reorder): Add helper function for
1249         reordering rows.
1250         (rhythmdb_query_model_move_entry): New method for moving entries
1251         around in the model
1252         (rhythmdb_query_model_entry_added_cb),
1253         (rhythmdb_query_model_update_limited_entries),
1254         (rhythmdb_query_model_do_reorder),
1255         (rhythmdb_query_model_do_insert): Pass through the index parameter,
1256         use rhythmdb_query_model_emit_reorder where appropriate.
1258         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
1259         Don't allow the queue to be deleted.
1260         (handle_playlist_entry_cb): Update for method signature change
1261         (rb_playlist_manager_save_playlists_async),
1262         (rb_playlist_manager_get_playlists): Don't save the play queue,
1263         don't report it as a playlist.
1265         * shell/rb-play-order.c: Include queue play order in the list of
1266         available orders.
1268         * shell/rb-shell.c
1269         (rb_shell_class_init), (rb_shell_get_property): Add new property 
1270         for access to the clipboard object.
1271         (rb_shell_constructor): Handle playing-from-queue signal to update the
1272         sourcelist display; add queue sidebar in to UI, listen for queue
1273         sidebar pane changes, and read initial settings from gconf.
1274         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
1275         Only tell the sourcelist the source has changed if the new source is 
1276         not the queue, as we update the sourcelist differently in that case.
1277         (rb_shell_set_window_title): Only use the cached window title if the
1278         playing state was the same when it was created.
1279         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
1280         (rb_shell_sync_pane_visibility): Only hide the side pane if the
1281         sourcelist is hidden and the queue is shown as a source.
1282         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
1283         mode, since it doesn't make any sense.
1284         (sourcelist_visibility_changed_cb): Update the visibility of the pane
1285         too.
1286         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
1287         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
1288         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
1289         playing from queue shown as sidebar.
1291         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
1292         MusicProperties action here from rb-shell-player.c, since it acts like
1293         cut/copy/paste etc.
1294         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
1295         (rb_shell_clipboard_get_property): new property for queue source.
1296         Watch for selection changes in the sidebar entry view as well as the
1297         normal one.
1298         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
1299         actions and MusicProperties.
1300         (rb_shell_clipboard_cmd_queue_delete),
1301         (rb_shell_clipboard_cmd_add_song_to_queue),
1302         (rb_shell_clipboard_cmd_song_info),
1303         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
1305         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
1306         actually came from (could be the playing source, or the queue), add a 
1307         new play order object for the queue, add a property for the queue
1308         source, add a signal for when we switch between playing from the
1309         source and from the queue.
1310         (rb_shell_player_set_property): Handle playing directly from the
1311         queue so we stop once the queue is empty.  Create queue play order
1312         when we get the queue source.
1313         (rb_shell_player_get_playing_source): Return the source we're actually
1314         playing from.
1315         (rb_shell_player_get_playing_entry): Get playing entry from queue if
1316         that's where it is.
1317         (rb_shell_player_set_playing_entry): Update the queue play order if 
1318         that's where we're playing from.
1319         (rb_shell_player_play_order_update_cb): Take has next/previous for the
1320         queue into consideration too.
1321         (swap_playing_source): Helper function for switching the playing
1322         source.
1323         (rb_shell_player_do_previous): Check the queue, even though there's
1324         never a previous entry in it (yet), swap playing source if it changed.
1325         (rb_shell_player_do_next): Check the queue for entries to play before
1326         the normal play order, and swap playing source if it changed.
1327         (rb_shell_player_do_previous_or_seek): Check the queue for previous
1328         entries to go to as well.
1329         (rb_shell_player_playpause): Check the queue before the selection and
1330         the play order, and swap playing source if it changed.
1331         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
1332         (rb_shell_player_entry_activated_cb): Use
1333         rb_podcast_manager_entry_downloaded, do some tapdancing to make
1334         activating queue entries work properly (move the activated entry to
1335         the start of the queue and then play it); if we were playing from the
1336         queue, clear its playing entry so it'll start again from the start
1337         after the activated entry.
1338         (rb_shell_player_sync_buttons): MusicProperties action handler moved
1339         to rb-shell-clipboard.c
1340         (actually_set_playing_source): Add helper for updating the playing
1341         source.
1342         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
1343         signal if we stop or start doing so; use actually_set_playing_source; 
1344         emit playing-source-changed if we actually did change source.
1346         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
1347         rb_static_playlist_source_add_location.
1349         * sources/rb-library-source.c (rb_library_source_class_init): Allow
1350         enqueueing of songs from the library.
1352         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
1353         enqueueing of sonsg from playlists.
1354         (rb_playlist_source_entry_added_cb): Add extra parameter for
1355         rhythmdb_query_model_add_entry.
1356         
1357         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
1358         Implement (can_)add_to_queue for this class.
1359         (rb_podcast_source_entry_activated): Use
1360         rb_podcast_manager_entry_downloaded.
1361         (impl_can_add_to_queue): Return TRUE if at least one entry that has
1362         been downloaded is selected.
1363         (impl_add_to_queue): Only add downloaded entries to the queue.
1365         * sources/rb-source.{c,h}:
1366         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
1367         methods.
1368         (rb_source_class_init): Don't allow enqueueing by default; implement 
1369         add_to_queue though.
1370         (default_add_to_queue): Add all selected entries to the queue.
1371         
1372         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
1373         would be playing if there wasn't anything in the queue).
1374         (set_source_playing): Helper function for manipulating tree store.
1375         (rb_sourcelist_set_playing_source): Use set_source_playing
1376         (rb_sourcelist_preempt_playing_source): Update preempted source
1377         pointer, manipulate source states.
1379         * sources/rb-static-playlist-source.{c,h}:
1380         (rb_static_playlist_source_add_location_internal),
1381         (rb_static_playlist_source_add_location),
1382         (rb_static_playlist_source_add_entry): Add index parameter for
1383         specifying where in the playlist the new entry goes.
1384         (rb_static_playlist_source_new_from_xml), (impl_paste),
1385         (rb_static_playlist_source_add_list_uri),
1386         (rb_static_playlist_source_add_location_swapped),
1387         (rb_static_playlist_source_add_locations),
1388         (rb_static_playlist_source_non_entry_dropped),
1389         (rb_static_playlist_source_row_inserted):
1390         Handle new index parameter everywhere it appears
1391         (rb_static_playlist_source_move_entry): New method for moving entries
1392         around in the playlist.
1394         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
1395         warnings when trying to scroll entry views that have never been
1396         displayed.
1398         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
1399         play order that removes the old entry when switching to a new one.
1401         * sources/rb-play-queue-source.{c,h}: New files, implementing a
1402         static playlist subclass that has a second entry view for the sidebar
1403         view using alternate formatting, and that displays the number of
1404         entries it contains in its source list entry.
1406 2005-12-10  James Livingston  <jrl@ids.org.au>
1408         * rhythmdb/rhythmdb-query-model.c:
1409         (rhythmdb_query_model_add_entry),
1410         (rhythmdb_query_model_drag_data_received):
1411         * sources/rb-static-playlist-source.c:
1412         (rb_static_playlist_source_non_entry_dropped): when things are
1413         dropped, ignore any blank lines in the list of uris. Make the source
1414         responsible for adding new items to the db.
1416         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
1417         empty string.
1419 2005-12-10  James Livingston  <jrl@ids.org.au>
1421         * shell/rb-shell-player.c: (rb_shell_player_set_property),
1422         (rb_shell_player_sync_buttons),
1423         (rb_shell_player_selection_changed_cb): watch for the
1424         "selection-changed" signal, so that the Song Properties get enabled.
1425         Closes bug 323694.
1427 2005-12-10  James Livingston  <jrl@ids.org.au>
1429         * data/rhythmbox.schemas: fix the gconf schema
1431 2005-12-10  James Livingston  <jrl@ids.org.au>
1433         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
1434         the decoded-pad callback with gstreamer 0.8, it causes problems.
1436 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
1438         Remove more junk from RBEntryView. Closes bug 323640.
1440         * widgets/rb-entry-view.{c,h}:
1441         Remove unused private structure members, replace 'playing' boolean
1442         with an enum (so we know if we're paused too), and store a pointer to
1443         the RBShellPlayer too.  
1444         (rb_entry_view_class_init), (rb_entry_view_set_property),
1445         (rb_entry_view_get_property):
1446         Remove 'entry-selected' and 'changed' signals and
1447         'playing-entry' property, add 'selection-changed' signal and
1448         'shell-player' and 'playing-state' properties.
1449         (rb_entry_view_new): Take the shell player object reference
1450         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
1451         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
1452         No longer needed, shell player is the place to get this information.
1453         (rb_entry_view_busy), (rb_entry_view_get_duration),
1454         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
1455         (rb_entry_view_get_next_from_entry),
1456         (rb_entry_view_get_previous_from_entry),
1457         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
1458         (rb_entry_view_get_num_entries):
1459         Removed, callers should go to the query model directly.
1460         (rb_entry_view_playing_song_changed): Update active query model, emit
1461         row changed signals to update pixbufs, and scroll to the playing song
1462         when the playing song changes, based on a signal from the shell
1463         player.
1464         (queue_changed_sig), (rb_entry_view_row_changed_cb),
1465         (emit_entry_changed): Evil, removed.
1466         (rb_entry_view_selection_changed_cb): Remove old signals, add new
1467         selection-changed signal.
1468         (rb_entry_view_select_none), (rb_entry_view_select_entry):
1469         Remove selection lock.  It didn't work anyway.
1470         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
1471         (rb_entry_view_emit_row_changed): Simple helper function to emit
1472         row-changed signals.
1474         * widgets/Makefile.am: Entry view needs headers from the shell/
1475         directory.
1476         * widgets/rb-song-info.{c,h}: Use the query model for everything except
1478         scrolling the entry view to show the entry being displayed.
1479         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
1480         'source' property so we can watch for query model changes.
1481         (rb_song_info_finalize): Unref objects, disconnect signal handlers
1482         (rb_song_info_set_property): Watch for query model changes, don't
1483         watch for entry view changes.
1484         (rb_song_info_new): Take source as a parameter, use the source's entry
1485         view unless one was specifically supplied.
1486         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
1487         Use query model rather than entry view to move between songs.
1488         (rb_song_info_update_buttons): Use query model.
1489         (rb_song_info_query_model_changed_cb): Handle query model changes.
1491         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
1492         Only one copy of the code to enable/disable the CD burning action
1493         (rb_playlist_manager_playlist_entries_changed):
1494         Use the query model to get the number of entries, not the entry view.
1496         * shell/rb-play-order-random-by-age-and-rating.c,
1497         shell/rb-play-order-random-by-age.c,
1498         shell/rb-play-order-random-by-rating.c,
1499         shell/rb-play-order-random-equal-weights.c:
1500         Use G_DEFINE_TYPE
1502         * shell/rb-shell-player.{c,h}:
1503         Remove a few unused entries from the structure.
1504         (rb_shell_player_set_property):
1505         Don't use the 'changed' signal on the entry view (it's evil)
1506         (rb_shell_player_have_first): No longer needed
1507         (rb_shell_player_play): Just tell the entry view it's playing
1508         (rb_shell_player_playpause): Tell the entry view it's paused
1509         when pausing.
1510         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
1511         (rb_shell_player_property_row_activated_cb):
1512         Get the entry to play using the query model, not the entry view.
1513         (rb_shell_player_sync_buttons): Update entry view state while we're
1514         here.
1515         (rb_shell_player_set_playing_source_internal): Update entry view state
1516         (rb_shell_player_get_playing): Ask the entry view, not the player.
1517         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
1518         and rb_shell_set_window_title work properly, so you get "(Paused)" in
1519         the window title and tray icon tooltip.
1520         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
1522         * sources/rb-iradio-source.c, sources/rb-library-source.c,
1523         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
1524         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
1525         view constructor, pass the source in to the song info widget
1526         constructor.
1528         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
1529         Use 'selection-changed' instead of 'changed', since that's what the
1530         clipboard cares about.
1531         (rb_shell_clipboard_set_source): Don't die if source == NULL
1533 2005-12-10  James Livingston  <jrl@ids.org.au>
1535         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
1536         * sources/rb-playlist-source-recorder.c:
1537         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
1538         stuff not use the deprecated API when compiled against 2.13
1540 2005-12-10  James Livingston  <jrl@ids.org.au>
1542         patch by: Alex Lancaster <alexl@users.sourceforge.net>
1544         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
1545         problem where the genre tag was getting set to the artist. Closes bug
1546         323642.
1548 2005-12-09  William Jon McCann  <mccann@jhu.edu>
1550         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
1551         Return NULL if can't get first iter.
1553         Fixes #323663
1555 2005-12-09  William Jon McCann  <mccann@jhu.edu>
1557         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
1558         updated rb_station_properties_dialog_new API.
1559         (rb_iradio_source_add_from_playlist): New public function.
1560         (rb_iradio_source_first_time_changed): Use add_from_playlist.
1562         * shell/rb-shell.c (new_station_location_added): Handle
1563         iradio location added signal.
1564         (rb_shell_cmd_new_station): Use new iradio station dialog.
1566         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
1567         (rb_station_properties_dialog_new): Don't squeeze new
1568         station functionality into this class.
1569         (rb_station_properties_dialog_response_cb): ditto.
1570         (rb_station_properties_dialog_update_title): Make
1571         consistent with other properties dialogs.
1572         (rb_station_properties_dialog_location_changed_cb): Do nothing.
1574         * iradio/rb-new-station-dialog.[ch]: 
1575         * iradio/Makefile.am: Add new station dialog.
1577         * data/glade/station-new.glade: New file based on
1578         new podcast feed dialog.
1579         * data/glade/station-properties.glade: Updated to
1580         be consistent with song properties dialog.
1582         Fixes #323306.
1584 2005-12-10  James Livingston  <jrl@ids.org.au>
1586         patch by: StÃ¥le Lyngaas <staale@lyngaas.com>
1588         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
1589         submit songs longer than 30 minutes. Fixes bug 323639.
1591 2005-12-09  William Jon McCann  <mccann@jhu.edu>
1593         * shell/rb-shell.c (idle_save_playlist_manager): Use new
1594         async save function.
1595         (rb_shell_finalize): Remove save timeout sources.  Reorder
1596         steps a bit to make saving db and playlists a bit more
1597         failsafe in case something goes wrong later.
1598         (rb_shell_constructor): Keep track of save timeout source.
1599         (add_to_library_response_cb): Keep track of db save timeout source.
1601         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
1602         g_atomic.
1603         (rb_playlist_manager_shutdown): New function to shutdown
1604         threads etc. before exit.
1605         (rb_playlist_manager_finalize): Moved handling outstanding
1606         threads stuff to shutdown since if there are outstanding threads
1607         they hold a ref and finalize is never called.
1608         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
1609         of signal which may be required for sync save.
1610         (rb_playlist_manager_save_playlists_async): Renamed old
1611         save_playlists to save_playlists_async.  Use g_atomic.
1612         (rb_playlist_manager_save_playlists): New function to
1613         perform sync saves (symmetric with RhythmDB API).
1614         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
1616         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
1617         Style consistency anality.
1618         (rhythmdb_finalize): Remove save timeout source.
1619         (rhythmdb_set_property, rhythmdb_get_property) 
1620         (rhythmdb_process_events): More anality and keep track of
1621         save timeout source.
1622         (action_thread_main): No need to call g_thread_exit.
1623         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
1624         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
1625         (write_encoded_gvalue, read_encoded_property): La la la.
1627         Fixes #322940.
1629 2005-12-10  James Livingston  <jrl@ids.org.au>
1631         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
1632         non-audio files.
1634 2005-12-10  James Livingston  <jrl@ids.org.au>
1636         * Makefile.am:
1637         * configure.ac: remove the rpm spec files, so that automake works.
1638         oops
1640         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
1641         locking issue
1643 2005-12-09  James Livingston  <jrl@ids.org.au>
1645         * debian/: try to get cvs to actually remove the files
1647 2005-12-09  James Livingston  <jrl@ids.org.au>
1649         * rhythmbox.spec.in:
1650         * debian/: remove the distro package stuff, they are *really* old, and
1651         downstream manage it anyway.
1653 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
1655         Rework play orders to work off query models rather than 
1656         entry views, and track the playing entry themselves rather
1657         than relying on the entry view to do it.  This makes the entry
1658         view mostly just a widget. Closes bug 323612.
1660         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
1661         Use query model rather than entry view to get the number
1662         of entries in playlists.
1664         * rhythmdb/rhythmdb-query-model.{c.h}
1665         (rhythmdb_query_model_tree_path_to_entry),
1666         (rhythmdb_query_model_iter_to_entry),
1667         (rhythmdb_query_model_get_next_from_entry),
1668         (rhythmdb_query_model_get_previous_from_entry):
1669         New utility functions for iterating through query models.
1670         (rhythmdb_query_model_compute_status_normal):
1671         Have one copy of this code, not four.
1673         * shell/rb-play-order.{c,h}:
1674         Add signals for when next/previous availability changes, and
1675         when the playing entry is removed, and add a property for
1676         the current playing entry.  Add gtkdoc comments too.
1677         (rb_play_order_class_init): Add new property and signals.
1678         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
1679         (rb_play_orer_query_model_changed_cb),
1680         (rb_play_order_query_model_changed): 
1681         Use query model rather than entry view.
1682         (rb_play_order_set_property), (rb_play_order_get_property):
1683         Handle new playing-entry property.  Call playing_entry_changed virtual
1684         method so subclasses can do any processing required.
1685         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
1686         (rb_play_order_set_playing_entry):
1687         Just use the playing-entry property.
1688         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
1689         Utility methods for subclasses.
1690         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
1691         Update next/previous availability, check if the playing entry
1692         was removed.
1693         (default_playing_entry_removed):
1694         Keep the current behaviour of just stopping playback when the 
1695         playing entry is deleted.
1696         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
1697         these for subclasses that don't have go_next/go_previous, but do
1698         have get_next/get_previous.
1699         (rb_play_order_update_have_next_previous): Emit signal if the
1700         availability of next/previous entries has changed.
1702         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
1703         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
1704         Use G_DEFINE_TYPE, replace entry view iterator with query model 
1705         methods.
1706         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
1707         on the last song in the shuffled order, go back to the start. This
1708         means if you press 'play' again you'll get the whole order again, not
1709         just one song.
1711         * shell/rb-shell-player.c:
1712         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
1713         play order rather than the entry view.
1714         (rb_shell_player_set_property): Update the play order when the
1715         selected source changes and we aren't playing anything.
1716         (rb_shell_player_sync_play_order): Copy the playing entry across to
1717         the new play order so playback continues from the same song, and watch
1718         for updates to have_next/have_previous.
1719         (rb_shell_player_play_order_update_cb): Enable/disable the
1720         next/previous actions when next/previous entry availability changes.
1721         (rb_shell_player_jump_to_current): Just use the play order's idea of
1722         what's playing, not the entry view's; if not playing anything, clear
1723         the selection, so when a playlist ends and you hit play again, it'll
1724         start at the start rather than the end.
1725         (rb_shell_player_do_previous): restructure a bit.
1726         (rb_shell_player_do_next): restructure, jump to new playing entry in
1727         an idle handler instead of directly.
1728         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
1729         song if there is one.
1730         (rb_shell_player_playpause): Jump to playing song, don't update the
1731         play order if we got the song from the selection.
1732         (rb_shell_player_playing_entry_deleted_cb): Not needed.
1733         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
1734         looks after next/previous actions now.  Don't break if called while
1735         there is no selected source.
1736         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
1737         (rb_shell_player_set_playing_source_internal),
1738         (rb_shell_player_error): No need to track the attempted playing entry
1739         any more, since the play order does that.
1741         * shell/rb-shell.c:
1742         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
1743         rb_shell_player_get_playing_entry rather than going through the entry
1744         view.
1746         * shell/rb-statusbar.c (rb_statusbar_set_property),
1747         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
1748         than the entry view for status bar text changes.
1749         (rb_statusbar_sync_status): Ask the query model directly
1751         * sources/rb-source.{c}: Add query model property.
1752         (default_get_status): Get status text from query model, should be
1753         suitable for most sources.
1754         (rb_source_set_property): Listen for changes to the query model 
1755         to update the status text.
1756         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
1757         (idle_emit_status_changed): Emit status-changed signals when query
1758         model changes. 
1760         * sources/rb-library-source.c, sources/rb-podcast-source.c:
1761         (impl_get_status): Not needed, RBSource does this now
1762         (rb_library_source_do_query) (rb_podcast_source_do_query): 
1763         Update RBSource's query model reference.
1765         * sources/rb-playlist-source.c:
1766         Remove query-model property, since RBSource has one now
1767         (impl_get_status): Not needed, RBSource does this now
1768         (rb_playlist_source_row_deleted): Use query model iterator helper
1769         function.
1770         (rb_playlist_source_set_query_model): Update RBSource's query model
1771         reference too.
1773         * sources/rb-iradio-source.c:
1774         (impl_get_status): Ask the query model directly.
1775         (rb_iradio_source_do_query): Update RBSource's query model reference
1776         when we create a new query.
1778         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
1779         Use query model rather than entry view.
1781         * widgets/rb-entry-view.{c,h}: 
1782         Remove playing_entry_deleted signal (now in play order).
1783         (entry_from_tree_path), (entry_from_tree_iter): Not needed
1784          as RhythmDBQueryModel has equivalent helper functions.
1785         (rb_entry_view_*): Use query model helpers instead of the above two
1786         functions.
1788 2005-12-09  James Livingston  <jrl@ids.org.au>
1790         * configure.ac:
1791         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
1792         (rb_recorder_enabled):
1793         * shell/rb-removable-media-manager.c: (poll_tray_opened):
1794         * sources/rb-playlist-source-recorder.c:
1795         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
1796         whether libnautilusburn has the _drive_unref function, and if so use
1797         it. Stops it complaining about deprecated API.
1799 2005-12-09  James Livingston  <jrl@ids.org.au>
1801         * configure.ac: drop the minimum gstreamer version back down, it
1802         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
1804 2005-12-09  James Livingston  <jrl@ids.org.au>
1806         * widgets/rb-song-info.c: (rb_song_info_class_init),
1807         (rb_song_info_show), (rb_song_info_constructor),
1808         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
1809         (rb_song_info_forward_clicked_cb): save metadata changes when the
1810         Next/Previous buttons are pressed (closes bug 320952). use
1811         G_DEFINE_TYPE.
1813 2005-12-09  James Livingston  <jrl@ids.org.au>
1815         Patch by: <jonathan@kaolin.hn.org>
1817         * sources/rb-iradio-source.c:
1818         (stations_view_drag_data_received_cb):
1819         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
1820         of urls. Fixes bug 323610.
1822 2005-12-09  James Livingston  <jrl@ids.org.au>
1824          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
1825          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
1827         * configure.ac:
1828         * metadata/rb-metadata-gst.c:
1829         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
1830         (rb_player_construct), (rb_player_new):
1831         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
1832         (rb_recorder_gst_signal_error), (pipe_message),
1833         (rb_recorder_new_pad_cb), (rb_recorder_construct),
1834         (rb_recorder_new):
1835         * shell/main.c: (main):
1836         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
1837         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
1839 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
1841         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
1843         * shell/rb-playlist-manager.c:
1844           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
1845           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
1846           (rb_playlist_manager_set_automatic_playlist),
1847           (rb_playlist_manager_cmd_new_automatic_playlist),
1848           (rb_playlist_manager_cmd_edit_automatic_playlist):
1849            Use new playlist subclasses.
1850           (rb_playlist_manager_save_playlists): Only read the dirty flag
1851            for local playlists, minor pointless reformatting
1853         * sources/Makefile.am: add new files
1855         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
1856           split lots of stuff out into two
1857           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
1858           make RBPlaylistSource abstract, add virtual methods for showing a
1859           popup for the entry view and saving the playlist to XML.
1860           Other stuff is subclass-specific, or already virtual in RBSource.
1862         * sources/rb-playlist-xml: Define playlist XML tags and attributes
1863           in one place, since they're used across three source files now
1865         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
1866           Use new static playlist class
1868         * sources/rb-ipod-source.c: (add_rb_playlist):
1869           Use new static playlist class
1871         * sources/rb-static-playlist-source.{c,h},
1872         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
1873         files.
1875         * po/POTFILES.in: add new files
1877 2005-12-07  James Livingston  <jrl@ids.org.au>
1879         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
1880         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
1881         metadata loads not attempt to write changes to disk.
1883 2005-12-07  James Livingston  <jrl@ids.org.au>
1885         patch by: Alex Lancaster <alexl@users.sourceforge.net>
1887         * data/glade/song-info-multiple.glade:
1888         * widgets/rb-song-info.c: (rb_song_info_constructor),
1889         (rb_song_info_sync_entries_multiple): allow the year to be changed on
1890         multiple songs at once.
1892 2005-12-06  James Livingston  <jrl@ids.org.au>
1894         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
1895         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
1897 2005-12-06  James Livingston  <jrl@ids.org.au>
1899         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
1900         names rather than adding a horizontal scroll bar.
1902 2005-12-06  James Livingston  <jrl@ids.org.au>
1904         * rhythmdb/rhythmdb-query-model.c:
1905         (rhythmdb_query_model_update_limited_entries),
1906         (rhythmdb_query_model_drag_data_received): remove some pointless debug
1907         messages
1909         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
1910         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
1911         always hide rather than remove DB entries, which will make RB not lose
1912         information when tag editing happens or people move files to trash and
1913         then change their mind. Also fix some races where the monitoring code
1914         would notice the temporary files generated by saving metadata.
1916 2005-12-05  William Jon McCann  <mccann@jhu.edu>
1918         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
1919         Hide internals and add tooltips.
1920         (rb_song_display_box_size_allocate): Hide internals.
1921         (sanitize_string, info_url): Copied from rb-header.
1922         (rb_song_display_box_sync): New public function.
1924         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
1925         (rb_header_init): Use a separate row for the seek bar.
1926         (rb_header_finalize): Don't unref widgets.
1927         (rb_header_sync): Use rb_song_display_box_sync.
1928         (rb_header_set_urldata)
1929         (rb_header_set_show_artist_album): Hide instead of remove widgets.
1930         (rb_header_set_show_position_slider): Set visibility of seek bar.
1931         (rb_header_set_show_timeline): Set sensitivity of seek bar.
1932         (rb_header_get_elapsed_string): Don't shift when you first start playback.
1934         * shell/rb-statusbar.c (rb_statusbar_init)
1935         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
1937         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
1938         (rb_shell_constructor): Remove hseparator.  Monitor
1939         toolbar visibility settings.  Add toolbar.  Add
1940         volume button to toolbar.  Add tooltips for volume button.
1941         (rb_shell_view_toolbar_changed_cb) 
1942         (rb_shell_sync_toolbar_visibility)
1943         (toolbar_visibility_changed_cb): Set visibility of
1944         toolbar.
1945         (rb_shell_sync_smalldisplay): Set the toolbar style to
1946         icons only when in small display mode.
1947         (rb_shell_volume_widget_changed_cb): Save volume setting.
1949         * shell/rb-shell-player.c (rb_shell_player_constructor):
1950         Remove pause and stop actions.  Make play action "important"
1951         so that text is visible in horizontal toolbar position.
1952         Remove control buttons.
1953         (rb_shell_player_init) 
1954         (rb_shell_player_sync_song_position_slider_visibility):
1955         Set visbibility of seek bar.
1956         (rb_shell_player_cmd_play, rb_shell_player_playpause):
1957         Make play action a toggle.
1958         (rb_shell_player_sync_volume): Volume control moved
1959         to player.
1960         (gconf_song_position_slider_visibility_changed):
1961         Set visbibility of seek bar.
1962         (rb_shell_player_sync_buttons):
1963         Set sensitivity of actions instead of buttons.
1964         (rb_shell_player_playing_changed_cb): Add callback
1965         for player notify::playing changes.
1967         * lib/rb-preferences.h: Add hide toolbar and seek
1968         bar key names.
1970         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
1971         seek bar menu items.  Remove pause and stop actions
1972         from the control menu.  Add a toolbar.
1974         * data/rhythmbox.schemas: Add toolbar_hidden
1975         song_position_slider_hidden keys.
1977         Patch by: James Livingston  <jrl@ids.org.au>
1978                   William Jon McCann  <mccann@jhu.edu>
1979         Fixes #316238.
1981 2005-12-05  James Livingston  <jrl@ids.org.au>
1983         * data/glade/library-prefs.glade:
1984         * data/rhythmbox.schemas:
1985         * lib/rb-preferences.h:
1986         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
1987         (rhythmdb_sync_library_location):
1988         * sources/rb-library-source.c: (rb_library_source_class_init),
1989         (rb_library_source_finalize), (rb_library_source_constructor),
1990         (impl_get_config_widget), (rb_library_source_preferences_sync),
1991         (rb_library_source_watch_toggled_cb): allow people to disable library
1992         monitoring, because with nothing set the file chooser button selects
1993         the Home folder (and hence that will get monitored).
1995 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
1997         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
1998         attempt to fix problem with RSS parsing showing invalid feed types.
1999         Fixes bug 323153
2001 2005-12-04  James Livingston  <jrl@ids.org.au>
2003         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
2004         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
2005         importing a remote directory not block the UI.
2007 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
2009         * data/glade/podcast-feed-properties.glade:
2010         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
2012 2005-12-04  James Livingston  <jrl@ids.org.au>
2014         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
2016         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
2017         to && to fix a mistake in the earlier podcast patch.
2019 2005-12-03  James Livingston  <jrl@ids.org.au>
2021         * data/glade/podcast-new.glade:
2022         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2023         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
2025         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
2026         GValue, which stops occasional errors.
2028         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
2029         compile issue.
2031 2005-12-03  James Livingston  <jrl@ids.org.au>
2033         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
2035         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
2036         crasher with some podcasts feeds.
2038 2005-12-03  James Livingston  <jrl@ids.org.au>
2040         * data/rhythmbox.schemas: fix the gconf schema
2042 2005-12-03  James Livingston  <jrl@ids.org.au>
2044         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
2045         add a selection timeout to the sourcelist. This lets you hold a track
2046         over the playlist source, and then have the view switch so you can
2047         insert the track in the middle of the playlist. Closes bug 323044.
2049         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
2050         (select_on_drag_timeout), (remove_select_on_drag_timeout),
2051         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
2052         (rb_tree_dnd_add_drag_dest_support):
2053         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
2054         timeout.
2056         * sources/rb-sourcelist-model.c:
2057         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
2058         the source list.
2060 2005-12-02  Bastien Nocera  <hadess@hadess.net>
2062         * data/glade/audioscrobbler-prefs.glade: add a space before the web
2063         links, so that the text doesn't touch the button
2065 2005-12-02  James Livingston  <jrl@ids.org.au>
2067         Add full support for gnome-vfs remote files. Closes bug 140355.
2069         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
2070         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
2071         for authentication information from the user doesn't block the UI.
2073         (rhythmdb_entry_set_visibility): don't emit the signal twice.
2075         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2076         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
2077         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
2078         (rhythmdb_process_stat_event), (emit_load_error_idle),
2079         (rhythmdb_process_metadata_load),
2080         (rhythmdb_process_queued_entry_set_event),
2081         (rhythmdb_process_file_created_or_modified),
2082         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2083         (queue_stat_uri), (add_thread_main),
2084         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
2085         (rhythmdb_load), (rhythmdb_save_thread_main),
2086         (threadsafe_entry_set), (rhythmdb_query_internal),
2087         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
2088         (rhythmdb_do_full_query_internal),
2089         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
2090         (rhythmdb_volume_unmounted_cb),
2091         (rhythmdb_check_changed_file): trivial changes to support the
2092         asynchronous stats.
2094         * shell/main.c: (main): activate the authentication manager.
2096         * shell/rb-playlist-manager.c:
2097         (rb_playlist_manager_cmd_load_playlist),
2098         (rb_playlist_manager_cmd_save_playlist):
2099         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
2100         (rb_shell_cmd_add_file_to_library):
2101         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
2102         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
2103         remote files.
2105 2005-12-02  James Livingston  <jrl@ids.org.au>
2107         * shell/rb-playlist-manager.c: makes playlist menu items use the
2108         elipses correctly. Fixes bug 322283.
2110 2005-12-02  James Livingston  <jrl@ids.org.au>
2112         * shell/rb-playlist-manager.c:
2113         (rb_playlist_manager_load_playlists): fix silly mistake
2115 2005-12-02  James Livingston  <jrl@ids.org.au>
2117         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
2118         print out metadata-write unless --debug was passed.
2120         * rhythmdb/rhythmdb.c: (rhythmdb_load):
2121         * shell/rb-playlist-manager.c:
2122         (rb_playlist_manager_load_playlists): block writes to disk if they are
2123         still being loaded.
2125 2005-12-02  James Livingston  <jrl@ids.org.au>
2127         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
2128         ctrl-T, because Ctrl-D is used by "small mode"
2130 2005-12-02  James Livingston  <jrl@ids.org.au>
2132         * shell/rb-shell-preferences.c:
2133         (rb_shell_preferences_append_view_page):
2134         * sources/rb-library-source.c: (impl_get_config_widget):
2135         * sources/rb-podcast-source.c: (impl_get_config_widget):
2136         * sources/rb-source.c: (rb_source_get_config_widget):
2137         * sources/rb-source.h: Make the preference actually work.
2139         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
2140         if Rhythmbox is being run for the first time.
2142 2005-12-02  James Livingston  <jrl@ids.org.au>
2144         Add support for Rhythmbox to watch your library, and automatically add
2145         new tracks. Fixes bug 160159.
2147         * data/glade/library-prefs.glade: add "library location" preference
2148         * data/rhythmbox.schemas: add gconf key for the library location
2150         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
2151         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
2152         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
2153         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
2154         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
2155         (rhythmdb_load_thread_main), (rhythmdb_load),
2156         (monitor_subdirectory), (monitor_library_directory),
2157         (monitor_entry_file), (rhythmdb_sync_library_location),
2158         (library_location_changed_cb), (rhythmdb_check_changed_file),
2159         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
2160         specifiec in the gconf key for new additions. Also fix monitoring code
2161         so that it works properly, and notices deletions.
2163         * lib/rb-preferences.h:
2164         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
2165         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
2166         * shell/rb-audioscrobbler.h:
2167         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
2168         (rb_shell_preferences_append_view_page),
2169         (rb_shell_preferences_new):
2170         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
2171         it's preferences pane, so that we don't need #ifdef's through
2172         rb-shell-preferences.
2174         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2175         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
2176         "preferences" property, so that sources can acccess it. This is needed
2177         because the library location pref needs to take effect when the window
2178         is closed.
2180         * sources/rb-library-source.c:
2181         (rb_library_source_library_location_changed),
2182         (rb_library_source_dispose), (rb_library_source_finalize),
2183         (rb_library_source_constructor), (impl_get_config_widget),
2184         (rb_library_source_preferences_sync),
2185         (rb_library_source_process_library_location_change),
2186         (rb_library_source_prefs_update),
2187         (rb_library_source_process_library_handle_selection),
2188         (rb_library_source_library_location_cb): set up and control the
2189         "library location" preference.
2191         * sources/rb-audiocd-source.c:(rb_source_class_init):
2192         * sources/rb-source.c: (rb_source_class_init): remove some pointless
2193         code.
2195 2005-12-01  William Jon McCann  <mccann@jhu.edu>
2197         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
2198         (rb_feed_podcast_properties_dialog_update_title): 
2199         * data/glade/podcast-feed-properties.glade:
2200         Make the feed properties dialog consistent with the podcast
2201         properties dialog.
2203 2005-12-01  William Jon McCann  <mccann@jhu.edu>
2205         * metadata/.cvsignore: 
2206         * po/.cvsignore: 
2207         * podcast/.cvsignore: Updated.
2209         * shell/main.c (main): Support DBus 0.6 flags.
2211 2005-11-30  Bastien Nocera  <hadess@hadess.net>
2213         * data/ui/rhythmbox-ui.xml:
2214         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
2215         (rhythmbd_entry_move_to_trash_set_error),
2216         (rhythmdb_entry_move_to_trash):
2217         * rhythmdb/rhythmdb.h:
2218         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
2219         (rb_shell_clipboard_cmd_delete),
2220         (rb_shell_clipboard_cmd_move_to_trash):
2221         * sources/rb-library-source.c: (rb_library_source_class_init),
2222         (impl_delete), (impl_move_to_trash):
2223         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2224         (impl_delete), (impl_move_to_trash):
2225         * sources/rb-removable-media-source.c:
2226         (rb_removable_media_source_class_init):
2227         * sources/rb-source.c: (rb_source_class_init),
2228         (rb_source_can_move_to_trash), (rb_source_delete),
2229         (rb_source_move_to_trash):
2230         * sources/rb-source.h:
2231         Add move_to_trash member for the sources, implement move to trash for
2232         the library and playlists
2233         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
2234         local files to the trash, and deleting them from the database
2235         (Closes: #315389)
2237 2005-11-30  William Jon McCann  <mccann@jhu.edu>
2239         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
2240         (rb_tray_icon_init, rb_tray_icon_finalize): 
2241         * shell/rb-statusbar.c (rb_statusbar_class_init) 
2242         (rb_statusbar_init, rb_statusbar_finalize): 
2243         * shell/rb-source-header.c (rb_source_header_class_init) 
2244         (rb_source_header_init, rb_source_header_finalize): 
2245         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
2246         (rb_shell_finalize): 
2247         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
2248         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
2249         * shell/rb-shell-player.c (rb_shell_player_class_init) 
2250         (rb_shell_player_init, rb_shell_player_finalize): 
2251         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
2252         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
2253         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
2254         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
2255         * shell/rb-play-order.c (rb_play_order_class_init) 
2256         (rb_play_order_init, rb_play_order_finalize): 
2257         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
2258         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
2259         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
2260         (rb_random_play_order_init, rb_random_play_order_finalize): 
2261         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
2262         (rb_history_finalize): 
2263         * shell/rb-commander.c (rb_commander_class_init) 
2264         (rb_commander_init, rb_commander_finalize): 
2265         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
2266         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
2267         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
2268         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
2269         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
2270         (rb_podcast_properties_dialog_init) 
2271         (rb_podcast_properties_dialog_finalize): 
2272         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
2273         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
2274         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
2275         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
2276         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
2277         (rb_feed_podcast_properties_dialog_init) 
2278         (rb_feed_podcast_properties_dialog_finalize): 
2279         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
2280         (rb_metadata_init, rb_metadata_finalize): 
2281         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
2282         (rb_station_properties_dialog_init) 
2283         (rb_station_properties_dialog_finalize): 
2284         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
2285         (rb_daap_share_init, rb_daap_share_dispose): 
2287         Use g_type_class_add_private in all classes. Closes bug 313688.
2288         
2289 2005-11-30  James Livingston  <jrl@ids.org.au>
2291         patch by: William Jon McCann <mccann@jhu.edu> to use
2292         g_type_class_add_private in all classes. Closes bug 313688.
2294         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
2295         (rb_thread_finalize):
2296         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
2297         (rb_player_finalize):
2298         * rhythmdb/rhythmdb-property-model.c:
2299         (rhythmdb_property_model_class_init),
2300         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
2301         * rhythmdb/rhythmdb-query-model.c:
2302         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
2303         (rhythmdb_query_model_finalize):
2304         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
2305         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
2306         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
2307         (rhythmdb_finalize):
2308         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2309         (rb_daap_source_init), (rb_daap_source_dispose):
2310         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2311         (rb_iradio_source_init), (rb_iradio_source_finalize):
2312         * sources/rb-library-source.c: (rb_library_source_class_init),
2313         (rb_library_source_init), (rb_library_source_finalize):
2314         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2315         (rb_playlist_source_init), (rb_playlist_source_dispose):
2316         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2317         (rb_podcast_source_init), (rb_podcast_source_finalize):
2318         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
2319         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
2320         * sources/rb-sourcelist-model.h:
2321         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
2322         (rb_sourcelist_init), (rb_sourcelist_finalize):
2323         * sources/rb-sourcelist.h:
2324         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
2325         * widgets/rb-cell-renderer-rating.c:
2326         (rb_cell_renderer_rating_init),
2327         (rb_cell_renderer_rating_class_init),
2328         (rb_cell_renderer_rating_finalize):
2329         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
2330         (rb_druid_finalize):
2331         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2332         (rb_entry_view_init), (rb_entry_view_finalize):
2333         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
2334         (rb_header_finalize):
2335         * widgets/rb-load-failure-dialog.c:
2336         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
2337         (rb_load_failure_dialog_finalize):
2338         * widgets/rb-property-view.c: (rb_property_view_class_init),
2339         (rb_property_view_init), (rb_property_view_finalize):
2340         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
2341         (rb_rating_finalize):
2342         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
2343         (rb_search_entry_init), (rb_search_entry_finalize):
2344         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
2345         (rb_simple_view_init), (rb_simple_view_finalize):
2346         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
2347         (rb_song_display_box_init), (rb_song_display_box_finalize):
2348         * widgets/rb-song-info.c: (rb_song_info_class_init),
2349         (rb_song_info_init), (rb_song_info_finalize):
2350         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
2351         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
2353 2005-11-30  James Livingston  <jrl@ids.org.au>
2355         * iradio/rb-station-properties-dialog.c:
2356         (rb_station_properties_dialog_init),
2357         (rb_station_properties_dialog_new):
2358         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
2359         * lib/rb-glade-helpers.h:
2360         * podcast/rb-feed-podcast-properties-dialog.c:
2361         (rb_feed_podcast_properties_dialog_init),
2362         (rb_feed_podcast_properties_dialog_new):
2363         * podcast/rb-podcast-properties-dialog.c:
2364         (rb_podcast_properties_dialog_init),
2365         (rb_podcast_properties_dialog_new):
2366         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
2367         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
2368         * sources/rb-library-source.c: (impl_get_config_widget):
2369         * sources/rb-playlist-source-recorder.c:
2370         (rb_playlist_source_recorder_init):
2371         * widgets/rb-song-info.c: (rb_song_info_construct_single),
2372         (rb_song_info_constructor): create a single rb_glade_boldify_label()
2373         in rb-glade-helpers, rather than having eight implementation
2374         throughout the code.
2376 2005-11-30  James Livingston  <jrl@ids.org.au>
2378         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
2379         * lib/rb-util.h:
2380         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
2381         move the duration->string function into rb-utils, as it gets used in a
2382         few places.
2384         patch by: William Jon McCann <mccann@jhu.edu>
2386         * data/glade/podcast-properties.glade:
2387         * podcast/rb-podcast-properties-dialog.c:
2388         (rb_podcast_properties_dialog_init),
2389         (rb_podcast_properties_dialog_update),
2390         (rb_podcast_properties_dialog_update_title),
2391         (rb_podcast_properties_dialog_update_feed),
2392         (rb_podcast_properties_dialog_update_duration),
2393         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
2394         info dialog look more like the song info dialog. Use the same "Feed"
2395         value that is displayed in the treeview (ie. the album field), displays
2396         the duration, uses units in the bitrate field, and sort the fields in
2397         the same order.
2399 2005-11-29  James Livingston  <jrl@ids.org.au>
2401         * rhythmdb/rhythmdb-marshal.list:
2402         * rhythmdb/rhythmdb.h:
2403         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2404         (emit_load_error_idle), (rhythmdb_process_metadata_load),
2405         (entry_to_rb_metadata), (emit_save_error_idle),
2406         (action_thread_main): emit error signal when metadata write fails.
2408         * shell/rb-shell.c: (rb_shell_constructor),
2409         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
2410         "metadata save" error and display it to the user.
2412 2005-11-29  James Livingston  <jrl@ids.org.au>
2414         * data/ui/rhythmbox-ui.xml:
2415         * sources/rb-podcast-source.c:
2416         (rb_podcast_source_songs_show_popup_cb),
2417         (rb_podcast_source_cmd_download_post),
2418         (rb_podcast_source_cmd_cancel_download): split download and cancel
2419         download commands. Replace usage of "Post" with "Esisode". Fixes bug
2420         321653.
2422 2005-11-18  William Jon McCann  <mccann@jhu.edu>
2424         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
2425         title on alert dialogs per the HIG.
2427         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
2428         the term Burn.
2429         (free_song_list): Routine to free song list.
2430         (rb_playlist_source_recorder_finalize): Use free_song_list.
2431         (rb_playlist_source_recorder_add_from_model): Return FALSE
2432         if unable to add all songs.  Check that duration of all
2433         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
2434         Fixes #321753.
2436         * sources/rb-playlist-source-recorder.c (check_media_length)
2437         (rb_playlist_source_recorder_start): Only check the duration
2438         and current media if the playlist length is longer than a
2439         standard CD (74 min).  Otherwise, just let the Recorder do the
2440         check.
2441         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
2442         drive at init.
2443         (rb_recorder_set_device): Don't leak drives.
2444         (rb_recorder_get_media_length): Use drive that was already set.
2445         (rb_recorder_burn): Let the recorder handle checking media type/size.
2446         Fixes bug 321754.
2448 2005-11-29  James Livingston  <jrl@ids.org.au>
2450         * rhythmdb/rhythmdb-query-model.c:
2451         (rhythmdb_query_model_set_sort_order):
2452         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
2453         emitting the tree-model "resorted" signal.
2455         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2456         (rb_entry_view_finalize), (rb_entry_view_set_property),
2457         (rb_entry_view_constructor), (rb_entry_view_resort_model):
2458         * widgets/rb-entry-view.h: add a function to resort the entry view,
2459         using the above function.
2461         * sources/rb-iradio-source.c:
2462         (rb_iradio_source_songs_view_sort_order_changed_cb):
2463         * sources/rb-library-source.c: (rb_library_source_finalize),
2464         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
2465         * sources/rb-playlist-source.c:
2466         (rb_playlist_source_songs_sort_order_changed_cb):
2467         * sources/rb-podcast-source.c:
2468         (rb_podcast_source_posts_view_sort_order_changed_cb),
2469         (rb_podcast_source_do_query): use the above function instead of
2470         re-creating the query model. This makes changing the sorting an order
2471         of magnitude faster, as it uses a single resorted signal rather than
2472         deleting and re-adding everything (which emits 2N signals). Closes bug
2473         315389.
2475 2005-11-29  James Livingston  <jrl@ids.org.au>
2477         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
2478         autosizing, which results in large speedups. Closes bug 312122.
2480         * po/ja.po: change the date format, so that it is a constant width
2482         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2483         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
2484         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
2485         (rb_entry_view_constructor): make columns use fixed widths,
2486         disable column autosizing, and enable fixed-height mode.
2488         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
2489         (rb_entry_view_get_time_date_column_sample):
2490         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
2491         and get the canonical date format for the locale.
2493 ============ Version 0.9.2
2495 2005-11-28  James Livingston  <jrl@ids.org.au>
2497         * configure.ac: bump version to 0.9.2
2498         * NEWS: update with changes for 0.9.2
2500 2005-11-28  James Livingston  <jrl@ids.org.au>
2502         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
2504         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
2505         Disable saving, renaming and delting for DAAP playlists.
2506         Fixes bug 322627.
2508 2005-11-28  James Livingston  <jrl@ids.org.au>
2510         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
2511         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
2512         prevent bug 322619.
2514         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
2515         * sources/rb-removable-media-source.c:
2516         (rb_removable_media_source_class_init): fix ipod browser visibility
2517         problem.
2519 2005-11-28  James Livingston  <jrl@ids.org.au>
2521         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
2522         Avahi 0.6 support actually work. Fixes bug 322519.
2524 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
2526         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
2527         avahi is specified in --with-mdns
2529 2005-11-27  James Livingston  <jrl@ids.org.au>
2531         patch by: Bastien Nocera <hadess@hadess.net>
2533         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
2534         not the private one. Fixes bug 322485.
2536 2005-11-26  James Livingston  <jrl@ids.org.au>
2538         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
2539         Avahi 0.6, as well as 0.5.
2541         * configure.ac:
2542         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
2543         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
2544         (add_service):
2546 2005-11-25  James Livingston  <jrl@ids.org.au>
2548         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
2549         321926.
2551 2005-11-25  James Livingston  <jrl@ids.org.au>
2553         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
2554         correct type for checking the date against 0. Stops a warning when
2555         saving metadata.
2557 2005-11-25  James Livingston  <jrl@ids.org.au>
2559         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
2560         adjustment to be inside the element's limits. Without this songs that
2561         have large ReplayGain values will recieve no increase because they are
2562         outside the acceptable range, causing them to remain quiet.
2564 2005-11-25  James Livingston  <jrl@ids.org.au>
2566         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
2567         * sources/rb-daap-source.c: (rb_daap_source_class_init):
2568         * sources/rb-ipod-source.c:
2569         * sources/rb-source.h:
2570         * sources/rb-library-source.h:
2571         * sources/rb-library-source.c: (rb_library_source_class_init),
2572         (rb_library_source_constructor),
2573         (rb_library_source_has_first_added_column),
2574         (rb_library_source_has_drop_support):
2575         * sources/rb-removable-media-source.c:
2576         (rb_removable_media_source_class_init): Make library-derived sources
2577         not show the Date Added column, as it doesn't make sense. Fixes bug
2578         322269.
2579         Move some of the feature funcs from the ipod and audio cd sources up to
2580         the removable media source.
2582 2005-11-24  James Livingston  <jrl@ids.org.au>
2584         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
2585         errors. oops.
2587 2005-11-24  James Livingston  <jrl@ids.org.au>
2589         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2590         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
2591         (rb_iradio_source_constructor): Chain up dispose method and use
2592         G_DEFINE_TYPE
2594 2005-11-24  James Livingston  <jrl@ids.org.au>
2596         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
2597         mistake in the last commit that can cause crashes.
2599 2005-11-24  James Livingston  <jrl@ids.org.au>
2601         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
2602         instead of g_printerr.
2604         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
2605         rb_debug instead of g_warning. The message happens every time for
2606         removable media/daap shares, so it's not unusual.
2608 2005-11-24  James Livingston  <jrl@ids.org.au>
2610         patch by: Tom Parker <palfrey@tevp.net>
2612         * configure.ac: fix libsoup test for enabling daap
2614 2005-11-23  James Livingston  <jrl@ids.org.au>
2616         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
2617         (rb_query_creator_init), (rb_query_creator_constructor),
2618         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
2619         empty row to queries with no criteria. Fixes bug 322078. use
2620         G_DEFINE_TYPE.
2622 2005-11-23  James Livingston  <jrl@ids.org.au>
2624         patch by:  <baptiste.millemathias@gmail.com>
2626         * help/C/quick-reference.xml: update the quick reference to have the
2627         correct key bindings.
2629 2005-11-22  James Livingston  <jrl@ids.org.au>
2631         * sources/rb-library-source.c: (genres_selection_reset_cb),
2632         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
2633         reset the query when all browser selections are removed.
2635 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
2637         * podcast/rb-podcast-manager.c:
2638         (rb_podcast_manager_db_entry_deleted_cb):
2639         Use a custom loop to remove podcast posts, rather than
2640         gtk_tree_model_foreach(), as deleting the entries within
2641         that loop causes the iterator to return the first entry
2642         twice.  Instead, we need to find the next entry before
2643         removing the current one. Fixes bug 321956.
2644         (rb_podcast_manager_entry_remove_cb): No longer needed.
2646 2005-11-22  James Livingston  <jrl@ids.org.au>
2648         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2649         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
2650         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
2652 2005-11-22  James Livingston  <jrl@ids.org.au>
2654         * sources/rb-podcast-source.c:
2655         (rb_podcast_source_post_date_cell_sort_func),
2656         (rb_podcast_source_post_status_cell_sort_func),
2657         (rb_podcast_source_post_feed_cell_sort_func):
2658         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
2659         (rb_entry_view_album_sort_func),
2660         (rb_entry_view_double_ceiling_sort_func),
2661         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
2662         the entry's location as a last resort when sorting, so the sort order
2663         is stable. This will stop entries moving around when two entries have
2664         the same sorting, and one of them gets played.
2666 2005-11-22  James Livingston  <jrl@ids.org.au>
2668         * daapsharing/rb-daap-connection.c:
2669         (rb_daap_connection_class_init), (rb_daap_connection_init),
2670         (connection_get_password), (build_message),
2671         (http_response_handler), (http_get), (handle_server_info),
2672         (handle_login), (handle_update), (handle_database_info),
2673         (handle_song_listing), (handle_playlists),
2674         (handle_playlist_entries), (rb_daap_connection_new),
2675         (rb_daap_connection_constructor), (rb_daap_connection_logout),
2676         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
2677         (rb_daap_connection_get_headers),
2678         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
2679         (rb_daap_connection_set_property),
2680         (rb_daap_connection_get_property):
2681         * daapsharing/rb-daap-connection.h:
2682         * sources/rb-daap-source.c: (rb_daap_source_dispose),
2683         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
2684         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
2685         of destroying the object when it is going to be used by a callback and
2686         fixes a double-free. Fixes bugs 321930 and 322007.
2688 2005-11-22  James Livingston  <jrl@ids.org.au>
2690         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
2691         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
2692         notification if there aren't any. Fixes bug 321968.
2694 2005-11-22  James Livingston  <jrl@ids.org.au>
2696         * rhythmdb/rhythmdb-property-model.c:
2697         (rhythmdb_property_model_set_property),
2698         (rhythmdb_property_model_finalize),
2699         (rhythmdb_property_model_compare),
2700         (rhythmdb_property_model_insert),
2701         (rhythmdb_property_model_delete_prop): Fix property model sorting
2702         where the display and sort keys are different. Fixes bug 321980.
2704 2005-11-22  James Livingston  <jrl@ids.org.au>
2706         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
2707         when import as a file or passed on the command line, and load them as
2708         playlists.
2710 2005-11-22  James Livingston  <jrl@ids.org.au>
2712         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
2714         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
2715         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
2716         a broken daap server. Fixes bug 321919.
2718 2005-11-22  James Livingston  <jrl@ids.org.au>
2720         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
2721         drag-and-drop for both the episodes and feeds list.
2722         
2723         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
2724         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
2725         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
2727         * widgets/rb-property-view.c: (rb_property_view_class_init),
2728         (rb_property_view_set_property), (rb_property_view_get_property),
2729         (rb_property_view_new), (rb_property_view_constructor):
2730         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
2731         (rb_simple_view_new), (rb_simple_view_constructor):
2732         * widgets/rb-simple-view.h: add a "draggable" property to property
2733         views and set it to false for the feed list. Fixes bug 321284.
2735 2005-11-22  James Livingston  <jrl@ids.org.au>
2737         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
2739         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
2740         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
2741         * sources/rb-ipod-source.c: (add_rb_playlist):
2742         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2743         (rb_playlist_source_set_property),
2744         (rb_playlist_source_get_property), (rb_playlist_source_new),
2745         (impl_receive_drag), (rb_playlist_source_add_location),
2746         (rb_playlist_source_new_from_xml):
2747         * sources/rb-playlist-source.h: give playlists and (optional)
2748         entry-type, and reject entries that don't match. Fixes bug 322006.
2750 2005-11-21  James Livingston  <jrl@ids.org.au>
2752         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
2753         (rb_source_header_finalize): remove the weak references when the
2754         source header is finalised. Stops the callbacks being called after the
2755         object is destroyed.
2757 2005-11-21  James Livingston  <jrl@ids.org.au>
2759         * shell/main.c: (main): don't try to acquite bonobo/dbus when
2760         --no-registration was passed. It causes warnings that make it
2761         impossible to run with --no-registration --g-fatal-warnings
2763 2005-11-21  James Livingston  <jrl@ids.org.au>
2765         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
2766         of strings when they are still in use. Fixes bug 321547.
2768         (rb_daap_connection_destroy): fix memory leak
2770 2005-11-21  James Livingston  <jrl@ids.org.au>
2772         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
2773         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
2774         (rb_daap_mdns_resolve_cancel), (publish_cb),
2775         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
2776         support.
2778 2005-11-21  James Livingston  <jrl@ids.org.au>
2780         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
2781         sorting by genre
2783 2005-11-20  James Livingston  <jrl@ids.org.au>
2785         * podcast/rb-podcast-manager.c:
2786         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
2787         that we don't leak thread structures. Fixes bug 321636, and probably
2788         321775.
2790 2005-11-20  James Livingston  <jrl@ids.org.au>
2792         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
2793         (lookup_cd):
2794         * podcast/rb-podcast-manager.c: (start_job),
2795         (rb_podcast_manager_db_entry_deleted_cb),
2796         (rb_podcast_manager_entry_remove_cb):
2797         * podcast/rb-podcast-parse.c: (rb_insert_item),
2798         (rb_podcast_parse_load_feed):
2799         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
2800         * shell/rb-removable-media-manager.c:
2801         (rb_removable_media_manager_append_media_source):
2802         * shell/rb-shell.c: (add_to_library_response_cb):
2803         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
2804         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
2805         * sources/rb-iradio-source.c:
2806         (stations_view_drag_data_received_cb):
2807         * sources/rb-library-source.c: (string_list_equal),
2808         (impl_get_extra_views), (impl_receive_drag):
2809         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
2810         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
2811         (impl_receive_drag):
2812         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
2813         (rb_entry_view_append_column_custom), (harvest_entries):
2814         * widgets/rb-property-view.c:
2815         (rb_property_view_selection_changed_cb):
2816         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
2817         switch from using g_list_append to g_list_prepend. This changes
2818         operations from O(n^2) to O(n), which in cases like deleting a lot of
2819         tracks can give huge improvements in speed. Closes bug 321696.
2821 2005-11-20  James Livingston  <jrl@ids.org.au>
2823         * sources/rb-sourcelist.c: (rb_sourcelist_init),
2824         (rb_sourcelist_update_expander_visibility): fix indenting of child
2825         sources.
2827 2005-11-20  James Livingston  <jrl@ids.org.au>
2829         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
2830         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
2831         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
2832         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
2833         (add_service), (entry_group_cb): dynamically allocate memory, rather
2834         than using static variables.
2836         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
2837         re-enable the daap share if the name hasn't changed.
2838         * shell/rb-shell-preferences.c:
2839         (share_name_entry_focus_out_event_cb): don't ask the daap share to
2840         change it's name when the checkbox is disabled. Fixed bug 321748.
2842 2005-11-18  James Livingston  <jrl@ids.org.au>
2844         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
2845         as hidden if it is on the current workspace.
2847 2005-11-17  William Jon McCann  <mccann@jhu.edu>
2849         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
2850         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
2851         (rb_podcast_properties_dialog_parse_time): 
2852         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
2853         (rb_feed_podcast_properties_dialog_parse_time):
2854         Rework the way the last mod time strings are created.  It was using
2855         thread unsafe functions, not creating value UTF, and not not checking
2856         the value of the result before modifying it.  This new method fixes
2857         these problems.
2859 2005-11-18  James Livingston  <jrl@ids.org.au>
2861         Don't reset the search box when viewing a different source, because it
2862         will change what is being played. Closes 321593.
2864         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
2865         the search box
2867         * shell/rb-source-header.c: (rb_source_header_class_init),
2868         (rb_source_header_init), (rb_source_header_finalize): use
2869         G_DEFINE_TYPE.
2871         (rb_source_header_set_property),
2872         (rb_source_header_source_weak_destroy_cb),
2873         (rb_source_header_search_cb): store the search text when leaving a
2874         source and put it in the search box when viewing it again.
2876 2005-11-18  James Livingston  <jrl@ids.org.au>
2878         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
2879         (save_entry):
2880         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
2881         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
2882         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
2883         time stamp.
2885         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
2886         last-seen as the timestamp of the last update of the feed. Don't
2887         re-add episodes that have been deleted. Closes 319759.
2889 2005-11-18  James Livingston  <jrl@ids.org.au>
2891         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
2892         that don't have the day name at the start. Closes 321645.
2894 2005-11-18  James Livingston  <jrl@ids.org.au>
2896         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
2897         (rb_podcast_manager_copy_post),
2898         (rb_podcast_manager_get_podcast_dir):
2899         * podcast/rb-podcast-manager.h:
2900         * sources/rb-podcast-source.c: (impl_get_config_widget),
2901         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
2902         download location switching to / if the prefs were opened before
2903         downloading an episode. Closes 321611.
2905 2005-11-18  James Livingston  <jrl@ids.org.au>
2907         * data/glade/podcast-new.glade:
2908         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2909         (rb_new_podcast_dialog_set_property),
2910         (rb_new_podcast_dialog_get_property),
2911         (rb_new_podcast_dialog_response_cb),
2912         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
2913         for entering new podcast urls in. Closes bug 321610.
2915 2005-11-18  James Livingston  <jrl@ids.org.au>
2917         * sources/rb-podcast-source.c: (construct_query_from_selection),
2918         (rb_podcast_source_do_query): allow podcast list to be re-sorted
2919         without restarting RB. Closes bug 321612.
2921 2005-11-18  James Livingston  <jrl@ids.org.au>
2923         * widgets/rb-entry-view.c: (set_column_visibility),
2924         (rb_entry_view_sync_columns_visible): when changing visibility of one
2925         column, don't hide and re-show all the others. Makes a show/hide
2926         column operation a lot faster.
2928 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
2930         Closes bug 321702.
2932         * iradio/rb-station-properties-dialog.c
2933          (rb_station_properties_dialog_update_bitrate):
2934         Mark the bitrate value as being kbps, using the same
2935         translatable format string as rb-song-info.c
2937         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
2938          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
2940         * shell/rb-shell-player.c (info_available_cb):
2941          Use RB_METADATA_FIELD_BITRATE to update the iradio
2942          station's bitrate value.
2944 2005-11-17  James Livingston  <jrl@ids.org.au>
2946         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
2948         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
2949         free a NULL date.
2951 2005-11-17  James Livingston  <jrl@ids.org.au>
2953         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
2955         * lib/rb-stock-icons.c: emit a single warning rather than multiple
2956         assertions. Lookup the icon size correctly.
2958 2005-11-16  William Jon McCann  <mccann@jhu.edu>
2960         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
2961         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
2962         Fix build errors.
2964 2005-11-16  James Livingston  <jrl@ids.org.au>
2966         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
2967         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
2968         (rb_shell_preferences_sync_column_button): block the toggle signal of
2969         the column checkboxes while setting their initial state. This stops
2970         the visibility being re-set, which causes a lot of time being spent
2971         measuring the columns aagin when opening the prefs window.
2973         Use G_DEFINE_TYPE.
2975 2005-11-16  James Livingston  <jrl@ids.org.au>
2977         * sources/rb-sourcelist.c: (rb_sourcelist_init),
2978         (rb_sourcelist_edit_source_name): don't assume that the editable
2979         source name is in the first column, because it isn't. Fixes bug
2980         320137.
2982 2005-11-16  James Livingston  <jrl@ids.org.au>
2984         * daapsharing/rb-daap-mdns.h:
2985         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
2986         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
2987         parts can know why operations failed. Avahi can report that the daemon
2988         was not running. Howl doesn't do this (yet).
2989         
2990         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
2991         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
2992         (browse_cb): don't display mdns errors to the user, if it wa because
2993         the daemon was not running.
2995 2005-11-16  James Livingston  <jrl@ids.org.au>
2997         * rhythmdb/rhythmdb-property-model.c:
2998         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
2999         (rhythmdb_property_model_compare),
3000         (rhythmdb_property_model_insert),
3001         (rhythmdb_property_model_insert_prop),
3002         (rhythmdb_property_model_delete),
3003         (rhythmdb_property_model_delete_prop),
3004         (rhythmdb_property_model_get_value): use RBRefStrings rather than
3005         copying the string and re-creating the sort key. Saves a little bit of
3006         memory and time.
3008         (rhythmdb_property_model_perform_sync),
3009         (rhythmdb_property_model_sync): perform the count sync in an idle
3010         callback, so that it doesn't have to be re-run once per value when
3011         loading.
3013 2005-11-16  James Livingston  <jrl@ids.org.au>
3015         * rhythmdb/rhythmdb-query-model.c:
3016         (rhythmdb_query_model_entry_deleted_cb),
3017         (rhythmdb_query_model_remove_entry): remove deleted entries from the
3018         limited list. Stops problems if they are deleted, and then things on
3019         the main list are
3021 2005-11-16  James Livingston  <jrl@ids.org.au>
3023         * NEWS: update NEWS
3025         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
3026         button's minimise-to-tray action
3028 2005-11-16  James Livingston  <jrl@ids.org.au>
3030         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
3031         leak. Disable adding newly created files for now, because it doesn't
3032         work properly.
3034         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3035         (rb_sourcelist_model_finalize):
3036         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
3037         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
3039 2005-11-16  James Livingston  <jrl@ids.org.au>
3041         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
3042         problem where a GError* wasn't being set to NULL. Actually check the
3043         result.
3045 2005-11-16  James Livingston  <jrl@ids.org.au>
3047         * doc/reference/tmpl/rb-entry-view.sgml:
3048         * doc/reference/tmpl/rhythmbox-unused.sgml:
3049         * doc/reference/tmpl/rhythmdb-query-model.sgml:
3050         * doc/reference/tmpl/rhythmdb.sgml:
3051         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
3052         docs, including the patch that was on bug 
3054         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
3055         API, because it should only be used by RhythmDB itself.
3057 2005-11-16  James Livingston  <jrl@ids.org.au>
3059         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
3060         pausing by middle clicking on the tray icon.
3062 2005-11-15  James Livingston  <jrl@ids.org.au>
3064         * configure.ac: enable audioscrobbler support by default, if libsoup
3065         is present.
3067 2005-11-15  James Livingston  <jrl@ids.org.au>
3069         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3070         Closes bug 321157.
3072         * configure.ac:
3073         * daapsharing/rb-daap-connection.c: (build_message),
3074         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
3075         support gzip encoded daap connections.
3077         (handle_song_listing): fix leak
3079 2005-11-15  James Livingston  <jrl@ids.org.au>
3081         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3082         * sources/rb-podcast-source.c:
3083         (rb_podcast_source_post_date_cell_data_func): make the date format
3084         translatable again, so that translators can choose the best format for
3085         their locale (%x is huge in some locales)
3087 2005-11-15  James Livingston  <jrl@ids.org.au>
3089         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
3090         (end_job): mark podcast episodes as failed, if the metadata load
3091         fails. This will prevent people playing non-audio enclosures, helping
3092         stop bug 320366.
3094 2005-11-14  James Livingston  <jrl@ids.org.au>
3096         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
3097         video sink to fakesink. This will stop problems (potentially crashers)
3098         that will occur if the file contains a video stream.
3100         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
3101         rather than using magic numbers everywhere.
3103         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
3104         * sources/rb-podcast-source.c:
3105         (rb_podcast_source_songs_show_popup_cb),
3106         (rb_podcast_source_cmd_download_post),
3107         (rb_podcast_source_post_status_cell_data_func),
3108         (rb_podcast_source_entry_activated_cb): use the above constants.
3110         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
3111         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
3112         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
3113         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
3114         (cancel_job), (download_progress_cb),
3115         (rb_podcast_manager_cancel_download),
3116         (rb_podcast_manager_insert_feed): use the constants, and fix a
3117         trhead-safety issue.
3119 2005-11-14  Bastien Nocera  <hadess@hadess.net>
3121         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
3122         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
3123         entry-changed events after stats on startup, fixes entry deleted from
3124         filtered views not disappearing
3126 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
3128         Fix rhythmdb query model refcount and polling problems. Closes bug
3129         321410.
3131         * rhythmdb/rhythmdb-property-model.c:
3132         (rhythmdb_property_model_finalize):
3133          Unref the query model if we have one.
3135         * rhythmdb/rhythmdb-query-model.h:
3136          Remove poll and cancel methods.  Query cancellation
3137          never did anything anyway.
3139         * rhythmdb/rhythmdb-query-model.c:
3140         (rhythmdb_query_model_init): Remove GAsyncQueues.
3141          Replace the GAsyncQueue-based update processing
3142          with a simpler g_idle_add approach; still has the
3143          same queueing properties, but now we don't poll the
3144          model forever and updates are processed immediately.
3146         (_unref_entry), (rhythmdb_query_model_finalize):
3147          Unref DB entries when finalized
3149         (rhythmdb_query_model_has_pending_changes):
3150          Use our own counter to decide if there are updates pending
3152         (rhythmdb_query_model_process_update), (idle_process_update):
3153          Process updates using g_idle_add, or directly if possible
3155         (rhythmdb_query_model_signal_complete),
3156         (rhythmdb_query_model_add_entries):
3157          Change to new update processing method
3159         (idle_poll_model), (rhythmdb_query_model_poll):
3160          Remove GAsyncQueue-based update processing.
3162         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
3163          No need to poll the model any more - updates are processed
3164          directly for synchronous queries.
3166         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
3167          Property model needs to be unref'd here
3169         * sources/rb-library-source.c: (rb_library_source_do_query):
3170          Don't try to cancel the active query (it never worked anyway),
3171          remove obsolete poll call, unref property models as required,
3172          and don't unref the cached 'all' query, since hold on to it.
3173          We unref it when the sort order changes, which forces the query
3174          to be rerun.
3176         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
3177          Unref the property model as required
3179         (rb_podcast_source_do_query):
3180          Treat any query with no selected feeds and no search text as
3181          an 'all' query.  Unref query models except for the cached
3182          'all' query, since we hold on to that.
3184         (rb_podcast_source_cmd_update_all):
3185          Unref the property model as required.
3187         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
3188          Don't try to cancel the query (it never worked anyway)
3190         (rb_entry_view_poll_model):
3191          No need for this any more.
3193         * widgets/rb-entry-view.h:
3194          Remove obsolete function rb_entry_view_poll_model
3196         * widgets/rb-property-view.c: (rb_property_view_set_property):
3197          Ref and unref the property model as required.
3199 2005-11-14  James Livingston  <jrl@ids.org.au>
3201         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3203         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
3204         for error. Closes bug 321416.
3206 2005-11-14  James Livingston  <jrl@ids.org.au>
3208         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3210         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
3211         a crasher if a feed's last-post value isn't set. Closes bug 321353.
3213 2005-11-14  James Livingston  <jrl@ids.org.au>
3215         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
3216         * shell/rb-removable-media-manager.c:
3217         (rb_removable_media_manager_set_uimanager):
3218         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
3219         translation domain for GTK action groups.
3221 2005-11-12  James Livingston  <jrl@ids.org.au>
3223         * po/POTFILES.in: remove the old station-new files
3225 2005-11-12  James Livingston  <jrl@ids.org.au>
3227         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3228         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
3229         (save_entry): cause Rhythmbox to re-read the metadata from a file,
3230         when upgrading from a pre-Date-supporting version to a version that
3231         supports Date metadata. Closes bug 320760.
3233 2005-11-12  James Livingston  <jrl@ids.org.au>
3235         Add "update all podcast feeds" command. Closes bug 319954.
3237         * data/ui/rhythmbox-ui.xml: add to source context menu.
3239         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
3240         (register_action_group), (rb_podcast_source_cmd_download_post),
3241         (rb_podcast_source_cmd_delete_feed),
3242         (rb_podcast_source_cmd_properties_feed),
3243         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
3244         rather than the shell.
3246         (rb_podcast_source_update_feed_func),
3247         (rb_podcast_source_cmd_update_all): update every feed.
3249 2005-11-11  James Livingston  <jrl@ids.org.au>
3251         * shell/rb-shell-player.c: (rb_shell_player_class_init),
3252         (rb_shell_player_constructor), (rb_shell_player_finalize):
3253         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
3254         others follow the HIG recommentations.
3256 2005-11-11  James Livingston  <jrl@ids.org.au>
3258         * podcast/rb-podcast-manager.c:
3259         (rb_podcast_manager_subscribe_feed): check that the url is valid,
3260         before trying to use it.
3262 2005-11-11  James Livingston  <jrl@ids.org.au>
3264         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
3265         (rb_entry_view_append_column): When sorting by year, sort by album
3266         within a particular year.
3268 2005-11-11  James Livingston  <jrl@ids.org.au>
3270         * NEWS: updates
3272 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
3273         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
3274         spelling of "Language."
3276 2005-11-11  James Livingston  <jrl@ids.org.au>
3278         * rhythmdb/rhythmdb-property-model.c:
3279         (rhythmdb_property_model_row_inserted_cb),
3280         (rhythmdb_property_model_prop_changed_cb),
3281         (rhythmdb_property_model_entry_removed_cb),
3282         (rhythmdb_property_model_insert_prop),
3283         (rhythmdb_property_model_sync): display the count after the "All"
3284         entry of a property model.
3286         * widgets/rb-property-view.c: (rb_property_view_class_init),
3287         (rb_property_view_finalize), (rb_property_view_constructor): use
3288         G_DEFINE_TYPE
3290 2005-11-10  James Livingston  <jrl@ids.org.au>
3292         * rhythmdb/rhythmdb-query-model.c:
3293         (rhythmdb_query_model_remove_entry):
3294         * rhythmdb/rhythmdb-query-model.h: make
3295         rhythmdb_query_model_remove_entry return whether the entry was in the
3296         model.
3298         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
3299         don't add non-SONG entries, as it doesn't really work and can cause
3300         crashes.
3302         (rb_playlist_source_remove_location): assert if the playlist and model
3303         differ on whether the entry is in the playlist
3305 2005-11-10  James Livingston  <jrl@ids.org.au>
3307         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
3308         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
3309         (rb_podcast_manager_thread_parse_feed),
3310         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
3311         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
3312         emulating one with a list and mutex. Fixes a couple of threading
3313         issues.
3314         
3315         (rb_podcast_manager_insert_feed): fix some problems with ignoring
3316         updated feeds.
3317         
3318         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
3319         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
3320         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
3321         * podcast/rb-podcast-parse.c: (rb_insert_item),
3322         (rb_podcast_parse_channel_free):
3323         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
3324         fix some typos, and make a bit of code clearer.
3326 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
3328         Make the "delete podcast" dialog better. Closes bug 320899.
3330         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
3331         Add PROP_WINDOW for rb_shell_get_property so we can access the
3332         GtkWindow widget of the main window. 
3333         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
3334         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
3335         podcast feed delete dialog less confusing as well.
3337 2005-11-09  James Livingston  <jrl@ids.org.au>
3339         * shell/rb-removable-media-manager.c:
3340         (rb_removable_media_manager_mount_volume),
3341         (rb_removable_media_manager_scan): Fix a crasher where we were getting
3342         NULL for a cd volume.
3344 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
3346         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
3347         method return a gboolean indicating whether the changes
3348         to the entry have already been applied.
3350         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
3351         only modify the entry if impl_entry_set returns FALSE.
3353         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
3354         When setting the location of an entry, update the
3355         hash table mapping locations to entries.
3357 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
3359         * data/glade/Makefile.am:
3360         * iradio/Makefile.am:
3361           Remove 'new station' dialog.
3363         * iradio/rb-station-properties-dialog.h:
3364         * sources/rb-iradio-source.c: (impl_song_properties):
3365         * shell/rb-shell.c: (rb_shell_cmd_new_station):
3366          Add 'new station' mode parameter to
3367          rb_station_properties_dialog_new.
3369         * (rb_station_properties_dialog_response_cb),
3370         (rb_station_properties_dialog_create_station):
3371          When in 'new station' mode, create the station
3372          when OK button is pressed.
3374         * iradio/rb-station-properties-dialog.c:
3375         (rb_station_properties_dialog_location_changed_cb):
3376          Only enable OK button if a location is specified
3377         (rb_station_properties_dialog_init),
3378         (rb_station_properties_dialog_new),
3379         (rb_station_properties_dialog_update),
3380         (rb_station_properties_dialog_update_title),
3381         (rb_station_properties_dialog_rated_cb),
3382         (rb_station_properties_dialog_update_play_count),
3383         (rb_station_properties_dialog_update_bitrate),
3384         (rb_station_properties_dialog_update_last_played),
3385         (rb_station_properties_dialog_update_rating),
3386         (rb_station_properties_dialog_update_playback_error),
3387         (rb_station_properties_dialog_show):
3388          Handle 'new station' mode, where there's no current
3389          station to edit.
3391 2005-11-08  James Livingston  <jrl@ids.org.au>
3393         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3394         keybinding for track columns consistent between library and playlist
3395         sources.
3397 2005-11-07  James Livingston  <jrl@ids.org.au>
3399         * data/ui/rhythmbox-ui.xml:
3400         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
3401         "Edit" item to playlist menu. Closes bug 311470.
3403 2005-11-07  James Livingston  <jrl@ids.org.au>
3405         patch by: Jaap A. Haitsma <jaap@haitsma.org>
3407         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
3408         confirmation to save dialogs, with gtk 2.8 or higher.
3410 2005-11-07 James Livingston  <jrl@ids.org.au>
3411         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
3412         requirement to a general on, because people are going to have it for
3413         the other dependencies.
3415 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
3417         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
3418         delete dialog less confusing.  Use HIG recommended button order.
3419         Closes bug 320840.
3421 2005-11-06  James Livingston  <jrl@ids.org.au>
3423         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
3424         drag-and-drop error.
3425         
3426         * sources/rb-library-source.c: (rb_library_source_constructor): only
3427         add drag-and-drop for the Library itself, subclasses can add support
3428         themselves if they want it.
3430         * sources/rb-removable-media-source.c:
3431         (rb_removable_media_source_class_init): by default removable media
3432         sources do not support dnd
3434 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
3436         * data/glade/station-properties.glade:
3437          Add box containing error icon and error message label
3438         * iradio/rb-station-properties-dialog.c:
3439         (rb_station_properties_dialog_class_init),
3440         (rb_station_properties_dialog_finalize):
3441          Change this class to use G_DEFINE_TYPE
3442         (rb_station_properties_dialog_init),
3443         (rb_station_properties_dialog_update),
3444         (rb_station_properties_dialog_update_playback_error):
3445          Display error icon and message when there is one, and hide the error
3446          box otherwise.
3447         (rb_station_properties_dialog_show): Hack widget show
3448          method to update the visibility of the error info box when showing
3449          the widget.  Otherwise the icon is displayed all the time (same thing
3450          is done in rb-song-info). Closes bug 320749.
3452 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
3454         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
3455         parsing of the duration of podcast episodes from the feed. Closes bug
3456         320748.
3458 2005-11-05  James Livingston  <jrl@ids.org.au>
3460         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
3461         release date metadata ("Year"). Closes bug 166093.
3463         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
3464         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
3465         (rb_metadata_gst_add_tag_data):
3466         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3467         (save_entry):
3468         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3469         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
3470         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3471         (rhythmdb_prop_get_type):
3472         * rhythmdb/rhythmdb.h: add support for "date" property
3473         
3474         * data/glade/general-prefs.glade:
3475         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
3476         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
3477         (rb_entry_view_append_column):
3478         * widgets/rb-entry-view.h:
3479         * sources/rb-library-source.c: (rb_library_source_constructor):
3480         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
3481         "Year" colums
3483         * data/glade/song-info.glade:
3484         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
3485         (rb_song_info_construct_single), (rb_song_info_constructor),
3486         (rb_song_info_populate_dialog), (rb_song_info_update_year),
3487         (rb_song_info_sync_entry_single): Add "Year" to song info window
3489         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
3490         sorted by year.
3492 2005-11-05  James Livingston  <jrl@ids.org.au>
3494         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
3495         description if it's very long.
3497 2005-11-05  James Livingston  <jrl@ids.org.au>
3499         pathc by: Artem Baguinski <femistofel@gmail.com>
3501         * help/C/Makefile.am:
3502         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
3503         Closes bug 320613.
3505 2005-11-05  James Livingston  <jrl@ids.org.au>
3507         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3509         * daapsharing/rb-daap-share.c: (write_next_chunk),
3510         (message_finished), (databases_cb): Use chunked file loading and
3511         sending in the DAAP server. This should reduce the amount of memory
3512         required to send files to the client.
3514 2005-11-05  James Livingston  <jrl@ids.org.au>
3516         * configure.ac: make the nautilus_burn_drive_door_is_open detection
3517         work better on some systems. Closes 320622.
3519 2005-11-05  James Livingston  <jrl@ids.org.au>
3521         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
3522         homepage, so that users can find out what AudioScrobbler is. Add
3523         access keys.
3525         * data/glade/daap-prefs.glade:
3526         * data/glade/general-prefs.glade:
3527         * data/glade/library-prefs.glade: make the indent be more consistent
3529         * data/glade/podcast-prefs.glade: 
3530         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
3531         (impl_get_config_widget): move thing out of code into glade, where
3532         they belong
3534 2005-11-05  James Livingston  <jrl@ids.org.au>
3536         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
3537         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
3539 2005-11-04  James Livingston  <jrl@ids.org.au>
3541         * configure.ac: don't print DAAP configure info twice
3543 2005-11-04  James Livingston  <jrl@ids.org.au>
3545         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
3546         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
3547         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
3548         #ifdefs, since we removed the symbol. Oops
3550 2005-11-04  James Livingston  <jrl@ids.org.au>
3552         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
3553         after the connect line, not before. Oops.
3555 2005-11-04  James Livingston  <jrl@ids.org.au>
3557         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
3558         fix some warnings
3560 2005-11-03  James Livingston  <jrl@ids.org.au>
3562         * NEWS: update the news file
3564         * data/glade/general-prefs.glade: make the prefs refer to "time" not
3565         "duration" column.
3567         * data/ui/rhythmbox-ui.xml:
3568         * shell/rb-playlist-manager.c:
3569         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
3570         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
3571         and "delete" for feeds.
3573 2005-11-03  James Livingston  <jrl@ids.org.au>
3575         * sources/rb-podcast-source.c: (impl_delete),
3576         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
3577         feed. Closes 319760.
3579 2005-11-03  James Livingston  <jrl@ids.org.au>
3581         Don't start playing from the remote site when a un-downloaded podcast
3582         is activated. Closes 319983.
3583         
3585         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
3586         (write_job_data), (download_progress_cb): write the local location as
3587         soon as any data is recieved
3589         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
3590         the mountpoint to NULL for podcast episodes that haven't yet been
3591         downloaded.
3592         
3593         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
3594         start playing a podcast if it hasn't been downloaded.
3595         
3596         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
3597         (rb_podcast_source_entry_activated_cb): begin downloading when the
3598         podcast is activated.
3600 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
3602         * data/glade/general-prefs.glade:  Fix capitalization.
3603         * shell/rb-removable-media-manager.c:  Add a mnemonic.
3604         * sources/rb-podcast-source.c:
3605         (rb_podcast_source_songs_show_popup_cb),
3606         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
3608 2005-11-03  James Livingston  <jrl@ids.org.au>
3610         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
3612         * shell/rb-removable-media-manager.c:
3613         (rb_removable_media_manager_mount_volume): don't check network or
3614         autofs mounts, as they're not going to be removable media. Stops
3615         sending lots of warnings to syslog. Closes 320571.
3617         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
3618         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
3619         320570.
3621 2005-11-03  James Livingston  <jrl@ids.org.au>
3623         Add support for playing audio CDs. Metadata lookup is done using
3624         SoundJuicer's MusicBrainz lookup code, which can be switched to using
3625         the library when it gets broken out of S-J.
3626         
3627         Add a "rescan media" menu item, and commands for ejecting removable
3628         media.
3630         Move nautilus-cd-burner from optional to required depenency.
3632         * configure.ac:
3633         * data/ui/rhythmbox-ui.xml:
3634         * metadata/Makefile.am:
3635         + metadata/sj-error.c:
3636         + metadata/sj-error.h:
3637         + metadata/sj-metadata-marshal.list:
3638         + metadata/sj-metadata-musicbrainz.c:
3639         + metadata/sj-metadata-musicbrainz.h:
3640         + metadata/sj-metadata.c:
3641         + metadata/sj-metadata.h:
3642         + metadata/sj-structures.c:
3643         + metadata/sj-structures.h:
3644         * player/Makefile.am:
3645         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
3646         * po/POTFILES.in:
3647         * shell/Makefile.am:
3648         * shell/rb-removable-media-manager.c:
3649         (rb_removable_media_manager_dispose), (poll_tray_opened),
3650         (end_cd_drive_monitor), (begin_cd_drive_monitor),
3651         (rb_removable_media_manager_load_media),
3652         (rb_removable_media_manager_mount_volume),
3653         (rb_removable_media_manager_cmd_eject_medium),
3654         (rb_removable_media_manager_cmd_scan_media),
3655         (rb_removable_media_manager_check_volume),
3656         (rb_removable_media_manager_unmount_volume_swap),
3657         (rb_removable_media_manager_scan):
3658         * sources/Makefile.am:
3659         + sources/rb-audiocd-source.c:
3660         + sources/rb-audiocd-source.h:
3661         * tests/Makefile.am:
3663 2005-11-02  James Livingston  <jrl@ids.org.au>
3665         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3667         * sources/rb-iradio-source.c:
3668         (stations_view_drag_data_received_cb):
3669         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
3670         don't crash when the second uri is missing frm the drop, which
3671         browsers sometimes do.
3673 2005-11-01  James Livingston  <jrl@ids.org.au>
3675         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
3676         (rb_podcast_manager_insert_feed):
3677         * podcast/rb-podcast-manager.h:
3678         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
3679         (rb_set_item_value), (rb_validate_item_propert),
3680         (rb_podcast_parse_date), (rb_podcast_parse_time):
3681         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
3682         from the feed.
3684 2005-10-31  James Livingston  <jrl@ids.org.au>
3686         * ChangeLog:
3687         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
3688         huge
3690 2005-10-31  James Livingston  <jrl@ids.org.au>
3692         * sources/rb-podcast-source.c:
3693         (rb_podcast_source_post_date_cell_data_func): generate the date string
3694         in a way that is correct in all locales.
3695         
3696         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3697         (rhythmdb_entry_sync_mirrored): make the last played/date added
3698         columns use the same format.
3700 2005-10-30  James Livingston  <jrl@ids.org.au>
3703         * podcast/rb-podcast-manager.c:
3704         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
3705         
3706         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
3707         iradio errors better.
3709 2005-10-30  James Livingston  <jrl@ids.org.au>
3711         patch by: Artem Baguinski <femistofel@gmail.com>
3713         * metadata/rb-metadata-gst.c: (rb_metadata_init):
3715 2005-10-30  James Livingston  <jrl@ids.org.au>
3717         * podcast/rb-podcast-manager.c:
3718         (rb_podcast_manager_subscribe_feed),
3719         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
3720         already been added, usually as a radio station. Closes 319434.
3722 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
3724         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
3725         mnemonics & resize issues)
3726         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
3727         & mnemonics)
3728         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
3729         widget for the "download location" label.
3731         Closes bug 320184.
3733 2005-10-29  James Livingston  <jrl@ids.org.au>
3735         Allow the search box to match words from multiple properties. Closes
3736         bug 139196. Thanks to the person from IRC who did a lot of the initial
3737         work.
3740         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
3741         * lib/rb-util.h: Add functions to split a string into words, and one
3742         to perform "search folding" which is currently like casefolding but
3743         also strips punctuation
3744         
3745         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
3746         (rhythmdb_query_preprocess):
3747         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
3748         against title, artist, album and genre (for the search box)
3749         
3750         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
3751         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3752         (save_entry), (search_match_properties),
3753         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
3754         splitting into words and matching across multiple properties.
3755         
3756         * sources/rb-library-source.c: (construct_query_from_selection): use
3757         the new SEARCH_MATCH property for the search box
3758         
3759         * widgets/rb-entry-view.c: (type_ahead_search_func):
3761 2005-10-29  James Livingston  <jrl@ids.org.au>
3763         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3764         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
3765         
3766         * shell/rb-playlist-manager.c:
3767         * shell/rb-shell.c: use the above stock ids, so that the icons get set
3768         correctly.
3769         
3770         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
3771         initial state of the shuffle/repeat menu items correctly. Patch from
3772         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
3774 2005-10-29  James Livingston  <jrl@ids.org.au>
3776         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
3777         double-free.
3778         
3779         * widgets/rb-cell-renderer-pixbuf.c:
3780         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
3781         icon go black when row is not selected
3782         
3783         * doc/reference/tmpl/rb-daap-connection.sgml:
3784         * doc/reference/tmpl/rhythmdb.sgml: doc updates
3786 2005-10-29  James Livingston  <jrl@ids.org.au>
3788         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
3789         silly mistake, where it could think partial downloads has been
3790         completed.
3792 2005-10-29  James Livingston  <jrl@ids.org.au>
3794         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3796         * data/glade/song-info.glade:
3797         * widgets/rb-song-info.c: (rb_song_info_construct_single),
3798         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
3799         (rb_song_info_sync_entry_single): show the disc number in the song
3800         info window. From bug 311199.
3802 2005-10-29  James Livingston  <jrl@ids.org.au>
3804         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
3805         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
3806         regularly. Closes 155306.
3808 2005-10-29  James Livingston  <jrl@ids.org.au>
3810         * podcast/rb-podcast-manager.c:
3811         (rb_podcast_manager_download_entry),
3812         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
3813         (rb_podcast_manager_insert_feed):
3814         * podcast/rb-podcast-manager.h:
3815         * podcast/rb-podcast-parse.c: (rb_set_item_value),
3816         (rb_podcast_parser_start_element):
3817         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
3818         don't download them again. However, it can't resume
3819         partially-downloaded ones.
3821 2005-10-28  James Livingston  <jrl@ids.org.au>
3823         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
3824         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
3825         work. Don't attempt to write duration as a tag.
3827         Thanks to Artem Baguinski <femistofel@gmail.com>
3829 2005-10-28  James Livingston  <jrl@ids.org.au>
3831         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
3832         don't disable the status-bar menu item when the current source doesn't
3833         use the search box.
3835 2005-10-28  James Livingston  <jrl@ids.org.au>
3837         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
3838         crash if the file has unknown length
3840 2005-10-27  James Livingston  <jrl@ids.org.au>
3842         * daapsharing/rb-daap-connection.c:
3843         (rb_daap_connection_state_done): don't assert when a daap server
3844         doesn't have any playlists
3846 2005-10-27  James Livingston  <jrl@ids.org.au>
3848         * sources/rb-sourcelist-model.c:
3849         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
3850         source for the sourcelist. Closes bug 319817.
3852 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
3854         Patch by: Renato Araujo <renatox@gmail.com>
3856         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
3857           Fix for a crasher caused by previous patch.
3859 2005-10-26  James Livingston  <jrl@ids.org.au>
3861         * data/glade/podcast-prefs.glade:
3862         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
3863         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
3864         * sources/rb-podcast-source.c: (rb_podcast_source_new):
3865         * podcast/rb-podcast-manager.c:
3866         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
3867         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
3868         * shell/rb-shell.c: Change some strings to make them more consistent.
3869         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
3870         makes it clearer which is which. "Episode" may not be the best term,
3871         but it seems to be widely used.
3872         
3873         Also fix some strings that weren't marked as translatable.
3874         
3875         * podcast/rb-feed-podcast-properties-dialog.c:
3876         (rb_feed_podcast_properties_dialog_class_init),
3877         (rb_feed_podcast_properties_dialog_finalize):
3878         * podcast/rb-new-podcast-dialog.c:
3879         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
3880         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
3881         (rb_simple_view_finalize), (rb_simple_view_constructor):
3882         * podcast/rb-podcast-properties-dialog.c:
3883         (rb_podcast_properties_dialog_class_init),
3884         (rb_podcast_properties_dialog_finalize):
3885         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
3886         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
3887         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3888         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
3889         use G_DEFINE_TYPE, instead of doing it manually.
3891 2005-10-26  James Livingston  <jrl@ids.org.au>
3893         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
3894         <jrl@ids.org.au>
3896         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
3897         (rb_metadata_init): Check that the necessary plugins are present to do
3898         id3 editing.
3899         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
3900         corrupted before replacing the original.
3902 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
3904         reviewed by: James Livingston <jrl@ids.org.au>
3906         Assign sequential IDs to playlists for DAAP rather than using the
3907         address of the playlist object.  Less flaky, and should work on 64bit
3908         platforms. Closes bug 319304.
3910         * daapsharing/rb-daap-share.c: 
3911         (rb_daap_share_set_property): watch for playlist creation
3912         (_find_by_id), (_find_by_source): playlist list search functions
3913         (rb_daap_share_playlist_created),
3914         (rb_daap_share_process_playlist),
3915         (rb_daap_share_playlist_destroyed):
3916          update playlist list as it changes, use weak refs on 
3917          playlists to get notified on destroy.
3918         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
3919          destroy playlist list on shutdown
3920         (add_playlist_to_mlcl): use playlist ID rather than pointer in
3921          DAAP response
3922         (databases_cb): search for playlist ID in list rather than just
3923          converting it to a pointer; return HTTP 404 if playlist not 
3924          found.
3925         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
3926          is already used for the main library
3928 2005-10-26  James Livingston  <jrl@ids.org.au>
3930         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3932         * daapsharing/rb-daap-connection.c: (build_message),
3933         (http_response_handler), (http_get), (handle_server_info),
3934         (handle_login), (handle_update), (handle_database_info),
3935         (handle_song_listing), (handle_playlists),
3936         (handle_playlist_entries), (handle_logout),
3937         (rb_daap_connection_new), (rb_daap_connection_logout),
3938         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
3939         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
3940         * daapsharing/rb-daap-connection.h:
3941         * sources/rb-daap-source.c: (rb_daap_source_activate),
3942         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
3943         (rb_daap_source_disconnect): Make connecting to DAAP sources
3944         asynchronous, so that non-responsive servers don't hang the UI. Closes
3945         316225.
3947 2005-10-26  James Livingston  <jrl@ids.org.au>
3949         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3951         * rhythmdb/rhythmdb-query-model.c:
3952         (rhythmdb_query_model_do_reorder): generate the row re-order map
3953         correctly.
3954         
3955         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
3956         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
3957         Update selection when rows get re-ordered. Closes 319718.
3959 2005-10-26  James Livingston  <jrl@ids.org.au>
3961         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
3963         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
3964         actually set the db pointer in play orders. Closes 319818.
3966 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
3968         Patch by: Renato Araujo <renatox@gmail.com>
3970         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
3971         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
3972         (rb_podcast_manager_update_synctime),
3973         (rb_podcast_manager_config_changed),
3974         (rb_podcast_manager_insert_feed):
3975         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3976         (save_entry):
3977         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
3978         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
3979         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
3981 2005-10-25  James Livingston  <jrl@ids.org.au>
3983         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
3984         (db_entry_deleted_cb): don't share tracks that are hidden because the
3985         file is missing.
3987 2005-10-22  James Livingston  <jrl@ids.org.au>
3989         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
3990         crash if an entry couldn't be playerd, without streamer setting an
3991         error.
3993         
3994         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3996         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
3997         (rb_new_podcast_dialog_text_changed): enable the add button when a url
3998         is pasted into the dialog.
3999         
4000         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
4001         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
4002         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
4003         (rb_podcast_parse_channel_free):
4004         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
4005         feeds
4007 2005-10-22  James Livingston  <jrl@ids.org.au>
4009         * sources/rb-iradio-source.c:
4010         (rb_iradio_source_first_time_changed): Make merging the default
4011         stations actually work.
4012         
4013         * sources/rb-podcast-source.c:
4014         (rb_podcast_source_post_status_cell_data_func): fix problem where some
4015         people weren't seing the percentages in the stats column.
4017 2005-10-21  James Livingston  <jrl@ids.org.au>
4019         Patch from Caio Marcelo <cmarcelo@gmail.com>
4021         * shell/rb-shell.c: (rb_shell_window_state_cb),
4022         (rb_shell_get_visibility), (idle_hide_mainwindow),
4023         (rb_shell_set_visibility): Make the "show window" item in the tray
4024         icon menu show the toggle state correctly. Use a better policy on
4025         deciding whether the window is "visible" or not. Closes bug 308053.
4027 2005-10-21  James Livingston  <jrl@ids.org.au>
4029         * doc/reference/tmpl/rb-shell-preferences.sgml:
4030         * shell/Makefile.am: fix building with gtk-doc
4032         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
4033         don't submit podcasts to audioscrobbler
4034         
4035         
4036         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4037         
4038         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
4039         (rb_set_item_value): strip spaces surrounding podcast urls
4040         
4042         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
4043         
4044         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
4046 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
4048         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
4049          Audioscrobbler/Last.fm support
4051         * configure.ac:
4052         * data/glade/Makefile.am:
4053         * data/glade/audioscrobbler-prefs.glade:
4054         * data/rhythmbox.schemas:
4055         * lib/Makefile.am:
4056         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
4057         * lib/md5.h:
4058         * lib/rb-preferences.h:
4059         * po/POTFILES.in:
4060         * shell/Makefile.am:
4061         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
4062         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
4063         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
4064         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
4065         (rb_audioscrobbler_timeout_cb), (mkmd5),
4066         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
4067         (rb_audioscrobbler_do_handshake),
4068         (rb_audioscrobbler_do_handshake_cb),
4069         (rb_audioscrobbler_submit_queue),
4070         (rb_audioscrobbler_submit_queue_cb),
4071         (rb_audioscrobbler_import_settings),
4072         (rb_audioscrobbler_preferences_sync),
4073         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
4074         (rb_audioscrobbler_gconf_changed_cb),
4075         (rb_audioscrobbler_song_changed_cb),
4076         (rb_audioscrobbler_username_entry_changed_cb),
4077         (rb_audioscrobbler_username_entry_activate_cb),
4078         (rb_audioscrobbler_password_entry_changed_cb),
4079         (rb_audioscrobbler_password_entry_activate_cb),
4080         (rb_audioscrobbler_enabled_check_changed_cb),
4081         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
4082         (rb_audioscrobbler_load_entry_from_string),
4083         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
4084         (rb_audioscrobbler_print_queue),
4085         (rb_audioscrobbler_free_queue_entries):
4086         * shell/rb-audioscrobbler.h:
4087         * shell/rb-shell-preferences.c:
4088         (rb_shell_preferences_append_audioscrobbler_config):
4089         * shell/rb-shell-preferences.h:
4090         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4091         (rb_shell_select_source), (rb_shell_cmd_preferences):
4092         * sources/Makefile.am:
4094 2005-10-21  James Livingston  <jrl@ids.org.au>
4096         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
4098         * Makefile.am:
4099         * NEWS:
4100         * configure.ac:
4101         * data/art/Makefile.am:
4102         * data/glade/Makefile.am:
4103         * data/rhythmbox.schemas:
4104         * data/ui/rhythmbox-ui.xml:
4105         * doc/reference/Makefile.am:
4106         * doc/reference/tmpl/rhythmdb.sgml:
4107         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4108         * lib/rb-stock-icons.h:
4109         * po/POTFILES.in:
4110         * podcast/Makefile.am:
4111         + podcast/rb-feed-podcast-properties-dialog.c:
4112         + podcast/rb-feed-podcast-properties-dialog.h:
4113         + podcast/rb-new-podcast-dialog.c:
4114         + podcast/rb-new-podcast-dialog.h:
4115         + podcast/rb-podcast-manager.c:
4116         + podcast/rb-podcast-manager.h:
4117         + podcast/rb-podcast-marshal.list:
4118         + podcast/rb-podcast-parse.c:
4119         + podcast/rb-podcast-parse.h:
4120         + podcast/rb-podcast-properties-dialog.c:
4121         + podcast/rb-podcast-properties-dialog.h:
4122         * rhythmdb/rhythmdb-property-model.c:
4123         (rhythmdb_property_model_set_property),
4124         (rhythmdb_property_model_enable_drag):
4125         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4126         (rhythmdb_tree_parser_end_element), (save_entry),
4127         (rhythmdb_tree_save):
4128         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
4129         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
4130         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
4131         (rhythmdb_entry_podcast_feed_get_type):
4132         * rhythmdb/rhythmdb.h:
4133         * shell/Makefile.am:
4134         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
4135         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4136         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
4137         (rb_shell_quit):
4138         * sources/Makefile.am:
4139         + sources/rb-podcast-source.c:
4140         + sources/rb-podcast-source.h:
4141         * widgets/Makefile.am:
4142         * widgets/rb-property-view.c: (rb_property_view_class_init),
4143         (rb_property_view_constructor),
4144         (rb_property_view_selection_changed_cb),
4145         (rb_property_view_get_treeview):
4146         * widgets/rb-property-view.h:
4147         + widgets/rb-simple-view.c:
4148         + widgets/rb-simple-view.h:
4150 2005-10-20  James Livingston  <jrl@ids.org.au>
4152         * NEWS: update with changes since 0.9.1
4154         * configure.ac: check whether collate_key_for_filename is available
4155         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
4156         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
4157         it if it isn't available in glib (i.e. building against 2.6)
4158         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
4159         collation to get "natural sorting". Closes bug 158599.
4161 2005-10-20  James Livingston  <jrl@ids.org.au>
4163         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
4165         * doc/reference/tmpl/rb-shell-player.sgml:
4166         * shell/rb-shell-player.c: (rb_shell_player_class_init),
4167         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
4168         (rb_shell_player_get_playing),
4169         (rb_shell_player_get_playing_time_string),
4170         (rb_shell_player_get_playing_time),
4171         (rb_shell_player_set_playing_time), (tick_cb),
4172         (rb_shell_player_get_playing_path), (filter_mmkeys):
4173         * shell/rb-shell-player.h:
4174         * shell/rb-shell-player.xml:
4175         * shell/rb-shell.c: (rb_shell_constructor),
4176         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
4177         (rb_shell_set_window_title), (rb_shell_playing_impl),
4178         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
4179         Merge the duration_changed and elapsed_changed DBUS signals into one
4180         elapsed_changed signal. Check that the output argument isn't NULL
4181         before trying to put things in it.
4183 2005-10-20  James Livingston  <jrl@ids.org.au>
4185         * rhythmdb/rhythmdb-query-model.c:
4186         (rhythmdb_query_model_entry_added_cb),
4187         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
4188         problem where hidden entries could be shown in playlists.
4189         
4190         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
4191         issues when switching in and out of small mode.
4193 2005-10-19  James Livingston  <jrl@ids.org.au>
4195         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
4196         (rb_shell_constructor), (rb_shell_window_state_cb),
4197         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
4198         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
4199         (rb_shell_view_smalldisplay_changed_cb),
4200         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
4201         (rb_shell_sync_paned): remove gconf window-state races, prevent
4202         changing small mode too often, fix window event races. Closes 122806.
4204         
4205         Patch from Caio Marcelo <cmarcelo@gmail.com>
4207         * data/rhythmbox.schemas:
4208         * shell/rb-shell.c: (rb_shell_window_state_cb),
4209         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
4210         Remember the position of the window. Closes 315289.
4212 2005-10-19  James Livingston  <jrl@ids.org.au>
4214         Patch from Christophe Fergeau  <teuf@gnome.org>
4216         * configure.ac: determine whether libgpod is present when neither
4217         --with-ipod nor --without-ipod is passed
4219 2005-10-19  James Livingston  <jrl@ids.org.au>
4221         Patch from Caio Marcelo <cmarcelo@gmail.com>
4223         * shell/rb-shell-player.c: (do_next_idle),
4224         (rb_shell_player_do_previous), (rb_shell_player_do_next),
4225         (rb_shell_player_do_previous_or_seek),
4226         (rb_shell_player_previous_button_cb),
4227         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
4228         (rb_shell_player_cmd_next), (eos_cb):
4229         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
4230         end of the playlist is reached.
4232 2005-10-19  Christopher Aillon  <caillon@redhat.com>
4234         * lib/rb-thread.c: fix a few GSource leaks
4236 2005-10-19  James Livingston  <jrl@ids.org.au>
4238         * doc/reference/tmpl/bacon-volume.sgml:
4239         * doc/reference/tmpl/disclosure-widget.sgml:
4240         * doc/reference/tmpl/eel-gconf-extensions.sgml:
4241         * doc/reference/tmpl/eggnotificationbubble.sgml:
4242         * doc/reference/tmpl/eggtrayicon.sgml:
4243         * doc/reference/tmpl/gsequence.sgml:
4244         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
4245         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
4246         * doc/reference/tmpl/rb-daap-connection.sgml:
4247         * doc/reference/tmpl/rb-daap-dialog.sgml:
4248         * doc/reference/tmpl/rb-daap-mdns.sgml:
4249         * doc/reference/tmpl/rb-daap-share.sgml:
4250         * doc/reference/tmpl/rb-daap-sharing.sgml:
4251         * doc/reference/tmpl/rb-daap-source.sgml:
4252         * doc/reference/tmpl/rb-daap-src.sgml:
4253         * doc/reference/tmpl/rb-daap-structure.sgml:
4254         * doc/reference/tmpl/rb-debug.sgml:
4255         * doc/reference/tmpl/rb-dialog.sgml:
4256         * doc/reference/tmpl/rb-druid.sgml:
4257         * doc/reference/tmpl/rb-entry-view.sgml:
4258         * doc/reference/tmpl/rb-enums.sgml:
4259         * doc/reference/tmpl/rb-file-helpers.sgml:
4260         * doc/reference/tmpl/rb-glade-helpers.sgml:
4261         * doc/reference/tmpl/rb-header.sgml:
4262         * doc/reference/tmpl/rb-history.sgml:
4263         * doc/reference/tmpl/rb-ipod-source.sgml:
4264         * doc/reference/tmpl/rb-iradio-source.sgml:
4265         * doc/reference/tmpl/rb-library-source.sgml:
4266         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
4267         * doc/reference/tmpl/rb-metadata.sgml:
4268         * doc/reference/tmpl/rb-new-station-dialog.sgml:
4269         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
4270         * doc/reference/tmpl/rb-play-order-linear.sgml:
4271         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
4272         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
4273         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
4274         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
4275         * doc/reference/tmpl/rb-play-order-random.sgml:
4276         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
4277         * doc/reference/tmpl/rb-play-order.sgml:
4278         * doc/reference/tmpl/rb-player.sgml:
4279         * doc/reference/tmpl/rb-playlist-manager.sgml:
4280         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
4281         * doc/reference/tmpl/rb-playlist-source.sgml:
4282         * doc/reference/tmpl/rb-preferences.sgml:
4283         * doc/reference/tmpl/rb-property-view.sgml:
4284         * doc/reference/tmpl/rb-query-creator-private.sgml:
4285         * doc/reference/tmpl/rb-query-creator.sgml:
4286         * doc/reference/tmpl/rb-rating-helper.sgml:
4287         * doc/reference/tmpl/rb-rating.sgml:
4288         * doc/reference/tmpl/rb-recorder.sgml:
4289         * doc/reference/tmpl/rb-refstring.sgml:
4290         * doc/reference/tmpl/rb-removable-media-manager.sgml:
4291         * doc/reference/tmpl/rb-removable-media-source.sgml:
4292         * doc/reference/tmpl/rb-search-entry.sgml:
4293         * doc/reference/tmpl/rb-shell-clipboard.sgml:
4294         * doc/reference/tmpl/rb-shell-glue.sgml:
4295         * doc/reference/tmpl/rb-shell-player-glue.sgml:
4296         * doc/reference/tmpl/rb-shell-player.sgml:
4297         * doc/reference/tmpl/rb-shell-preferences.sgml:
4298         * doc/reference/tmpl/rb-shell.sgml:
4299         * doc/reference/tmpl/rb-song-display-box.sgml:
4300         * doc/reference/tmpl/rb-song-info.sgml:
4301         * doc/reference/tmpl/rb-source-header.sgml:
4302         * doc/reference/tmpl/rb-source.sgml:
4303         * doc/reference/tmpl/rb-sourcelist-model.sgml:
4304         * doc/reference/tmpl/rb-sourcelist.sgml:
4305         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
4306         * doc/reference/tmpl/rb-statusbar.sgml:
4307         * doc/reference/tmpl/rb-stock-icons.sgml:
4308         * doc/reference/tmpl/rb-string-helpers.sgml:
4309         * doc/reference/tmpl/rb-thread.sgml:
4310         * doc/reference/tmpl/rb-tray-icon.sgml:
4311         * doc/reference/tmpl/rb-tree-dnd.sgml:
4312         * doc/reference/tmpl/rb-tree-model-sort.sgml:
4313         * doc/reference/tmpl/rb-util.sgml:
4314         * doc/reference/tmpl/rhythmbox-unused.sgml:
4315         * doc/reference/tmpl/rhythmdb-property-model.sgml:
4316         * doc/reference/tmpl/rhythmdb-query-model.sgml:
4317         * doc/reference/tmpl/rhythmdb-tree.sgml:
4318         * doc/reference/tmpl/rhythmdb.sgml: update for changes
4319         
4320         * doc/reference/Makefile.am: make docs build with changed ipod support
4321         
4322         * po/POTFILES.in: remove sources/itunesdb
4324 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
4326         * sources/itunesdb.c:
4327         * sources/itunesdb.h: removed now useless files
4329 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
4331         * configure.ac:
4332         * shell/Makefile.am:
4333         * sources/Makefile.am:
4334         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
4335         code
4336         [1]: http://www.gtkpod.org/libgpod.html
4339 2005-10-18  James Livingston  <jrl@ids.org.au>
4341         patch from Funda Wang <fundawang@linux.net.cn>
4343         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
4344         the notification bubble string translatable.
4346 ============ Version 0.9.1
4348 2005-10-16  James Livingston  <jrl@ids.org.au>
4350         * configure.ac: bump version to 0.9.1
4351         * NEWS: update translation credits
4353 2005-10-16  James Livingston  <jrl@ids.org.au>
4355         * rhythmdb/rhythmdb-query-model.c:
4356         (rhythmdb_query_model_class_init),
4357         (rhythmdb_query_model_drag_data_received): 
4358         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
4359         notified when things are dropped into the entry view.
4360         
4361         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
4362         (rb_playlist_source_add_location_swapped),
4363         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
4364         (rb_playlist_source_non_entry_dropped),
4365         (rb_playlist_source_row_inserted): Use the new signal so that dropping
4366         things onto a playlist's entry view work correctly, and doesn't cause
4367         crashes. Allow folders to be dropped as well. (Closes 318308)
4369 2005-10-16  James Livingston  <jrl@ids.org.au>
4371         * NEWS: Update some more
4373         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4374         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
4375         with the paned size, so that it doesn't move when the window is
4376         maximised/restored. Closes bug 315852.
4378         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
4379         display the playcount column, as it's useless (it never get changed).
4381 2005-10-14  James Livingston  <jrl@ids.org.au>
4383         * Makefile.am:
4384         * data/Makefile.am:
4385         * doc/reference/Makefile.am: get "make distcheck" to pass again
4387 2005-10-11  James Livingston  <jrl@ids.org.au>
4389         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
4390         destroy the connection when retrieving the playlists fails, because
4391         tracks have already been added. Closes 318380.
4393 2005-10-11  James Livingston  <jrl@ids.org.au>
4395         * sources/rb-sourcelist.c: (rb_sourcelist_append),
4396         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
4397         (source_name_edited_cb): Ask for the columns to be resized when a
4398         source is added, deleted or changes name.
4400 2005-10-11  James Livingston  <jrl@ids.org.au>
4402         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
4403         create a thread when processing a directory. This stops up created one
4404         thread for each file in a playlist we're trying to load. Closes
4405         317850.
4407         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
4408         typo that made sort-by-artist not work correctly.
4410 2005-10-11  James Livingston  <jrl@ids.org.au>
4412         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
4413         support is enabled
4415 2005-10-11  James Livingston  <jrl@ids.org.au>
4417         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4418         * lib/rb-file-helpers.h: add a function to turn uris into our
4419         canonical path-escaped form
4420         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
4421         above function when import playlists. This will fix the problem of
4422         duplicate entries due to different representations of the uri (bug
4423         158211).
4425 2005-10-11  James Livingston  <jrl@ids.org.au>
4427         * shell/rb-shell.c: (rb_shell_get_visibility),
4428         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
4429         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
4430         window hiding so that Alt-F4 works again.
4432         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
4433         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
4434         (rb_entry_view_string_sort_func): Stop some crashes where a string
4435         property was set to NULL.
4437 2005-10-10  James Livingston  <jrl@ids.org.au>
4439         * doc/reference/rhythmbox.types: fix gtk-doc generation
4441 2005-10-09  James Livingston  <jrl@ids.org.au>
4443         * sources/rb-sourcelist.c: (rb_sourcelist_init):
4444         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
4445         accelerators, so that we don't have as many conflicting keys.
4447 2005-10-08  James Livingston  <jrl@ids.org.au>
4449         * data/iradio-initial.pls: Update the list of radio stations. Thanks
4450         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
4451         bug 129285.
4453 2005-10-07  James Livingston  <jrl@ids.org.au>
4455         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
4456         local path names in the same way as every other URI. This should stop
4457         duplicates occurring due to different escapings. Closes bug 158211.
4459 2005-10-06  James Livingston  <jrl@ids.org.au>
4461         * NEWS: more updates
4462         
4463         patch from Jaap Haitsma <jaap@haitsma.org>:
4465         * configure.ac:
4466         * data/Makefile.am:
4467         * data/art/Makefile.am:
4468         - data/art/rhythmbox-paused.png:
4469         - data/art/rhythmbox-playback-error.png:
4470         - data/art/rhythmbox-playing.png:
4471         - data/art-clearlooks/:
4472         * lib/rb-file-helpers.c: (rb_file):
4473         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4474         * lib/rb-stock-icons.h:
4475         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
4476         * widgets/rb-cell-renderer-pixbuf.c:
4477         (rb_cell_renderer_pixbuf_render):
4478         * widgets/rb-entry-view.c: (rb_entry_view_init),
4479         (rb_entry_view_set_playing):
4480         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
4481         stock icons instead of custom art. Drop remanents of art-clearlooks.
4483 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
4485         * configure.ac: Added ne in ALL_LINGUAS
4487 2005-10-02  James Livingston  <jrl@ids.org.au>
4489         * data/glade/Makefile.am: actually install the daap prefs glade file
4491 2005-09-30  James Livingston  <jrl@ids.org.au>
4493         * po/POTFILES.in: mremove rb-string-helper.c from the list of
4494         translatable files, so that make check works and we don't annoy the
4495         translators.
4496         
4497         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
4498         sanity checking, in case a db entry is missing some properties.
4500 2005-09-29  James Livingston  <jrl@ids.org.au>
4502         - lib/rb-string-helpers.c:
4503         - lib/rb-string-helpers.h:
4504         * lib/Makefile.am:
4505         * rhythmdb/rhythmdb-tree.c:
4506         * rhythmdb/rhythmdb.c:
4507         * shell/main.c: (main):
4508         * shell/rb-shell.c:
4509         * widgets/rb-entry-view.c:
4510         * widgets/rb-property-view.c: remove rb-string-helpers, as they
4511         utility functions haven't been used in a while.
4513 2005-09-27  James Livingston  <jrl@ids.org.au>
4515         * data/art-clearlooks/Makefile.am:
4516         - data/art-clearlooks/rhythmbox-album.png:
4517         - data/art-clearlooks/rhythmbox-audiocd.png:
4518         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
4519         - data/art-clearlooks/rhythmbox-dnd.png:
4520         - data/art-clearlooks/rhythmbox-ipod.png:
4521         - data/art-clearlooks/rhythmbox-iradio.png:
4522         - data/art-clearlooks/rhythmbox-library.png:
4523         - data/art-clearlooks/rhythmbox-next.png:
4524         - data/art-clearlooks/rhythmbox-pause.png:
4525         - data/art-clearlooks/rhythmbox-play.png:
4526         - data/art-clearlooks/rhythmbox-playlist-menu.png:
4527         - data/art-clearlooks/rhythmbox-playlist.png:
4528         - data/art-clearlooks/rhythmbox-previous.png:
4529         - data/art-clearlooks/rhythmbox-repeat.png:
4530         - data/art-clearlooks/rhythmbox-rewind.png:
4531         - data/art-clearlooks/rhythmbox-shuffle.png:
4532         - data/art-clearlooks/rhythmbox-stop.png:
4533         - data/art-clearlooks/rhythmbox-visuals.png:
4534         - data/art-clearlooks/rhythmbox-volume-max.png:
4535         - data/art-clearlooks/rhythmbox-volume-medium.png:
4536         - data/art-clearlooks/rhythmbox-volume-min.png:
4537         - data/art-clearlooks/rhythmbox-volume-mute.png:
4538         - data/art-clearlooks/rhythmbox-volume-zero.png:
4539         * data/art/Makefile.am:
4540         - data/art/rhythmbox-album.png:
4541         - data/art/rhythmbox-audiocd.png:
4542         - data/art/rhythmbox-automatic-playlist.png:
4543         - data/art/rhythmbox-dnd.png:
4544         - data/art/rhythmbox-ipod.png:
4545         - data/art/rhythmbox-iradio.png:
4546         - data/art/rhythmbox-library.png:
4547         - data/art/rhythmbox-next.png:
4548         - data/art/rhythmbox-pause.png:
4549         - data/art/rhythmbox-play.png:
4550         - data/art/rhythmbox-playlist-menu.png:
4551         - data/art/rhythmbox-playlist.png:
4552         - data/art/rhythmbox-previous.png:
4553         - data/art/rhythmbox-repeat.png:
4554         - data/art/rhythmbox-rewind.png:
4555         - data/art/rhythmbox-shuffle.png:
4556         - data/art/rhythmbox-stop.png:
4557         - data/art/rhythmbox-visuals.png:
4558         - data/art/rhythmbox-volume-max.png:
4559         - data/art/rhythmbox-volume-medium.png:
4560         - data/art/rhythmbox-volume-min.png:
4561         - data/art/rhythmbox-volume-mute.png:
4562         - data/art/rhythmbox-volume-zero.png:
4563         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4564         * lib/rb-stock-icons.h:
4565         * shell/rb-playlist-manager.c:
4566         * shell/rb-shell-player.c:
4567         * sources/rb-daap-source.c: (rb_daap_get_icon):
4568         * sources/rb-ipod-source.c:
4569         * sources/rb-iradio-source.c: (rb_iradio_source_init):
4570         * sources/rb-library-source.c: (rb_library_source_new):
4571         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4572         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
4573         that hasn't been used in a LONG time, and also remove art that are
4574         now stock icons.
4576 2005-09-27  James Livingston  <jrl@ids.org.au>
4578         * README: point to the gnome.org web sites, and update the example
4579         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
4580         
4581         * rhythmdb/rhythmdb-query-model.c:
4582         (rhythmdb_query_model_set_property),
4583         (rhythmdb_query_model_get_property),
4584         (rhythmdb_query_model_finalize):
4585         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
4586         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
4587         * rhythmdb/rhythmdb.h:
4588         * sources/rb-iradio-source.c: (impl_search):
4589         * sources/rb-library-source.c: (impl_search): Add query
4590         "preprocessing", which performs operations such as casefolding any
4591         strings that will be compared to any of the *_FOLDED properties.
4592         Closes bug 316039
4594 2005-09-27  James Livingston  <jrl@ids.org.au>
4596         * data/glade/daap-prefs.glade:
4597         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
4598         file for the daap preferences pane
4599         
4600         * sources/rb-sourcelist.c: (rb_sourcelist_init),
4601         (rb_sourcelist_append), (rb_sourcelist_remove),
4602         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
4603         don't display the column for source expanders unless there is an
4604         expandable source.
4606 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
4608         * .cvsignore:
4609         * Makefile.am:
4610         * configure.ac:
4611         * doc/.cvsignore:
4612         * doc/Makefile.am:
4613         * doc/reference/.cvsignore:
4614         * doc/reference/Makefile.am:
4615         * doc/reference/rhythmbox-docs.sgml:
4616         * doc/reference/rhythmbox-sections.txt:
4617         * doc/reference/rhythmbox.types:
4618         * doc/reference/tmpl/bacon-volume.sgml:
4619         * doc/reference/tmpl/disclosure-widget.sgml:
4620         * doc/reference/tmpl/eel-gconf-extensions.sgml:
4621         * doc/reference/tmpl/eggnotificationbubble.sgml:
4622         * doc/reference/tmpl/eggtrayicon.sgml:
4623         * doc/reference/tmpl/gsequence.sgml:
4624         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
4625         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
4626         * doc/reference/tmpl/rb-daap-connection.sgml:
4627         * doc/reference/tmpl/rb-daap-dialog.sgml:
4628         * doc/reference/tmpl/rb-daap-mdns.sgml:
4629         * doc/reference/tmpl/rb-daap-share.sgml:
4630         * doc/reference/tmpl/rb-daap-sharing.sgml:
4631         * doc/reference/tmpl/rb-daap-source.sgml:
4632         * doc/reference/tmpl/rb-daap-src.sgml:
4633         * doc/reference/tmpl/rb-daap-structure.sgml:
4634         * doc/reference/tmpl/rb-debug.sgml:
4635         * doc/reference/tmpl/rb-dialog.sgml:
4636         * doc/reference/tmpl/rb-druid.sgml:
4637         * doc/reference/tmpl/rb-entry-view.sgml:
4638         * doc/reference/tmpl/rb-enums.sgml:
4639         * doc/reference/tmpl/rb-file-helpers.sgml:
4640         * doc/reference/tmpl/rb-glade-helpers.sgml:
4641         * doc/reference/tmpl/rb-header.sgml:
4642         * doc/reference/tmpl/rb-history.sgml:
4643         * doc/reference/tmpl/rb-ipod-source.sgml:
4644         * doc/reference/tmpl/rb-iradio-source.sgml:
4645         * doc/reference/tmpl/rb-library-source.sgml:
4646         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
4647         * doc/reference/tmpl/rb-metadata.sgml:
4648         * doc/reference/tmpl/rb-new-station-dialog.sgml:
4649         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
4650         * doc/reference/tmpl/rb-play-order-linear.sgml:
4651         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
4652         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
4653         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
4654         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
4655         * doc/reference/tmpl/rb-play-order-random.sgml:
4656         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
4657         * doc/reference/tmpl/rb-play-order.sgml:
4658         * doc/reference/tmpl/rb-player.sgml:
4659         * doc/reference/tmpl/rb-playlist-manager.sgml:
4660         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
4661         * doc/reference/tmpl/rb-playlist-source.sgml:
4662         * doc/reference/tmpl/rb-preferences.sgml:
4663         * doc/reference/tmpl/rb-property-view.sgml:
4664         * doc/reference/tmpl/rb-query-creator-private.sgml:
4665         * doc/reference/tmpl/rb-query-creator.sgml:
4666         * doc/reference/tmpl/rb-rating-helper.sgml:
4667         * doc/reference/tmpl/rb-rating.sgml:
4668         * doc/reference/tmpl/rb-recorder.sgml:
4669         * doc/reference/tmpl/rb-refstring.sgml:
4670         * doc/reference/tmpl/rb-removable-media-manager.sgml:
4671         * doc/reference/tmpl/rb-removable-media-source.sgml:
4672         * doc/reference/tmpl/rb-search-entry.sgml:
4673         * doc/reference/tmpl/rb-shell-clipboard.sgml:
4674         * doc/reference/tmpl/rb-shell-glue.sgml:
4675         * doc/reference/tmpl/rb-shell-player-glue.sgml:
4676         * doc/reference/tmpl/rb-shell-player.sgml:
4677         * doc/reference/tmpl/rb-shell-preferences.sgml:
4678         * doc/reference/tmpl/rb-shell.sgml:
4679         * doc/reference/tmpl/rb-song-display-box.sgml:
4680         * doc/reference/tmpl/rb-song-info.sgml:
4681         * doc/reference/tmpl/rb-source-header.sgml:
4682         * doc/reference/tmpl/rb-source.sgml:
4683         * doc/reference/tmpl/rb-sourcelist-model.sgml:
4684         * doc/reference/tmpl/rb-sourcelist.sgml:
4685         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
4686         * doc/reference/tmpl/rb-statusbar.sgml:
4687         * doc/reference/tmpl/rb-stock-icons.sgml:
4688         * doc/reference/tmpl/rb-string-helpers.sgml:
4689         * doc/reference/tmpl/rb-thread.sgml:
4690         * doc/reference/tmpl/rb-tray-icon.sgml:
4691         * doc/reference/tmpl/rb-tree-dnd.sgml:
4692         * doc/reference/tmpl/rb-tree-model-sort.sgml:
4693         * doc/reference/tmpl/rb-util.sgml:
4694         * doc/reference/tmpl/rhythmdb-property-model.sgml:
4695         * doc/reference/tmpl/rhythmdb-query-model.sgml:
4696         * doc/reference/tmpl/rhythmdb-tree.sgml:
4697         * doc/reference/tmpl/rhythmdb.sgml:
4698         * macros/.cvsignore:
4699         * shell/Makefile.am:
4700         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
4701         (rb_source_finalize), (rb_source_set_property),
4702         (rb_source_get_property), (default_get_pixbuf),
4703         (_rb_source_show_popup):
4704         * sources/rb-source.h:
4705         Add support for gtk-doc in rhythmbox.
4706         Convert RBSource to use newer glib functions, such as add_private.
4707         Gives RBSource a default get_pixbuf implementation.
4709 2005-09-25  James Livingston  <jrl@ids.org.au>
4711         * NEWS: Update with about a months worth of changes
4713         * data/glade/song-info-multiple.glade:
4714         * data/glade/song-info.glade:
4715         * data/rhythmbox.schemas:
4716         * lib/rb-preferences.h:
4717         * rhythmdb/rhythmdb.h:
4718         * shell/rb-shell-player.c:
4719         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
4720         few remaining parts of autorating.
4722 2005-09-24  James Livingston  <jrl@ids.org.au>
4724         * shell/rb-shell.c: (rb_shell_constructor),
4725         (rb_shell_window_state_cb), (rb_shell_set_visibility),
4726         (rb_shell_window_configure_cb): store window state in the gconf keys,
4727         so that it gets used. Closes bugs 313893 and 137068.
4729 2005-09-20  James Livingston  <jrl@ids.org.au>
4731         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
4732         crash if the entry has a NULL string in a property
4733         
4734         * shell/rb-removable-media-manager.c:
4735         (rb_removable_media_manager_load_media): fix some memory leaks
4736         
4737         (rb_removable_media_manager_mount_volume),
4738         (rb_removable_media_manager_eject_medium_cb),
4739         (rb_removable_media_manager_cmd_eject_medium): use
4740         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
4741         
4742         * sources/rb-removable-media-source.c:
4743         (rb_removable_media_source_set_property),
4744         (rb_removable_media_source_get_property): use
4745         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
4747 2005-09-18  James Livingston  <jrl@ids.org.au>
4749         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
4750         column
4752         * data/glade/general-prefs.glade:
4753         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
4754         (rb_shell_preferences_column_check_changed_cb),
4755         (rb_shell_preferences_sync): add checkbox to control visibility
4756         of the column
4757         
4758         
4759         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4760         (save_entry):
4761         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
4762         (rhythmdb_prop_get_type):
4763         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
4764         was as "last played" is handled
4765         
4766         * sources/rb-library-source.c: (rb_library_source_constructor):
4767         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4768         Make the column show in the library and playlists
4769         
4770         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
4771         * widgets/rb-entry-view.h: add the column
4772         
4773         * widgets/rb-query-creator-properties.c: allow automatic playlists to
4774         be sorted by the column
4776 2005-09-16  James Livingston  <jrl@ids.org.au>
4778         * shell/rb-shell-player.c: (rb_shell_player_init),
4779         (rb_shell_player_do_previous_or_seek),
4780         (rb_shell_player_previous_button_cb),
4781         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
4782         (rb_shell_player_playpause_button_cb): Make the previous button act
4783         the same as the menu item. Fix an inversion of the "previous track or
4784         seek" logic.
4785         
4786         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4787         
4788         (rb_shell_player_playpause): make --play-pause stop source that can't
4789         be paused
4791 2005-09-15  James Livingston  <jrl@ids.org.au>
4793         * configure.ac: increase totem-plparser requirements to 1.1.5
4795         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
4796         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
4797         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
4798         use the newer playlist APIs to save the name of the playlist, and use
4799         the name of a loaded playlist.
4801         Closes bug 309817.
4803 2005-09-15  James Livingston  <jrl@ids.org.au>
4805         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4807         * shell/Makefile.am: stop some linker warnings
4809         * shell/main.c: (main): make --no-registration work with dbus
4811 2005-09-15  James Livingston  <jrl@ids.org.au>
4813         * daapsharing/rb-daap-sharing.c: (create_share):
4814         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
4815         reference sinking and counting issues that I caused.
4817 2005-09-15  James Livingston  <jrl@ids.org.au>
4819         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
4820         playing" icon in the "now playing" column header.
4822 2005-09-14  James Livingston  <jrl@ids.org.au>
4824         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
4825         daap shares, when sharing is turned off.
4827 2005-09-12  Bastien Nocera  <hadess@hadess.net>
4829         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
4830         the GConf value's default, especially for badly installed schema
4831         files
4833 2005-09-12  James Livingston  <jrl@ids.org.au>
4835         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
4837         Patch from Paolo Borelli <pborelli@katamail.com>
4839         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
4840         grip when maximised. Closes bug 316055.
4842 2005-09-11  James Livingston  <jrl@ids.org.au>
4844         Patch from William Jon McCann <mccann@jhu.edu>
4846         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
4847         subclass of GtkStatusbar instead of GtkHBox.
4848         (rb_statusbar_construct): Don't set border width.
4849         (rb_statusbar_init): Use resize grip.  Don't use
4850         markup.
4851         (set_statusbar_tooltip, unset_statusbar_tooltip) 
4852         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
4853         Connect tooltips for actions.
4854         (rb_statusbar_sync_status): Push new message to statusbar.
4855         (rb_statusbar_set_progress): Don't use markup.
4856         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
4857         flag here since it prevents actually showing or hiding.
4858         (rb_statusbar_sync_with_source): Push new message to statusbar.
4860 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
4862         * daapsharing/rb-daap-structure.c:
4863         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
4864         around debugging definition.
4866 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
4867         
4868         * daapsharing/rb-daap-structure.c:
4869         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
4870         type = version.
4872         * daapsharing/rb-daap-mdns.c/h:
4873         (resolve_cb): Updated mDNS resolve callback to send service-name &
4874         name (read from Machine Name in the TXT data or equal to service-name
4875         if not in TXT).
4877         * daapsharing/rb-daap-source.c:
4878         (rb_daap_source_class_init), (rb_daap_source_set_property), 
4879         (rb_daap_source_get_property), (rb_daap_source_new),
4880         (find_source_by_service_name), (resolve_cb), (browse_cb), 
4881         (stop_resolver), (start_browsing), (stop_browsing), 
4882         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
4883         and added 'host' and 'port' gobject properties.  Updated to use new
4884         mDNS resolve callback sending service-name & name arguments.
4886 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
4888         * daapsharing/rb-daap-mdns.c:
4889         (howl_strerror): New function to report errors from Howl
4890         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
4891         (get_sw_discovery), (get_avahi_client): Better error reporting from
4892         Howl & Avahi.
4894         * sources/rb-daap-source.:
4895         (start_browsing), (stop_browsing): Fixed a bug where browsing would
4896         not get started or stopped in some situations.
4897         
4898 2005-09-12  James Livingston  <jrl@ids.org.au>
4900         * shell/rb-removable-media-manager.c: add a missing include, that
4901         would stop compilation if ipod support wasn't turned on
4903 2005-09-11  James Livingston  <jrl@ids.org.au>
4905         * daapsharing/rb-daap-dialog.c: (encode_base64),
4906         (rb_daap_password_dialog_new_run),
4907         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
4908         it is no broken in to two pieces, and remove a use of a goto
4909         
4910         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
4911         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
4912         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
4913         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
4914         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
4915         memory leaks, and some code style things.
4916         
4917         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
4918         (rb_daap_share_init), (rb_daap_share_set_property),
4919         (rb_daap_share_dispose), (rb_daap_share_new),
4920         (rb_daap_share_get_property): make the DB and the playlist manager
4921         gobject properties.
4922         
4923         (message_add_standard_headers),
4924         (message_set_from_rb_daap_structure), (server_info_cb),
4925         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
4926         (server_cb), (add_db_entry), (db_entry_added_cb),
4927         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
4928         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
4929         style and use CONF_PREFIX in the gconf keys
4930         
4931         * daapsharing/rb-daap-sharing.c: (create_share),
4932         (enable_sharing_changed_cb), (share_name_changed_cb),
4933         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
4934         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
4935         (rb_daap_src_instance_init), (rb_daap_src_dispose),
4936         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
4937         (rb_daap_src_get_property), (rb_daap_src_getcaps),
4938         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
4939         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
4940         (rb_daap_src_get_time): Deal with gconf callbacks where the key
4941         hasn't actually changed, fix some memory leaks, code style and release
4942         gconf notifications when the object is destroyed.
4943         
4944         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
4945         (rb_daap_source_class_init), (rb_daap_source_init),
4946         (rb_daap_source_dispose), (rb_daap_source_set_property),
4947         (rb_daap_source_get_property), (rb_daap_source_new),
4948         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
4949         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
4950         (rb_daap_sources_init), (rb_daap_sources_shutdown),
4951         (rb_daap_source_activate), (rb_daap_source_disconnect),
4952         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
4953         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
4954         release gconf notifications, handle gconf callbacks where the key
4955         hasn't changed, make "real name" and "password protected" gobject
4956         properties, fix some code style and fix a memory leak.
4958 2005-09-11  James Livingston  <jrl@ids.org.au>
4960         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4962         * shell/rb-playlist-manager.c:
4963         (rb_playlist_manager_save_playlists),
4964         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
4965         when we aren't supposed to. (Closes bug 315886)
4967 2005-09-11  James Livingston  <jrl@ids.org.au>
4969         * shell/rb-removable-media-manager.c:
4970         (rb_removable_media_manager_class_init),
4971         (rb_removable_media_manager_init),
4972         (rb_removable_media_manager_dispose),
4973         (rb_removable_media_manager_set_property),
4974         (rb_removable_media_manager_get_property),
4975         (rb_removable_media_manager_new),
4976         (rb_removable_media_manager_load_media),
4977         (rb_removable_media_manager_volume_mounted_cb),
4978         (rb_removable_media_manager_volume_unmounted_cb),
4979         (rb_removable_media_manager_mount_volume),
4980         (rb_removable_media_manager_unmount_volume),
4981         (rb_removable_media_manager_source_deleted_cb),
4982         (rb_removable_media_manager_append_media_source),
4983         (rb_removable_media_manager_set_uimanager),
4984         (rb_removable_media_manager_eject_medium_cb),
4985         (rb_removable_media_manager_cmd_eject_medium):
4986         * shell/rb-removable-media-manager.h:
4987         * sources/rb-removable-media-source.c:
4988         (rb_removable_media_source_class_init),
4989         (rb_removable_media_source_init),
4990         (rb_removable_media_source_dispose),
4991         (rb_removable_media_source_set_property),
4992         (rb_removable_media_source_get_property), (impl_get_pixbuf),
4993         (impl_delete_thyself):
4994         * sources/rb-removable-media-source.h: Add the four files that I
4995         somehow managed not to add to cvs in the last commit. Oops.
4997 2005-09-11  James Livingston  <jrl@ids.org.au>
4999         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
5000         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
5001         
5002         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5003         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
5004         removable-media-manager on startup, and handle creation of sources.
5005         
5006         * sources/rb-ipod-source.h:
5007         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
5008         (rb_ipod_source_init), (rb_ipod_source_constructor),
5009         (rb_ipod_source_dispose), (rb_ipod_source_new),
5010         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
5011         the iPod source over to the removable media framework.
5012         
5013         * sources/rb-library-source.c: (paned_size_allocate_cb),
5014         (rb_library_source_get_paned_key): fix a potential bug is a
5015         library-derived source doesn't have a paned-key
5017 2005-09-11  Bastien Nocera  <hadess@hadess.net>
5019         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
5020         mp3 when we can't get the suffix of a file (Closes: #315941)
5022 2005-09-10  James Livingston  <jrl@ids.org.au>
5024         * configure.ac: fix the mdns tests, so that it doesn't complain about
5025         not finding one, if daap support isn't being compiled in
5027 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
5029         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
5031         * daapsharing/rb-daap-dialog.c:
5032         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
5033         HIG compliancy & images.
5035         * daapsharing/rb-daap-mdns.c:
5036         (browse_cb), (resolve_cb): Better detection of local services.  
5037         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
5038         Howl's limitations.  Fix the way collision handling is done under
5039         Avahi.
5041         * daapsharing/rb-daap-share.c:
5042         (publish_cb): Better name collision handling (at least for Avahi).
5044 2005-09-10  James Livingston  <jrl@ids.org.au>
5046         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
5047         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
5048         preferences more HIG compliant (Closes #315889)
5049         
5050         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
5051         list of files to be translated
5053 2005-09-10  James Livingston  <jrl@ids.org.au>
5055         * configure.ac: fix it so that --enable-daap=no works
5056         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
5057         uninstalled
5059 2005-09-10  James Livingston  <jrl@ids.org.au>
5061         Patch from Christophe Fergeau <teuf@gnome.org>
5063         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
5064         the ipod code.
5066 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
5067         * README.daap: Updating documentation
5069 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
5070         * AUTHORS: Added myself.
5072         * daapsharing/rb-daap-connection.c:
5073         (connection_login), (rb_connection_new): Reorganized password
5074         handling.
5076         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
5078         * shell/rb-shell.c:
5079         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
5081         * sources/rb-daap-source.c:
5082         (rb_daap_source_activate): Better error handling when we are unable to
5083         connect.
5084         
5085 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
5086         * README.daap: Fixed some terminology.
5088         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
5089         New --with-mdns=auto|howl|avahi flag to specify.
5091         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
5092         name collision dialogs.
5094         * daapsharing/rb-daap-connection.c:
5095         (connection_get_password), (build_message), (http_get)
5096         (connection_login): Ask for & use a password if the share demands it.
5098         * daapsharing/rb-daap-connection.h: Changed prototype of
5099         rb_daap_connection_new.
5100         
5101         * daapsharing/rb-daap-mdns.c: 
5102         (resolve_cb): Better detection of your own music share so it doesn't 
5103         appear in the sourcelist.
5105         * daapsharing/rb-daap-share.c:
5106         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
5107         that start on any available port.
5109         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
5111         * sources/rb-daap-source.c:
5112         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
5113         (browse_cb): Handle passworded shares. Resolve the host immediately
5114         instead of when activated.
5115         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
5116         (rb_daap_source_new): New GConf keys for UI state.
5117         (rb_daap_source_activate): Use RBPlaylistSource instead of
5118         RBDAAPPlaylistSource
5119         
5120         * sources/rb-daap-playlist-source.c/h: Removed
5122         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
5123         if the playlist is local (i.e. not DAAP or iPod).
5124         
5125         * shell/rb-playlist-manager.c:
5126         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
5127         wouldn't get saved if the last playlist hadn't changed.  Only save
5128         local playlists.
5129         
5130 2005-09-09  James Livingston  <jrl@ids.org.au>
5132         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
5133         iPod preferences pane, as it already uses the browser views as the
5134         library.
5136 2005-09-09  James Livingston  <jrl@ids.org.au>
5138         * sources/rb-library-source.c: (rb_library_source_finalize),
5139         (rb_library_source_constructor): fix gconf monitoring of library
5140         preference keys.
5141         * sources/rb-library-source.h: remove declaration of function that
5142         does not exist
5144 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
5146         * player/rb-player-gst.c:
5147         (rb_player_set_time): Fix seeking in daap streams.
5149 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
5151         * data/rhythmbox.schemas: Turn music share browsing on by default.
5153 2005-09-07  James Livingston  <jrl@ids.org.au>
5155         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
5157 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
5158         * player/rb-player-gst.c: 
5159         (rb_player_get_time): Fix for extra << & == that accidentally made
5160         it in.
5162         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
5163         
5164 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
5165         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
5166         it in last time.  Sorry.
5168 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
5169         
5170         * player/rb-player-gst.c:
5171         (rb_player_get_time): Fix a small crash appearing when
5172         the uri isn't set in the player, but rb_player_get_time() is
5173         still called.
5175         * configure.ac: Also check for libsoup 2.4, which is what ships with
5176         Gnome 2.12.
5178         * po/POTFILES.in: Added music sharing files that have translatable 
5179         strings.
5181         * README.daap: New file explaining "How Music Sharing Works"  
5183 2005-09-06  Bastien Nocera  <hadess@hadess.net>
5185         * daapsharing/.cvsignore: added
5187 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
5189         * daapsharing/*: Music sharing library.
5190         
5191         * sources/rb-daap-source.c/h: Music share RBSource.
5192         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
5194         * configure.ac: --enable-daap flag to turn on music sharing. Requires
5195         libsoup and a mutlicast DNS implementation (howl or avahi).
5197         * data/rhythmbox.schemas: New GConf keys for music sharing.
5199         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
5200         source right click menu.
5202         * player/rb-player-gst.c: Changes to properly play & seek in remote
5203         music share files.
5205         * shell/rb-playlist-manager.c/h:
5206         (rb_playlist_manager_get_playlists): New function to get a GList * of
5207         the playlists.
5208         (rb_playlist_manager_save_playlists): Don't save music share playlists
5209         and fixed a GObject reference leak.
5211         * shell/rb-shell.c/h:
5212         (rb_shell_append_source): No longer a local function.  Now takes a
5213         parent RBSource * argument, NULL to append a toplevel source.
5214         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
5215         source (useful for disconnecting from remote music share,
5216         specifically).
5217         (rb_shell_quit): Stop music sharing/browsing.
5218         (rb_shell_playlist_added_cb): Work with tree source structure.
5219         (rb_shell_get_property): "playlist-manager" property accessor.
5220         (rb_shell_class_init): New "playlist-manager" property.
5221         (rb_shell_construor): Append sources as toplevel sources.  Initialize
5222         daap sharing/browsing.
5223         (rb_shell_select_source): Notify source of activation/deactivation.
5225         * shell/rb-shell-prefernces.c: Music sharing preferences.
5227         * sources/rb-source.c/h: New activate, deactivate and disconnect
5228         class functions.  Activate & deactivate are notification style 
5229         functions that will tell a source when it is selected/unselected.
5230         Disconnect can be hooked up to a UI object to disconnect the source.
5232         * sources/rb-sourcelist-model.c:
5233         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
5234         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
5235         append a toplevel source.
5237 2005-09-05  James Livingston  <jrl@ids.org.au>
5239         * rhythmdb/rhythmdb-query-model.c:
5240         (rhythmdb_query_model_entry_changed_cb),
5241         (rhythmdb_query_model_do_reorder): Update the query model's totals if
5242         the duration of filesize of an entry changes.  Emit the row-changed
5243         signals that I forgot to put back in, when I was doing query sorting.
5245         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
5246         out "0 minutes" or "0 bytes".
5248 2005-09-04  James Livingston  <jrl@ids.org.au>
5250         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
5251         remove a leftover bit of the "internal-name" property of sources.
5253 2005-09-03  James Livingston  <jrl@ids.org.au>
5255         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
5256         extraneous debug message
5257         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
5258         crasher would affect any library-derived sources (which was also a
5259         memory leak).
5261 2005-09-02  Colin Walters  <walters@verbum.org>
5263         * configure.ac: Fix sytnax error.
5265         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
5266         code to disable minimization icons - need to figure out
5267         why it doesn't work...
5269 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
5271         * data/glade/song-info-multiple.glade:
5272         * data/glade/song-info.glade:
5273         * widgets/rb-song-info.c: (rb_song_info_constructor):
5274         Add a mnemonic to the newly added "Automatically rate" label
5275         in the properties dialog and use a bold typeface like all the 
5276         other labels in the dialog. (Closes bug 315089)
5278 2005-09-03  James Livingston  <jrl@ids.org.au>
5280         * sources/rb-library-source.c: (rb_library_source_class_init),
5281         (rb_library_source_finalize), (rb_library_source_constructor),
5282         (rb_library_source_set_property), (rb_library_source_get_property),
5283         (impl_get_paned_key), (paned_size_allocate_cb),
5284         (rb_library_source_state_prefs_sync), (impl_show_popup),
5285         (rb_library_source_get_paned_key):
5286         * sources/rb-library-source.h: Allow sources derived from
5287         RBLibrarySource to use different gconf keys for sort order, browser
5288         visibility and browser pane position. Fix a crasher if a derived
5289         source overrides _get_pixbuf.
5291 2005-09-02  Colin Walters  <walters@verbum.org>
5293         * shell/rb-shell.c (rb_shell_set_visibility): Move
5294         hint setting which seems to avoid races more.
5295         
5296 2005-09-03  James Livingston  <jrl@ids.org.au>
5298         * shell/rb-shell.c: fix compilation with iPod support enabled
5299         
5300 2005-09-02  Colin Walters  <walters@verbum.org>
5302         * shell/rb-shell.c (struct RBShellPrivate): Add
5303         idle_hide_mainwindow_id.
5304         (rb_shell_constructor): Move taskbar skipping hint into
5305         rb_shell_set_visibility.
5306         (idle_hide_mainwindow): New function.
5307         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
5308         racy hack to avoid rb appearing in taskbar when minimized.
5310 2005-09-01  Colin Walters  <walters@verbum.org>
5312         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
5314         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
5315         from gtkstatusicion.c.
5317         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
5319         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
5320         TrayShowWindow entry.
5321         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
5322         (rb_tray_icon_constructor): Create action group here.
5323         (rb_tray_icon_finalize): Destroy action group.
5324         (rb_tray_icon_set_property): Don't take an action group.
5325         (rb_tray_icon_new): Ditto.
5326         (tray_popup_position_menu): Some mostly boilerplate code
5327         to position menu.
5328         (rb_tray_icon_button_press_event_cb): Position menu.
5329         (rb_tray_icon_get_geom): New function used for the shell
5330         to set minimization hints.
5332         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
5334         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
5335         (struct RBShellPrivate): Change visible to iconified.
5336         (set_icon_geometry): New function from Søren Sandmann to
5337         tell Metacity where to draw the minimization animiation.
5338         (rb_shell_window_state_cb): Update iconified.
5339         (rb_shell_get_visibility): New function to say whether
5340         or not we're currently visible.
5341         (rb_shell_set_visibility): Update to minimize to
5342         tray or present as appropriate.
5343         (rb_shell_window_delete_cb): On window close, just
5344         minimize to tray if we're deleted.
5345         (rb_shell_set_window_title): Kill old notification code.
5346         (rb_shell_toggle_visibility): Nwe function.
5347         (rb_shell_cmd_toggle_visibility): Call it.
5348         (rb_shell_constructor): Skip the taskbar.
5349         (tray_destroy_cb): Better debugging.
5350         
5351 2005-09-01  Colin Walters  <walters@verbum.org>
5353         * data/ui/rhythmbox-ui.xml: Add MusicClose.
5355         * configure.ac: Enable bonobo by default.
5356         
5357 2005-09-01  Colin Walters  <walters@verbum.org>
5359         * configure.ac: Default to old art.  Add macros subdir.
5361         * Makefile.am (SUBDIRS): Add macros.
5363         * macros/Makefile.am: New.
5364         
5365 2005-09-01  Colin Walters  <walters@verbum.org>
5367         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
5368         rb-shell-player.xml.
5370         * remote/dbus/rb-remote-dbus.h: Deleted.
5371         
5372         * remote/dbus/Makefile.am: Delete all the junk, just dist
5373         rb-print-playing.py and rb-set-rating.py.
5375         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
5377         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
5379 2005-09-02  James Livingston  <jrl@ids.org.au>
5381         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
5382         file from cvs
5384         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
5385         (rb_shell_constructor): Patches from Jonathan Matthew
5386         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
5387         a crash when using "browse this artist".
5389 2005-08-31  Colin Walters  <walters@verbum.org>
5391         * configure.ac: Add --with-old-art configure switch.  Also
5392         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
5393         but it doesn't work.
5395         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
5396         Don't use eel_create_colorized_pixbuf for new art.
5397         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
5399         * data/art-clearlooks: New artwork.
5400         
5401 2005-08-31  Colin Walters  <walters@verbum.org>
5403         * shell/main.c (main): Fix Bastien's commit to continue to focus
5404         the window with GTK+ 2.8 at least.
5405         
5406 2005-08-31  Colin Walters  <walters@verbum.org>
5408         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
5409         is already loaded.
5411         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
5413 2005-08-31  Bastien Nocera  <hadess@hadess.net>
5415         * README: remove mentions of the xine-lib backend
5416         * shell/main.c: (main): make it compilable with gtk+ < 2.8
5418 2005-08-30  Colin Walters  <walters@verbum.org>
5420         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
5421         Make non-visible sources insensitive.
5422         
5423 2005-08-30  Colin Walters  <walters@verbum.org>
5425         * shell/rb-shell.c: Don't use GConf for selected source; it's
5426         confusing to have the selected source change after startup,
5427         and since we don't save other things it's not worth saving this.
5429         * sources/rb-playlist-source.c:
5430         * sources/rb-library-source.c:
5431         * sources/rb-iradio-source.c:
5432         * sources/rb-ipod-source.c: Delete internal-name property usage.
5433         * sources/rb-source.c: Delete internal-name property.
5435         * data/rhythmbox.schemas: Delete selected_source.
5436         
5437 2005-08-30  Colin Walters  <walters@verbum.org>
5439         * sources/rb-sourcelist.c: Make playing source bold instead of
5440         displaying a pixbuf; it's much less ugly.
5441         
5442 2005-08-30  Colin Walters  <walters@verbum.org>
5444         * sources/rb-source.c:
5445         * sources/rb-source.h: New virtual method try_playlist.
5447         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
5448         impl_try_playlist.
5449         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
5450         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
5451         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
5452         need to.
5453         (stations_view_drag_data_received_cb): Don't check for iradio uris;
5454         in theory we should though...
5456         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
5457         list in rb_shell_construct now.
5458         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
5459         RBiPodSource.
5460         (rb_shell_constructor): Create library, iradio, ipod here.
5461         (rb_shell_source_deleted_cb): Use source directly instead of
5462         indirecting through type.
5463         (rb_shell_sync_selected_source): Ditto.
5464         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
5465         from the type instead of special-casing.
5466         (rb_shell_guess_type_for_uri) 
5467         (rb_shell_add_uri)
5468         (handle_one_uri_with_possible_metadata): New functions.
5469         (rb_shell_load_uri): Refactor to allow loading playlists again,
5470         also use other URI infrastructure.
5472         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
5473         (rb_shell_player_error): Always set entry error on error, instead
5474         of depending on EOF behavior.
5476         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
5477         to just invoke rb_shell_add_uri.
5478         (rb_playlist_manager_parse_file): Return error instead of tossing
5479         up dialog box directly.
5480         (load_playlist_response_cb): Display error here.
5481         (add_uri_to_playlist): Delete.
5482         (handle_playlist_entry_into_playlist_cb): Renamed to
5483         handle_playlist_entry_cb.
5485         * shell/rb-playlist-manager.h: Add error, update prototype.
5487         * lib/rb-file-helpers.c:
5488         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
5490 2005-08-29  Colin Walters  <walters@verbum.org>
5492         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
5493         if entry already exists.  Use rhythmdb_entry_set_uninserted.
5495         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
5496         needlessly duping string, and use rhythmdb_entry_set_uninserted.
5497         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
5499         * shell/rb-shell.h (enum RBShellError): Add some more errors.
5500         Prototype rb_shell_set_song_property.
5502         * shell/rb-shell.xml: Export setSongProperty.
5504         * shell/rb-shell.c (rb_shell_set_song_property): New function.
5505         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
5506         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
5508         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
5509         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
5510         want to notify of the change.
5511         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
5513         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
5514         logic error; idle functions would be enqueued for each set.
5515         (rhythmdb_entry_set): Fix assertion logic error.
5517         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
5518         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
5519         Return if the entry already exists.
5520         
5521 2005-08-29  Colin Walters  <walters@verbum.org>
5523         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
5524         "inserted" member which we use to keep track of
5525         whether or not an entry is in the DB.  Prototype
5526         rhythmdb_entry_set_uninserted.
5528         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
5529         flag.
5530         (rhythmdb_entry_insert): Assert entry is not already inserted.
5531         (rhythmdb_process_metadata_load): Update to call _set_uninserted
5532         just after creating entry.
5533         (rhythmdb_entry_set): Document, and fail on uninserted entries.
5534         (rhythmdb_entry_set_nonotify): Ditto.
5535         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
5536         entries.
5537         (rhythmdb_entry_set_internal): Change notify flag to
5538         notify_if_inserted.  Also move notification after assertions.
5540         Update all existing callers of rhythmdb_entry_set_internal
5541         to give TRUE for notify_if_inserted; this should be what
5542         we want but may be an efficiency hit.
5543         
5544 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
5546         * shell/rb-shell-player.c: (rb_shell_player_init),
5547         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
5548         (rb_shell_player_set_playing_source_internal),
5549         (rb_shell_player_sync_with_selected_source): Notify the player when an
5550         entry has updated the title, album or artist field, and resync the big
5551         display.
5552         
5553         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
5554         * sources/rb-library-source.c: (rb_library_source_class_init),
5555         (impl_get_config_widget):
5556         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
5557         * sources/rb-source.c:
5558         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
5559         get_album functions in rb-source and adapted other sources accordingly.
5560         
5561 2005-08-29  Colin Walters  <walters@verbum.org>
5563         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
5564         signal_change member.
5565         (threadsafe_entry_set): New function.
5566         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
5567         (rhythmdb_entry_set_nonotify): New function; just call
5568         threadsafe_entry_set with FALSE.
5569         (rhythmdb_entry_set_internal): Take a notify flag; if true
5570         add the change to our pending set.
5572         Also update all internal callers of rhythmdb_entry_set_internal
5573         to pass FALSE.  Some of these may be bugs however and need to
5574         pass TRUE...
5576         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
5577         rhythmdb_entry_set, and rename rhythmdb_entry_set to
5578         rhythmdb_entry_set_nonotify.
5580         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
5581         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
5583         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
5585         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
5586         * sources/rb-source.c (rb_source_update_play_statistics): 
5587         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
5588         * sources/rb-ipod-source.c (entry_set_string_prop) 
5589         (load_ipod_db_idle_cb): 
5590         * shell/rb-shell.c (rb_shell_set_rating_impl): 
5591         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
5592         (info_available_cb): 
5593         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
5594         (rb_station_properties_dialog_sync_entries): 
5595         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
5597         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
5598         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
5599         
5600 2005-08-29  Colin Walters  <walters@verbum.org>
5602         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
5604         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
5605         linking insanity.
5607         * widgets/rb-header.c (sanitize_string): New function, extracted
5608         from old info_url.  Be sure to always strip the string.
5609         (info_url): Rewrite to take artist/album, and generate a sane
5610         URL for them from last.fm, which is better than allmusic.com in
5611         that they support Rhythmbox, and have a *SANE* URL scheme.
5612         (artist_info_url, album_info_url): Delete.
5613         (rb_header_sync): Use info_url.
5615 2005-08-29  James Livingston  <jrl@ids.org.au>
5617         * sources/rb-source.c: (rb_source_search): Check to ensure that this
5618         is implemented before calling it. Many sources don't implement the
5619         method.
5621 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
5623         * data/glade/create-playlist.glade:  Cleanup the layout,
5624         and add a few more mnemonics.
5625         * shell/rb-playlist-manager.c:
5626         (rb_playlist_manager_cmd_load_playlist),
5627         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
5628         capitalization for window titles.
5629         * widgets/rb-query-creator-properties.c: Add mnemonics
5630         to checkbutton labels.
5631         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
5632         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
5634 2005-08-28  Colin Walters  <walters@verbum.org>
5636         * data/rhythmbox.schemas: Delete search_text for library
5637         and iradio; this isn't a persistent value anymore.
5638         Closes #313757.
5639         
5640         * sources/rb-source.h:
5641         * sources/rb-source.c: Delete impl_can_search.
5643         * sources/rb-iradio-source.c: Delete search_text usage.
5644         * sources/rb-library-source.c: Ditto.
5646         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
5647         search when source is set, and just do rb_source_search in
5648         rb_source_header_search_cb.
5650         * shell/rb-shell.c (rb_shell_append_source): Don't
5651         initiate search.
5653         * shell/Makefile.am: Don't dist dashboard.c.
5655 2005-08-28  Colin Walters  <walters@verbum.org>
5657         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
5658         
5659 2005-08-28  Colin Walters  <walters@verbum.org>
5661         * data/org.gnome.Rhythmbox.service.in: New.
5663         * data/Makefile.am: Install service file.
5665         * configure.ac: Define DBUS_SERVICES_DIR.
5667         * autogen.sh: Set ACLOCAL_FLAGS.
5669         * macros/acinclude.m4: New.
5670         
5671 2005-08-28  Colin Walters  <walters@verbum.org>
5673         Initial patch from Jonathan Matthew; closes 313684.
5675         * rhythmdb/rhythmdb-tree.c:
5676         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
5677         (save_entry): Return on error.
5678         (rhythmdb_tree_save): Handle error when saving the
5679         db; additionally, handle errors from fclose and unlink,
5680         and print error too.
5682 2005-08-28  Colin Walters  <walters@verbum.org>
5684         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
5685         extra _.
5686         
5687 2005-08-28  Colin Walters  <walters@verbum.org>
5689         * configure.ac: Change iPod support to --with-ipod;
5690           automatically enable it if we have HAL.  Try to
5691           support both HAL 0.5 and HAL 0.2.  Break out
5692           totem-plparser into its own check so later we
5693           can do version tests there too.
5694           Kill dashboard support.
5695         
5696         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
5697         to support HAL > 0.5, but preserve the old code for HAL < 0.5
5698         Closes #310017.
5699         
5700         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
5701         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
5703         * sources/Makefile.am: Also handle
5704         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
5706         * shell/dashboard.c: Delete; someone should just write a little
5707         python shim which lists on the D-BUS interface and writes the
5708         stuff to Dashboard.  Even better Dashboard should be ported
5709         to D-BUS and do the listening itself, perhaps on an abstract
5710         "org.gnome.MusicPlayer" interface or something.
5712         * shell/rb-shell.c: Kill dashboard support.
5714 2005-08-28  Colin Walters  <walters@verbum.org>
5716         * remote/dbus/rb-print-playing.py: New file.
5718 2005-08-28  Colin Walters  <walters@verbum.org>
5720         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
5721         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
5723         * shell/rb-shell-player.h:
5724         * shell/rb-shell-player.c: Add playing-uri-changed signal.
5725         * shell/rb-shell-player.xml: Export it.
5727         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
5728         (rb_shell_error_quark): New.
5730         * shell/rb-shell.h: Prototype.  Also add RBShellError.
5731         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
5732         
5733 2005-08-28  Colin Walters  <walters@verbum.org>
5735         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
5736         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
5737         bonobo_unlock.
5738         (rb_remote_bonobo_preinit): Lock setting moved here.
5739         (rb_remote_bonobo_init): From here.
5741         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
5742         Also invoke handle_cmdline in the right place.
5743         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
5744         GFunc.
5746 2005-08-28  James Livingston  <jrl@ids.org.au>
5748         * NEWS: keep the NEWS file up to date, so we don't have to do it all
5749         when 0.9.1 comes around.
5751 2005-08-28  James Livingston  <jrl@ids.org.au>
5753         * iradio/rb-new-station-dialog.c:
5754         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
5755         bug 314477.
5757 2005-08-28  James Livingston  <jrl@ids.org.au>
5759         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
5761         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
5762         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
5763         is a song is longer than 60 minutes. Closes bug 313311.
5765 2005-08-27  James Livingston  <jrl@ids.org.au>
5767         * data/glade/create-playlist.glade:
5768         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5769         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
5770         "minutes" as an option in the playlist limit menu.
5772         * rhythmdb/rhythmdb-query-model.c:
5773         (rhythmdb_query_model_class_init),
5774         (rhythmdb_query_model_set_property),
5775         (rhythmdb_query_model_get_property),
5776         (rhythmdb_query_model_update_limited_entries): Allow query models to
5777         have a time limit
5778         
5779         * shell/rb-playlist-manager.c:
5780         (rb_playlist_manager_set_automatic_playlist),
5781         (rb_playlist_manager_cmd_edit_automatic_playlist):
5782         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
5783         (rb_playlist_source_get_query), (impl_receive_drag),
5784         (rb_playlist_source_new_from_xml),
5785         (rb_playlist_source_save_to_xml),
5786         (rb_playlist_source_songs_sort_order_changed_cb),
5787         (rb_playlist_source_do_query):
5788         * sources/rb-playlist-source.h:
5789         * widgets/rb-query-creator.h: Allow playlists to be limited by time
5791 2005-08-27  James Livingston  <jrl@ids.org.au>
5793         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
5795         * configure.ac:
5796         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
5797         non-standard location. Closes bug 314640.
5799 2005-08-26  Colin Walters  <walters@verbum.org>
5800         
5801         Patch from Olivier Blin <oblin@mandriva.com>
5803         * widgets/eggnotificationbubble.c (draw_bubble): 
5804         Handle extreme-left case as well.
5805         
5806 2005-08-26  Colin Walters  <walters@verbum.org>
5808         * shell/rb-shell.c (idle_save_state): Don't do this.
5809         (rb_shell_construct): Remove idle calls to idle_save_state.
5810         We should save the playlists automatically when they're
5811         modified.
5812         (rb_shell_load_uri): Don't try to re-stat entry if it already
5813         exists.
5815         * shell/rb-shell-player.c: Keep track of entry we are attempting
5816         to play.
5817         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
5818         Don't double-free error.
5819         (rb_shell_player_play_entry): Signal errors.
5820         (rb_shell_player_entry_activated_cb): Ditto.
5821         (rb_shell_player_property_row_activated_cb): Ditto.
5822         (rb_shell_player_set_playing_source_internal): Unset attempted
5823         playing entry.
5824         (rb_shell_player_error): Refactor to be usable both sync and
5825         async.  Handle case where displayed entry differs from entry.
5826         (error_cb): Move GDK locking here.
5828         * shell/main.c (main): Drop most commandline arguments for D-BUS;
5829         people can just use dbus-send or python.  We only support focusing
5830         and loading files.
5831         (load_uri_args): New function, extracted from handle_cmdline.
5832         (dbus_load_uri, bonobo_load_uri): New functions.
5834         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
5835         appropriate.
5837         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
5838         * remote/dbus/rb-remote-dbus.c: Deleted.
5840         * player/rb-player-gst.c: Clear any pending idle handlers when we
5841         close the player.  Signal errors generated during open/play etc
5842         as synchronous errors.
5844         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
5845         
5846 2005-08-26  Colin Walters  <walters@verbum.org>
5848         * shell/rb-shell.c (rb_shell_present): Try harder.
5850 2005-08-26  Colin Walters  <walters@verbum.org>
5852         * shell/rb-shell.c (rb_shell_present): Try to handle
5853         GTK_MINOR_VERSION < 8.
5855 2005-08-26  James Livingston  <jrl@ids.org.au>
5857         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
5858         <pbrobinson@gmail.com>
5860 2005-08-26  Colin Walters  <walters@verbum.org>
5862         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
5864 2005-08-25  Colin Walters  <walters@verbum.org>
5866         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
5867         Delete.
5868         (rb_shell_player_do_next_with_rating): Move back into
5869         rb_shell_player_do_next.
5870         (rb_shell_player_entry_activated_cb): Remove call to
5871         rb_shell_player_auto_adjust_rating.
5872         (do_next_idle): Just call rb_shell_player_do_next.
5874         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
5876 2005-08-25  Colin Walters  <walters@verbum.org>
5878         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
5879         before gtk_window_present_with_time.
5880         
5881 2005-08-25  Colin Walters  <walters@verbum.org>
5883         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
5884         default.
5886         * shell/rb-shell.c (rb_shell_constructor): Adapted from
5887         rb_shell_construct.  This is so we only have to do g_object_new.
5888         (rb_shell_get_player): New function.
5889         (rb_shell_get_player_path): Ditto.
5890         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
5891         
5892         * shell/rb-shell.h: Prototype them.
5894         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
5895         export over D-BUS.
5896         (reemit_playing_signal): New function.
5897         (rb_shell_player_open_playlist_location): Use return values from
5898         rb_player_open, rb_player_close, etc. instead of checking "error".
5899         Return a gboolean on failure.
5900         (rb_shell_player_open_entry): Just open entry location, don't
5901         print to stderr.
5902         (rb_shell_player_play): Handle retval from rb_player_play.  Return
5903         a gboolean.
5904         (do_next_idle): Move logic for handling of end of playlist here.
5905         (rb_shell_player_set_playing_entry): Take a GError, return a
5906         gboolean.  Update to use gboolean return values.
5907         (rb_shell_player_do_previous): Delete lots of crazy duplicate
5908         logic.  Signal an error on end of playlist.  Also signal error if
5909         we're not playing.  Move heuristic for replaying the song into
5910         rb_shell_player_cmd_previous.
5911         (rb_shell_player_do_next_with_rating): Signal error on end of
5912         playlist.
5913         (rb_shell_player_do_next): Return errors.
5914         (rb_shell_player_cmd_previous): Heuristic for restarting song
5915         moved here; the idea is you generally only want that from the GUI.
5916         (rb_shell_player_cmd_play): Handle error.
5917         (rb_shell_player_playpause): Signal errors.
5918         (filter_mmkeys): Use rb_shell_player_cmd_previous and
5919         rb_shell_player_cmd_next in favor of the internal _do functions.
5920         
5921         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
5922         errors.  Update prototypes for above changes.
5924         * shell/main.c: More tightly integrate D-BUS; register various
5925         major singleton objects here.  Fix handle_cmdline so we only
5926         process extra arguments, not every argument.
5928         * shell/Makefile.am: Generate D-BUS glue headers.
5930         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
5931         into shell/main.c.  Now this file just acts as a client library.
5932         Not heavily tested.
5934         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
5935         Moved here.
5936         (rb_remote_bonobo_init): Move long CORBA rant here along with
5937         setting of lock functions.
5939         * player/rb-player-gst.c (rb_player_construct)
5940         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
5941         on error.
5943         * player/rb-player.h: Update prototypes.
5945         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
5946         rb-remote-bonobo.c.
5947         (rb_threads_init): Don't set gdk lock functions here.
5949 2005-08-25  James Livingston  <jrl@ids.org.au>
5951         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
5953         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
5954         * lib/rb-tree-dnd.h:
5955         * rhythmdb/rhythmdb-property-model.c:
5956         (rhythmdb_property_model_class_init),
5957         (rhythmdb_property_model_drag_source_init),
5958         (rhythmdb_property_model_iter_parent),
5959         (rhythmdb_property_model_row_draggable),
5960         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
5961         (rhythmdb_property_model_drag_data_get),
5962         (rhythmdb_property_model_enable_drag):
5963         * rhythmdb/rhythmdb-property-model.h:
5964         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
5965         (rb_playlist_manager_set_property), (append_new_playlist_source),
5966         (rb_playlist_manager_save_playlists):
5967         * shell/rb-shell.c: (rb_shell_construct),
5968         (sourcelist_drag_received_cb):
5969         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
5970         * sources/rb-playlist-source.c: (impl_receive_drag):
5971         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
5972         (rb_sourcelist_model_drag_dest_init),
5973         (rb_sourcelist_model_set_dnd_targets),
5974         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
5975         (rb_sourcelist_model_row_drop_position),
5976         (rb_sourcelist_model_get_drag_target),
5977         (rb_sourcelist_model_drag_data_get):
5978         * sources/rb-sourcelist-model.h:
5979         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
5980         (rb_sourcelist_init), (rb_sourcelist_get_property),
5981         (rb_sourcelist_selection_changed_cb):
5982         * sources/rb-sourcelist.h:
5983         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
5984         improve drag-n-drop support. Allow dragging of item from property
5985         views to the source list, to create new automatic playlists. Allow
5986         playlist re-ordering. Fix dragging from Rhythmbox to other
5987         applications. (Closes bug 147337)
5989 2005-08-24  Colin Walters  <walters@verbum.org>
5991         Patch from Olivier Blin <oblin@mandriva.com>
5993         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
5994         correctly in the case where the window is next to monitor edge.
5996 2005-08-24  James Livingston  <jrl@ids.org.au>
5998         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5999         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
6000         a gobject property to get the query model that backs the playlist.
6002 2005-08-24  James Livingston  <jrl@ids.org.au>
6004         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
6005         (handle_playlist_entry_into_playlist_cb),
6006         (rb_playlist_manager_playlist_entries_changed): Disable the "create
6007         audio cd" menu item when a non-playlist source is selected, or the
6008         playlist is empty. (Closes Bug 313253)
6010 2005-08-24  James Livingston  <jrl@ids.org.au>
6012         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
6013         Fix the playlist length checkso it doesn't report 0 for automatic
6014         playlists. This was stopping automati playlists being burnt to cd.
6016 2005-08-24  James Livingston  <jrl@ids.org.au>
6018         * configure.ac:
6019         * sources/rb-playlist-source-recorder.c: (burn_cd):
6020         * sources/rb-playlist-source.c:
6021         (rb_playlist_source_songs_sort_order_changed_cb):
6022         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
6023         more warnings that occur when compiling RPMs on Fedora.
6025 2005-08-24  James Livingston  <jrl@ids.org.au>
6027         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
6028         was stopping some distros gcc version compiling.
6030 2005-08-24  James Livingston  <jrl@ids.org.au>
6032         * NEWS:
6033         * data/glade/create-playlist.glade:
6034         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
6035         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
6036         (rhythmdb_query_free), (rhythmdb_query_serialize),
6037         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
6038         * rhythmdb/rhythmdb.h:
6039         * shell/rb-playlist-manager.c:
6040         (rb_playlist_manager_set_automatic_playlist),
6041         (rb_playlist_manager_cmd_edit_automatic_playlist):
6042         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
6043         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
6044         (impl_receive_drag), (rb_playlist_source_new_from_xml),
6045         (rb_playlist_source_save_to_xml),
6046         (rb_playlist_source_songs_sort_order_changed_cb),
6047         (rb_playlist_source_do_query):
6048         * sources/rb-playlist-source.h:
6049         * widgets/Makefile.am:
6050         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
6051         (rb_entry_view_set_sorting_order):
6052         * widgets/rb-query-creator-private.h:
6053         * widgets/rb-query-creator-properties.c:
6054         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
6055         (stringCriteriaGetWidgetData),
6056         (escapedStringCriteriaSetWidgetData),
6057         (escapedStringCriteriaGetWidgetData), (set_rating_score),
6058         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
6059         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
6060         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
6061         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
6062         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
6063         (relativeTimeCriteriaCreateWidget),
6064         (relativeTimeCriteriaSetWidgetData),
6065         (relativeTimeCriteriaGetWidgetData):
6066         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
6067         (rb_query_creator_class_init), (rb_query_creator_constructor),
6068         (rb_query_creator_dispose), (rb_query_creator_set_property),
6069         (rb_query_creator_get_property), (rb_query_creator_load_query),
6070         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
6071         (get_entry_for_property), (rb_query_creator_get_query),
6072         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
6073         (limit_toggled_cb), (lookup_row_by_widget),
6074         (remove_button_click_cb), (append_row),
6075         (get_property_index_from_proptype), (select_criteria_from_value),
6076         (property_option_menu_changed), (create_property_option_menu),
6077         (create_criteria_option_menu), (sort_option_menu_changed),
6078         (setup_sort_option_menu):
6079         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
6080         playlists. The two most notable improvements are 1) adding more
6081         properties to the query creator, making it much easier to add more in
6082         the future, and 2) allow playlists to be sorted, from the query editor
6083         if they gave limits, and by clicking on column headers if they don't.
6085         Files added: widgets/rb-query-creator-private.h,
6086         sources/rb-query-creator-properties.c
6088 2005-08-21  James Livingston  <jrl@ids.org.au>
6090         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
6091         error=NULL. This stops some crashes.
6093 2005-08-19  Colin Walters  <walters@verbum.org>
6095         Patch from Olivier Blin <oblin@mandriva.com>
6097         * widgets/eggnotificationbubble.c (force_window): Support top
6098         orientation.
6099         * widgets/eggnotificationbubble.h: Remove
6100         egg_notification_bubble_force_window from header.
6101         
6102 2005-08-18  James Livingston  <jrl@ids.org.au>
6104         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
6105         with the changes since then.
6107 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
6109         * shell/rb-shell-player.c: (rb_shell_player_init),
6110         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
6111         (rb_shell_player_volume_widget_changed_cb):
6112         * sources/rb-iradio-source.c:
6113         * sources/rb-library-source.c:
6114         * sources/rb-playlist-source.c:
6115         * widgets/Makefile.am:
6116         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
6117         (bacon_volume_button_class_init), (bacon_volume_button_init),
6118         (bacon_volume_button_dispose), (bacon_volume_button_new),
6119         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
6120         (bacon_volume_button_scroll), (bacon_volume_button_press),
6121         (cb_button_timeout), (cb_button_press), (cb_button_release),
6122         (bacon_volume_release_grab), (cb_dock_press),
6123         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
6124         (bacon_volume_scale_new), (bacon_volume_scale_press),
6125         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
6126         * widgets/bacon-volume.h:
6127         * widgets/rb-volume.c:
6128         * widgets/rb-volume.h:
6129           Use BaconVolumeButton (#300867).
6131 2005-08-17  James Livingston  <jrl@ids.org.au>
6133         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
6134         (rhythmdb_process_metadata_load): don't reset the First Seen time
6135         whenever we recheck the metadata.
6137 2005-08-17  James Livingston  <jrl@ids.org.au>
6139         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
6140         temporary workaround to stop crashes when trying to burn an empty
6141         playlist. Doesn't disable the menu item which is the better solution
6142         (Bug 313253).
6144 2005-08-15  James Livingston  <jrl@ids.org.au>
6146         * shell/rb-source-header.c: (rb_source_header_init),
6147         (rb_source_header_sync_control_state),
6148         (rb_source_header_search_activate_cb):
6149         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
6150         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
6151         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
6152         (rb_search_entry_init), (rb_search_entry_searching),
6153         (rb_search_entry_activate_cb):
6154         * widgets/rb-search-entry.h: Move focus to the entry view when user
6155         presses enter in the search box. Patch from Paolo Borelli
6156         <pborelli@katamail.com> (Closes bug 128110)
6158 2005-08-15  James Livingston  <jrl@ids.org.au>
6160         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
6161         (rb_playlist_manager_new_playlist):
6162         * shell/rb-playlist-manager.h:
6163         * shell/rb-shell.c: (rb_shell_construct),
6164         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
6165         the source list to be shown when a new playlist is created. (Closes
6166         bug 161935)
6168 2005-08-15  James Livingston  <jrl@ids.org.au>
6170         * widgets/rb-header.c: (rb_header_init),
6171         (rb_header_set_show_timeline): disable the seek slider, rather than
6172         hiding it, which more closely follows the HIG. (Closes bug 139102)
6174 2005-08-13  Colin Walters  <walters@verbum.org>
6176         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
6177         rb_shell_hidden_notify.
6178         (rb_shell_hidden_notify): Notify if the shell is hidden.
6179         (rb_shell_set_visibility_impl): Debug goo.
6181         * shell/rb-shell.h: Export rb_shell_hidden_notify.
6183         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
6184         when the user clicks on notification.
6186         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
6187         CD burn is complete.
6188         (rb_playlist_source_recorder_finalize): Unref shell.
6189         (rb_playlist_source_recorder_new): Take shell.
6191         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
6192         Pass shell to RBPlaylistSourceRecorder.
6193         
6194 2005-08-13  Colin Walters  <walters@verbum.org>
6196         * lib/rb-thread.c:
6197         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
6198           time to convert.
6200 2005-08-13  Colin Walters  <walters@verbum.org>
6202         * widgets/eggnotificationbubble.h:
6203         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
6204         * widgets/eggtrayicon.c:
6205         * widgets/eggtrayicon.h: Add notification API.
6206         * shell/rb-tray-icon.c:
6207         * shell/rb-tray-icon.h: Add notification API.
6208         * shell/rb-shell.c: Notify on song change.
6210 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
6212         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
6213         Correct an inversion of two lines causing NULL to be unreffed
6215 ============ Version 0.9.0
6217 2005-08-10  Bastien Nocera  <hadess@hadess.net>
6219         * configure.ac: 0.9.0, whee!
6220         * NEWS: badly updated
6221         * remote/bonobo/Makefile.am:
6222         * remote/bonobo/rb-remote-bonobo.h:
6223         * shell/Makefile.am:
6224         * shell/main.c: make distcheck fixes