2006-05-16 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blob41463102bb5d8a512edc5d2cebf453984c95694a
1 2006-05-16  James Livingston  <doclivingston@gmail.com>
3         * bindings/python/rhythmdb.defs:
4         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
5         some parametre defaults, so you don't have to pass None, False for the
6         sorting order.
8 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
10         * bindings/python/rhythmdb.defs:
11         * rhythmdb/rhythmdb-query-model.c:
12         (rhythmdb_query_model_compute_status_normal):
13         * rhythmdb/rhythmdb-query-model.h:
14         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
15         * rhythmdb/rhythmdb.h:
16         Change the various compute_status methods to accept a singular/plural
17         pair to use in the status string.
18         
19         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
20         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
21         * sources/rb-source.c: (default_get_status):
22         Call entries 'songs' by default, and 'episodes' in the podcast source.
23         Fixes #340227.
25 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
27         patch by:  Paul Drain
29         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
30         Fixes #341817.
32 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
34         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
35         Generate reorder maps correctly.
36         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
37         Scroll to the first entry from the old selection.
38         Fixes #322992.
40 2006-05-15  William Jon McCann  <mccann@jhu.edu>
42         * data/ui/rhythmbox-ui.xml:
43         * lib/rb-preferences.h:
44         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
45         (rb_shell_playlist_created_cb),
46         (rb_shell_view_sidepane_changed_cb),
47         (rb_shell_sync_sidepane_visibility),
48         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
49         (sidepane_visibility_changed_cb):
50         * sources/rb-podcast-source.c:
51         Convert sourcelist visibility to side-pane visbility.
52         Fixes #339733
54 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
56         * widgets/rb-header.c:
57         * widgets/rb-header.h: Stop RBHeader from referring to itself as
58         'player', and make it use the private data structure allocated for it.
60 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
62         * configure.ac: enable metadata helper with dbus < 0.35.
64 2006-05-15  James Livingston  <doclivingston@gmail.com>
66         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
68         * data/glade/song-info.glade:
69         * widgets/rb-song-info.c: (rb_song_info_construct_single),
70         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
71         (rb_song_info_update_filesize): Add the file size into the song info
72         window. Fixes bug 340861.
74 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
76         * bindings/python/rhythmdb.defs:
77         * rhythmdb/rhythmdb-query-model.c:
78         (rhythmdb_query_model_set_property),
79         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
80         * rhythmdb/rhythmdb-query-model.h:
81         Add a new method to chain query models without importing entries from
82         the parent into the child.  This is useful when the subset of entries
83         in the child can be more easily determined by running a query than by
84         filtering entries from the parent.
86         * bindings/python/rb.defs:
87         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
88         (rb_library_browser_set_property),
89         (rb_library_browser_get_property), (rb_library_browser_new),
90         (rebuild_child_model):
91         * widgets/rb-library-browser.h:
92         * sources/rb-auto-playlist-source.c:
93         (rb_auto_playlist_source_constructor):
94         * sources/rb-static-playlist-source.c:
95         (rb_static_playlist_source_constructor):
96         * sources/rb-browser-source.c: (rb_browser_source_constructor):
97         Use more efficient queries for constructing the browser query model
98         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
99         backend to optimise the query) and run new queries rather than
100         filtering entries from the parent.  Fixes #341402.
102         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
104 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
106         * configure.ac:
107         * shell/Makefile.am:
108         * shell/main.c: (main), (load_uri_args), (send_present_message),
109         (unregister_dbus_handler), (handle_dbus_message),
110         (register_dbus_handler):
111         Add minimal support for dbus 0.31 - 0.35.
113         * doc/reference/Makefile.am:
114         * doc/reference/rhythmbox.types:
115         * data/Makefile.am:
116         * data/GNOME_Rhythmbox.server.in:
117         * data/rhythmbox.pc.in:
118         * remote/*:
119         * remote/bonobo/*:
120         Remove remaining bonobo and generic remote interface files.
122 2006-05-14  James Livingston  <doclivingston@gmail.com>
124         * shell/rb-shell.c: (construct_widgets):
125         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
126         resize the browser and queue-sidebar section of their panes, unless
127         the other section is below the minimum size. Fixes bug 331927.
129 2006-05-13  James Livingston  <doclivingston@gmail.com>
131         * rhythmdb/rhythmdb-query-model.c:
132         (rhythmdb_query_model_class_init),
133         (rhythmdb_query_model_set_property),
134         (rhythmdb_query_model_get_property),
135         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
136         (rhythmdb_query_model_insert_into_main_list),
137         (rhythmdb_query_model_insert_into_limited_list),
138         (rhythmdb_query_model_do_reorder),
139         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
140         (rhythmdb_query_model_location_sort_func),
141         (rhythmdb_query_model_title_sort_func),
142         (rhythmdb_query_model_album_sort_func),
143         (rhythmdb_query_model_artist_sort_func),
144         (rhythmdb_query_model_genre_sort_func),
145         (rhythmdb_query_model_track_sort_func),
146         (rhythmdb_query_model_double_ceiling_sort_func),
147         (rhythmdb_query_model_ulong_sort_func),
148         (rhythmdb_query_model_date_sort_func),
149         (rhythmdb_query_model_string_sort_func):
150         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
151         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
152         "data destroy" property. Fixed bug 341543.
154         * bindings/python/rhythmdb.defs:
155         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
156         rhythmdb_query_model_set_sorting_order
158         * rhythmdb/rhythmdb-property-model.c:
159         (rhythmdb_property_model_drag_data_get):
160         * sources/rb-import-errors-source.c:
161         (rb_import_errors_source_constructor):
162         * sources/rb-missing-files-source.c:
163         (rb_missing_files_source_constructor):
164         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
165         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
166         * widgets/rb-entry-view.h: adapt to the above change.
168 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
170         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
171         (rhythmdb_tree_load):
172         Commit loaded entries in batches, rather than individually.  
173         More startup time reduction.
175 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
177         * doc/reference/Makefile.am: fix gtk-doc compilation
179 2006-05-12  William Jon McCann  <mccann@jhu.edu>
181         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
182         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
183         * plugins/artdisplay/artdisplay/Loader.py:
184         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
185         Only call the first artist the best match when album==Unknown.
186         Don't perform each query twice if album doesn't include "Vol N".
187         Fix searching for compilations.  Fix blacklisting.
188         Part of bug #307848
190 2006-05-12  William Jon McCann  <mccann@jhu.edu>
192         * Makefile.am:
193         * bindings/python/Makefile.am:
194         * bindings/python/rb.defs:
195         * bindings/python/rb.override:
196         * configure.ac:
197         * doc/reference/Makefile.am:
198         * plugins/Makefile.am:
199         * plugins/audioscrobbler/Makefile.am:
200         * plugins/ipod/Makefile.am:
201         * plugins/lirc/Makefile.am:
202         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
203         (impl_activate), (impl_deactivate):
204         * plugins/sample/Makefile.am:
205         * remote/Makefile.am:
206         * shell/Makefile.am:
207         * shell/main.c: (main), (main_shell_weak_ref_cb):
208         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
209         (rb_shell_get_property), (rb_shell_window_state_cb),
210         (idle_hide_mainwindow), (rb_shell_set_visibility),
211         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
212         (rb_shell_set_song_property):
213         * shell/rb-shell.h:
214         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
215         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
216         (rb_tray_icon_get_property), (rb_tray_icon_new),
217         (rb_tray_icon_button_press_event_cb),
218         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
219         (rb_tray_icon_show_window_changed_cb):
220         * shell/rb-tray-icon.h:
222         Remove bonobo, require DBUS.
223         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
224         Fixes #339720
226 2006-05-13  James Livingston  <doclivingston@gmail.com>
228         * bindings/python/rb.override: fix some pointer-type warnings
230 2006-05-12  James Livingston  <doclivingston@gmail.com>
232         * lib/rb-util.c: (rb_value_free):
233         * lib/rb-util.h: Add function to unset and free a GValue* that was
234         allocated in the heap.
236         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
237         the metadata hastable values
238         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
239         leak the metadata hashtable structure
240         * metadata/rb-metadata-dbus.c:
241         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
242         using g_strdup and then _take_string
244         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
245         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
246         stat something.
248         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
249         leak the encoded string
251         * widgets/rb-property-view.c:
252         (rb_property_view_selection_changed_cb): set some variables to have
253         inital values, because some code paths may not set them before we use
254         them.
256         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
257         don't have python warning into a debug message".
259 2006-05-10  William Jon McCann  <mccann@jhu.edu>
261         * data/rhythmbox.schemas: Use zero instead of null for
262         default burn speed.  Fixes #341283.
264 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
266         * bindings/python/rb.defs:
267         * widgets/rb-library-browser.c:
268         (rb_library_browser_get_property_view):
269         * widgets/rb-library-browser.h:
270         Add a method to get the property view for a given property.
272         * sources/rb-browser-source.c:
273         (rb_browser_source_cmd_choose_genre),
274         (rb_browser_source_cmd_choose_artist),
275         (rb_browser_source_cmd_choose_album):
276         Change the browser selection by changing the property view selection. 
277         Makes the selection change visible, fixing #331740.
279 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
281         * bindings/python/rb.defs:
282         * bindings/python/rb.override:
283         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
284         * shell/rb-statusbar.c: (*),
285         * sources/rb-import-errors-source.c: (impl_get_status):
286         * sources/rb-iradio-source.c: (impl_get_status):
287         * sources/rb-missing-files-source.c: (impl_get_status):
288         * sources/rb-source.c: (default_get_status),
289         (rb_source_get_status):
290         * sources/rb-source.h:
291         Allow sources to provide a progress value for the status bar.
292         Simplify status bar processing (much less polling).
293         Consider rhythmdb busy while it's still loading the database.
295         * daapsharing/rb-daap-connection.c: (*)
296         * daapsharing/rb-daap-connection.h:
297         * lib/rb-marshal.list:
298         * sources/rb-daap-source.c: (rb_daap_source_class_init),
299         (rb_daap_source_init), (connection_connecting_cb),
300         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
301         (rb_daap_source_get_status):
302         Provide status information for DAAP connections, and move processing
303         of large responses into a separate thread.
304         Fixes bugs #322020 and #338978.
306 2006-05-09  James Livingston  <doclivingston@gmail.com>
308         Split the artdisplay plugin into several files.
309         Fix loader and amazon-search re-use issues.
310         Add some better search heuristics.
312         * configure.ac:
313         * plugins/artdisplay/Makefile.am:
314         * plugins/artdisplay/artdisplay.py:
315         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
316         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
317         * plugins/artdisplay/artdisplay/Loader.py:
318         * plugins/artdisplay/artdisplay/Makefile.am:
319         * plugins/artdisplay/artdisplay/__init__.py:
321 2006-05-09  James Livingston  <doclivingston@gmail.com>
323         * sources/rb-browser-source.h: remove the _has_first_added_column
324         stuff since it isn't actually used anywhere. Sources that want it
325         should just add it themselves, as the library already does
327         * bindings/python/rb.defs:
328         * sources/rb-daap-source.c: (rb_daap_source_class_init):
329         * sources/rb-library-source.c: (rb_library_source_class_init):
330         * sources/rb-removable-media-source.c:
331         (rb_removable_media_source_class_init): Remove the remanants of the
332         above.
334 2006-05-09  James Livingston  <doclivingston@gmail.com>
336         * bindings/python/rb.defs:
337         * sources/rb-browser-source.h: remove a function that was declared in
338         the header, but not defined anywhere.
340 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
342         * plugins/artdisplay/.cvsignore:
343         * plugins/ipod/.cvsignore: Added.
345 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
347         * sources/rb-auto-playlist-source.c:
348         (rb_auto_playlist_source_new_from_xml):
349         Fix reading of older playlist files where all three limits were
350         specified so we take the first nonzero limit.  From #341053.
352 2006-05-09  James Livingston  <doclivingston@gmail.com>
354         * bindings/python/Makefile.am:
355         * bindings/python/rb.defs:
356         * bindings/python/rb.override: bind RBBrowserSource,
357         RBRemovableMediaSource and RBRemovableMediamanager.
359 2006-05-09  James Livingston  <doclivingston@gmail.com>
361         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
363         * data/glade/plugins.glade: make the plugin dialog look a bit better.
364         Fixes bug 339221.
366 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
368         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
369         Don't explode when trying to edit a query with no limit set.
371 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
373         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
374         Clear the should_queue flag when switching to a non-submittable entry,
375         so we don't submit songs that played for three seconds before
376         switching to a podcast episode.
378         * rhythmdb/rhythmdb-query-model.c
379         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
380         in the drag data list.
382 2006-05-08  James Livingston  <doclivingston@gmail.com>
384         * lib/rb-util.c: (rb_value_array_append_data):
385         * lib/rb-util.h: add function which is basically a combination of
386         G_VALUE_COLLECT and g_value_array_append.
388         * rhythmdb/rhythmdb-query-model.h:
389         * rhythmdb/rhythmdb-query-model.c:
390         (rhythmdb_query_model_class_init),
391         (rhythmdb_query_model_set_property),
392         (rhythmdb_query_model_get_property),
393         (rhythmdb_query_model_finalize),
394         (rhythmdb_query_model_update_limited_entries),
395         (rhythmdb_query_model_set_sort_order),
396         (rhythmdb_query_model_within_limit),
397         (rhythmdb_query_model_limit_type_get_type): Make query model limits
398         saner. Rather than having <count=N, time=N, size=N> we now have a
399         <type, value> pair. This will also make it much easier to add new
400         limit types in the future.
402         * shell/rb-playlist-manager.c:
403         (rb_playlist_manager_set_automatic_playlist),
404         (rb_playlist_manager_cmd_edit_automatic_playlist):
405         * sources/rb-auto-playlist-source.c:
406         (rb_auto_playlist_source_finalize),
407         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
408         (_save_write_ulong), (_save_write_uint64),
409         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
410         (rb_auto_playlist_source_set_query),
411         (rb_auto_playlist_source_get_query):
412         * sources/rb-auto-playlist-source.h:
413         * sources/rb-library-source.c:
414         (rb_library_source_add_child_source):
415         * sources/rb-psp-source.c: (visit_playlist_dirs):
416         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
417         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
418         * widgets/rb-query-creator.h: Adapt to the above change.
420 2006-05-08  James Livingston  <doclivingston@gmail.com>
422         * shell/rb-playlist-manager.c:
423         (rb_playlist_manager_cmd_edit_automatic_playlist):
424         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
425         (rb_auto_playlist_source_set_query),
426         (rb_auto_playlist_source_get_query): copy the query in the _get method
427         and free it in things calling that. Fixes a crasher.
429 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
431         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
432         Make entries on newly mounted volumes visible immediately, hiding them
433         later if they turn out to be missing.  Fixes #340068.
435 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
437         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
438         Ignore zip files and ignore errors for files we've decided to ignore.
440 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
442         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
443         Add missing }, should fix #340844.
445 2006-05-06  James Livingston  <doclivingston@gmail.com>
447         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
448         typo.
450 2006-05-06  James Livingston  <doclivingston@gmail.com>
452         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
453         that we work with libnotify >= 0.4
455 2006-05-06  James Livingston  <doclivingston@gmail.com>
457         patch by: Joe Barnett  <thejoe@gmail.com>
459         * configure.ac: check if we're using a version of libgpod that
460         supports the Motorola ROKR
462         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
463         for the db path, if we using the newer version.
465         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
467 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
469         * rhythmdb/rhythmdb-query-model.c:
470         (rhythmdb_query_model_drag_data_get):
471         Use playback URI, not location, for drag data.  Fixes #322597.
473 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
475         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
477 2006-05-03  James Livingston  <doclivingston@gmail.com>
479         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
480         (rb_add_id3_tagger), (rb_metadata_save):
481         Set the tags on the tagging element when it is
482         created, not during pipeline creation - which is required for
483         dynamically created elements.
485         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
486         support for using the "vorbistag" element to re-tag ogg vorbis files.
487         Fixes bug 339878.
489 2006-05-03  James Livingston  <doclivingston@gmail.com>
491         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
493         * plugins/artdisplay/artdisplay.py:
494         - Fix small bug callback of data loader getting overwritten on fast
495         connections.
496         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
497         Jonathan Matthew)
498         - Fix Rhythmbox UI blocking while loading/searching cover art
499         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
500         - Initial approach to allow additional "art search engines"
501         - Further modularization in a couple of places
502         - Minor fixes for empty entries (iradio, album, artist etc.)
504 2006-05-03  James Livingston  <doclivingston@gmail.com>
506         * shell/rb-playlist-manager.c:
507         (rb_playlist_manager_playlist_entries_changed),
508         (rb_playlist_manager_set_source): don't show the edit/delete/rename
509         options for non-local sources, rather than showing disabled ones.
511         * sources/rb-library-source.c: (add_child_sources_idle),
512         (rb_library_source_constructor), (rb_library_source_new),
513         (rb_library_source_library_location_changed),
514         (rb_library_source_add_child_source),
515         (rb_library_source_sync_child_sources): Create "child library" sources
516         when the user has multiple library locations set. Fixes bug 100552.
518 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
520         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
521         * plugins/sample/sample.rb-plugin.desktop.in:
522         Finish changing 'Author' to 'Authors'
523         
524         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
525         (rhythmdb_entry_import_error_get_type):
526         Implement get_playback_uri for import errors (returns NULL)
528         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
529         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
530         entry, rather than doing entry type checks.
532 2006-05-02  James Livingston  <doclivingston@gmail.com>
534         patch from Alessandro Decina  <alessandro@nnva.org>
536         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
537         the signal emission in the case of fatal-on-init errors. From bug
538         322268.
540 2006-05-02  James Livingston  <doclivingston@gmail.com>
542         * rhythmdb/rhythmdb.h:
543         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
544         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
545         (rhythmdb_entry_podcast_post_get_type),
546         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
547         virtual function to entry-types for getting the playback URI. From bug
548         330226.
550         * backends/gstreamer/rb-encoder-gst.c:
551         (create_pipeline_and_source), (extract_track):
552         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
553         to get the URI.
555 2006-05-02  James Livingston  <doclivingston@gmail.com>
557         patch by: Brian Cameron  <brian.cameron@sun.com>
559         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
560         340337.
562 2006-05-01  William Jon McCann  <mccann@jhu.edu>
564         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
565         instead of clear.  Use regex matching to strip "disc N"
566         from album.  Match titles in ProductName.  Perform
567         fallback queries including various artist compilations.
568         Include "us" locale.  Improve queries when artist or album
569         is unknown.  Use medium size image if large is unavailable.
571         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
572         William Jon McCann  <mccann@jhu.edu>
573         
574 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
576         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
577         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
578         (conjunctive_query): Sanity check.
579         (evaluate_conjunctive_subquery): 
580         Don't return TRUE immediately when a relative-time query criterion
581         matches.  Fixes #339972.
583 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
585         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
586         Don't crash if primary or secondary are NULL.
588 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
590         * doc/reference/Makefile.am: fix gtk-doc build yet again
592 2006-04-28  James Livingston  <doclivingston@gmail.com>
594         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
595         python console. Fixes bug 339934.
597 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
599         * rhythmdb/rhythmdb-property-model.c:
600         (rhythmdb_property_model_drag_data_get):
601         When creating uri list drag data, create a new query model based on
602         the query model the property model is attached to.  Makes the
603         resulting query use the right entry type and include the upstream
604         query criteria.  Fixes half of #327540.
606 2006-04-27  James Livingston  <doclivingston@gmail.com>
608         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
609         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
610         build fixes.
612 2006-04-27  James Livingston  <doclivingston@gmail.com>
614         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
616 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
618         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
619         (rb_playlist_manager_save_data),
620         (rb_playlist_manager_save_playlists):
621         * shell/rb-playlist-manager.h:
622         * shell/rb-shell.c: (rb_shell_sync_state),
623         (idle_save_playlist_manager):
624         Remove a bit more threading insanity from the playlist manager.
626 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
628         * shell/rb-playlist-manager.c: 
629         * shell/rb-playlist-manager.h:
630         Remove dead code, add gtk-doc, remove threading insanity (mostly).
631         
632         * shell/rb-shell.c: (rb_shell_sync_state),
633         (idle_save_playlist_manager), (construct_sources),
634         (rb_shell_select_source), (rb_shell_sync_party_mode):
635         Adjustments for above changes.
637 2006-04-26  William Jon McCann  <mccann@jhu.edu>
639         * sources/rb-browser-source.c (impl_browser_toggled):
640         Reset browser when hidden.  Fixes #339617.
642 2006-04-26  James Livingston  <doclivingston@gmail.com>
644         * backends/Makefile.am:
645         * backends/gstreamer/Makefile.am: work again with separated
646         built-roots
648 2006-04-26  James Livingston  <doclivingston@gmail.com>
650         * shell/rb-removable-media-manager.c:
651         (rb_removable_media_manager_set_uimanager): fix compilation with
652         -Werror and --enable-track-transfer.
654 2006-04-26  James Livingston  <doclivingston@gmail.com>
656         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
657         implementing class. In theory allows alternate player implementations
658         to be selected at run-time rather than compile-time. Fixes bug 338667.
660         * Makefile.am:
661         * backends/Makefile.am:
662         * backends/gstreamer/Makefile.am:
663         * backends/gstreamer/rb-player-gst.h:
664         * backends/rb-player.c: (rb_player_interface_init),
665         (rb_player_get_type), (rb_player_open), (rb_player_opened),
666         (rb_player_close), (rb_player_play), (rb_player_pause),
667         (rb_player_playing), (rb_player_set_volume),
668         (rb_player_get_volume), (rb_player_set_replaygain),
669         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
670         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
671         (_rb_player_emit_buffering), (_rb_player_emit_error),
672         (_rb_player_emit_tick), (rb_player_error_quark):
673         * player/Makefile.am:
674         * player/rb-player-gst.c: (rb_player_gst_class_init),
675         (rb_player_init), (tick_timeout), (rb_player_gst_init),
676         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
677         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
678         (process_tag), (found_tag_cb), (buffering_cb),
679         (rb_player_gst_bus_cb), (rb_player_gst_construct),
680         (rb_player_gst_new):
681         * player/rb-player.h:
682         * shell/Makefile.am:
683         * sources/rb-audiocd-source.c:
684         * widgets/Makefile.am:
685         * widgets/rb-header.c: (rb_header_class_init):
687 2006-04-26  James Livingston  <doclivingston@gmail.com>
689         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
690         don't try to download an episode if it couldn't be parsed. Fixes bug
691         339712.
693         * shell/rb-removable-media-manager.c:
694         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
695         Library" option when track transfer is disabled. Fixes bug 339728.
697 2006-04-26  James Livingston  <doclivingston@gmail.com>
699         * data/ui/Makefile.am:
700         * data/ui/daap-ui.xml:
701         * data/ui/rhythmbox-ui.xml:
702         * sources/rb-daap-source.c: (rb_daap_sources_init),
703         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
704         way that the ipod ui is. Fixes bug 339743.
706 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
708         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
709         (process_added_entries_cb), (process_deleted_entries_cb),
710         (rhythmdb_commit_internal): 
711         Combine the idle functions to emit entry-added and entry-deleted,
712         and combine as many invocations of same as possible.  Another
713         significant reduction in startup time.
714         
715         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
716         Delay the next call to rhythmdb_process_events if the queue is
717         empty or if we can't process any of the events in the queue because
718         the database is read only.
720         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
722 2006-04-25  William Jon McCann  <mccann@jhu.edu>
724         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
726         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
727         Don't special case errors quite so much.
729 2006-04-25  William Jon McCann  <mccann@jhu.edu>
731         * data/rhythmbox.schemas: Remove default speed.
733         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
734         Add n-c-b 2.15 support.  Make the default speed to slowest since
735         that is all that works reliably.
737 2006-04-25  William Jon McCann  <mccann@jhu.edu>
739         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
740         Fix compiler error from last commit.
742 2006-04-25  James Livingston  <doclivingston@gmail.com>
744         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
745         transcoding-related issues. From bug 322268.
747         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
748         don't emit the signal, since the object is being finalised, which os a
749         Bad Thing To Do.
751         (profile_bin_find_encoder), (get_profile_from_mime_type),
752         (transcode_track): find the encoding element by iterating looking for
753         element in the class Codec/Encoder/Audio rather than the one named
754         "enc".
756 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
758         * shell/rb-shell-player.xml:
759         * shell/rb-shell.xml:
760         Add signal argument information.  
761         Patch by Tim Moloney  <t.moloney@verizon.net>
763         * shell/rb-shell.c: (rb_shell_window_state_cb):
764         Use the right value for the visibility_changed signal.  Most of the
765         time, anyway.
767 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
769         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
770         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
771         (impl_create_configure_dialog):
772         * data/glade/audioscrobbler-prefs.glade:
773         * shell/rb-audioscrobbler.c (*):
774         * lib/rb-preferences.h:
775         * data/rhythmbox.schemas:
776         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
777         Add status information (# tracks submitted, # queued, last submit
778         time, result of last submission) to the plugin config window.
779         Remove 'enabled' setting, since it's easier to just disable the
780         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
781         nonexistant (so far) 'last.fm streaming' plugin.
782         
783         * help/C/rhythmbox.xml: Update documentation for last.fm profile
784         plugin
786         Fixes some of #325848.  We still don't provide a way to view the
787         submission queue.
789 2006-04-25  James Livingston  <doclivingston@gmail.com>
791         patch by: Anders Petersson  <demitar@worldforge.org>
793         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
794         the YY-MM-DD format.
796 2006-04-23  James Livingston  <doclivingston@gmail.com>
798         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
799         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
800         * bindings/python/override_common.h:
801         * bindings/python/rb.override: python binding fixes
803 2006-04-23  James Livingston  <doclivingston@gmail.com>
805         * shell/rb-statusbar.c: (rb_statusbar_finalize),
806         (rb_statusbar_sync_with_source),
807         (rb_statusbar_source_status_changed_cb): do the sync in an idle
808         callback, rather than immediately every time. Takes ~5% off my warm-cache
809         startup time.
811         * bindings/python/rhythmdb.defs: fix the types using for
812         RhythmDBEntryTypes.
814 2006-04-22  James Livingston  <doclivingston@gmail.com>
816         * data/ui/rhythmbox-ui.xml:
817         * shell/rb-shell.c:
818         * sources/rb-daap-source.c: (rb_daap_source_class_init),
819         (remove_source), (rb_daap_sources_init),
820         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
821         (rb_daap_source_disconnect):
822         * sources/rb-source.c: (rb_source_class_init),
823         (rb_source_deactivate):
824         * sources/rb-source.h: move the "disconnect" functionality from into
825         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
827 2006-04-22  James Livingston  <doclivingston@gmail.com>
829         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
830         actually get the translated strings for browser headers (they were
831         already marked as translatable). Fixes bug 339380.
833 2006-04-22  James Livingston  <doclivingston@gmail.com>
835         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
836         submission timeout when the object is finalised.
838         * bindings/python/Makefile.am:
839         * bindings/python/rb.defs:
840         * bindings/python/rb.override:
841         * bindings/python/rhythmdb.defs: fix some python binding stuff.
843         * widgets/rb-library-browser.c:
844         (rb_library_browser_construct_query), (rebuild_output_model),
845         (rebuild_child_model):
846         * widgets/rb-library-browser.h: change from GPtrArray to
847         RhythmDBQuery (which in C is the same thing).
849 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
851         * shell/rb-shell.c: (rb_shell_get_song_properties):
852         Don't try to include entry-type (or anything else not easily
853         marshallable) in the song properties hash table.
855         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
857         * sources/rb-playlist-source.c: (rb_playlist_source_init),
858         (rb_playlist_source_constructor): Fix entry-type initialization as
859         with previous commit.
861 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
863         * sources/rb-iradio-source.c: (rb_iradio_source_init),
864         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
865         * sources/rb-podcast-source.c: (rb_podcast_source_init),
866         (rb_podcast_source_constructor):
867         Set default values for entry-type after base class construction,
868         rather than in _init, because gobject will set the entry-type property
869         to NULL after _init if no value is provided.  Fixes #339206.
871 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
873         patch by: Gunnar Steinn Magnusson
875         * COPYING:
876         * backends/gstreamer/rb-encoder-gst.c:
877         * backends/gstreamer/rb-encoder-gst.h:
878         * backends/rb-encoder.c:
879         * backends/rb-encoder.h:
880         * bindings/python/override_common.c:
881         * bindings/python/override_common.h:
882         * daapsharing/rb-daap-connection.c:
883         * daapsharing/rb-daap-connection.h:
884         * daapsharing/rb-daap-dialog.c:
885         * daapsharing/rb-daap-dialog.h:
886         * daapsharing/rb-daap-mdns-browser-avahi.c:
887         * daapsharing/rb-daap-mdns-browser-howl.c:
888         * daapsharing/rb-daap-mdns-browser.h:
889         * daapsharing/rb-daap-mdns-publisher-avahi.c:
890         * daapsharing/rb-daap-mdns-publisher-howl.c:
891         * daapsharing/rb-daap-mdns-publisher.h:
892         * daapsharing/rb-daap-share.c:
893         * daapsharing/rb-daap-share.h:
894         * daapsharing/rb-daap-sharing.c:
895         * daapsharing/rb-daap-sharing.h:
896         * daapsharing/rb-daap-src.c:
897         * daapsharing/rb-daap-src.h:
898         * daapsharing/rb-daap-structure.c:
899         * daapsharing/rb-daap-structure.h:
900         * help/C/fdl-appendix.xml:
901         * help/es/es.po:
902         * help/ja/fdl-appendix.xml:
903         * iradio/rb-new-station-dialog.c:
904         * iradio/rb-new-station-dialog.h:
905         * iradio/rb-station-properties-dialog.c:
906         * iradio/rb-station-properties-dialog.h:
907         * lib/mkdtemp.c:
908         * lib/mkdtemp.h:
909         * lib/rb-cut-and-paste-code.c:
910         * lib/rb-cut-and-paste-code.h:
911         * lib/rb-debug.c:
912         * lib/rb-debug.h:
913         * lib/rb-file-helpers.c:
914         * lib/rb-file-helpers.h:
915         * lib/rb-glade-helpers.c:
916         * lib/rb-glade-helpers.h:
917         * lib/rb-preferences.h:
918         * lib/rb-proxy-config.c:
919         * lib/rb-stock-icons.c:
920         * lib/rb-stock-icons.h:
921         * lib/rb-thread.c:
922         * lib/rb-thread.h:
923         * lib/rb-tree-dnd.c:
924         * lib/rb-tree-dnd.h:
925         * lib/rb-util.c:
926         * lib/rb-util.h:
927         * metadata/rb-metadata-common.c:
928         * metadata/rb-metadata-dbus-client.c:
929         * metadata/rb-metadata-dbus-service.c:
930         * metadata/rb-metadata-dbus.c:
931         * metadata/rb-metadata-dbus.h:
932         * metadata/rb-metadata-gst.c:
933         * metadata/rb-metadata.h:
934         * metadata/sj-error.c:
935         * metadata/sj-error.h:
936         * metadata/sj-metadata-musicbrainz.c:
937         * metadata/sj-metadata-musicbrainz.h:
938         * metadata/sj-metadata.c:
939         * metadata/sj-metadata.h:
940         * metadata/sj-structures.c:
941         * metadata/sj-structures.h:
942         * metadata/test-metadata.c:
943         * player/rb-player-gst.c:
944         * player/rb-player.h:
945         * player/rb-recorder-gst.c:
946         * player/rb-recorder.h:
947         * plugins/artdisplay/artdisplay.py:
948         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
949         * plugins/ipod/rb-ipod-plugin.c:
950         * plugins/lirc/rb-lirc-plugin.c:
951         * plugins/pythonconsole/pythonconsole.py:
952         * plugins/rb-module.c:
953         * plugins/rb-module.h:
954         * plugins/rb-plugin-manager.c:
955         * plugins/rb-plugin-manager.h:
956         * plugins/rb-plugin.c:
957         * plugins/rb-plugin.h:
958         * plugins/rb-plugins-engine.c:
959         * plugins/rb-plugins-engine.h:
960         * plugins/rb-python-module.c:
961         * plugins/rb-python-module.h:
962         * plugins/rb-python-plugin.c:
963         * plugins/rb-python-plugin.h:
964         * plugins/sample/rb-sample-plugin.c:
965         * po/de.po:
966         * po/el.po:
967         * po/en_CA.po:
968         * po/eu.po:
969         * po/fi.po:
970         * po/fr.po:
971         * po/it.po:
972         * po/ja.po:
973         * po/mk.po:
974         * po/pt_BR.po:
975         * po/ru.po:
976         * podcast/rb-feed-podcast-properties-dialog.c:
977         * podcast/rb-feed-podcast-properties-dialog.h:
978         * podcast/rb-new-podcast-dialog.c:
979         * podcast/rb-new-podcast-dialog.h:
980         * podcast/rb-podcast-manager.c:
981         * podcast/rb-podcast-manager.h:
982         * podcast/rb-podcast-parse.c:
983         * podcast/rb-podcast-parse.h:
984         * podcast/rb-podcast-properties-dialog.c:
985         * podcast/rb-podcast-properties-dialog.h:
986         * remote/bonobo/libmain.c:
987         * remote/bonobo/rb-nautilus-context-menu.c:
988         * remote/bonobo/rb-nautilus-context-menu.h:
989         * remote/bonobo/rb-remote-bonobo.c:
990         * remote/bonobo/rb-remote-bonobo.h:
991         * remote/rb-remote-client-proxy.c:
992         * remote/rb-remote-client-proxy.h:
993         * remote/rb-remote-common.c:
994         * remote/rb-remote-common.h:
995         * remote/rb-remote-proxy.c:
996         * remote/rb-remote-proxy.h:
997         * rhythmdb/gsequence.c:
998         * rhythmdb/gsequence.h:
999         * rhythmdb/rb-refstring.c:
1000         * rhythmdb/rb-refstring.h:
1001         * rhythmdb/rhythmdb-gda.c:
1002         * rhythmdb/rhythmdb-gda.h:
1003         * rhythmdb/rhythmdb-private.h:
1004         * rhythmdb/rhythmdb-property-model.c:
1005         * rhythmdb/rhythmdb-property-model.h:
1006         * rhythmdb/rhythmdb-query-model.c:
1007         * rhythmdb/rhythmdb-query-model.h:
1008         * rhythmdb/rhythmdb-query-results.c:
1009         * rhythmdb/rhythmdb-query-results.h:
1010         * rhythmdb/rhythmdb-tree.c:
1011         * rhythmdb/rhythmdb-tree.h:
1012         * rhythmdb/rhythmdb.c:
1013         * rhythmdb/rhythmdb.h:
1014         * shell/main.c:
1015         * shell/rb-audioscrobbler.c:
1016         * shell/rb-audioscrobbler.h:
1017         * shell/rb-history.c:
1018         * shell/rb-history.h:
1019         * shell/rb-play-order-linear-loop.c:
1020         * shell/rb-play-order-linear-loop.h:
1021         * shell/rb-play-order-linear.c:
1022         * shell/rb-play-order-linear.h:
1023         * shell/rb-play-order-queue.c:
1024         * shell/rb-play-order-queue.h:
1025         * shell/rb-play-order-random-by-age-and-rating.c:
1026         * shell/rb-play-order-random-by-age-and-rating.h:
1027         * shell/rb-play-order-random-by-age.c:
1028         * shell/rb-play-order-random-by-age.h:
1029         * shell/rb-play-order-random-by-rating.c:
1030         * shell/rb-play-order-random-by-rating.h:
1031         * shell/rb-play-order-random-equal-weights.c:
1032         * shell/rb-play-order-random-equal-weights.h:
1033         * shell/rb-play-order-random.c:
1034         * shell/rb-play-order-random.h:
1035         * shell/rb-play-order-shuffle.c:
1036         * shell/rb-play-order-shuffle.h:
1037         * shell/rb-play-order.c:
1038         * shell/rb-play-order.h:
1039         * shell/rb-playlist-manager.c:
1040         * shell/rb-playlist-manager.h:
1041         * shell/rb-removable-media-manager.c:
1042         * shell/rb-removable-media-manager.h:
1043         * shell/rb-shell-clipboard.c:
1044         * shell/rb-shell-clipboard.h:
1045         * shell/rb-shell-player.c:
1046         * shell/rb-shell-player.h:
1047         * shell/rb-shell-preferences.c:
1048         * shell/rb-shell-preferences.h:
1049         * shell/rb-shell.c:
1050         * shell/rb-shell.h:
1051         * shell/rb-source-header.c:
1052         * shell/rb-source-header.h:
1053         * shell/rb-statusbar.c:
1054         * shell/rb-statusbar.h:
1055         * shell/rb-tray-icon.c:
1056         * shell/rb-tray-icon.h:
1057         * sources/rb-audiocd-source.c:
1058         * sources/rb-audiocd-source.h:
1059         * sources/rb-auto-playlist-source.c:
1060         * sources/rb-auto-playlist-source.h:
1061         * sources/rb-browser-source.c:
1062         * sources/rb-browser-source.h:
1063         * sources/rb-daap-source.c:
1064         * sources/rb-daap-source.h:
1065         * sources/rb-generic-player-source.c:
1066         * sources/rb-generic-player-source.h:
1067         * sources/rb-import-errors-source.c:
1068         * sources/rb-import-errors-source.h:
1069         * sources/rb-ipod-source.c:
1070         * sources/rb-ipod-source.h:
1071         * sources/rb-iradio-source.c:
1072         * sources/rb-iradio-source.h:
1073         * sources/rb-library-source.c:
1074         * sources/rb-library-source.h:
1075         * sources/rb-missing-files-source.c:
1076         * sources/rb-missing-files-source.h:
1077         * sources/rb-nokia770-source.c:
1078         * sources/rb-nokia770-source.h:
1079         * sources/rb-play-queue-source.c:
1080         * sources/rb-play-queue-source.h:
1081         * sources/rb-playlist-source-recorder.c:
1082         * sources/rb-playlist-source-recorder.h:
1083         * sources/rb-playlist-source.c:
1084         * sources/rb-playlist-source.h:
1085         * sources/rb-playlist-xml.h:
1086         * sources/rb-podcast-source.c:
1087         * sources/rb-podcast-source.h:
1088         * sources/rb-psp-source.c:
1089         * sources/rb-psp-source.h:
1090         * sources/rb-removable-media-source.c:
1091         * sources/rb-removable-media-source.h:
1092         * sources/rb-source.c:
1093         * sources/rb-source.h:
1094         * sources/rb-sourcelist-model.c:
1095         * sources/rb-sourcelist-model.h:
1096         * sources/rb-sourcelist.c:
1097         * sources/rb-sourcelist.h:
1098         * sources/rb-static-playlist-source.c:
1099         * sources/rb-static-playlist-source.h:
1100         * tests/test-cd.c:
1101         * tests/test-cmdline.c:
1102         * tests/test-rhythmdb-indexing.c:
1103         * tests/test-rhythmdb-query.c:
1104         * tests/test-rhythmdb-simple.c:
1105         * tests/test-rhythmdb-tree-deserialization.c:
1106         * tests/test-rhythmdb-tree-serialization.c:
1107         * tests/test-rhythmdb-view.c:
1108         * widgets/bacon-volume.c:
1109         * widgets/bacon-volume.h:
1110         * widgets/disclosure-widget.c:
1111         * widgets/disclosure-widget.h:
1112         * widgets/eel-gconf-extensions.c:
1113         * widgets/eel-gconf-extensions.h:
1114         * widgets/eggtrayicon.c:
1115         * widgets/eggtrayicon.h:
1116         * widgets/libsexy/sexy-icon-entry.c:
1117         * widgets/libsexy/sexy-icon-entry.h:
1118         * widgets/rb-cell-renderer-pixbuf.c:
1119         * widgets/rb-cell-renderer-pixbuf.h:
1120         * widgets/rb-cell-renderer-rating.c:
1121         * widgets/rb-cell-renderer-rating.h:
1122         * widgets/rb-dialog.c:
1123         * widgets/rb-dialog.h:
1124         * widgets/rb-druid.c:
1125         * widgets/rb-druid.h:
1126         * widgets/rb-entry-view.c:
1127         * widgets/rb-entry-view.h:
1128         * widgets/rb-header.c:
1129         * widgets/rb-header.h:
1130         * widgets/rb-library-browser.c:
1131         * widgets/rb-library-browser.h:
1132         * widgets/rb-property-view.c:
1133         * widgets/rb-property-view.h:
1134         * widgets/rb-query-creator-private.h:
1135         * widgets/rb-query-creator-properties.c:
1136         * widgets/rb-query-creator.c:
1137         * widgets/rb-query-creator.h:
1138         * widgets/rb-rating-helper.c:
1139         * widgets/rb-rating-helper.h:
1140         * widgets/rb-rating.c:
1141         * widgets/rb-rating.h:
1142         * widgets/rb-search-entry.c:
1143         * widgets/rb-search-entry.h:
1144         * widgets/rb-song-display-box.c:
1145         * widgets/rb-song-display-box.h:
1146         * widgets/rb-song-info.c:
1147         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
1149 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
1151         patch by: Gareth Murphy, James Livingston
1153         * bindings/python/rb.defs:
1154         * configure.ac:
1155         * plugins/Makefile.am:
1156         * plugins/artdisplay/Makefile.am:
1157         * plugins/artdisplay/artdisplay.py:
1158         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
1159         * plugins/rb-python-module.c: (rb_python_module_init_python):
1160         * shell/rb-shell.c: (construct_widgets),
1161         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
1162         (rb_shell_add_widget), (rb_shell_remove_widget),
1163         (rb_shell_ui_location_get_type):
1164         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
1166 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1168         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
1169         Fix build failure caused by the combination of the previous two
1170         commits.
1172 2006-04-20  James Livingston  <doclivingston@gmail.com>
1174         patch by: Christophe Fergeau  <teuf@gnome.org> to make
1175         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
1176         table to the entry types, which will allow us to get rid of some of
1177         the "if entry type == WHATEVER" code everywhere. From bug 
1179         * bindings/python/rb.defs:
1180         * bindings/python/rb.override:
1181         * bindings/python/rhythmdb.defs:
1182         * bindings/python/rhythmdb.override:
1183         * daapsharing/rb-daap-connection.c:
1184         (rb_daap_connection_class_init), (rb_daap_connection_init),
1185         (rb_daap_connection_set_property),
1186         (rb_daap_connection_get_property):
1187         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
1188         * podcast/rb-podcast-manager.c:
1189         (rb_podcast_manager_entry_downloaded),
1190         (rb_podcast_manager_subscribe_feed),
1191         (rb_podcast_manager_db_entry_added_cb),
1192         (rb_podcast_manager_db_entry_deleted_cb),
1193         (rb_podcast_manager_insert_feed):
1194         * rhythmdb/rhythmdb-private.h:
1195         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
1196         (conjunctive_query):
1197         * rhythmdb/rhythmdb.c: (sync_entry_changed),
1198         (process_added_entries_cb), (rhythmdb_entry_allocate),
1199         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1200         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1201         (rhythmdb_process_metadata_load),
1202         (rhythmdb_process_file_created_or_modified), (action_thread_main),
1203         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
1204         (write_encoded_gvalue), (read_encoded_property),
1205         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
1206         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
1207         (rhythmdb_entry_iradio_get_type),
1208         (rhythmdb_entry_podcast_post_get_type),
1209         (rhythmdb_entry_podcast_feed_get_type),
1210         (rhythmdb_entry_import_error_get_type),
1211         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1212         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
1213         (rhythmdb_entry_type_get_type):
1214         * rhythmdb/rhythmdb.h:
1215         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
1216         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1217         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
1218         (rb_shell_player_entry_activated_cb), (info_available_cb):
1219         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
1220         (rb_shell_register_entry_type_for_source),
1221         (rb_shell_playing_from_queue_cb),
1222         (rb_shell_playing_entry_changed_cb),
1223         (rb_shell_player_stream_song_changed_cb),
1224         (rb_shell_jump_to_entry_with_source),
1225         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
1226         (handle_playlist_entry_cb), (rb_shell_load_uri):
1227         * shell/rb-shell.h:
1228         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
1229         * sources/rb-browser-source.c: (rb_browser_source_class_init),
1230         (rb_browser_source_init), (rb_browser_source_set_property),
1231         (rb_browser_source_get_property):
1232         * sources/rb-ipod-source.c: (impl_paste):
1233         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1234         (rb_iradio_source_init), (rb_iradio_source_set_property),
1235         (rb_iradio_source_get_property):
1236         * sources/rb-library-source.c: (impl_paste):
1237         * sources/rb-missing-files-source.c:
1238         (rb_missing_files_source_class_init),
1239         (rb_missing_files_source_init),
1240         (rb_missing_files_source_set_property),
1241         (rb_missing_files_source_get_property):
1242         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
1243         (rb_playlist_source_init), (rb_playlist_source_set_property),
1244         (rb_playlist_source_get_property):
1245         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1246         (rb_podcast_source_init), (rb_podcast_source_set_property),
1247         (rb_podcast_source_get_property):
1248         * sources/rb-static-playlist-source.c:
1249         (rb_static_playlist_source_add_location_internal):
1251 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1253         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1254         (rhythmdb_add_import_error_entry),
1255         (entry_volume_mounted_or_unmounted),
1256         (rhythmdb_volume_unmounted_cb):
1257         When a volume is unmounted, delete import errors for files stored on
1258         it.  When a volume is mounted, stat all tracks stored on it, rather
1259         than assuming they're present.  Fixes #339023.
1261 2006-04-20  James Livingston  <doclivingston@gmail.com>
1263         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
1264         browser visibility for non-gconf-using sources (like playlists). Part
1265         of bug 118862.
1267         * shell/rb-source-header.c: (sourcestate_free),
1268         (rb_source_header_init), (rb_source_header_finalize),
1269         (rb_source_header_source_weak_destroy_cb): switch from storing the
1270         search string to storing a "source state" structure
1272         (rb_source_header_set_source_internal),  (rb_source_state_sync),
1273         (rb_source_header_search_cb), (rb_source_header_clear_search),
1274         (rb_source_header_disclosure_toggled_cb): as well as storing the
1275         string, stop the visibility of the source's browser.
1277 2006-04-20  James Livingston  <doclivingston@gmail.com>
1279         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
1280         library entries back into the library. Fixes bug 339065.
1282 2006-04-20  James Livingston  <doclivingston@gmail.com>
1284         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
1285         only exists in glib 2.10.
1287 2006-04-20  James Livingston  <doclivingston@gmail.com>
1289         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
1290         Solaris. From bug 335318.
1292         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
1293         * shell/rb-audioscrobbler.c:
1294         * sources/rb-psp-source.c:
1296 2006-04-20  James Livingston  <doclivingston@gmail.com>
1298         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
1299         issues for some people.
1301         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
1302         accidental s/suffix/prefix/
1304         * sources/rb-auto-playlist-source.c:
1305         (rb_auto_playlist_source_set_query): fix the invered logic preventing
1306         you from sorting playlists which aren't limited by time.
1308 2006-04-19  James Livingston  <doclivingston@gmail.com>
1310         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
1311         duration or bitrate back to the file, since they are properties of the
1312         audio data, not tags we can set.
1314 2006-04-19  James Livingston  <doclivingston@gmail.com>
1316         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
1317         of libtool, to fix builds which are using a different version. Fixes
1318         bug 338996.
1320         * shell/Makefile.am:
1322 2006-04-19  James Livingston  <doclivingston@gmail.com>
1324         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
1325         to sync data to a file which is uneditable.
1327 2006-04-19  James Livingston  <doclivingston@gmail.com>
1329         patch by: Gavin Stewart  <gavin@brokentrain.net>
1331         * data/glade/playlist-save.glade:
1332         * data/glade/Makefile.am:
1333         * po/POTFILES.in: add the playlist saving dialog.
1335         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
1336         (export_set_extension_cb), (filter_get_export_filter_label),
1337         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
1338         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
1339         formats (PLS and M3U at the moment). Fixes bug 316295.
1341 2006-04-19  James Livingston  <doclivingston@gmail.com>
1343         * shell/rb-playlist-manager.c:
1344         (rb_playlist_manager_set_source_internal): don't let you edit remove
1345         auto playlists.
1347         * sources/rb-auto-playlist-source.c:
1348         (rb_auto_playlist_source_set_query): correctly handle time-limited
1349         playlists.
1351 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1353         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
1355         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
1356         Don't crash if the queue file contains no newlines.
1357         Fixes #338924.
1359 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
1361         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
1362         condition
1364 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
1366         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
1367         case. Moreover, they may not exist yet, so take that into account when
1368         generating the iPod filename.
1370 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
1372         * sources/rb-ipod-source.c: added support for drag and drop from the
1373         library to the iPod (only enabled if --enable-track-transfer was
1374         passed to configure)
1376 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
1378         * configure.ac:
1379         * lib/rb-marshal.list:
1380         * lib/rb-util.c: 
1381         * lib/rb-util.h:
1382         * plugins/Makefile.am:
1383         * plugins/ipod/Makefile.am:
1384         * plugins/ipod/ipod.rb-plugin.desktop.in:
1385         * plugins/ipod/rb-ipod-plugin.c: 
1386         * plugins/rb-plugin.h:
1387         * shell/Makefile.am:
1388         * shell/rb-removable-media-manager.c:
1389         * shell/rb-removable-media-manager.h:
1390         * shell/rb-shell.c: 
1391         * sources/Makefile.am:
1392         * sources/rb-ipod-source.c: 
1393         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
1394         various iPod related files should be moved to plugins/ipod/ now...
1396 2006-04-17  James Livingston  <doclivingston@gmail.com>
1398         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
1399         and "vic".
1401         * help/C/figures/rb-iradio-main.png:
1402         * help/C/figures/rb-notification-area-menu.png:
1403         * help/C/figures/rb-notification-window.png:
1404         * help/C/figures/rb-notification-zone.png:
1405         * help/C/figures/rb-podcast-main.png:
1406         * help/C/figures/rb-statusbar.png:
1407         * help/C/figures/rb-volume-changer.png:
1408         * help/C/figures/rb-window-small.png:
1409         * help/C/figures/rb-window.png:
1410         * help/C/rhythmbox.xml:
1412 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1414         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
1415         more obviously.
1417         * metadata/rb-metadata-gst.c: (rb_metadata_init),
1418         (make_undecodable_error), (rb_metadata_gst_error_cb),
1419         (rb_metadata_gst_new_decoded_pad_cb),
1420         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
1421         Ignore really small files (<4kB) for which typefinding fails.
1422         Always link decoded pads from decodebin to fakesink.
1423         Shut the pipeline down by posting an error on the bus when decodebin
1424         emits unknown-type signals.  Fixes bug #338062.
1426 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1428         * shell/rb-shell.c: (rb_shell_load_uri):
1429         Fix glaring mistakes in previous commit: actually pass arguments to
1430         rb_debug, and specify the right entry type when adding a new iradio
1431         station so we don't try to add local playlist files to the library.
1433 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1435         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
1436         before trying to add them, as iradio streams often fail rb_uri_exists().
1438         * shell/rb-shell-player.c: (notify_playing_idle),
1439         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
1440         (open_location_thread), (rb_shell_player_open_location),
1441         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
1442         (eos_cb):  When playing an iradio stream using a playlist, keep a list
1443         of all the stream URLs, and try them in turn.  If we get through the
1444         whole playlist too quickly, error out.  Various other fixes that make
1445         iradio work a lot better.
1447         * shell/rb-shell.c: (add_to_library_response_cb),
1448         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
1449         (handle_playlist_entry_cb), (rb_shell_load_uri):
1450         Add playlists containing streams as iradio stations.  If the playlist
1451         is local, add each stream URL, but if the playlist is remote, just add
1452         the playlist URL.
1453         
1454         * sources/rb-iradio-source.c: (new_station_location_added):
1455         Add new station URLs as-is, rather than parsing the playlist and
1456         adding the streams.
1457         
1458         * rhythmdb/rhythmdb-query-model.c:
1459         (rhythmdb_query_model_entry_changed_cb),
1460         (rhythmdb_query_model_emit_reorder),
1461         (rhythmdb_query_model_do_reorder):
1462         Emit row-changed notifications when an entry changes but is not
1463         reordered.
1465         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
1466         Display the playback error icon when the entry has an error and
1467         there's nothing else to display.
1468         
1469         Fixes bug #320336 and some of #324402.
1470         
1471 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1473         * sources/rb-ipod-source.c: use a GHashTable for the
1474         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
1475         time, this fixes compilation breakage for people not having libgpod
1476         CVS HEAD
1478 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
1480         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1482         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
1483         (rb_podcast_manager_insert_feed):
1484         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
1485         fixes bug 321945
1487 2006-04-16  James Livingston  <doclivingston@gmail.com>
1489         * sources/rb-library-source.c:
1490         (rb_library_source_library_location_cb): return FALSE like we are
1491         supposed to, not void.
1493         patch by: FreeBSD GNOME Project
1494         * configure.ac: fix some bash-isms.
1496         patch by: Pawel Worach  <pawel.worach@gmail.com>
1497         * metadata/rb-metadata-dbus-client.c:
1498         * rhythmdb/rhythmdb-query-model.c:
1499         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
1502 2006-04-16  James Livingston  <doclivingston@gmail.com>
1504         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
1505         for transcoding to RBEncoderGst.
1507         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
1508         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
1509         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
1510         (add_decoding_pipeline), (encoder_match_mime),
1511         (get_profile_from_mime_type), (extract_track), (transcode_track),
1512         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
1514 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1516         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
1517         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
1518         load_ipod_db_idle_cb to a new separate function
1520 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1522         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
1523         source
1525 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1527         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
1528         variables
1530 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1532         * data/ui/Makefile.am:
1533         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
1534         menu
1535         * lib/rb-util.c: check if the widget we got from the UI manager isn't
1536         NULL before using it as a popup menu
1537         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
1538         'eject' an iPod
1540 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
1542         * sources/rb-ipod-source.c: when hal tells us a partition is on an
1543         iPod, check if it contains an iPod database before using it (in case
1544         the iPod was repartitionned somehow). Should fix bug #325034
1546 2006-04-16  Steve Frécinaux  <steve@istique.net>
1548         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
1550         * data/Makefile.am: install application icon into the default theme.
1552         * data/rhythmbox.desktop.in: don't specify icon file extension.
1553         
1554         * shell/main.c: (main): set default window icon from theme.
1555         
1556         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
1557         code concerning window icon, and fix leak by unreferencing the about
1558         logo pixbuf once it's not used anymore.
1560 2006-04-16  James Livingston  <doclivingston@gmail.com>
1562         * configure.ac: bump version to 0.9.4
1563         * NEWS: update NEWS and 0.9.4 insert translations
1565 2006-04-16  James Livingston  <doclivingston@gmail.com>
1567         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
1568         namespace automatically.
1570 2006-04-16  James Livingston  <doclivingston@gmail.com>
1572         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
1574         * doc/reference/Makefile.am:
1575         * doc/reference/rhythmbox.types: make distcheck work again
1577         * doc/reference/tmpl/eggnotificationbubble.sgml:
1578         * doc/reference/tmpl/eggtrayicon.sgml:
1579         * doc/reference/tmpl/rb-debug.sgml:
1580         * doc/reference/tmpl/rb-entry-view.sgml:
1581         * doc/reference/tmpl/rb-enums.sgml:
1582         * doc/reference/tmpl/rb-metadata.sgml:
1583         * doc/reference/tmpl/rb-new-station-dialog.sgml:
1584         * doc/reference/tmpl/rb-playlist-manager.sgml:
1585         * doc/reference/tmpl/rb-refstring.sgml:
1586         * doc/reference/tmpl/rb-shell-player.sgml:
1587         * doc/reference/tmpl/rb-shell-preferences.sgml:
1588         * doc/reference/tmpl/rb-shell.sgml:
1589         * doc/reference/tmpl/rb-song-info.sgml:
1590         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
1591         * doc/reference/tmpl/rb-statusbar.sgml:
1592         * doc/reference/tmpl/rhythmbox-unused.sgml:
1593         * doc/reference/tmpl/rhythmdb-query-model.sgml:
1594         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
1596 2006-04-16  James Livingston  <doclivingston@gmail.com>
1598         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
1600         * po/LINGUAS: don't split the variable across two lines, as it breaks
1601         the build. Fixes bug 338625.
1603 2006-04-15  James Livingston  <doclivingston@gmail.com>
1605         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
1606         add a "sourcelist-model" gobject property.
1608 2006-04-14  William Jon McCann  <mccann@jhu.edu>
1610         * .cvsignore:
1611         * backends/.cvsignore:
1612         * backends/gstreamer/.cvsignore:
1613         * bindings/.cvsignore:
1614         * bindings/python/.cvsignore:
1615         * help/es/.cvsignore:
1616         * metadata/.cvsignore:
1617         * plugins/.cvsignore:
1618         * plugins/audioscrobbler/.cvsignore:
1619         * plugins/lirc/.cvsignore:
1620         * plugins/pythonconsole/.cvsignore:
1621         * plugins/sample-python/.cvsignore:
1622         * plugins/sample/.cvsignore:
1623         * shell/.cvsignore:
1624         * widgets/libsexy/.cvsignore:
1625         Make CVS ignore files.
1627 2006-04-14  James Livingston  <doclivingston@gmail.com>
1629         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
1630         the track-loading thread hold a reference on the source, so it doesn't
1631         explode if the cd is removed before it is done. Fixes bug 337237.
1633 2006-04-14  James Livingston  <doclivingston@gmail.com>
1635         * bindings/python/override_common.c:
1636         (_helper_unwrap_pointer_pylist):
1637         * bindings/python/override_common.h:
1638         * bindings/python/rb.override:
1639         * bindings/python/rhythmdb.override: Bind some more functions and
1640         virtual functions.
1642         * shell/rb-shell.c: (rb_shell_select_source):
1643         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
1644         * sources/rb-audiocd-source.c:
1645         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
1646         * sources/rb-browser-source.c: (impl_get_search_actions):
1647         * sources/rb-iradio-source.c: (impl_get_ui_actions):
1648         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
1649         * sources/rb-playlist-source.c: (impl_get_ui_actions):
1650         * sources/rb-podcast-source.c: (impl_get_ui_actions),
1651         (impl_get_search_actions):
1652         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
1653         the impl_get_ui_actions and impl_get_search_actions functions return
1654         lists that contain copies of the strings, instead of constant ones.
1655         Needed to bindings
1657 2006-04-14  James Livingston  <doclivingston@gmail.com>
1659         * bindings/python/rhythmdb.defs:
1660         * bindings/python/rhythmdb.override: fix the method argument format
1661         specifiers.
1663 2006-04-14  James Livingston  <doclivingston@gmail.com>
1665         * bindings/python/rhythmdb.defs:
1666         * bindings/python/rhythmdb.override:
1667         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
1668         (entry_to_rb_metadata), (record_entry_change),
1669         (rhythmdb_entry_set_visibility):
1670         * rhythmdb/rhythmdb.h:
1671         * shell/rb-shell.c: (rb_shell_get_song_properties): change
1672         rhythmdb_entry_get to take the db as the first parameter. Fixes the
1673         python bindings of it. The rhythmdb_entry_get_* ones are left the same
1674         since they are used in too many places, and not in the Python
1675         bindings.
1677 2006-04-13  William Jon McCann  <mccann@jhu.edu>
1679         * lib/rb-debug.c: (_rb_profile_log):
1680         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
1681         * rhythmdb/rhythmdb.c: (rhythmdb_load):
1682         * shell/main.c: (main):
1683         * shell/rb-shell.c: (rb_shell_constructor),
1684         (rb_shell_set_visibility), (rb_shell_sync_window_state),
1685         (rb_shell_present):
1686         Fix profile output indentation.  Add more profiling points.
1687         Fixes part of #338114
1689 2006-04-13  James Livingston  <doclivingston@gmail.com>
1691         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
1692         library source being deleted, by setting the active source to NULL.
1693         From bug 338116.
1695 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1697         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
1698         Update the last-seen string when hiddenness changes.
1700 2006-04-12  James Livingston  <doclivingston@gmail.com>
1702         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
1703         which caused the first-seen time to be reset when a metadata load was
1704         done. Fixes bug 336874.
1706         * shell/rb-shell.h: remove old function declaration.
1708         * bindings/python/rhythmdb.defs:
1709         * bindings/python/rhythmdb.override: Fix some python binding stuff.
1711 2006-04-11  James Livingston  <doclivingston@gmail.com>
1713         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
1714         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
1715         interaction. Fixes bug 337999.
1717 2006-04-11  James Livingston  <doclivingston@gmail.com>
1719         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
1720         track transfer. Fixes bug 338056.
1722         * shell/Makefile.am:
1724 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1726         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
1728 2006-04-10  William Jon McCann  <mccann@jhu.edu>
1730         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
1731         (_rb_profile_log):
1732         * lib/rb-debug.h:
1733         * shell/rb-shell.c: (construct_db), (construct_widgets),
1734         (construct_sources), (construct_load_ui), (rb_shell_constructor):
1735         Add profiling.  Fixes #337387
1737 2006-04-10  William Jon McCann  <mccann@jhu.edu>
1739         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
1740         * widgets/rb-header.c:
1741         Use italics for artist and album. Fixes #336748
1743 2006-04-10  James Livingston  <doclivingston@gmail.com>
1745         * Makefile.am:
1746         * backends/gstreamer/Makefile.am:
1747         * configure.ac:
1748         * data/glade/library-prefs.glade:
1749         * shell/Makefile.am:
1750         * shell/rb-removable-media-manager.c:
1751         * shell/rb-removable-media-manager.h:
1752         * sources/Makefile.am:
1753         * sources/rb-audiocd-source.c:
1754         * sources/rb-library-source.c: (rb_library_source_class_init),
1755         (rb_library_source_finalize), (impl_get_config_widget),
1756         (rb_library_source_preferences_sync), (impl_can_paste): add a
1757         --enable-track-transfer configure option, abd make cd ripping disabled
1758         by default.
1760         * shell/rb-source-header.c:
1761         * sources/rb-source.c: (rb_source_class_init),
1762         (rb_source_delete_thyself), (default_get_entry_view):
1763         * lib/rb-glade-helpers.c:
1764         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
1765         some compiler warnings, and also bug 337427.
1767 2006-04-10  James Livingston  <doclivingston@gmail.com>
1769         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
1770         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
1771         if the gconf key is missing. Fixes bug 337742.
1773 2006-04-10  James Livingston  <doclivingston@gmail.com>
1775         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1776         to fix build problems I caused with a commit yesterday. Fixed bug
1777         337806.
1779         * daapsharing/rb-daap-mdns-browser-howl.c:
1780         (rb_daap_mdns_browser_class_init):
1781         * podcast/Makefile.am:
1782         * rhythmdb/Makefile.am:
1783         * widgets/eggtrayicon.h:
1785 2006-04-09  Steve Frécinaux  <steve@istique.net>
1787         * configure.ac:
1788         * po/LINGUAS:
1789         
1790         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
1791         translators' life easier.
1793 2006-04-09  James Livingston  <doclivingston@gmail.com>
1795         * bindings/python/rb.defs:
1796         * bindings/python/rb.override: add bindings for most RBSource virtual
1797         functions.
1799         * sources/rb-source.h:
1800         * sources/rb-source.c: (rb_source_class_init): make
1801         impl_get_browser_key return a non-consht string, since Python can't
1802         really give us constant strings.
1804         * shell/rb-source-header.c: (rb_source_header_finalize),
1805         (rb_source_header_set_source_internal):
1806         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
1807         * sources/rb-iradio-source.c: (impl_get_browser_key):
1808         * sources/rb-library-source.c: (impl_get_browser_key):
1809         * sources/rb-playlist-source.c:
1810         * sources/rb-browser-source.c: (rb_browser_source_constructor),
1811         (rb_browser_source_state_prefs_sync):
1812         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
1813         above change.
1815         * plugins/sample-python/sample-python.py: show how to add a new
1816         source.
1818 2006-04-09  James Livingston  <doclivingston@gmail.com>
1820         * daapsharing/Makefile.am:
1821         * daapsharing/rb-daap-connection.c:
1822         (rb_daap_connection_class_init):
1823         * daapsharing/rb-daap-marshal.list:
1824         * daapsharing/rb-daap-mdns-browser-avahi.c:
1825         (rb_daap_mdns_browser_class_init):
1826         * lib/rb-marshal.list:
1827         * player/Makefile.am:
1828         * player/rb-recorder-gst.c: (rb_recorder_class_init):
1829         * player/rb-recorder-marshal.list:
1830         * podcast/Makefile.am:
1831         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
1832         * podcast/rb-podcast-marshal.list:
1833         * rhythmdb/Makefile.am:
1834         * rhythmdb/rhythmdb-marshal.list:
1835         * rhythmdb/rhythmdb-query-model.c:
1836         (rhythmdb_query_model_class_init):
1837         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
1838         into one file, as there is no point having several of them.
1840 2006-04-09  James Livingston  <doclivingston@gmail.com>
1842         * lib/Makefile.am:
1843         * lib/rb-enums.h:
1844         * widgets/Makefile.am:
1845         * widgets/eggnotificationbubble.c:
1846         * widgets/eggnotificationbubble.h:
1847         * widgets/rb-song-info.c: remove lib/rb-enums.h and
1848         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
1850         * rhythmdb/rhythmdb-property-model.h:
1851         * rhythmdb/rhythmdb-query-model.h:
1852         * rhythmdb/rhythmdb.h:
1853         * shell/rb-playlist-manager.h:
1854         * widgets/rb-cell-renderer-pixbuf.h:
1855         * widgets/rb-cell-renderer-rating.h:
1856         * widgets/rb-rating.h: fix the prototypes of various class-closures.
1858 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1860         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
1861         so we can build without a system-wide installed copy.
1863 2006-04-09  James Livingston  <doclivingston@gmail.com>
1865         * data/glade/general-prefs.glade:
1866         * data/rhythmbox.schemas:
1867         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
1868         (rb_combo_box_hyphen_separator_func):
1869         * lib/rb-glade-helpers.h:
1870         * lib/rb-preferences.h:
1871         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
1872         (rb_shell_preferences_sync),
1873         (rb_shell_preferences_toolbar_style_cb),
1874         (rb_shell_preferences_browser_views_activated_cb):
1875         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
1876         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
1877         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
1879 2006-04-09  James Livingston  <doclivingston@gmail.com>
1881         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
1882         data that MusicBrainz returns to us. Last part of bug 334167.
1884 2006-04-09  James Livingston  <doclivingston@gmail.com>
1886         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
1887         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
1889 2006-04-09  James Livingston  <doclivingston@gmail.com>
1891         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
1892         the entry view properly when the rows are reordered. Fixes bug 337019.
1894 2006-04-09  James Livingston  <doclivingston@gmail.com>
1896         * configure.ac:
1897         * widgets/Makefile.am:
1898         * widgets/libsexy/Makefile.am:
1899         * widgets/libsexy/sexy-icon-entry.c:
1900         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
1901         libsexy, and allow building against it or a system-wide installed
1902         copy.
1905         * widgets/rb-search-entry.c: (rb_search_entry_init),
1906         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
1907         search box. Fixes bug 128109.
1909 2006-04-09  James Livingston  <doclivingston@gmail.com>
1911         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1913         * widgets/rb-entry-view.c: (rb_entry_view_init),
1914         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
1915         and Pause icons rather than the volume ones in the Now Playing column.
1916         Closes bug 336482.
1918 2006-04-08  James Livingston  <doclivingston@gmail.com>
1920         * bindings/python/override_common.h:
1921         * bindings/python/rb.override:
1922         * bindings/python/rhythmdb.override: bind some more functions 
1924 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1926         * metadata/rb-metadata-dbus-service.c: (_send_error):
1927         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
1928         are sent properly and we don't get 'method doesn't exist' messages
1929         from dbus instead.
1931 2006-04-08  James Livingston  <doclivingston@gmail.com>
1933         * bindings/python/override_common.h:
1934         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
1935         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
1936         more utility functions for C<->Python conversions
1938         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
1939         (rb_entry_view_state_get_type):
1940         * widgets/rb-entry-view.h: make the colume type and entry view state
1941         GTypes
1943         * bindings/python/Makefile.am:
1944         * bindings/python/rb.defs:
1945         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
1946         RBSource.
1948 2006-04-08  James Livingston  <doclivingston@gmail.com>
1950         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
1951         initialiser for a GError
1953         * sources/rb-source.c: (rb_source_eof_type_get_type):
1954         * sources/rb-source.h: add a GType for RBSourceEOFType
1956         * bindings/python/Makefile.am:
1957         * bindings/python/rb.defs:
1958         * bindings/python/rb.override: bind RBSource and RBSourceList
1960 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1962         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1963         (rb_shell_player_get_property),
1964         (rb_shell_player_get_active_source),
1965         (rb_shell_player_set_playing_source_internal):
1966         * shell/rb-shell-player.h:
1967         Change 'playing-from-queue' from being a signal to being a property.
1969         * shell/rb-shell.c: (rb_shell_constructor),
1970         (rb_shell_playing_from_queue_cb),
1971         (rb_shell_view_queue_as_sidebar_changed_cb),
1972         (rb_shell_jump_to_entry_with_source):
1973         When the queue side pane is used, make 'jump to current' jump to the
1974         entry in the registered source for its type, rather than in the queue,
1975         and show it as playing in that source.
1976         
1977         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
1978         * sources/rb-sourcelist.h:
1979         Remove the 'preempted source' stuff, since it wasn't doing anything
1980         anyway.
1982 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1984         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1985         (download_progress_cb): Canonicalise downloaded file location before
1986         setting the mountpoint property of the corresponding entry.
1987         Fixes #337287 and a couple of memory leaks.
1989 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1991         * metadata/rb-metadata-dbus-service.c: (test_can_save),
1992         (test_load), (main): Call g_set_prgname, report errors more
1993         usefully in test mode.
1994         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
1995         (rb_metadata_load): Don't ignore the have-type signal for non-audio
1996         files.  Run the event loop when the state change fails so we get the
1997         error messages from the bus.  Fixes #336921.
1999 2006-04-05  William Jon McCann  <mccann@jhu.edu>
2001         * data/art/Makefile.am: Install media-eject.
2003         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
2004         return value of rb_file.
2006         Fixes #337209
2008 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2010         Patch by: William Jon McCann  <mccann@jhu.edu>
2012         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
2013         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
2014         Fix GError leak.
2016 2006-04-04  William Jon McCann  <mccann@jhu.edu>
2018         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
2019         Don't try to add a date when we don't have one.  Fixes #336741.
2021         Also fix variable declaration in middle of block.
2023 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2025         * shell/rb-shell-player.c: (rb_shell_player_playpause):
2026         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
2028 2006-04-02  James Livingston  <doclivingston@gmail.com>
2030         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
2031         inverted logic causing imports to fail.
2033 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2035         * shell/main.c: (main): Fix dbusless build.
2037 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
2039         * player/rb-recorder-gst.c: fix packing of the C struct holding a
2040         wav header for non-gcc compilers (not tested much, was only written
2041         according to docs)
2043 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2045         * shell/main.c: (main): Check if we got a dbus connection before
2046         trying to create a proxy for the shell object.  Fixes #336634.
2048 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2050         * doc/reference/Makefile.am:
2051         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
2052         * shell/rb-source-header.c:
2053         * sources/rb-generic-player-source.c:
2054         (default_transform_playlist_uri):
2055         Fix various build issues.  Patch approximately 50% by Alex Lancaster
2056         <alexl@users.sourceforge.net>
2058 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2060         * configure.ac: Detect LIRC.
2061         
2062         * plugins/Makefile.am:
2063         * plugins/lirc/Makefile.am:
2064         * plugins/lirc/lirc.rb-plugin.desktop.in:
2065         * plugins/lirc/rb-lirc-plugin.c:
2066         LIRC plugin.
2068         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
2069         Remove obsolete files.
2071 2006-04-02  James Livingston  <doclivingston@gmail.com>
2073         * sources/rb-generic-player-source.c:
2074         (default_transform_playlist_uri): consider playlist paths as relative
2075         to the volume root by default, since that is what most players use.
2077 2006-04-02  James Livingston  <doclivingston@gmail.com>
2079         * lib/rb-util.c: (rb_mime_get_friendly_name):
2080         * lib/rb-util.h: add helper function to get the "friendly" name for a
2081         mime-type
2083         * metadata/rb-metadata-gst.c: (rb_metadata_init),
2084         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
2085         the user better error messages about undecodable streams, using the
2086         "friendly" name if possible. Fixes bug 128109.
2088 2006-04-02  James Livingston  <doclivingston@gmail.com>
2090         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
2091         (start_pipeline): fix building with gstreamer 0.8
2093 2006-04-02  James Livingston  <doclivingston@gmail.com>
2095         * sources/rb-podcast-source.c: (impl_delete),
2096         (rb_podcast_source_cmd_delete_feed),
2097         (rb_podcast_source_cmd_update_feed): copy the list before traversing
2098         it, since it may change during traversal. Fixes bug 336204.
2100 2006-04-01  James Livingston  <doclivingston@gmail.com>
2102         * data/art/media-eject.png: add the media-eject icon from Banshee
2103         (BSD-licensed), for use when the user's icon theme doesn't have one.
2105         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
2106         bug 334897.
2108 2006-04-01  James Livingston  <doclivingston@gmail.com>
2110         * shell/rb-shell-player.h:
2111         * shell/rb-shell-player.c: (rb_shell_player_play),
2112         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
2113         new rb_shell_player_{play,pause} functions, so everyone doesn't have
2114         to do rb_shell_player_playing followed by rb_shell_player_playpause.
2116         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
2117         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
2118         * shell/rb-shell.h: add rb_shell_get_ui_manager.
2120         * bindings/python/rb.defs: bind the above to Python, and remove some
2121         useless stuff from the bindings.
2123 2006-04-01  James Livingston  <doclivingston@gmail.com>
2125         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
2126         number tag.
2128         * shell/rb-shell.c:
2129         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
2131         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
2132         to true.
2134         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
2135         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
2136         method assigning, so it's understandable
2138         * sources/rb-library-source.c: (rb_library_source_class_init),
2139         (impl_paste): rather than hard-coding the types to ignore, use
2140         rb_source_can_copy.
2142 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2144         * sources/rb-library-source.c:
2145         (rb_library_source_preferences_sync):
2146         Don't crash if no audio profile is selected and the gconf schemas are 
2147         not installed.
2149 2006-03-31  James Livingston  <doclivingston@gmail.com>
2151         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
2152         "*" which caused compilation to fail
2154 2006-03-31  James Livingston  <doclivingston@gmail.com>
2156         * configure.ac:
2157         * Makefile.am:
2158         * backends/Makefile.am:
2159         * backends/gstreamer/Makefile.am:
2160         * backends/gstreamer/rb-encoder-gst.c:
2161         * backends/gstreamer/rb-encoder-gst.h:
2162         * backends/rb-encoder.c:
2163         * backends/rb-encoder.h: add a interface for transcoding, and a
2164         GStreamer implementation of it (based on Sound-Juicer's code).
2166         * shell/Makefile.am:
2167         * shell/rb-removable-media-manager.c:
2168         (rb_removable_media_manager_class_init),
2169         (rb_removable_media_manager_init),
2170         (rb_removable_media_manager_dispose),
2171         (rb_removable_media_manager_finalize),
2172         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
2173         (progress_cb), (completed_cb), (do_transfer),
2174         (rb_removable_media_manager_queue_transfer), (copy_entry),
2175         (rb_removable_media_manager_cmd_copy_tracks):
2176         * shell/rb-removable-media-manager.h: use the encoder interface to
2177         perform transfers of entries to other locations
2179         * shell/rb-shell-player.c: (open_location_thread):
2180         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2181         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
2182         (rb_shell_quit):
2183         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
2184         progress in the status bar.
2186         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2187         (rb_shell_preferences_sync),
2188         (rb_shell_preferences_browser_views_activated_cb):
2189         * data/glade/general-prefs.glade: move the browser views setting from
2190         the library tab to the general one.
2192         * data/glade/library-prefs.glade: add settings for the layout of the
2193         user's library, and their preferred encoding format (e.g. for CD
2194         ripping).
2196         * lib/rb-preferences.h:
2197         * data/rhythmbox.schemas: add keys for the above options (and a few
2198         other minor ones)
2200         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
2201         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
2202         entry, that isn't inserted into the database.
2204         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
2205         (rb_audiocd_create_track_entry):
2206         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
2207         cds, and set the mime-type of audio cd tracks correctly.
2209         * sources/rb-library-source.c: (rb_library_source_class_init),
2210         (rb_library_source_finalize),
2211         (rb_library_source_edit_profile_clicked_cb),
2212         (impl_get_config_widget), (rb_library_source_preferences_sync),
2213         (impl_receive_drag), (rb_library_source_path_changed_cb),
2214         (rb_library_source_filename_changed_cb),
2215         (rb_library_source_format_changed_cb), (sanitize_path),
2216         (filepath_parse_pattern), (layout_example_label_update),
2217         (rb_library_source_layout_path_changed),
2218         (rb_library_source_layout_filename_changed), (build_filename),
2219         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
2220         entries to the library. Large chunks of code for determining the
2221         destination file name stolen from Sound-Juicer.
2223         * sources/rb-sourcelist-model.c: (path_is_droppable):
2224         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
2225         * sources/rb-static-playlist-source.c:
2226         (rb_static_playlist_source_class_init):
2227         * sources/rb-removable-media-source.c:
2228         (rb_removable_media_source_class_init):
2229         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
2230         (rb_source_can_paste):
2231         * sources/rb-source.h: add a new _can_paste method, and use it (rather
2232         than _can_copy) to determine whether we can paste into the source.
2235 2006-03-31  Steve Frécinaux  <steve@istique.net>
2237         * plugins/rb-python-module.c: allow import of python modules with a '.'
2238         (gedit's bug 336403). Patch by Johan Dahlin.
2240 2006-03-31  James Livingston  <doclivingston@gmail.com>
2242         * sources/rb-library-source.c: 
2243         * sources/rb-library-source.h:
2244         * sources/rb-browser-source.c:
2245         * sources/rb-browser-source.h: Split RBLibrarySource into two.
2246         RBBrowserSource now contains all the stuff for having a source which
2247         views a particular entry type (including browsers and searching).
2248         RBLibrarySource derives from this, and includes the library-specific
2249         stuff, like importing and library watching. Fixes some issues where
2250         library-derived sources were doing things that should be
2251         library-specific. Fixes bug 335185.
2253         * data/ui/rhythmbox-ui.xml:
2254         * sources/Makefile.am: modifications for the above
2256         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2257         (rb_daap_source_get_paned_key):
2258         * sources/rb-daap-source.h:
2259         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
2260         * sources/rb-removable-media-source.c:
2261         (rb_removable_media_source_class_init):
2262         * sources/rb-removable-media-source.h: derive from RBBrowserSource
2263         instead of RBLibrarySource.
2265 2006-03-31  James Livingston  <doclivingston@gmail.com>
2267         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
2268         I buggered up when changing from GnomeVFSFileSize.
2270 2006-03-30  James Livingston  <doclivingston@gmail.com>
2272         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
2273         for "-Wno-error".
2275         * bindings/python/rb.override:
2276         * bindings/python/Makefile.am: make the RB python bindings depend on
2277         the RhythmDB ones, and use "-Wno-error" since the machine-generated
2278         code sometimes emits warnings.
2280         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2281         (rb_shell_player_error_get_type):
2282         * shell/rb-shell-player.h:
2283         * bindings/python/rb.defs: add bindings for RBShellPlayer
2285         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2286         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
2287         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
2288         * rhythmdb/rhythmdb.h:
2289         * shell/rb-shell.c: (rb_shell_get_song_properties):
2290         * widgets/rb-entry-view.c: (propid_from_name):
2291         * widgets/rb-property-view.c: (rb_property_view_class_init):
2292         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
2293         than just plain GPtrArray, and add bindings for it.
2295         * bindings/python/rhythmdb.override: wrap some functions that use
2296         GValues
2298 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2300         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
2301         Only watch directories from which entries of type SONG have been
2302         added.
2304 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2306         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
2307         No need to restore the selection after rebuilding the child model,
2308         since that can't have changed the selection.
2310 2006-03-29  James Livingston  <doclivingston@gmail.com>
2312         * bindings/python/override_common.c:
2313         * bindings/python/override_common.h: add some for missing files to
2314         cvs.
2316 2006-03-29  James Livingston  <doclivingston@gmail.com>
2318         * configure.ac:
2319         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
2320         copied from gedit's autofoo and we don't need it
2322         * bindings/python/rhythmdb.defs:
2323         * bindings/python/rhythmdb.override: add missing files to cvs
2325 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2327         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
2328         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
2329         before running any of the debug/test modes.
2330         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
2331         Make plugin loading work when running uninstalled from the shell/
2332         directory.
2334 2006-03-29  James Livingston  <doclivingston@gmail.com>
2336         * rhythmdb/rhythmdb-property-model.c:
2337         (rhythmdb_property_model_sync),
2338         (rhythmdb_property_model_column_get_type):
2339         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
2341         * rhythmdb/rhythmdb-private.h:
2342         * rhythmdb/rhythmdb-query-model.c:
2343         (rhythmdb_query_model_class_init):
2344         * rhythmdb/rhythmdb-query-model.h:
2345         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2346         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
2347         (rhythmdb_entry_get_type):
2348         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
2350         * widgets/rb-query-creator-properties.c:
2351         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
2352         was missing.
2354         * bindings/python/Makefile.am:
2355         * bindings/python/rb.defs:
2356         * bindings/python/rb.override:
2357         * plugins/rb-python-module.c: (rb_python_module_init_python): add
2358         Python bindings for RhythmDB.
2360 2006-03-29  James Livingston  <doclivingston@gmail.com>
2362         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
2363         sharing when using --no-registration
2365 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2367         * rhythmdb/rhythmdb-query-model.c:
2368         (rhythmdb_query_model_reapply_query):
2369         Don't remove entries while iterating, as it breaks the sequence
2370         nodes.  Instead, collect a list of removed entries and process it
2371         after iterating the sequence.  Fixes #334642.
2373 2006-03-29  James Livingston  <doclivingston@gmail.com>
2375         * plugins/rb-plugin-manager.c: (active_toggled_cb),
2376         (row_activated_cb), (plugin_manager_toggle_all):
2377         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
2378         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
2379         (button_press_cb), (source_name_edited_cb):
2380         * widgets/rb-property-view.c: (rb_property_view_set_property),
2381         (rb_property_view_post_row_deleted_cb),
2382         (rb_property_view_row_activated_cb),
2383         (rb_property_view_selection_changed_cb),
2384         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
2385         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
2387 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2389         * rhythmdb/rhythmdb-query-model.c:
2390         (rhythmdb_query_model_drag_data_received):
2391         Increment the reference count for entries added by drag and drop.
2392         Fixes #336045.
2394 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2396         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
2397         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
2398         Ignore invalid UTF-8 strings.  Fixes most of #334167.
2400 2006-03-27  James Livingston  <doclivingston@gmail.com>
2402         * shell/rb-shell.c: (rb_shell_constructor),
2403         (rb_shell_sync_window_state): fix a maximise-realise race that would
2404         cause some widgets to be resized after we had explicity set theri
2405         size. Hopefully fixes bug 331927.
2407 2006-03-27  James Livingston  <doclivingston@gmail.com>
2409         * plugins/rb-plugin-manager.c: (active_toggled_cb),
2410         (row_activated_cb), (plugin_manager_set_active),
2411         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
2412         configure button sensitivity when a plugin is enabled/disabled.
2414 2006-03-27  James Livingston  <doclivingston@gmail.com>
2416         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
2417         stop warnings, only the vbos is used anyway
2419         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
2420         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
2421         collection every now an then.
2423         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
2424         if we are finalising because the python object couldn't be created.
2426         * plugins/rb-python-module.c: (rb_python_module_new_object): return
2427         NULL if the python-side object couldn't be created. Stops crashes when
2428         the object is later used when it doesn't exist in Python.
2430         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
2431         (rb_python_shutdown): do better garbage collection when shutting down.
2432         Fixes the problem where Python was holding a reference to the shell,
2433         causing RB not to exit.
2435 2006-03-27  James Livingston  <doclivingston@gmail.com>
2437         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
2438         336131.
2440 2006-03-27  James Livingston  <doclivingston@gmail.com>
2442         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
2443         From bug 334829.
2445 2006-03-26  James Livingston  <doclivingston@gmail.com>
2447         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
2448         library location list to NULL after we free it. Fixes bug 336047.
2450 2006-03-26  James Livingston  <doclivingston@gmail.com>
2452         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
2454         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
2455         supplies. Fixes bug 335947.
2457 2006-03-25  James Livingston  <doclivingston@gmail.com>
2459         * data/glade/audioscrobbler-prefs.glade:
2460         * shell/rb-audioscrobbler.c:
2461         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
2462         "submit songs" checkbox, and make it not disable username/password
2463         entry. This will be needed when we support other last.fm stuff
2464         (profile access, radio, etc).
2466 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
2468         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2469         Volume should not display stock_volume-0 for volume > 0. Fixes bug
2470         335777.
2472 2006-03-24  James Livingston  <doclivingston@gmail.com>
2474         * shell/rb-shell-player.c: (rb_shell_player_set_property),
2475         (rb_shell_player_sync_play_order),
2476         (rb_shell_player_play_order_update_cb),
2477         (actually_set_playing_source): update the next/previous availablility
2478         in places where it was missing. Fixes bug 335490.
2480 2006-03-24  James Livingston  <doclivingston@gmail.com>
2482         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
2483         can't find the widget
2485         * lib/rb-util.c: (rb_uri_list_parse):
2486         * lib/rb-util.h: add function for parsing a URI list into strings.
2488         * metadata/Makefile.am: make the metdata helper build when linking
2489         with --as-needed
2491         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
2492         g_mkdir_with_parents instead of coding our own.
2494         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
2495         <itunes:author> over <generator>, instead of using whichever comes
2496         last.
2498         * rhythmdb/rhythmdb-private.h:
2499         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
2500         field, as we don't ever check it (to detect corruption). Saves a bit
2501         of memory.
2503 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2505         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
2506         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
2507         Escape '&' and '=' in the paths we get back from
2508         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
2510 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2512         * shell/rb-shell.c: (rb_shell_constructor):
2513         Issue startup notification after creating the main window, so
2514         notification is issued whether the window is visible or not.
2515         Fixes #335086.
2517 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2519         * sources/rb-auto-playlist-source.c: (impl_search),
2520         (rb_auto_playlist_source_query_complete_cb),
2521         (rb_auto_playlist_source_do_query):
2522         * sources/rb-library-source.c: (impl_search),
2523         (rb_library_source_query_complete_cb),
2524         (rb_library_source_do_query):
2525         Defer subset searches (where text is appended to an existing search)
2526         until the original query is complete.
2528 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
2530         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
2532         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
2533         (rb_refstring_get_sort_key): fixes for strict-aliasing
2535 2006-03-21  James Livingston  <jrl@ids.org.au>
2537         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
2538         importing a single file. Fixes bug 335307.
2540 2006-03-21  James Livingston  <jrl@ids.org.au>
2542         * shell/Makefile.am: remove the reference to backends/ that I
2543         accidently included.
2545 2006-03-21  James Livingston  <jrl@ids.org.au>
2547         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
2548         with Forte (on Solaris). Closes bug 335318.
2550         * configure.ac:
2551         * lib/Makefile.am:
2552         * player/rb-recorder-gst.c:
2553         * podcast/rb-podcast-parse.c:
2554         * remote/bonobo/Makefile.am:
2555         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
2556         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
2557         (rhythmdb_query_model_add_entry),
2558         (rhythmdb_query_model_add_results):
2559         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
2560         * rhythmdb/rhythmdb.h:
2561         * shell/Makefile.am:
2562         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
2563         (update_speed_combobox):
2564         * sources/rb-sourcelist-model.c:
2566 2006-03-21  James Livingston  <jrl@ids.org.au>
2568         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
2570         * player/Makefile.am:
2571         * shell/Makefile.am: work correctly with a separate build root.
2573 2006-03-21  James Livingston  <jrl@ids.org.au>
2575         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
2576         get handed NULL.
2578 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2580         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2581         Only create ignore entries when importing into the library.  
2582         Ignore entries for files in removable media sources don't help.
2584 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2586         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
2587         * shell/rb-source-header.h:
2588         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
2589         * widgets/rb-search-entry.h:
2590         Add functions to make the search box grab focus.
2592         * shell/rb-shell.c: (rb_shell_cmd_view_all):
2593         Focus the search box after handling the 'view all' action.
2595 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2597         * rhythmdb/rhythmdb.h:
2598         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2599         (rhythmdb_execute_multi_stat_info_cb),
2600         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
2601         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
2602         (action_thread_main):
2603         Collect all the get_file_info requests on startup into one gnome-vfs
2604         job to reduce overhead and avoid contention for the rhythmdb lock.
2605         Add a new method to call when all initial query models are set up.
2606         
2607         * shell/rb-shell.c: (idle_handle_load_complete):
2608         Call rhythmdb startup complete function when we've loaded all the
2609         playlists.  Fixes #334106.
2611 2006-03-20  James Livingston  <jrl@ids.org.au>
2613         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
2614         (rb_entry_view_selection_changed_cb),
2615         (rb_entry_view_have_complete_selection): make has_complete_selection
2616         not slow. Fixes a performance issue I added a week or so ago.
2618 2006-03-20  James Livingston  <jrl@ids.org.au>
2620         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
2621         before passing to strcmp. From bug 334559.
2623 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2625         * configure.ac:
2626         * lib/Makefile.am:
2627         * lib/rb-proxy-config.c:
2628         * lib/rb-proxy-config.h:
2629         Add a new object to watch the HTTP proxy configuration and emit
2630         signals when it changes.
2632         * shell/rb-audioscrobbler.c:
2633         * shell/rb-audioscrobbler.h:
2634         Use rb-proxy-config to watch HTTP proxy configuration.
2636         * shell/rb-shell.c:
2637         Construct rb-proxy-config object on startup, and remove all
2638         audioscrobbler references.
2640         * shell/Makefile.am:
2641         * plugins/audioscrobbler/Makefile.am:
2642         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
2643         Move all audioscrobbler code into the plugin.  We should move
2644         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
2645         point.  Don't use a private data structure in the plugin, since the
2646         class definition isn't in a header file.  Fixes #335091.
2648 2006-03-20  James Livingston  <jrl@ids.org.au>
2650         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
2651         don't enable Next if the source has an EOS type other than
2652         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
2654 2006-03-20  James Livingston  <jrl@ids.org.au>
2656         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
2657         (rb_song_info_forward_clicked_cb): deal with there being no
2658         next/previous entry.
2660         (rb_song_info_query_model_inserted_cb),
2661         (rb_song_info_query_model_deleted_cb),
2662         (rb_song_info_query_model_reordered_cb),
2663         (rb_song_info_query_model_changed_cb): monitor the query for changes,
2664         to update the button status. Fixes bug 333293.
2666 2006-03-20  James Livingston  <jrl@ids.org.au>
2668         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
2669         caused by my last commit
2671 2006-03-20  James Livingston  <jrl@ids.org.au>
2673         * bindings/python/Makefile.am:
2674         * bindings/python/rb.defs:
2675         * bindings/python/rb.override: add python bindings of RBRemoteProxy
2677         * shell/rb-shell.c: (rb_shell_constructor),
2678         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
2679         tray-icon detection slightly
2681 2006-03-19  Steve Frécinaux  <steve@istique.net>
2683         * data/ui/rhythmbox-ui.xml:
2684         * shell/rb-shell.c:
2686         Add an empty Tool Menu (hidden by default) containing placeholders for
2687         plugins.
2689         * configure.ac:
2690         * plugins/Makefile.am:
2691         * plugins/pythonconsole/Makefile.am:
2692         * plugins/pythonconsole/pythonconsole.py:
2693         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
2694         
2695         Python Console plugin
2697 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2699         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
2700         Extra step to encode '&' and '=' to match what gnome-vfs does
2701         internally.
2702         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
2703         (rhythmdb_tree_save):
2704         Increment rhythmdb xml version to 1.2, and force another uri
2705         re-canonicalisation when loading v1.1 databases.
2706         Fixes bug #333998.
2708 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2710         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2711         (avahi_client_init), (browse_cb):
2712         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
2713         (avahi_client_init):
2714         Fix compilation with Avahi 0.5.x (bug #334551).
2716 2006-03-19  James Livingston  <jrl@ids.org.au>
2718         Add Increase/Decrease Volume menu items and keybindings. From bug
2719         123383.
2721         * data/ui/rhythmbox-ui.xml:
2722         * shell/rb-shell-player.c: (rb_shell_player_constructor),
2723         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
2724         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
2726 2006-03-19  James Livingston  <jrl@ids.org.au>
2728         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
2730         * shell/Makefile.am: fix the link order, so that we compile with
2731         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
2733 2006-03-19  James Livingston  <jrl@ids.org.au>
2735         patch by: Adam Petaccia  <adam@tpetaccia.com>
2737         * data/ui/rhythmbox-ui.xml: move preferences below "configure
2738         plugins". Fixes bug 335037.
2740 2006-03-18  James Livingston  <jrl@ids.org.au>
2742         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
2743         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
2744         332992.
2746         * widgets/rb-header.c: don't make artist/album info in the header the
2747         small size, since it's hard to read.
2749 2006-03-16  William Jon McCann  <mccann@jhu.edu>
2751         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
2752         (rhythmdb_finalize): Don't leak the hash tables.
2753         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
2754         (rhythmdb_commit_internal): Make sure to process the deletions.
2755         (rhythmdb_entry_delete): Use a hash.
2757         * podcast/rb-podcast-manager.c: Random analness about char*
2758         (rb_podcast_manager_remove_feed): Add debugging.
2759         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
2760         the result of gnome_vfs_unlink.  Don't leak a uri.
2762         Fixes #334786
2764 2006-03-18  James Livingston  <jrl@ids.org.au>
2766         * NEWS: update NEWS file
2768 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2770         * rhythmdb/rhythmdb-property-model.c:
2771         (rhythmdb_property_model_prop_changed_cb):
2772         Remove entries from the hash table after processing visible->hidden
2773         changes.
2775 2006-03-16  William Jon McCann  <mccann@jhu.edu>
2777         * sources/rb-daap-source.c (connection_connected_cb) 
2778         (connection_disconnected_cb): Add debug.
2779         (rb_daap_source_get_headers): Check for NULL connection.
2781         * daapsharing/rb-daap-src.c (rb_daap_src_open):
2782         Check return value of rb_daap_source_get_headers.
2784         Fixes #332089
2786 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2788         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
2789         Restore the selection after rebuilding the child model, so the
2790         selection is shown correctly after using the 'browse this
2791         album/artist/genre' menu items.
2793 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2795         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
2796         Clear the selection before changing the active model.
2797         Fixes crash reported in bug 334549.
2799 2006-03-15  James Livingston  <jrl@ids.org.au>
2801         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
2802         (rb_tray_icon_sync_action):
2803         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
2804         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
2805         for non-libnotify notification bubbles. Fixes bug 331721.
2807 2006-03-15  James Livingston  <jrl@ids.org.au>
2809         Add search-bar options to playlists. Fixes bug 334407.
2811         * sources/rb-auto-playlist-source.c:
2812         (rb_auto_playlist_source_class_init),
2813         (rb_auto_playlist_source_constructor),
2814         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
2815         (search_action_to_prop), (search_action_changed):
2816         * sources/rb-static-playlist-source.c:
2817         (rb_static_playlist_source_class_init),
2818         (rb_static_playlist_source_constructor),
2819         (construct_query_from_selection), (impl_get_search_actions),
2820         (search_action_to_prop), (search_action_changed):
2822 2006-03-14  William Jon McCann  <mccann@jhu.edu>
2824         * shell/rb-source-header.c (rb_source_header_set_source_internal):
2825         Remove broken attempt at making the search bar buttons not
2826         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
2828 2006-03-14  William Jon McCann  <mccann@jhu.edu>
2830         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
2831         Chain up to parent's dispose instead of finalize.  Fixes #334479.
2833 2006-03-14  William Jon McCann  <mccann@jhu.edu>
2835         * widgets/rb-header.c (rb_header_sync): Escape album and
2836         artist before adding to markup.
2838 2006-03-14  William Jon McCann  <mccann@jhu.edu>
2840         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
2841         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
2842         (rb_header_set_property), (rb_header_get_property),
2843         (rb_header_sync):
2844         Remove the GnomeUrl song links until we can do it properly.
2845         Fixes #334453.
2847 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2849         * shell/rb-source-header.c: (rb_source_header_clear_search):
2850         Remove the stored search text from the hash table, so it doesn't
2851         reappear after switching to another source and back.
2853         * sources/rb-auto-playlist-source.c: (impl_search):
2854         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
2855         * sources/rb-static-playlist-source.c: (impl_search):
2856         Make sure all sources treat impl_search(NULL) and impl_search("") the
2857         same.  Fixes #334525.
2859 2006-03-14  James Livingston  <jrl@ids.org.au>
2861         Store which thread created new entries, and make rhythmdb_commit only
2862         insert the entries for the thread that calls it. This stops one thread
2863         calling rhythmdb_commit inserting entries that are half-way through
2864         construction by another thread (as happens with audio cds). From bug
2865         330226.
2867         * rhythmdb/rhythmdb.c: (rhythmdb_init),
2868         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
2869         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
2870         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
2871         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
2872         (rhythmdb_process_metadata_load),
2873         (rhythmdb_process_queued_entry_set_event),
2874         (rhythmdb_prop_get_type):
2876 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2878         * rhythmdb/rhythmdb-query-model.c:
2879         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
2880         (rhythmdb_query_model_finalize):
2881         Move object unrefs from _finalize into _dispose.
2882         
2883         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
2884         Remove extra g_object_ref that was causing query model leaks.
2885         
2886         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
2887         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
2888         (genre_selection_reset_cb), (rb_iradio_source_do_query):
2889         Remove the cached 'all' query, since it doesn't really help and it
2890         makes the code more complicated.  Attach the genre property view to
2891         the query model build from the search text, so only genres for
2892         stations matching the search terms are displayed.  Preserve the genre
2893         selection across searches.
2895         * widgets/rb-library-browser.c: 
2896         (rb_library_browser_class_init), (rb_library_browser_get_property):
2897         Add properties for the input and output models for the browser, and
2898         remove the 'changed' signal as we can just use notify::output-model.
2899         (ignore_selection_changes),
2900         (selection_restore_data_destroy), (query_complete_cb),
2901         (restore_selection): Helper functions for preserving selections across
2902         query model rebuilds.
2903         (rebuild_output_model):  New function for creating a query model to
2904         use as the display model for a source using the browser.
2905         (rebuild_child_model): Add a call to rebuild_output_model, add missing
2906         g_object_unrefs, reuse the parent's query model when there's no
2907         selection, and use ignore_selection_changes and restore_selection.
2908         (rb_library_browser_set_selection): rebuild_child_model emits the
2909         changed signal, so no need to do it here.
2910         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
2911         ignore_selection_changes and restore_selection. 
2912         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
2913         flag to rb_library_browser_set_model indicating whether the query is
2914         asynchronous.
2916         * sources/rb-static-playlist-source.c:
2917         (rb_static_playlist_source_class_init),
2918         (rb_static_playlist_source_dispose):
2919         (rb_static_playlist_source_constructor):  Add an extra reference on
2920         the base model, so it doesn't vanish when we set a new display model
2921         based on a search or browser selection.
2922         (impl_search): Ensure the search_text field in the source is NULL if
2923         the search box is empty.
2924         (construct_query_from_selection),
2925         (rb_static_playlist_source_do_query): Use the query model constructed
2926         from the search as the input model for the browser.
2927         (rb_static_playlist_source_browser_changed_cb): Use the browser's
2928         output model as the query model for the source.
2930         * sources/rb-auto-playlist-source.c:
2931         (rb_auto_playlist_source_finalize): Free more stuff.
2932         (rb_auto_playlist_source_constructor),
2933         (rb_auto_playlist_source_browser_changed_cb):
2934         Update for rb-library-browser changes, use the browser's output query
2935         model as the query model for the source.
2936         (impl_reset_filters), (impl_search), 
2937         (rb_auto_playlist_source_do_query),
2938         (rb_auto_playlist_source_set_query):
2939         Use the query model constructed from the search text as the input to
2940         the library browser, and when adding text to an existing search, apply
2941         the new query to the existing query model.
2942         
2943         * sources/rb-library-source.c: (rb_library_source_dispose):
2944         (rb_library_source_finalize): Chain dispose up to the parent class.
2945         (rb_library_source_constructor): Update for rb-library-browser
2946         changes. 
2947         (impl_search): Ensure search_text is NULL if the search box is empty,
2948         and use the subset flag to _do_query if text has been appended to an
2949         existing search.
2950         (search_action_changed), (impl_reset_filters):
2951         (rb_library_source_browser_changed_cb),
2952         (rb_library_source_do_query): Use the browser's output model as the
2953         query model for the source.
2955         Rework library and playlist sources to use a single query chain,
2956         and to limit the entries shown in property views based on the search
2957         terms.  Fixes bug #322787.
2959 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2961         * configure.ac:  Enable metadata helper by default, and fix a typo.
2963 2006-03-13  James Livingston  <jrl@ids.org.au>
2965         Make RBRefStrings lazily create the folded and sort-key strings when
2966         they are first used. This will same some memory by not creating ones
2967         that are never used, and delaying some of the others to when the user
2968         resorts or performs a similar action. Fixes bug 332992.
2970         * rhythmdb/rb-refstring.c: (rb_refstring_free),
2971         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
2972         (rb_refstring_get), (rb_refstring_get_folded),
2973         (rb_refstring_get_sort_key), (rb_refstring_hash),
2974         (rb_refstring_equal):
2975         * rhythmdb/rb-refstring.h:
2976         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
2978 2006-03-12  William Jon McCann  <mccann@jhu.edu>
2980         * data/ui/rhythmbox-ui.xml:
2981         * lib/rb-stock-icons.c: (rb_stock_icons_init):
2982         * lib/rb-stock-icons.h:
2983         * shell/rb-shell-player.c:
2984         * shell/rb-shell.c: (rb_shell_constructor):
2985         * shell/rb-source-header.c: (force_no_shadow),
2986         (ui_manager_add_widget_cb), (rb_source_header_constructor),
2987         (rb_source_header_class_init), (rb_source_header_init),
2988         (merge_source_ui_cb), (toolbar_set_homogeneous),
2989         (rb_source_header_set_source_internal),
2990         (rb_source_header_set_property), (rb_source_header_get_property),
2991         (rb_source_header_set_source), (rb_source_header_new),
2992         (rb_source_header_filter_changed_cb):
2993         * shell/rb-source-header.h:
2994         * sources/rb-library-source.c: (rb_library_source_class_init),
2995         (rb_library_source_init), (search_action_to_prop),
2996         (search_action_changed), (rb_library_source_constructor),
2997         (impl_search), (impl_reset_filters), (impl_get_search_actions),
2998         (construct_query_from_selection):
2999         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3000         (rb_podcast_source_init), (search_action_to_prop),
3001         (search_action_changed), (rb_podcast_source_constructor),
3002         (construct_query_from_selection), (impl_get_ui_actions),
3003         (impl_get_search_actions):
3004         * sources/rb-source.c: (rb_source_class_init),
3005         (rb_source_get_ui_actions), (default_get_search_actions),
3006         (rb_source_get_search_actions):
3007         * sources/rb-source.h:
3009         Add a search bar.  Fixes #328618
3011 2006-03-12  James Livingston  <jrl@ids.org.au>
3013         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
3014         * shell/main.c: (main): make --no-update not stat files checking for
3015         changes, instead of doing nothing. Fixes bug 125177.
3017 2006-03-12  James Livingston  <jrl@ids.org.au>
3019         * podcast/rb-podcast-manager.c:
3020         (rb_podcast_manager_thread_parse_feed):
3021         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
3022         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
3023         having an invalid mime-type. Fixed bug 329813.
3025 2006-03-12  James Livingston  <jrl@ids.org.au>
3027         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
3028         Finally lets us close bug 309609.
3030         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
3031         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
3032         0.10
3034         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
3035         inverted logic of the editable check.
3037 2006-03-12  James Livingston  <jrl@ids.org.au>
3039         Make API doc generation work again. Fixes bug 334276.
3041         * doc/reference/Makefile.am:
3042         * doc/reference/tmpl/rb-debug.sgml:
3043         * doc/reference/tmpl/rb-druid.sgml:
3044         * doc/reference/tmpl/rb-entry-view.sgml:
3045         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
3046         * doc/reference/tmpl/rb-metadata.sgml:
3047         * doc/reference/tmpl/rb-shell.sgml:
3048         * doc/reference/tmpl/rhythmbox-unused.sgml:
3049         * doc/reference/tmpl/rhythmdb.sgml:
3051 2006-03-12  James Livingston  <jrl@ids.org.au>
3053         * shell/rb-shell-clipboard.c:
3054         (rb_shell_clipboard_set_source_internal),
3055         (rb_shell_clipboard_sync): don't try to use the source's entry view if
3056         it doesn't have one. Fixes bug 331673.
3058         * sources/rb-source.c: (rb_source_class_init): provide a default
3059         have_url implementation that returns FALSE.
3061 2006-03-12  James Livingston  <jrl@ids.org.au>
3063         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
3064         doing a distclean. Fixes bug 334221.
3067         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
3069         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
3071 2006-03-11  James Livingston  <jrl@ids.org.au>
3073         * shell/rb-shell.c: (rb_shell_window_state_cb),
3074         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
3075         update the window width/height when iconified. Stops the window
3076         changing size when it is restored from the tray, fixing bug 333824. 
3078 2006-03-11  James Livingston  <jrl@ids.org.au>
3080         Try to get cvs to actually add the necessary files for plugin support
3082 2006-03-11  James Livingston  <jrl@ids.org.au>
3084         Add a plugin framework, with basic support for Python plugins (based
3085         on gedit's). Closes bug 330523.
3087         * Makefile.am:
3088         * shell/Makefile.am:
3089         * configure.ac: necessary autofoo.
3091         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
3093         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
3094         * lib/rb-file-helpers.h:
3096         * data/glade/plugins/glade:
3097         * lib/rb-preferences.h:
3098         * plugins/*:
3099         * bindings/*: plugin framework
3101         * plugins/sample/*:
3102         * plugins/sample-python/*: sample plugins
3104         * plugins/audioscrobbler/*:
3105         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
3106         (rb_audioscrobbler_set_property),
3107         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
3108         submission into a plugin. shell/audioscrobbler.* should really be
3109         moved, but that sucks with cvs.
3111         * shell/rb-shell.h:
3112         * shell/rb-shell.c: (rb_shell_constructor),
3113         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
3114         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
3115         (rb_shell_quit): start and stop plugin framework.
3117 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3119         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
3120         (rhythmdb_entry_delete):
3121         Emit entry-deleted signals when rhythmdb_commit is called, rather than
3122         immediately, so we can't get change notifications afterwards.  
3123         Fixes #331732.
3124         (rhythmdb_process_metadata_load): Add a commit after removing an
3125         entry so we can recreate it with a different type without getting
3126         confused.
3128 2006-03-11  James Livingston  <jrl@ids.org.au>
3130         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
3131         use the drive name for audio CDs, use "Unknown CD".
3133 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3135         patch by:  James Henstridge  <james@jamesh.id.au>
3137         * sources/rb-removable-media-source.c:
3138         (rb_removable_media_source_constructor):
3139         Get the device name from the GnomeVFSDrive if possible,
3140         since this is usually a more descriptive name.  Fixes #333080.
3142 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3144         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
3146         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
3147         Don't automatically download episodes when configured for manual
3148         updating.  Fixes #331564.
3150 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3152         * rhythmdb/rhythmdb-property-model.c:
3153         (rhythmdb_property_model_iter_from_string):
3154         Return an iterator for the 'all' property when name == NULL,
3155         and don't write to *iter if iter == NULL.
3157 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3159         * shell/rb-shell-player.c: (rb_shell_player_do_next):
3160         When switching to the play queue, still call _go_next on the normal
3161         play order, so self-emptying auto playlists ("play count = 0" etc.)
3162         don't restart once the queue is empty.
3164         * shell/rb-tray-icon.c:
3165         Change shortcut for 'show notifications' to 'o' so it doesn't clash
3166         with 'next'.
3168 2006-03-05  James Livingston  <jrl@ids.org.au>
3170         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
3171         don't submit tracks which could not be played. Fixed bug 333013.
3173         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
3174         tracks which could not be played.
3176 2006-03-05  James Livingston  <jrl@ids.org.au>
3178         Sync musicbrainz lookup code from Sound-Juicer cvs.
3180         * metadata/sj-metadata-musicbrainz.c:
3181         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
3182         (get_offline_track_listing), (artist_and_title_from_title),
3183         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
3184         (mb_list_albums), (mb_get_submit_url):
3185         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
3186         * metadata/sj-metadata.h:
3187         * metadata/sj-structures.c: (track_details_free),
3188         (album_details_free):
3189         * metadata/sj-structures.h:
3191 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3193         * lib/rb-debug.h:
3194         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
3195         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
3196         (rb_profiler_reset), (rb_profiler_free):
3197         Filter debug output by matching the file and function names against a
3198         match string.
3200         * shell/main.c: (main):
3201         Add -D command line option to specify the debug match string.
3203         * shell/rb-removable-media-manager.c:
3204         (rb_removable_media_manager_mount_volume):
3205         Fix some typos in debug output.
3207 2006-03-03  James Livingston  <jrl@ids.org.au>
3209         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
3210         * shell/rb-shell.c: (rb_shell_load_uri):
3211         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
3212         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
3213         use the new "recurse" property from totem-plparser, if present. Stop
3214         RB hanging for new users who don't have a 'net connection. From bug
3215         331508.
3217 2006-03-02  Bastien Nocera  <hadess@hadess.net>
3219         * shell/rb-removable-media-manager.c:
3220         (rb_removable_media_manager_mount_volume):
3221         * sources/Makefile.am:
3222         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
3223         Fix missing files on make dist (conditional files), only build the
3224         N770 support if there's HAL support, as we have no other ways of
3225         detecting it
3227 2006-03-03  James Livingston  <jrl@ids.org.au>
3229         * shell/rb-shell-clipboard.c:
3230         (rb_shell_clipboard_set_source_internal): really fix it this time.
3231         hopefully.
3233 2006-03-03  James Livingston  <jrl@ids.org.au>
3235         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
3236         with the idle function not being removed.
3238 2006-03-02  James Livingston  <jrl@ids.org.au>
3240         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
3241         * widgets/rb-entry-view.h: add function for determining whether all
3242         entries are selected.
3244         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
3245         (rb_shell_clipboard_set_source_internal),
3246         (rb_shell_clipboard_finalize),
3247         (rb_shell_clipboard_idle_poll_deletions),
3248         (rb_shell_clipboard_entryview_changed_cb),
3249         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
3250         removals, to update things.
3252         (rb_shell_clipboard_sync): update the Select All and Select None
3253         sensitivity, based on what is selected. Fixed bug 172220.
3255 2006-03-02  James Livingston  <jrl@ids.org.au>
3257         * widgets/rb-library-browser.c: (rebuild_child_model): save and
3258         restore the selections of later models. This means that selecting the
3259         artist for the selected album does not reset the album selection.
3261 2006-03-02  James Livingston  <jrl@ids.org.au>
3263         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
3264         Stops it emitting critical warnings.
3266 2006-03-02  James Livingston  <jrl@ids.org.au>
3268         * lib/rb-file-helpers.c: (rb_uri_append_uri):
3269         * lib/rb-file-helpers.h: Add uri concatenation function for when the
3270         second fragment is already escaped.
3272         * sources/rb-generic-player-source.c:
3273         (rb_generic_player_source_class_init),
3274         (rb_generic_player_source_constructor), (impl_show_popup),
3275         (rb_generic_player_source_load_playlists),
3276         (rb_generic_player_source_transform_playlist_uri),
3277         (handle_playlist_entry_cb), (visit_playlist_dirs),
3278         (default_load_playlists), (default_transform_playlist_uri):
3279         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
3280         the device. Allow subclasses to override the playlist loading, and
3281         (playlist uri)->(actual uri) mapping. A lot of devices which have
3282         playlists won't work right now, but people will see them and hopefully
3283         file bugs.
3285         * sources/rb-psp-source.c: (rb_psp_source_class_init),
3286         (rb_psp_source_create_playlists): Adapt the PSP for the above change
3287         
3288         * sources/Makefile.am:
3289         + sources/rb-nokia770-source.{c,h}:
3290         * shell/rb-removable-media-manager.c:
3291         (rb_removable_media_manager_mount_volume): Add support for reading
3292         playlists of Nokia 770s.
3294 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3296         * data/glade/podcast-properties.glade:
3297         * podcast/rb-podcast-properties-dialog.c:
3298         (rb_podcast_properties_dialog_init),
3299         (rb_podcast_properties_dialog_update),
3300         (rb_podcast_properties_dialog_update_location),
3301         (rb_podcast_properties_dialog_update_download_location):
3302         Add 'download location' field showing the path to the downloaded copy.
3303         Fixes #330696.
3305 2006-03-01  Bastien Nocera  <hadess@hadess.net>
3307         * configure.ac: simplify HAVE_HAL define
3309 2006-03-01  Bastien Nocera  <hadess@hadess.net>
3311         * configure.ac:
3312         * lib/rb-file-helpers.c: (rb_uri_append_path):
3313         * lib/rb-file-helpers.h:
3314         * shell/rb-removable-media-manager.c:
3315         (rb_removable_media_manager_mount_volume):
3316         * sources/Makefile.am:
3317         * sources/rb-ipod-source.c:
3318         * sources/rb-psp-source.*:
3319         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
3320         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
3322 2006-03-02  James Livingston  <jrl@ids.org.au>
3324         * shell/rb-shell-player.c: (rb_shell_player_set_property),
3325         (rb_shell_player_play), (rb_shell_player_jump_to_current),
3326         (swap_playing_source), (rb_shell_player_playpause),
3327         (rb_shell_player_sync_buttons), (actually_set_playing_source),
3328         (rb_shell_player_set_playing_source_internal): check for the entry
3329         view being NULL before trying to use it. Lets us support sources which
3330         don't have an entry view. From bug 331673.
3332 2006-03-01  Bastien Nocera  <hadess@hadess.net>
3334         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
3335         use gnome_vfs_read_entire_file with a URI, not a local filename
3337 2006-03-01  James Livingston  <jrl@ids.org.au>
3339         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
3340         first-seen and last-seen when merging duplicate entries.
3342 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3344         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
3345         * widgets/rb-property-view.h:  New function, allowing custom 
3346         interactive search functions for property views.
3347         
3348         * sources/rb-podcast-source.c: 
3349         (feed_select_change_cb): Only do a new query when the selection
3350         actually changes.
3351         (rb_podcast_source_constructor),
3352         (rb_podcast_source_feed_title_search_func):
3353         Interactive search function for podcast feed titles.  Fixes #327451.
3355 2006-03-01  James Livingston  <jrl@ids.org.au>
3357         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
3358         the uri in the callback, since it causes symbols to not be escaped.
3359         Fixes bug 332976.
3361         * data/ui/rhythmbox-ui.xml:
3362         * sources/rb-import-errors-source.c:
3363         (rb_import_errors_source_class_init),
3364         (rb_import_errors_source_constructor), (impl_get_status),
3365         (impl_move_to_trash),
3366         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
3367         import errors source
3368         
3369         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
3370         (rb_entry_view_append_column): unescape the URI for display.
3372 2006-03-01  James Livingston  <jrl@ids.org.au>
3374         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3375         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
3376         function fails.
3378 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
3380         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
3381         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
3382         * sources/rb-play-queue-source.c:
3383         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
3384         (rb_play_queue_source_update_count):  Use "Play Queue" instead
3385         of "Queued Songs".
3387         Fixes #331637.
3389 2006-03-01  James Livingston  <jrl@ids.org.au>
3391         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
3392         Fixes bug 332913.
3394 2006-03-01  James Livingston  <jrl@ids.org.au>
3396         * daapsharing/rb-daap-mdns-browser-howl.c:
3397         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
3398         * daapsharing/rb-daap-mdns-publisher-avahi.c:
3399         (rb_daap_mdns_publisher_class_init),
3400         (rb_daap_mdns_publisher_finalize):
3401         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
3402         * player/rb-recorder-gst.c: (rb_recorder_class_init),
3403         (rb_recorder_finalize):
3404         * rhythmdb/rhythmdb-query-model.c:
3405         (rhythmdb_query_model_constructor):
3406         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
3407         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
3408         * sources/rb-playlist-source-recorder.c:
3409         (rb_playlist_source_recorder_style_set),
3410         (rb_playlist_source_recorder_class_init),
3411         (rb_playlist_source_recorder_finalize):
3412         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
3413         other classes in the same way, so they don't break when derived from.
3415 2006-03-01  James Livingston  <jrl@ids.org.au>
3417         * sources/rb-generic-player-source.c:
3418         (rb_generic_player_source_constructor): don't get the parent class in
3419         a dumb way, and it breaks when the class is derived from.
3421 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
3423         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
3425 2006-03-01  James Livingston  <jrl@ids.org.au>
3427         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
3428         not work in glib 2.8 systems.
3430 2006-03-01  James Livingston  <jrl@ids.org.au>
3432         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
3433         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
3434         say it is crap.
3436         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
3437         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
3438         podcasts on ion-local places
3440         * rhythmdb/gsequence.c: (g_sequence_node_new),
3441         (g_sequence_node_free): use gslice if we are building against glib
3442         2.10.
3444         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
3445         local files too, so it doesn't block.
3447 2006-02-28  James Livingston  <jrl@ids.org.au>
3449         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
3450         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
3451         stats the file. Stops the UI blocking while stats are done.
3453 2006-02-28  James Livingston  <jrl@ids.org.au>
3455         * sources/rb-static-playlist-source.c:
3456         (rb_static_playlist_source_class_init),
3457         (rb_static_playlist_source_constructor), (impl_reset_filters),
3458         (impl_get_property_views), (impl_browser_toggled),
3459         (rb_static_playlist_source_do_query),
3460         (rb_static_playlist_source_browser_changed_cb): add browsers to static
3461         playlists. From bug 118862.
3463         * sources/rb-play-queue-source.c:
3464         (rb_play_queue_source_class_init): disable them for the play queue.
3466 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
3468         * data/glade/library-prefs.glade:  Add a mnemonic.
3469         * sources/rb-library-source.c:
3470         (rb_library_source_location_button_clicked_cb):  Use title
3471         capitalization for window title.
3473 2006-02-28  James Livingston  <jrl@ids.org.au>
3475         * sources/rb-auto-playlist-source.c:
3476         (construct_query_from_selection): don't create a subquery for only one
3477         criteria, as it's a silly effifiency degredation.
3479 2006-02-28  James Livingston  <jrl@ids.org.au>
3481         * rhythmdb/rhythmdb.h:
3482         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3483         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
3484         saved to disk
3486         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
3487         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3488         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
3489         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
3490         IGNORE (e.g. known video stream) create an entry of the Ignore type.
3491         This will make importing files quicker as we don't need to try files
3492         that we know are not going to be interesting - especially useful when
3493         using the library watching facility.
3495         Fixes bug 323179.
3497 2006-02-28  James Livingston  <jrl@ids.org.au>
3499         * shell/rb-shell.c: (rb_shell_constructor),
3500         (rb_shell_set_visibility): fix browser and source-list pane
3501         positioning, that I broke with the "remember visibility" patch.
3503 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3505         * metadata/rb-metadata-dbus-service.c: (main):
3506         Change argument handling so you can use --debug with the --load and
3507         --can-save test modes.
3508         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
3509         Use a separate GMainContext, not the default one.  Probably fixes
3510         #332344.
3512 2006-02-27  James Livingston  <jrl@ids.org.au>
3514         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
3515         first starting up. Fixes bug 330342.
3517 2006-02-27  James Livingston  <jrl@ids.org.au>
3519         * sources/rb-sourcelist-model.c:
3520         (rb_sourcelist_model_set_dnd_targets):
3521         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
3522         COPY action for draging sources and tracks, not MOVE as well. Stops
3523         Nautilus moving file away, and fixes bug 332488.
3525 2006-02-27  James Livingston  <jrl@ids.org.au>
3527         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
3529         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
3530         and Last Played metadata off iPods. Closes bug 324648.
3532 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3534         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
3535         Disable audioscrobbler when run with the --no-registration flag, since
3536         last.fm doesn't allow multiple concurrent clients per user.
3538 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3540         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
3541         Rename renamable sources when F2 is pressed when the sourcelist has
3542         focus.  Fixes #330700.
3544 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3546         * shell/rb-playlist-manager.c: (cleanup_edit_data),
3547         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
3548         (rb_playlist_manager_cmd_edit_automatic_playlist):
3549         Fix various crashes when deleting auto playlists previously edited
3550         by disconnecting signal handlers when the query editor is closed or
3551         the playlist is deleted.
3553 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3555         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
3556         removed load failure dialog, and actually use the friendly file type
3557         name in error messages.
3559 2006-02-24  James Livingston  <jrl@ids.org.au>
3561         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
3563         * sources/rb-library-source.c:
3564         (rb_library_source_location_button_clicked_cb),
3565         (rb_library_source_preferences_sync),
3566         (rb_library_source_library_location_cb): convert the library URI to
3567         for display, and back again. Fixes bug 332356.
3569 2006-02-23  James Livingston  <jrl@ids.org.au>
3571         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
3572         (rhythmdb_process_metadata_load), (monitor_subdirectory),
3573         (rhythmdb_sync_library_location): don't monitor files at all if
3574         watching is turned off. From bug 323096.
3576 2006-02-23  James Livingston  <jrl@ids.org.au>
3578         * data/rhythmbox.schemas:
3579         * lib/rb-preferences.h:
3580         * shell/rb-shell.c: (rb_shell_constructor),
3581         (rb_shell_set_visibility): remember main window visibility between
3582         sessions. Fixes bug 127320.
3584 2006-02-23  James Livingston  <jrl@ids.org.au>
3586         * data/glade/library-prefs.glade:
3587         * sources/rb-library-source.c: (impl_get_config_widget),
3588         (rb_library_source_location_button_clicked_cb),
3589         (rb_library_source_preferences_sync),
3590         (rb_library_source_library_location_cb),
3591         (rb_library_source_watch_toggled_cb): change the library-location
3592         widgets from the file-chooser drop menu to a text entry and Browse
3593         button. This is needed to prevent the location from chaning if the
3594         directory cannot be found. Fixes bug 328414.
3596 2006-02-23  James Livingston  <jrl@ids.org.au>
3598         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
3599         item. Fixes bug 329042.
3601 2006-02-23  James Livingston  <jrl@ids.org.au>
3603         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
3605         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
3606         comma in some podcast feeds. Fixes bug 332194.
3608 2006-02-23  James Livingston  <jrl@ids.org.au>
3610         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
3611         lower priority.
3613         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
3614         the internal audio cd URIs from "cdda://device:track" to
3615         "cdda://track#device" as it makes processing much easier.
3617         * shell/rb-shell-player.c: (rb_shell_player_open_location):
3618         * player/rb-player-gst.c: don't have the shell close the player
3619         between songs, as doing that should be backend-specific. Make the
3620         gstreamer backend close before starting a new track, unless the old
3621         and new ones are both tracks on the same audio cd. Just seek in that
3622         case.
3624 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3626         * doc/reference/rhythmbox.types: Fix doc build a bit more.
3628 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3630         * configure.ac: Enable more warnings in my stupid setup too.
3631         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
3632         #332210.
3634 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3636         * sources/rb-missing-files-source.h,
3637         * sources/rb-missing-files-source.c,
3638         * sources/rb-import-errors-source.h,
3639         * sources/rb-import-errors-source.c:
3640         Add library meta-sources, showing missing files and import errors.
3641         Fixes #167763, #142322.
3643         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
3644         * sources/rb-sourcelist-model.h:
3645         * sources/rb-sourcelist.c: (rb_sourcelist_append),
3646         (match_source_to_iter), (rb_sourcelist_source_to_iter),
3647         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
3648         (visibility_notify_cb):
3649         Store source visibility in the sourcelist model, so we can determine
3650         child source counts correctly and get the sourcelist expander column
3651         right.
3652         
3653         * widgets/rb-entry-view.h:
3654         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3655         (rb_entry_view_append_column), (set_column_visibility):
3656         Allow the creator of the entry view to specify which columns are
3657         always visible.
3659         * sources/rb-source.h:
3660         * sources/rb-source.c: (_autohide_update_visibility),
3661         (_rb_autohide_source_row_deleted_cb),
3662         (_rb_autohide_source_row_inserted_cb),
3663         (_rb_source_hide_when_empty):
3664         Allow sources to automatically hide themselves when empty.
3665         
3666         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
3667         * sources/rb-library-source.c: (rb_library_source_constructor):
3668         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3669         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
3670         Explicitly specify which columns are always visible.
3671         
3672         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
3673         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
3674         Remove load error signal handling and load failure dialog.
3675         Create missing files and import errors sources for the library.
3677         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
3678         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
3679         Create DB entries for import errors rather than emitting the 'load
3680         error' signal; mark loaded entries visible.
3681         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
3682         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
3683         (rhythmdb_prop_get_type): Store string form of last seen time for
3684         hidden entries, since it's used in the missing files source.
3685         (rhythmdb_entry_import_error_get_type): 
3686         Add entry type for import errors.
3687         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
3688         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
3689         (rhythmdb_entry_move_to_trash_set_error),
3690         (rhythmdb_entry_move_to_trash):  
3691         Correct spelling, add missing rhythmdb_commit.
3692         * rhythmdb/rhythmdb.h:  
3693         Add import error entry type and last seen string property.
3694         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
3695         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3696         (save_entry):  Ignore string form of 'last seen' property.
3698         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
3699         Don't try to play hidden entries or import error entries.
3701         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
3702         * sources/Makefile.am: Add meta-source files
3703         * widgets/Makefile.am: Remove load failure dialog files
3705 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3707         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
3708         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
3709         few bits and pieces.
3711 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3713         * metadata/test-metadata.c: (load_metadata_cb):
3714         Fix compile warning for ignoring return value from getcwd, #332064.
3716 2006-02-21  James Livingston  <jrl@ids.org.au>
3718         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
3719         (edit_auto_playlist_deleted_cb),
3720         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
3721         playlist editor non-modal. Fixes bug 320030.
3723 2006-02-21  James Livingston  <jrl@ids.org.au>
3725         * shell/rb-shell.c: (rb_shell_constructor):
3726         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
3727         (rb_header_set_show_artist_album):
3728         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
3729         (rb_song_display_box_sync): make the queue sidebar and song display
3730         not get affected by gtk_widget_show_all. Fixes bug 332001.
3732 2006-02-21  James Livingston  <jrl@ids.org.au>
3734         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3736         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
3737         feeds which use timezone names instead of offsets. Doesn't actually
3738         parse the timezone name since they are not standardised. Fixes bug
3739         331691.
3741 2006-02-21  James Livingston  <jrl@ids.org.au>
3743         * help/C/figures/rb-notification-area.png:
3744         * help/C/figures/rb-sidebar.png:
3745         * help/C/quick-reference.xml: remove obsolete files from CVS.
3747         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
3748         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
3749         (rhythmdb_query_free), (rhythmdb_query_serialize),
3750         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
3751         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
3753         * widgets/rb-query-creator-properties.c: add prefix and suffix
3754         (escapedStringCriteriaGetWidgetData): use better escaping, so it
3755         doesn't escape the ':' separator in uris.
3757 2006-02-21  James Livingston  <jrl@ids.org.au>
3759         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
3760         on startup.
3762 2006-02-21  James Livingston  <jrl@ids.org.au>
3764         * NEWS: update with recent changes
3766 2006-02-21  James Livingston  <jrl@ids.org.au>
3768         * shell/rb-shell.c: (rb_shell_constructor),
3769         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
3770         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
3771         (rb_druid_browse_clicked_cb), (do_response):
3772         * widgets/rb-druid.h: Make running the druid not block RBShell
3773         starting up. This is required so that bonobo registration doesn't time
3774         out. Fixed bug 318766.
3776 2006-02-21  James Livingston  <jrl@ids.org.au>
3778         * rhythmdb/rhythmdb-property-model.c:
3779         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
3780         hash table after using it, not before. Fixed bug 331922.
3782 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3784         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
3785         (rb_shell_view_queue_as_sidebar_changed_cb):
3786         When playing from the queue, only attempt to highlight the queue
3787         source in the source list if it's actually visible there.  Otherwise,
3788         leave the preempted source highlighted.  Mostly fixes #330819.
3790 2006-02-20  James Livingston  <jrl@ids.org.au>
3792         * rhythmdb/rhythmdb-property-model.c:
3793         (rhythmdb_property_model_row_inserted_cb),
3794         (rhythmdb_property_model_prop_changed_cb),
3795         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
3796         store the roperty value in the entry-mapping table, so that receiving
3797         the remove signal from a query model before we get notified of a
3798         change doesn't cause a crash. Fixes bug 331770.
3800 2006-02-20  James Livingston  <jrl@ids.org.au>
3802         * data/ui/rhythmbox-ui.xml:
3803         * sources/rb-play-queue-source.c:
3804         (rb_play_queue_source_class_init),
3805         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
3806         playlist things in the queue popup source. From 330490.
3808         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
3809         previous commit
3811 2006-02-20  James Livingston  <jrl@ids.org.au>
3813         * widgets/rb-song-info.c: (rb_song_info_response_cb),
3814         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
3815         attempt to sync data for non-editable entries when using
3816         next/previous. Don't write our Year if it wasn't changed. Fixes bug
3817         331762.
3819 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
3821         * .cvsignore:
3822         * Makefile.am:
3823         * autogen.sh:
3824         * configure.ac:
3825         * help/.cvsignore:
3826         * help/Makefile.am: ported to gnome-doc-utils
3827         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
3828         * help/ChangeLog: added, for translators
3829         * help/C/rhytmbox-C.omf: removed, no longer used
3830         Know issue: figures are installed, but some are not showed; manual
3831         description added, but not showed in Yelp while browsing. I'll
3832         investigate, maybe are needed some little changes to
3833         help/C/rhythmbox.xml.
3835 2006-02-20  James Livingston  <jrl@ids.org.au>
3837         * data/ui/rhythmbox-ui.xml:
3838         * help/C/figures/rb-adv.png:
3839         * help/C/figures/rb-asst-finish.png:
3840         * help/C/figures/rb-asst-library.png:
3841         * help/C/figures/rb-asst-start.png:
3842         * help/C/figures/rb-basic.png:
3843         * help/C/figures/rb-browser.png:
3844         * help/C/figures/rb-context-menu.png:
3845         * help/C/figures/rb-empty.png:
3846         * help/C/figures/rb-full-play.png:
3847         * help/C/figures/rb-group-auto.png:
3848         * help/C/figures/rb-group-create.png:
3849         * help/C/figures/rb-group.png:
3850         * help/C/figures/rb-imported.png:
3851         * help/C/figures/rb-iradio-add.png:
3852         * help/C/figures/rb-iradio.png:
3853         * help/C/figures/rb-nextprev.png:
3854         * help/C/figures/rb-nobrowse-play.png:
3855         * help/C/figures/rb-notification-area-menu.png:
3856         * help/C/figures/rb-player.png:
3857         * help/C/figures/rb-prefs-general.png:
3858         * help/C/figures/rb-prefs-ipod.png:
3859         * help/C/figures/rb-prefs-library.png:
3860         * help/C/figures/rb-prefs.png:
3861         * help/C/figures/rb-repeat.png:
3862         * help/C/figures/rb-search.png:
3863         * help/C/figures/rb-shuffle.png:
3864         * help/C/figures/rb-stats.png:
3865         * help/C/figures/rb-toolbar-editor.png:
3866         * help/C/figures/rb-volume-mute.png:
3867         * help/C/figures/rhythmbox-group.png:
3868         * help/C/figures/rhythmbox-tray-icon.png:
3869         * help/C/user-guide.xml: remove old stuff from cvs
3871 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3873         * metadata/rb-metadata-dbus-client.c: 
3874         * metadata/rb-metadata-dbus-service.c:
3875         * metadata/rb-metadata-dbus.c:
3876         * metadata/rb-metadata-dbus.h:
3877         New files, adding an external service for reading and writing
3878         metadata, and an implementation of the RBMetaData interface that uses
3879         dbus to communicate with it.
3880         
3881         * metadata/rb-metadata.h,
3882         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
3883         (rb_metadata_get_field_name): Put metadata details in a static array
3884         instead of using a hash table, and add a field for language code (not
3885         used for anything)
3886         * metadata/rb-metadata-gst.c: Updates for changes in
3887         rb-metadata-common.c, fix signal handler closure leak for the typefind
3888         element's have-type signal, and add XML to the list of types we ignore.
3889         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
3890         Update for changes to rb_metadata_get_field_type
3891         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
3892         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
3893         here and there.
3894         
3895         * configure.ac: Add --enable-metadata-helper option (not enabled by
3896         default) to use the external metadata service
3897         * metadata/Makefile.am: Add new files
3898         * metadata/test-metadata.c:  Test program for the metadata service
3900         Fixes #329597. 
3902 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3904         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
3905         * sources/rb-podcast-source.c: (impl_get_ui_actions),
3906         (rb_podcast_source_cmd_new_podcast):
3907         Move 'new podcast' action to the podcast source, and add it to the
3908         toolbar.  Fixes #331562.
3910 2006-02-19  James Livingston  <jrl@ids.org.au>
3912         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
3913         menus, and away from move-to-trash. Fixes bug 331013.
3915 2006-02-19  James Livingston  <jrl@ids.org.au>
3917         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
3918         when deleting last entry. Fixes bug 331712.
3920 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3922         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3923         (rb_entry_view_button_press_cb):
3924         * widgets/rb-entry-view.h: Emit show-popup when right clicked
3925         anywhere, and include a flag indicating whether the click was over an
3926         entry or not.
3927         
3928         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
3929         (rb_playlist_source_songs_show_popup_cb):
3930         * sources/rb-playlist-source.h:
3931         Add the 'over entry' flag to the class show popup method, and in the
3932         default handler, ignore right clicks when not over an entry.
3933         
3934         * sources/rb-iradio-source.c:
3935         (rb_iradio_source_songs_show_popup_cb):
3936         * sources/rb-library-source.c:
3937         (rb_library_source_songs_show_popup_cb):
3938         * sources/rb-podcast-source.c:
3939         (rb_podcast_source_songs_show_popup_cb):
3940         Show the source list popup menu when right clicked while not over an
3941         entry.
3943         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
3944         For the queue sidebar, always display the popup so the 'clear queue'
3945         action is available regardless of where you click.  For the queue
3946         source, only display the popup when right clicked over an entry.
3947         Fixes #331392.
3949 2006-02-19  James Livingston  <jrl@ids.org.au>
3951         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
3952         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
3953         entry view, when we're not even using it
3955         * rhythmdb/rhythmdb-property-model.c:
3956         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
3957         function, rather than a copy of the code.
3959         * shell/rb-playlist-manager.c:
3960         (rb_playlist_manager_playlist_row_inserted_cb),
3961         (rb_playlist_manager_set_source_internal),
3962         (rb_playlist_manager_playlist_entries_changed): use the query-model
3963         directly, rather than the source's entry view.
3965         * shell/rb-source-header.c: don't use the entry view, just select the
3966         source widget.
3968 2006-02-18  James Livingston  <jrl@ids.org.au>
3970         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
3972         * help/C/figures/rb-iradio-main.png:
3973         * help/C/figures/rb-notification-area-menu.png:
3974         * help/C/figures/rb-notification-window.png:
3975         * help/C/figures/rb-notification-zone.png:
3976         * help/C/figures/rb-podcast-main.png:
3977         * help/C/figures/rb-statusbar.png:
3978         * help/C/figures/rb-toolbar-prevplaynext.png:
3979         * help/C/figures/rb-toolbar-repeat.png:
3980         * help/C/figures/rb-toolbar-shuffle.png:
3981         * help/C/figures/rb-toolbar.png:
3982         * help/C/figures/rb-volume-changer.png:
3983         * help/C/figures/rb-window-small.png:
3984         * help/C/figures/rb-window.png:
3985         * help/C/rhythmbox.xml: Update user guide with some of the changes
3986         that have occurred after 0.8.8. From bug 314001.
3988 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3990         * rhythmdb/rhythmdb-query-results.h,
3991           rhythmdb/rhythmdb-query-results.c:
3992         New interface for objects that accept query results from RhythmDB.
3994         * rhythmdb/rhythmdb-query-model.c:
3995         (rhythmdb_query_model_query_results_init),
3996         (rhythmdb_query_model_set_query),
3997         (rhythmdb_query_model_add_results),
3998         (rhythmdb_query_model_query_complete):
3999         * rhythmdb/rhythmdb-query-model.h:
4000         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
4002         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
4003         (rhythmdb_tree_do_full_query):
4004         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
4005         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
4006         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
4007         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
4008         * rhythmdb/rhythmdb.h:
4009         Pass query results through the RhythmDBQueryResults interface, rather
4010         than directly to a RhythmDBQueryModel.
4012         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
4013         (rb_podcast_manager_db_entry_deleted_cb):
4014         * sources/rb-auto-playlist-source.c:
4015         (rb_auto_playlist_source_do_query),
4016         (rb_auto_playlist_source_set_query):
4017         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
4018         * sources/rb-library-source.c: (rb_library_source_constructor),
4019         (rb_library_source_do_query):
4020         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
4021         (rb_podcast_source_do_query):
4022         * rhythmdb/rhythmdb-property-model.c:
4023         (rhythmdb_property_model_drag_data_get):
4024         Cast the query model to RhythmDBQueryResults when passing to one of
4025         the RhythmDB query methods.
4027         * rhythmdb/Makefile.am: Add new files.
4029 2006-02-18  James Livingston  <jrl@ids.org.au>
4031         * data/ui/rhythmbox-ui.xml:
4032         * shell/rb-playlist-manager.c:
4033         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
4034         "queue playlist" item to source context menu. Fixes bug 330490.
4036 2006-02-18  James Livingston  <jrl@ids.org.au>
4038         * data/glade/general-prefs.glade:
4039         * shell/rb-shell-preferences.c:
4040         (rb_shell_preferences_column_check_changed_cb),
4041         (rb_shell_preferences_sync):
4042         * sources/rb-library-source.c: (rb_library_source_constructor):
4043         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4044         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
4045         (rb_entry_view_append_column): Add a "quality" colume which indicates
4046         the bitrate of media. Part of bug 167659.
4048 2006-02-18  James Livingston  <jrl@ids.org.au>
4050         * shell/rb-play-order.c: (do_next_idle_cb),
4051         (default_playing_entry_removed): move to next track when playing entry
4052         is deleted. Fixes bug 131150.
4054         * shell/rb-shell-player.h: remove ancient stuff
4056 2006-02-17  William Jon McCann  <mccann@jhu.edu>
4058         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
4059         (rb_shell_clipboard_set_property): 
4060         * shell/rb-shell.c (rb_shell_sync_party_mode):
4061         Trigger a resync of the clipboard properties when changing party mode.
4063 2006-02-17  William Jon McCann  <mccann@jhu.edu>
4065         * sources/rb-static-playlist-source.c: Fix includes.
4067         * sources/rb-source.c (rb_source_can_rename) 
4068         (rb_source_can_delete, rb_source_can_move_to_trash):
4069         Return FALSE if in party mode.
4071         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
4072         Replace fullscreen with party mode.
4073         (rb_shell_window_delete_cb): Don't quit if in party mode.
4074         (rb_shell_view_party_mode_changed_cb): Setup party mode.
4075         (window_state_event_cb): Try to deiconify shell when iconified
4076         in party mode.
4077         (rb_shell_sync_party_mode): Sync party mode properties.
4078         Currently, that means [de]sensitizing close, quit, and small-display,
4079         going into fullscreen mode with window stuck and kept above, and
4080         toggling queue-only for the shell player.
4081         (rb_shell_sync_smalldisplay): Sensitive party mode.
4082         (rb_shell_get_party_mode): Get party mode setting.
4084         * shell/rb-shell-player.c (rb_shell_player_class_init) 
4085         (rb_shell_player_set_property, rb_shell_player_get_property):
4086         Add queue-only property.
4087         (rb_shell_player_entry_activated_cb): If in party mode
4088         only queue the entry on activation.
4090         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
4091         Break out from set_properties.  Desensitize some actions when
4092         in party mode.
4093         (rb_playlist_manager_set_property): Break out set_source_internal.
4095         * data/rhythmbox.schemas: Remove fullscreen mode.
4097         * data/ui/rhythmbox-ui.xml: Replace fullscreen
4098         action with party mode.
4100         Partial fix for #323933
4102 2006-02-17  James Livingston  <jrl@ids.org.au>
4104         * configure.ac:
4105         * shell/rb-removable-media-manager.c:
4106         (get_nautilus_burn_drive_for_path),
4107         (rb_removable_media_manager_playing_uri_changed_cb): only use
4108         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
4109         over the list when it doesn't.
4111 2006-02-17  James Livingston  <jrl@ids.org.au>
4113         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
4114         (rb_iradio_source_first_time_changed): Only do the import on the
4115         first change from FALSE to TRUE.
4117         * sources/rb-library-source.c:
4118         (rb_library_source_preferences_sync),
4119         (rb_library_source_library_location_cb): set the first-run done flag
4120         if the user presses close and then sets their watches library
4121         location. Fixes bug 325997.
4123 2006-02-17  James Livingston  <jrl@ids.org.au>
4125         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
4126         removable media manager gobject properties
4128         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
4129         (split_drive_from_cdda_uri),
4130         (rb_removable_media_manager_playing_uri_changed_cb),
4131         (rb_removable_media_manager_load_media): stop polling a cd drive
4132         when we are playing from it. Part of bug 330716.
4134 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4136         * rhythmdb/rhythmdb-query-model.c:
4137         (rhythmdb_query_model_set_property),
4138         (rhythmdb_query_model_finalize),
4139         (rhythmdb_query_model_base_entry_removed):
4140         Propagate entry removal from base models out to attached property
4141         models.  Fixes the rest of #331165.
4143 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4145         * rhythmdb/rhythmdb-property-model.c:
4146         (rhythmdb_property_model_row_inserted_cb),
4147         (rhythmdb_property_model_prop_changed_cb),
4148         (rhythmdb_property_model_insert):
4149         Don't store NULL as a hash table value if we want to use
4150         g_hash_table_lookup to check if a key exists, and get the checks for
4151         how and whether to handle entry changes the right way around.
4152         Fixes #331211 and half of #331165.
4154 2006-02-16  James Livingston  <jrl@ids.org.au>
4156         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
4157         the audio cd's TOC in a separate thread, so it doesn't block the UI.
4158         Fixes bug 329942.
4160 2006-02-16  James Livingston  <jrl@ids.org.au>
4162         * widgets/rb-library-browser.c: (reset_view_cb): make View All
4163         actually reset the browsers.
4165 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4167         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
4168         Escape the strings we pass into libnotify so we don't get blank
4169         notifications when the song name contains '&' etc.  Fixes #330784.
4171 2006-02-16  James Livingston  <jrl@ids.org.au>
4173         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
4174         enable "View All" when there is only a search box and no browser.
4175         Fixes bug 331395.
4177 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4179         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
4180         popup menu, which I forgot to commit with the patch for bug #330014.
4182 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4184         * shell/rb-shell-player.c: (open_location_thread):
4185         Sync button and entry view state once we've started the player, so the
4186         entry view gets into the playing state for iradio.
4188 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4190         * shell/rb-shell-player.c: (open_location_thread):
4191         Take GDK lock before doing anything UI-related.
4193 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4195         * shell/rb-shell.c: Move 'new iradio station' action to
4196         iradio source.
4198         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4199         (rb_iradio_source_init), (rb_iradio_source_finalize),
4200         (rb_iradio_source_constructor):
4201         Remove some unused stuff.
4203         (guess_uri_scheme), (rb_iradio_source_add_station),
4204         (rb_iradio_source_add_from_playlist),
4205         (impl_get_ui_actions), (new_station_location_added),
4206         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
4207         action, include it in the toolbar, and make sure the URI we add has a
4208         scheme.  Fixes #327059, more or less.
4210 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4212         * sources/rb-play-queue-source.c:
4213         (rb_play_queue_source_class_init),
4214         (rb_play_queue_source_constructor),
4215         (rb_play_queue_source_update_count),
4216         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
4217         Add a toolbar button to clear the play queue, and make it sensitive
4218         only when there are entries in the queue.  Fixes #330014.
4220         * sources/rb-source.c: (_rb_source_register_action_group):
4221         * sources/rb-source.h:  Add helper function to register an
4222         action group for a source.
4224         * sources/rb-library-source.c: (rb_library_source_constructor):
4225         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
4226         (register_action_group):  Use _rb_source_register_action_group.
4228 2006-02-15  James Livingston  <jrl@ids.org.au>
4230         * widgets/rb-song-info.c: (rb_song_info_add_completion),
4231         (rb_song_info_constructor), (rb_song_info_set_property): make
4232         tag-editing completion work for albums too.
4234 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4236         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
4237         Check the 'limit' checkbox for time-limited playlists.
4239 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
4241         * widgets/rb-song-info.c: Prove text-completion when editing title,
4242         artist or album
4244 2006-02-14  James Livingston  <jrl@ids.org.au>
4246         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
4247         tray icon popup menu. Fixes bug 331026.
4249 2006-02-14  James Livingston  <jrl@ids.org.au>
4251         * data/iradio-initial.pls: update the Virgin Radio stations to use the
4252         Ogg Vorbis streams, instead of the MP3 ones.
4254 2006-02-14  James Livingston  <jrl@ids.org.au>
4256         * rhythmdb/rhythmdb-property-model.c:
4257         (rhythmdb_property_model_class_init),
4258         (rhythmdb_property_model_drag_data_get):
4259         * rhythmdb/rhythmdb-query-model.c:
4260         (rhythmdb_query_model_title_sort_func):
4261         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
4262         LOCATION as the key. Fixes bug 330601.
4264 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4266         * sources/rb-playlist-source.c: (playlist_iter_func):
4267         Make it compile with older versions of totem-plparser too.      
4269 2006-02-13  James Livingston  <jrl@ids.org.au>
4271         * rhythmdb/rhythmdb.h:
4272         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
4273         structure private, since things should use the accessor functions
4274         rather than manipulating it directly - Only RhythmDB and the
4275         implementation classes should access it directly. Part of the RhythmDB
4276         cleanup of bug 330226.
4278         * iradio/rb-station-properties-dialog.c:
4279         (rb_station_properties_dialog_update_title),
4280         (rb_station_properties_dialog_update_title_entry),
4281         (rb_station_properties_dialog_update_genre),
4282         (rb_station_properties_dialog_update_location),
4283         (rb_station_properties_dialog_update_play_count),
4284         (rb_station_properties_dialog_update_bitrate),
4285         (rb_station_properties_dialog_update_last_played),
4286         (rb_station_properties_dialog_update_rating),
4287         (rb_station_properties_dialog_update_playback_error),
4288         (rb_station_properties_dialog_sync_entries):
4289         * podcast/rb-feed-podcast-properties-dialog.c:
4290         (rb_feed_podcast_properties_dialog_update_title),
4291         (rb_feed_podcast_properties_dialog_update_title_label),
4292         (rb_feed_podcast_properties_dialog_update_author),
4293         (rb_feed_podcast_properties_dialog_update_location),
4294         (rb_feed_podcast_properties_dialog_update_copyright),
4295         (rb_feed_podcast_properties_dialog_update_language),
4296         (rb_feed_podcast_properties_dialog_update_summary):
4297         * podcast/rb-podcast-manager.c:
4298         (rb_podcast_manager_entry_downloaded),
4299         (rb_podcast_manager_db_entry_added_cb),
4300         (download_progress_update_cb),
4301         (rb_podcast_manager_db_entry_deleted_cb):
4302         * podcast/rb-podcast-properties-dialog.c:
4303         (rb_podcast_properties_dialog_update_title),
4304         (rb_podcast_properties_dialog_update_title_label),
4305         (rb_podcast_properties_dialog_update_feed),
4306         (rb_podcast_properties_dialog_update_location),
4307         (rb_podcast_properties_dialog_update_play_count),
4308         (rb_podcast_properties_dialog_update_bitrate),
4309         (rb_podcast_properties_dialog_update_last_played),
4310         (rb_podcast_properties_dialog_update_rating),
4311         (rb_podcast_properties_dialog_update_date),
4312         (rb_podcast_properties_dialog_update_description):
4313         * rhythmdb/rhythmdb-query-model.c:
4314         (rhythmdb_query_model_entry_changed_cb),
4315         (rhythmdb_query_model_remove_from_main_list),
4316         (rhythmdb_query_model_update_limited_entries),
4317         (rhythmdb_query_model_drag_data_get),
4318         (rhythmdb_query_model_album_sort_func):
4319         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4320         (save_entry):
4321         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
4322         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
4323         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
4324         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
4325         (rhythmdb_entry_get_double):
4326         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
4327         * shell/rb-play-order-random-by-age-and-rating.c:
4328         (rb_random_by_age_and_rating_get_entry_weight):
4329         * shell/rb-play-order-random-by-age.c:
4330         (rb_random_by_age_get_entry_weight):
4331         * shell/rb-play-order-random-by-rating.c:
4332         (rb_random_by_rating_get_entry_weight):
4333         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
4334         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
4335         (rb_shell_player_set_playing_entry),
4336         (rb_shell_player_sync_replaygain),
4337         (rb_shell_player_sync_with_source),
4338         (rb_shell_player_get_playing_song_duration), (info_available_cb):
4339         * sources/rb-playlist-source.c: (playlist_iter_func),
4340         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
4341         (rb_playlist_source_entry_added_cb):
4342         * sources/rb-podcast-source.c:
4343         (rb_podcast_source_post_status_cell_data_func):
4344         * sources/rb-source.c: (rb_source_update_play_statistics):
4345         * sources/rb-sourcelist-model.c:
4346         (rb_sourcelist_model_drag_data_get):
4347         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
4348         (rb_static_playlist_source_add_entry),
4349         (rb_static_playlist_source_remove_entry):
4350         * widgets/rb-entry-view.c: (type_ahead_search_func),
4351         (rb_entry_view_playing_cell_data_func),
4352         (rb_entry_view_rating_cell_data_func),
4353         (rb_entry_view_pixbuf_clicked_cb):
4354         * widgets/rb-header.c: (rb_header_get_duration):
4355         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
4356         (rb_song_info_populate_dialog),
4357         (rb_song_info_update_playback_error),
4358         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
4359         (rb_song_info_update_location), (rb_song_info_update_play_count),
4360         (rb_song_info_update_last_played), (rb_song_info_update_rating),
4361         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
4362         (rb_song_info_sync_entry_single): fix the huge number of times that
4363         the internals got accessed directly.
4365 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4367         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
4368         trash' are grouped together.
4369         * shell/main.c: (main): Pass no-registration flag in to RBShell
4370         constructor, rather than mysteriously always passing TRUE.
4371         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
4372         Set dirty flag when entries are removed from the model, so the play
4373         queue is marked dirty appropriately.
4374         * AUTHORS: update my email address
4376 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4378         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
4380         * widgets/rb-druid.c: (path_dialog_response_cb):
4381         If the URI is local, don't display the 'file://' prefix.  
4382         Fixes #330919.
4384 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4386         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
4387         Attach the notification to the tray icon widget, so libnotify
4388         positions it less badly.  Fixes #330876.
4390 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4392         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
4393         Reverse the selection list before returning it, so we get it in the
4394         right order.  Fixes #330283 and some other weirdness.
4396 2006-02-11  James Livingston  <jrl@ids.org.au>
4398         * shell/rb-shell.c: (rb_shell_constructor),
4399         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
4400         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
4401         make small-mode and fullscreen mutually exclusive, since they don't
4402         work together
4404         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
4405         Mode.
4407 2006-02-10  James Livingston  <jrl@ids.org.au>
4409         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
4410         since it can cause it to be slower than real-time. Should fix bug
4411         322270.
4413 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4415         * rhythmdb/rhythmdb-query-model.c:
4416         (rhythmdb_query_model_set_property):
4417         Think just a little bit harder about that last commit.
4419 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4421         * rhythmdb/rhythmdb-query-model.c:
4422         (rhythmdb_query_model_set_property):
4423         Get the check for hidden entries the right way around.
4424         Fixes #330527, #330514.
4426         (rhythmdb_query_model_set_sort_order):
4427         Ignore no-op sort order changes, so we don't get critical
4428         messages when selecting 'all' in auto playlist browsers.
4430 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4432         Patch by: Christophe Fergeau  <teuf@gnome.org>
4434         * sources/rb-removable-media-source.c:
4435         (rb_removable_media_source_init),
4436         (rb_removable_media_source_constructor):
4437         Move icon setup code to the constructor, as the volume property
4438         haven't been set yet when _init is called.
4440 2006-02-09  William Jon McCann  <mccann@jhu.edu>
4442         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
4443         Make the source pixbuf a dynamic property.
4445         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
4446         (rb_source_set_pixbuf, rb_source_set_property) 
4447         (rb_source_get_property): Add icon property.
4449         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
4450         (rb_auto_playlist_source_init):
4451         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
4452         (rb_static_playlist_source_init):
4453         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
4454         (rb_removable_media_source_init): 
4455         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
4456         (rb_podcast_source_init): 
4457         * sources/rb-library-source.c (rb_library_source_class_init) 
4458         (rb_library_source_set_property, rb_library_source_get_property): 
4459         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
4460         (rb_iradio_source_init): Remove impl_get_pixbuf and
4461         set icon property on source base class.
4463         * sources/rb-daap-source.c (rb_daap_get_icon): Get
4464         a different icon for when the share is password protected
4465         and locked.
4466         (rb_daap_source_new): Set icon property.
4467         (composite_icons): Composite an emblem on a pixbuf.
4468         (create_pixbufs): Load global pixbufs.
4469         (destroy_pixbufs): unref global pixbufs.
4470         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
4471         (connection_auth_cb, connection_connected_cb) 
4472         (connection_disconnected_cb): Update icon when connection
4473         status changes.
4474         (rb_daap_source_activate): Connect signals.
4476         * daapsharing/rb-daap-share.c (name_collision_cb): Run
4477         dialog with parent.
4479         * daapsharing/rb-daap-marshal.list: Add new signal.
4481         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
4482         (rb_daap_collision_dialog_new_run): Set parent of dialog.
4484         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
4485         Add authenticate, connected, and disconnected signals.
4486         (connection_get_password): emit authenticate signal instead
4487         of running dialog directly.
4488         (connection_connected, connection_disconnected): Emit signals.
4489         (handle_login): Emit connected signal.
4490         (handle_logout): Emit disconnected signal.
4491         (rb_daap_connection_do_something): Fix leak.
4493         Fixes #330291
4495 2006-02-09  James Livingston  <jrl@ids.org.au>
4497         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
4498         entries from the base model if we don't have show-hidden set. Fixes
4499         bug 330514.
4501 2006-02-08  William Jon McCann  <mccann@jhu.edu>
4503         * daapsharing/rb-daap-share.c (message_get_session_id):
4504         Ugh. Use strtoul instead of atoi.
4505         (session_id_validate): Add debug statements.
4507 2006-02-08  William Jon McCann  <mccann@jhu.edu>
4509         * daapsharing/rb-daap-connection.c (http_response_handler):
4510         Report the actual uri from the message in debug statements.
4512 2006-02-08  William Jon McCann  <mccann@jhu.edu>
4514         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
4515         Add context argument.
4516         (message_get_session_id): New function to parse session id from
4517         the message.
4518         (message_get_revision_number): Break out function to parse
4519         revision number from the message.
4520         (session_id_validate): New function to validate given session id
4521         is valid for given context (ie. client address).
4522         (session_id_generate): Generate a random session id.
4523         (session_id_create): Create a unique session id and store it.
4524         (session_id_remove): Remove a session id from the store.
4525         (login_cb): Create a session id instead of using a constant one.
4526         (logout_cb): Validate session id.
4527         (update_cb): Use new message_get_revision_number function.
4528         (databases_cb): Validate session id.
4529         (server_cb): Add server context to argument list for callbacks.  It
4530         is needed to look up the remote host.
4531         (db_entry_changed_cb): Use braces.
4532         (soup_auth_callback): Remove FIXME.
4533         (rb_daap_share_server_start): Create session id store.
4534         (rb_daap_share_server_stop): Destroy session id store.
4536         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
4537         Don't base64-encode password here since it needs to be
4538         combined with the username first.
4540         * daapsharing/rb-daap-connection.c (build_message):
4541         Add username to Authorization token.
4542         (handle_login, handle_song_listing) 
4543         (rb_daap_connection_do_something): Session id
4544         must be an unsigned int.
4546         Fixes #329814
4548 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4550         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
4551         Don't check if we've got a playing entry, ask the player object (duh).
4552         Might actually fix #329993.     
4554 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4556         * sources/rb-static-playlist-source.c:
4557         (rb_static_playlist_source_add_list_uri):
4558         Canonicalise URIs before trying to add them to the playlist, and 
4559         don't try to add files to the database for which there is 
4560         already an entry.
4562 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4564         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
4565         Don't ask the entry view if we're playing, just check if we've got a
4566         playing entry.  Fixes #329993.
4568 2006-02-08  James Livingston  <jrl@ids.org.au>
4570         * rhythmdb/rhythmdb-query-model.c:
4571         (rhythmdb_query_model_set_property),
4572         (rhythmdb_query_model_finalize),
4573         (rhythmdb_query_model_base_complete): remove
4574         rhythmdb_query_model_base_entry_prop_changed, so that two signals
4575         don't get emitted for entry changes. Fixes bug 330301.
4577         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4578         (rb_library_browser_init), (rb_library_browser_constructor),
4579         (rb_library_browser_new): do stuff in the constructor, not the init
4580         function, so that the db property gets set on RBPropertyViews
4581         correctly. Fixes a crash when dragging properties to a playlist.
4583 2006-02-07  William Jon McCann  <mccann@jhu.edu>
4585         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
4586         Actually stop soup server.  Fixes #329816.
4588 2006-02-07  James Livingston  <jrl@ids.org.au>
4590         * lib/rb-util.h:
4591         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
4592         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
4593         (collate_values_cb), (rb_collate_hash_table_keys),
4594         (rb_collate_hash_table_values): add functions to compare, copy and
4595         free string-lists. add functions to collate the keys or values of a
4596         hash table into a list.
4598         * rhythmdb/rhythmdb-property-model.c:
4599         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
4600         (_remove_entry_cb), (_add_entry_cb),
4601         (rhythmdb_property_model_set_property),
4602         (rhythmdb_property_model_get_property),
4603         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
4604         (rhythmdb_property_model_row_inserted_cb),
4605         (rhythmdb_property_model_prop_changed_cb),
4606         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
4607         that are hidden, storing those that we have counted in a hash-table.
4609         * shell/Makefile.am: fix build order issue
4611         * shell/rb-shell-player.c: (rb_shell_player_set_property):
4612         * sources/rb-source.h:
4613         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
4614         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4615         * sources/rb-podcast-source.c: (feed_select_change_cb): add
4616         browser-toggled method, rename _get_exta_views to _get_property_views,
4617         since several things depend on returning only that.
4619         * sources/rb-source.c: (rb_source_class_init),
4620         (rb_source_browser_toggled), (default_get_property_views),
4621         (rb_source_get_property_views), (rb_source_row_deleted_cb),
4622         (rb_source_gather_hash_keys),
4623         (rb_source_gather_selected_properties): above changes, and move some
4624         utility functions up from RBLibraryView
4626         * widgets/rb-property-view.c:
4627         (rb_property_view_selection_changed_cb): fix leak.
4629         * rhythmdb/rhythmdb-query-model.c:
4630         (rhythmdb_query_model_set_property),
4631         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
4632         (rhythmdb_query_model_set_sort_order),
4633         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
4634         query model being resorted.
4636         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
4637         NULL query.
4639         * rhythmdb/rhythmdb.h:
4640         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
4641         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
4642         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
4643         two queries. Add a function to append "property={X,Y,Z,...}" to a
4644         query.
4646         * sources/rb-library-source.c: (rb_library_source_class_init),
4647         (rb_library_source_finalize), (rb_library_source_constructor),
4648         (rb_library_source_cmd_choose_genre),
4649         (rb_library_source_cmd_choose_artist),
4650         (rb_library_source_cmd_choose_album), (impl_search),
4651         (impl_get_property_views), (impl_reset_filters),
4652         (rb_library_source_preferences_sync),
4653         (rb_library_source_browser_views_activated_cb),
4654         (rb_library_source_state_prefs_sync),
4655         (construct_query_from_selection), (rb_library_source_do_query),
4656         (rb_library_source_browser_changed_cb):
4657         * widgets/Makefile.am:
4658         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
4659         browser" widgets, which contains several property views, based on the
4660         code from RBLibrarySource. Make RBLibrarySource use it.
4662         * sources/rb-auto-playlist-source.c:
4663         (rb_auto_playlist_source_class_init),
4664         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
4665         (rb_auto_playlist_source_constructor), (impl_reset_filters),
4666         (impl_get_property_views), (impl_browser_toggled),
4667         (construct_query_from_selection),
4668         (rb_auto_playlist_source_do_query),
4669         (rb_auto_playlist_source_set_query),
4670         (rb_auto_playlist_source_browser_changed_cb): Use the new
4671         library-browser widget to add browsers to automatic playlists.
4673 2006-02-07  James Livingston  <jrl@ids.org.au>
4675         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
4676         properly.
4677         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
4678         type of the source is taken into account. Fixes bug 329621.
4680 2006-02-07  James Livingston  <jrl@ids.org.au>
4682         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4683         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
4684         1.1, and perform URI canonicalistion when first upgrading. This should
4685         fix our remaining canonicalisation issues, such as bug 329988.
4687 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
4689         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
4690         Track the playing entry when the entry view isn't in the playing
4691         state, so we don't have to get the state changes exactly right.
4692         Fixes #330135.
4694 2006-02-06  James Livingston  <jrl@ids.org.au>
4696         * shell/rb-shell-player.c: (open_location_thread),
4697         (rb_shell_player_open_location): fix several iradio issues: having to
4698         press play after double-clicking on a station, not working correctly
4699         without a http:// prefix, and ignoring totem-plparser results other
4700         than success or error (e.g. IGNORE).
4702 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
4704         Addition of dbus methods for dealing with static playlists and the
4705         play queue.  Fixes #329958.
4707         * shell/Makefile.am:
4708         * shell/rb-playlist-manager.h:
4709         * shell/rb-playlist-manager.xml:
4710         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
4711         (rb_playlist_manager_get_playlists),
4712         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
4713         (rb_playlist_manager_create_static_playlist),
4714         (rb_playlist_manager_delete_playlist),
4715         (rb_playlist_manager_add_to_playlist),
4716         (rb_playlist_manager_remove_from_playlist),
4717         (rb_playlist_manager_export_playlist):
4718         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
4719         to create, delete, list, modify, export, and import  static playlists.
4720         
4721         * shell/main.c: (main): Register playlist manager object with dbus.
4723         * shell/rb-shell.h:
4724         * shell/rb-shell.xml:
4725         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
4726         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
4727         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
4728         object, and implement the addToQueue and removeFromQueue methods.
4729         
4730         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
4731         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
4732         formats.
4734 2006-02-05  James Livingston  <jrl@ids.org.au>
4736         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
4737         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
4738         (save_entry): allow storage of booleans in the on-disk db, and
4739         save/load the HIDDEN property.
4741         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
4742         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
4743         to the state it was when RB shutdown. This makes RB appear to start
4744         faster, as tracks can appear before the stat is done. Remote files
4745         still start hidden. From bug 325215.
4747 2006-02-05  James Livingston  <jrl@ids.org.au>
4749         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
4750         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
4751         really cares about the difference from "entry-added", and it isn't
4752         emitted by the tree backend anyway.
4754         * rhythmdb/rhythmdb-query-model.c:
4755         (rhythmdb_query_model_constructor):
4756         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4757         remove the references to the entry-restored signal.
4759 2006-02-05  James Livingston  <jrl@ids.org.au>
4761         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
4762         issue.
4764 2006-02-05  James Livingston  <jrl@ids.org.au>
4766         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
4767         things are NULL before using g_object_unref. Fixes bug 327452.
4769         * player/rb-recorder-gst.c: (rb_recorder_construct):
4770         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
4771         rather than assertion.
4773         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
4774         emit a warning, rather than asserting if an unknown playlist type is
4775         encountered.
4777 2006-02-05  James Livingston  <jrl@ids.org.au>
4779         * widgets/Makefile.am:
4780         * widgets/rb-simple-view.c:
4781         * widgets/rb-simple-view.h: Move the two features that this class
4782         provides into RBPropertyView, and remove this class. Closes bug
4783         327500.
4785         * podcast/rb-feed-podcast-properties-dialog.c:
4786         * podcast/rb-feed-podcast-properties-dialog.h:
4787         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
4788         (rb_podcast_source_feeds_show_popup_cb):
4789         * sources/rb-podcast-source.h:
4790         * widgets/rb-property-view.c: (rb_property_view_class_init),
4791         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
4792         (rb_property_view_append_column_custom),
4793         (rb_property_view_button_press_cb):
4794         * widgets/rb-property-view.h: Updated for the above change.
4796 2006-02-04  James Livingston  <jrl@ids.org.au>
4798         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
4799         too close to Move to Trash and people aren't likely to use it often.
4801 2006-02-04  James Livingston  <jrl@ids.org.au>
4803         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
4805 2006-02-04  James Livingston  <jrl@ids.org.au>
4807         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
4808         passed a path instead of a URI.
4810         * sources/rb-generic-player-source.c: (default_get_mount_path):
4811         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
4812         the path. This fixes bug 329723.
4814 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
4816         * daapsharing/rb-daap-structure.c:
4817         (rb_daap_content_code_string_as_int32):
4818         Use network byte order.
4820 2006-02-03  William Jon McCann  <mccann@jhu.edu>
4822         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
4823         Use a hash for source lookup.
4824         (mdns_service_added, mdns_service_removed): Handle
4825         service-added and service-removed signals from RBDaapMdnsBrowser.
4826         (remove_source): GDestroyNotify function for when sources
4827         are removed from the hash.
4828         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
4829         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
4830         (rb_daap_sources_shutdown): Update.
4831         (source_host_find): GHRFunc for finding a source by ip.
4832         (rb_daap_source_find_for_uri): Use the hash source lookup.
4834         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
4835         Namespace keys.
4836         (password_check_button_toggled_cb): Handle password enabled.
4837         (share_name_entry_focus_out_event_cb): Namespace keys.
4838         Handle changes more robustly.
4839         (share_password_entry_focus_out_event_cb): Handle password entry.
4840         (add_daap_preferences): Connect to password signals.
4842         * lib/rb-preferences.h: Add DAAP keys.
4844         * data/glade/daap-prefs.glade: Add password UI.
4846         * data/rhythmbox.schemas: Add password keys.
4848         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
4849         assert with warning.
4851         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
4852         gconf keys to lib/rb-preferences.h.  Namespace
4853         the gconf keys.
4854         (create_share): Add password support.
4855         (enable_sharing_changed_cb): Namespaced keys.
4856         (require_password_changed_cb): Handle key change.
4857         (share_name_changed_cb): Namespaced keys.
4858         (share_password_changed_cb): Handle key change.
4859         (rb_daap_sharing_init): Namespaced keys.
4860         (rb_daap_sharing_shutdown): Ditto.
4862         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
4863         Add password property.
4864         (rb_daap_share_set_name): Break out prop set function.
4865         (published_cb): New RBDaapMdnsPublisher signal handler.
4866         (name_collision_cb): Ditto.
4867         (rb_daap_share_init): Create publisher object and
4868         connect to signals.
4869         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
4870         (rb_daap_share_set_property): Break out prop set functions.
4871         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
4872         Unref publisher.
4873         (rb_daap_share_new): Add password argument.  Start
4874         publishing and DAAP server.
4875         (message_set_from_rb_daap_structure): Change print to debug.
4876         (server_info_cb): Set auth method to publish.
4877         (logout_cb): Handle DAAP client logout.
4878         (update_cb): Remove C++ comments.
4879         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
4880         (server_cb): Add debug.
4881         (soup_auth_callback): Handle auth requests.
4882         (rb_daap_share_server_start): Split up functions for starting
4883         server and publishing.  Add auth handling to server.
4884         (rb_daap_share_server_stop): Split stop server and publish.
4885         No C++ comments.
4886         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
4887         Start and stop publishing.
4888         (rb_daap_share_restart): Restart server and publishing.
4889         (rb_daap_share_maybe_restart): Conditionally restart.
4891         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
4892         (rb_daap_collision_dialog_new_run): Don't use
4893         separators in dialogs.
4895         * daapsharing/rb-daap-connection.h: Add private
4896         data to class structure.
4898         * daapsharing/rb-daap-connection.c: Move
4899         some includes to top of file.  Make private
4900         data struct name consistent with others.
4901         (rb_daap_connection_class_init): Rename
4902         private.
4903         (rb_daap_connection_init): Get and store the pointer
4904         to the private data once instead of in every
4905         function.  Create a username value "Rhythmbox_VERSION".
4906         (connection_get_password): Don't get private.
4907         (build_message): Ditto.
4908         (http_response_handler): Don't init variables in
4909         declaration.  Add debug.  Spacing.
4910         (http_get, entry_set_string_prop, handle_server_info) 
4911         (handle_login, handle_update, handle_database_info) 
4912         (handle_song_listing, handle_playlists, handle_playlist_entries) 
4913         (rb_daap_connection_constructor, rb_daap_connection_logout) 
4914         (rb_daap_connection_state_done): Don't get private.
4915         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
4916         spacing.  Correctly base64 encode the Authentication token.
4917         Add username to auth token.
4918         (rb_daap_connection_get_playlists): Don't get private.
4919         (rb_daap_connection_dispose): Ditto.  Free username.
4920         (rb_daap_connection_set_property) 
4921         (rb_daap_connection_get_property): Don't get private.
4923         * daapsharing/Makefile.am: Conditionally
4924         compile MDNS backends.  Add marshall stuff.
4926         * daapsharing/.cvsignore: Update.
4928         * configure.ac: Add conditional to see which
4929         MDNS backend we should use.
4931         * daapsharing/rb-daap-mdns.[ch]: Removed files.
4933         * daapsharing/rb-daap-marshal.list:
4934         * daapsharing/rb-daap-mdns-browser-avahi.c:
4935         * daapsharing/rb-daap-mdns-browser-howl.c:
4936         * daapsharing/rb-daap-mdns-browser.h:
4937         * daapsharing/rb-daap-mdns-publisher-avahi.c:
4938         * daapsharing/rb-daap-mdns-publisher-howl.c:
4939         * daapsharing/rb-daap-mdns-publisher.h:
4940         Split rb-daap-mdns.c into two classes.  One for
4941         publishing and one for browsing.  Split out
4942         the avahi and howl backends into different files.
4944         Fixes #322966
4945         
4946 2006-02-04  James Livingston  <jrl@ids.org.au>
4948         patch by: Jan Schmidt <thaytan@mad.scientist.com>
4950         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
4951         crash if metadata reader gives us NULL for strings.
4953 2006-02-03  James Livingston  <jrl@ids.org.au>
4955         * shell/rb-shell-player.c: (open_location_thread),
4956         (rb_shell_player_open_location):
4957         retrieve iradio playlists files in a thread, so that with GStreamer
4958         0.10 the UI doesn't block while connecting to stations. The streamer
4959         connection is synchronous with 0.8, so that will still block (a bit).
4960         Fixed bug 128106.
4962         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
4963         because _open_entry does that automatically when it is ready to.
4965 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
4967         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
4968         (rb_podcast_source_post_status_cell_data_func):
4969         Leave the podcast status column blank for episodes that have not been
4970         downloaded.
4972 2006-02-03  James Livingston  <jrl@ids.org.au>
4974         Add support for source-specific toolbar items, and make the Burn
4975         Playlist item only available for playlists. Also add Update All
4976         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
4978         * data/ui/rhythmbox-ui.xml:
4979         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
4980         (impl_get_ui_actions): make the Burn CD toolbar item only for
4981         playlists
4983         * lib/rb-stock-icons.c: (rb_stock_icons_init):
4984         * lib/rb-stock-icons.h: load the Eject icon as stock.
4986         * shell/rb-removable-media-manager.c: use the eject icon for the eject
4987         action
4989         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
4990         (rb_shell_select_source):
4991         * sources/rb-source.c: (rb_source_class_init),
4992         (rb_source_disconnect), (default_get_ui_actions),
4993         (rb_source_get_ui_actions):
4994         * sources/rb-source.h: add support for source-specific toolbar items
4996         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
4997         Eject and Rip toolbar items
4999         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5000         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
5001         item.
5003 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
5005         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
5006         * shell/main.c: (main):
5007         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
5008         Replace all g_critical calls with g_warning, since none of them are
5009         the sort of thing the process should die over.  Fixes #329398.
5011 2006-02-03  James Livingston  <jrl@ids.org.au>
5013         * configure.ac: mention gst-plugins-base in the error message for not
5014         finding GStreamer 0.10, since not having that will cause it to fail.
5016 2006-02-03  James Livingston  <jrl@ids.org.au>
5018         * configure.ac: fix typo that means you get the wrong error message if
5019         you explicity request a particular playback engine, and it can't be
5020         found.
5022 2006-02-03  James Livingston  <jrl@ids.org.au>
5024         * data/glade/library-prefs.glade: allow the watched library location
5025         to be a non-local place.
5027 ============ Version 0.9.3
5030 2006-02-02  James Livingston  <jrl@ids.org.au>
5032         * NEWS: update NEWS
5033         * configure.ac: bump version to 0.9.3
5035         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
5036         <caillon@redhat.com>, fixed bug 329517. 
5038 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
5040         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
5042         * widgets/rb-song-info.c: (rb_song_info_constructor):
5043         Make year and disc number fields non-editable if tag editing
5044         is disabled.  Fixes #329463.
5046 2006-02-01  James Livingston  <jrl@ids.org.au>
5048         * rhythmdb/rhythmdb-property-model.c:
5049         (rhythmdb_property_model_row_inserted_cb),
5050         (rhythmdb_property_model_prop_changed_cb),
5051         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
5052         correctly. Fixes bug 327061.
5054         * rhythmdb/rhythmdb-query-model.c:
5055         (rhythmdb_query_model_entry_changed_cb): emit change notification of
5056         the HIDDEN property when an entry is removed for being hidden.
5058         * rhythmdb/rhythmdb-query-model.h:
5059         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
5060         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
5061         models's "connected" property. Whatever it was needed for seems to
5062         have gone.
5064 2006-02-01  James Livingston  <jrl@ids.org.au>
5066         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
5068         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
5069         (rb_shell_player_playing_changed_cb): block the signal to prevent
5070         re-entrancy. Fixes bug 329329 and fixes the first click of the play
5071         button pausing.
5073 2006-02-01  James Livingston  <jrl@ids.org.au>
5075         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
5076         /should/ now work, if the neccessary plugins get ported.
5078 2006-01-30  James Livingston  <jrl@ids.org.au>
5080         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
5081         string properties to "Unknown" is the string is empty. Kind of fixes
5082         bug 327495.
5084         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
5085         gettext calls once, rather than once per time the function is used.
5086         This stops us making tens of thousands of gettext calls on startup,
5087         which reduces the cpu-time of startup by 10-20%
5089 2006-01-29  James Livingston  <jrl@ids.org.au>
5091         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
5092         (rhythmdb_add_uri):
5093         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
5094         for files containing known video streams.
5097 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5099         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
5100         required.
5102 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5104         * INSTALL.quick: More random updates
5106         * rhythmdb/rhythmdb-query-model.c:
5107         (rhythmdb_query_model_class_init),
5108         (rhythmdb_query_model_set_property),
5109         (rhythmdb_query_model_get_property),
5110         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
5111         Remove user sort data handling, take a property ID and a reverse
5112         flag instead.
5113         (rhythmdb_query_model_insert_into_main_list),
5114         (rhythmdb_query_model_insert_into_limited_list),
5115         (rhythmdb_query_model_do_reorder),
5116         (_reverse_sorting_func):
5117         Handle reverse sorting by calling _reverse_sorting_func, which
5118         calls the real sort function and reverses the result.
5119         (rhythmdb_query_model_set_sort_order):
5120         Allow this to be called to set the initial sort order for limited
5121         queries, and handle reverse sorting when reordering.
5122         (rhythmdb_query_model_location_sort_func),
5123         (rhythmdb_query_model_album_sort_func),
5124         (rhythmdb_query_model_artist_sort_func),
5125         (rhythmdb_query_model_genre_sort_func),
5126         (rhythmdb_query_model_track_sort_func),
5127         (rhythmdb_query_model_double_ceiling_sort_func),
5128         (rhythmdb_query_model_ulong_sort_func),
5129         (rhythmdb_query_model_date_sort_func),
5130         (rhythmdb_query_model_string_sort_func):
5131         Sort functions moved from rb-entry-view.c.
5132         * rhythmdb/rhythmdb-query-model.h:
5133         Add the sort functions, and update the changed functions.
5134         
5135         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
5136         Just call _resort_model when the query model is set, since it
5137         does all the same things.
5138         (rb_entry_view_append_column):
5139         Rework bits so the rating column doesn't have to be so much of a
5140         special case.
5141         (rb_entry_view_append_column_custom):
5142         Take a property ID to sort on, rather than arbitrary custom data.
5143         (rb_entry_view_resort_model):
5144         Query model does all the reverse sort handling now.
5145         * widgets/rb-entry-view.h: Update _append_column_custom.
5147         * sources/rb-play-queue-source.c:
5148         (rb_play_queue_source_constructor):
5149         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5150         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5151         (rb_podcast_source_post_date_cell_sort_func),
5152         (rb_podcast_source_post_status_cell_sort_func),
5153         (rb_podcast_source_post_feed_cell_sort_func):
5154         Updates required by all the other changes.
5156         * rhythmdb/rhythmdb-property-model.c:
5157         (rhythmdb_property_model_drag_data_get):
5158         Sort the query results on the selected property,
5159         so they arrive in the expected order.  All the other changes were made
5160         to make this possible.  Fixes bug #327494.
5162 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5163         
5164         * shell/rb-shell-clipboard.c:
5165         Use GTK_STOCK_REMOVE icon for the remove action in
5166         the play queue too.
5168 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5170         * sources/rb-play-queue-source.c:
5171         (rb_play_queue_source_constructor),
5172         (rb_play_queue_source_update_count):
5173         Don't make the 'queued songs' column clickable,
5174         and add the queued song count to the column title.
5176 2006-01-29  James Livingston  <jrl@ids.org.au>
5178         * configure.ac: remove "experimental" marking from DAAP, and enable by
5179         default if the dependencies are found.
5181 2006-01-29  James Livingston  <jrl@ids.org.au>
5183         * NEWS: update NEWS
5185 2006-01-29  James Livingston  <jrl@ids.org.au>
5187         patch by: William Jon McCann  <mccann@jhu.edu>
5189         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5190         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
5191         property used for the feed list. Fixes problem with feeds with no
5192         episodes not showing up.
5194 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
5195         
5196         * shell/rb-play-order-random-by-age-and-rating.c:
5197         (rb_random_by_age_and_rating_get_entry_weight):
5198         Fix compile errors, bug #328978.
5200 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
5202         * INSTALL.quick, README: Random updates
5203         * README.lirc: Add notes on controlling Rhythmbox with LIRC
5205 2006-01-28  James Livingston  <jrl@ids.org.au>
5207         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
5208         default rating back to 0 (from 2.5, which was needed for autorating).
5210         * shell/rb-play-order-random-by-age-and-rating.c:
5211         (rb_random_by_age_and_rating_get_entry_weight):
5212         * shell/rb-play-order-random-by-rating.c:
5213         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
5214         2.5 for the purposes of weighting entries.
5216 2006-01-28  James Livingston  <jrl@ids.org.au>
5218         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
5219         translator comments, to make it clearer what the "friendly time"
5220         formatting strings mean.
5222 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
5224         * daapsharing/rb-daap-connection.c: (http_response_handler):
5225         Fix the sense of the overflow check so it'll accept valid input.
5227 2006-01-27  James Livingston  <jrl@ids.org.au>
5229         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
5231         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
5232         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
5234 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
5236         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
5237         
5238         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
5239         Don't include the artist field in the window title if it's blank.
5240         Fixes #325973.
5242 2006-01-26  William Jon McCann  <mccann@jhu.edu>
5244         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
5245         Use stock delete icon for move to trash and stock remove
5246         for remove menu item.
5248 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
5250         * shell/rb-shell.c: (rb_shell_constructor),
5251         (idle_handle_load_complete):  Don't start the playlist save
5252         timeout until we've loaded the playlists, otherwise we'll
5253         write an empty playlist file if startup takes too long.
5255 2006-01-25  William Jon McCann  <mccann@jhu.edu>
5257         * shell/rb-shell.c: Make view toolbar toggle use
5258         shift+ctrl+t.  Fixes #327585.
5260 2006-01-25  James Livingston  <jrl@ids.org.au>
5262         patch by: Christope Fergeau  <teuf@gnome.org>
5264         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
5265         (http_response_handler): fix a potential buffer overflow issue.
5267 2006-01-25  James Livingston  <jrl@ids.org.au>
5269         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
5270         Year column wide enough to display "Unknown"
5272 2006-01-25  James Livingston  <jrl@ids.org.au>
5274         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5275         (rb_podcast_source_post_status_cell_data_func): make the episode
5276         status wording better. Part of bug 321607.
5278 2006-01-25  James Livingston  <jrl@ids.org.au>
5280         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
5281         others with a separator.
5283         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
5284         stock Delete icon.
5286 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
5288         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
5290 2006-01-23  James Livingston  <jrl@ids.org.au>
5292         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
5293         0.3.2. Fixed bug 328158.
5295 2006-01-23  James Livingston  <jrl@ids.org.au>
5297         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
5298         (gulong_gst_date_transform), (rb_metadata_class_init):
5299         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
5301 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
5303         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
5304         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
5305         (record_entry_change): Protect added_entries and changed_entries with
5306         a mutex, so it doesn't crash on startup on SMT/SMP machines.
5308 2006-01-23  James Livingston  <jrl@ids.org.au>
5310         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
5311         the browser for audio CDs.
5313 2006-01-22  James Livingston  <jrl@ids.org.au>
5315         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
5316         NEVER_FAIL as it causes the daemon-not-running error to never be
5317         reported, resulting in bug 319438 re-occurring.
5319 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
5321         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
5322         Just call the podcast manager's update method.  Unbreaks the 'update
5323         all feeds' command.
5325 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
5327         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
5329 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
5331         * configure.ac: Don't disable DAAP with gstreamer 0.10
5333         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
5334         (rb_daap_src_class_init), (rb_daap_src_init),
5335         (rb_daap_src_finalize), (rb_daap_src_set_property),
5336         (rb_daap_src_get_property), (rb_daap_src_write),
5337         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
5338         (_split_uri), (rb_daap_src_open):
5339         * daapsharing/rb-daap-src.h:
5340         Mostly fix seeking, handle chunked transfer encoding, and port to
5341         gstreamer 0.10.
5342         
5343         * player/rb-player-gst.c:
5344         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
5345         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
5347         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
5348         being fixed.
5350 2006-01-21  James Livingston  <jrl@ids.org.au>
5352         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
5353         for Year metadata in DAAP sources. Fixes bug 327700.
5355         * daapsharing/rb-daap-connection.c: (handle_song_listing):
5357 2006-01-20  William Jon McCann  <mccann@jhu.edu>
5359         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
5360         enum values instead of magic numbers.
5362         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
5363         Add number of songs that match each property title into
5364         the cell.  Also show the number of properties that match
5365         in the All entry.
5366         (rb_property_view_constructor): Use enum values instead of
5367         magic numbers.
5369         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
5370         Query podcast posts instead of feeds for browser.  Use
5371         post SUBTITLE which is the location for the property view.
5372         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
5373         (construct_query_from_selection) 
5374         (rb_podcast_source_cmd_delete_feed) 
5375         (rb_podcast_source_cmd_properties_feed) 
5376         (rb_podcast_source_cmd_update_feed): Use variable to make
5377         it clear what the selection data represents.
5378         (rb_podcast_source_feed_title_cell_data_func): Add number
5379         of posts that belong to each feed in the browser.
5381         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
5382         (rhythmdb_property_model_delete_prop): Decrement the refcount
5383         for the All entry.
5384         (rhythmdb_property_model_get_column_type): Use column enum
5385         values instead of magic numbers.  Add NUMBER column.
5386         (rhythmdb_property_model_get_value): Use enum.
5387         Add NUMBER column that represents the refcount for
5388         the title of that property.
5389         (rhythmdb_property_model_perform_sync): Don't fake up
5390         a title for All here.
5392         Fixes #327372.
5393         
5394 2006-01-21  James Livingston  <jrl@ids.org.au>
5396         Make Rhythmbox start faster by not blocking the UI while database
5397         initialisation and loading occurs. Closes bug 323348.
5399         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
5400         start 10 seconds later instead of immediately.
5401         
5402         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
5403         safe to call from any thread.
5405         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
5406         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
5407         so the UI doesn't block.
5409 2006-01-18  James Livingston  <jrl@ids.org.au>
5411         * sources/rb-static-playlist-source.c:
5412         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
5413         cause crashes. Oops. fixes bug 327477.
5415 2006-01-17  William Jon McCann  <mccann@jhu.edu>
5417         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
5418         Set GST element state to NULL before unreffing.
5419         Fixes #327422.
5421 2006-01-18  James Livingston  <jrl@ids.org.au>
5423         * sources/rb-static-playlist-source.c:
5424         (rb_static_playlist_source_do_query): don't filter on the SONG entry
5425         type, since the playlists can contain non-song entries. Fixes bug
5426         327448.
5428         * sources/rb-play-queue-source.c:
5429         (rb_play_queue_source_class_init): disable the search box for the
5430         queue.
5432 2006-01-18  James Livingston  <jrl@ids.org.au>
5434         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
5435         dragging of podcast episodes. Fixed bug 327450.
5437 2006-01-18  James Livingston  <jrl@ids.org.au>
5439         * rhythmdb/rhythmdb-query-model.c:
5440         (rhythmdb_query_model_drag_data_received): fix possible assertion when
5441         dragging to an emoty playlist.
5443 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
5445         * sources/rb-playlist-source-recorder.c:
5446         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
5448 2006-01-17  James Livingston  <jrl@ids.org.au>
5450         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
5452         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
5453         different number of tracks than exist on the cd, since that happens
5454         with audio+data hybrid CDs. Part of bug 325046.
5456 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
5458         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5459         Remove useless call to gtk_tree_view_column_set_clickable().
5461         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
5462         Don't store sort data for columns if the sort function is NULL,
5463         so only sortable columns will be in the column sort data map.
5464         (rb_entry_view_set_columns_clickable): Only make columns we can sort
5465         on clickable.
5466         (rb_entry_view_constructor):  The 'playing icon' column is never
5467         clickable, so don't connect a signal handler for it.
5469         Fixes bug 326811.
5471 2006-01-17  James Livingston  <jrl@ids.org.au>
5473         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
5474         are 0.8 only. Fix element detection.
5476         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
5477         saving the new metadata failed
5479 2006-01-17  James Livingston  <jrl@ids.org.au>
5481         * shell/rb-shell-player.c: (do_next_idle),
5482         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
5483         (eos_cb): release audio device when a playlist finishes. Fixes bug
5484         323679.
5486 2006-01-17  James Livingston  <jrl@ids.org.au>
5488         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
5489         canonicalise the URIs when things are added via library watching.
5491 2006-01-16  William Jon McCann  <mccann@jhu.edu>
5493         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5494         Off by one error in default speed index.
5496 2006-01-16  William Jon McCann  <mccann@jhu.edu>
5498         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
5499         (update_speed_combobox, update_speed_combobox):
5500         Get a list of the actually supported write speeds from
5501         n-c-b >= 2.13.90.  Otherwise use fallback list.
5503 2006-01-17  James Livingston  <jrl@ids.org.au>
5505         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
5506         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
5507         don't get stuck on recursive symlinks. Fixed bug 125452.
5509 2006-01-17  James Livingston  <jrl@ids.org.au>
5511         Add support for mass-storage audio players. Players are detected via
5512         either the HAL "audio_player" capability, or a ".is_audio_player" file
5513         in the root of the volume. Closes bug 325602.
5515         * configure.ac: separate using HAL from ipod support.
5517         * lib/rb-file-helpers.c: (rb_uri_is_local):
5518         * lib/rb-file-helpers.h: add function to determine whether a URI is
5519         local.
5521         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
5522         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
5523         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
5524         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
5525         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
5526         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
5527         directories can be scanned for files to add as  non-SONG entries.
5529         * shell/rb-removable-media-manager.c:
5530         (rb_removable_media_manager_mount_volume): add checking for
5531         mass-storage players.
5533         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
5534         * sources/rb-ipod-source.c: (rb_ipod_source_new),
5535         (hal_udi_is_ipod):
5536         * sources/rb-removable-media-source.c:
5537         (rb_removable_media_source_class_init),
5538         (rb_removable_media_source_constructor): move some things up to the
5539         RBRemovableMediaSource, rather than making subclasses do it.
5541         * sources/Makefile.am:
5542         * sources/rb-generic-player-source.c:
5543         * sources/rb-generic-player-source.h: add mass-storage player source.
5545 2006-01-16  James Livingston  <jrl@ids.org.au>
5547         patch by: William Jon McCann  <mccann@jhu.edu>
5549         * rhythmdb/rhythmdb-query-model.c:
5550         (rhythmdb_query_model_base_row_deleted): fix build issue from last
5551         commit.
5553 2006-01-16  James Livingston  <jrl@ids.org.au>
5555         Patch to add support for "chained queries" and putting hidden tracks
5556         in query models. Use chained queries to add search box support to
5557         normal playlists, and to make hidden entries not get lost. Fixes bug
5558         319278.
5560         * rhythmdb/rhythmdb-query-model.h:
5561         * rhythmdb/rhythmdb-query-model.c:
5562         (rhythmdb_query_model_class_init),
5563         (rhythmdb_query_model_set_property),
5564         (rhythmdb_query_model_get_property):
5565         (rhythmdb_query_model_finalize): add "show-hidden" and
5566         "base-model" properties.
5568         (rhythmdb_query_model_set_connected),
5569         (rhythmdb_query_model_has_pending_changes),     
5570         (rhythmdb_query_model_entry_added_cb),
5571         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
5572         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
5573         (rhythmdb_query_model_remove_entry),
5574         (rhythmdb_query_model_drag_data_received),
5575         (rhythmdb_query_model_base_row_inserted),
5576         (rhythmdb_query_model_base_row_deleted),
5577         (rhythmdb_query_model_base_non_entry_dropped),
5578         (rhythmdb_query_model_base_complete),
5579         (rhythmdb_query_model_base_entry_prop_changed),
5580         (rhythmdb_query_model_base_rows_reordered),
5581         (rhythmdb_query_model_row_drop_possible): handle base-model by
5582         chaining events and operations where necessary. Make hidden entries
5583         not get added only if "show-hidden" is false.
5585         (rhythmdb_query_model_child_index_to_base_index),
5586         (rhythmdb_query_model_base_index_to_child_index),
5587         (rhythmdb_query_model_get_entry_index): utility functions for handling
5588         base-model entries.
5590         (rhythmdb_query_model_reapply_query): apply the current query, and
5591         remove entries that don't match it.
5593         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
5594         empty queries.
5596         * sources/rb-source.c: (rb_source_set_property): move the unref later
5597         to fix problem if it is the last reference.
5599         * sources/rb-static-playlist-source.c:
5600         (rb_static_playlist_source_class_init),
5601         (rb_static_playlist_source_init),
5602         (rb_static_playlist_source_finalize),
5603         (rb_static_playlist_source_constructor), (impl_reset_filters),
5604         (impl_search), (rb_static_playlist_source_do_query),
5605         (impl_save_contents_to_xml),
5606         (rb_static_playlist_source_add_location_internal): use a chained query
5607         model to filter out hidden entries and implement the search box.
5609 2006-01-15  James Livingston  <jrl@ids.org.au>
5611         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
5612         the default playlist loading, which I broke earlier.
5614 2006-01-15  James Livingston  <jrl@ids.org.au>
5616         patch by: William Jon McCann  <mccann@jhu.edu>
5618         * sources/rb-playlist-source.c: (playlist_iter_func): use
5619         totem-plparser's new API version macros to check for API changes.
5620         Handle the recent API change.
5622 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
5624         * sources/rb-library-source.c: (impl_get_config_widget):
5625         Ref the preferences object to match the unref in the
5626         finalizer.  Fixes some portion of #323505.
5628 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
5630         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
5631         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
5632         Fix valgrind warnings about accessing uninitialised values.
5634 2006-01-14  William Jon McCann  <mccann@jhu.edu>
5636         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
5638 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
5640         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
5641         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
5642         Stops the 'now playing' icon from being displayed after the play
5643         order finishes.
5645 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
5647         * podcast/rb-podcast-manager.c:
5648         (rb_podcast_manager_db_entry_deleted_cb):
5649         Don't try to delete files we never downloaded, and cancel downloads
5650         for deleted episodes.  Fixes bug #326862.
5651         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
5652         Don't complain about NULL data items in the selection list.
5654 2006-01-14  James Livingston  <jrl@ids.org.au>
5656         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
5657         Make the name ofthe queue non editable. Fixes bug 326918.
5659 2006-01-13  William Jon McCann  <mccann@jhu.edu>
5661         * sources/rb-playlist-source-recorder.c (burn_cd) 
5662         (ask_rewrite_disc): Don't use our locally copied functions
5663         if we have at least 2.13.
5665 2006-01-13  William Jon McCann  <mccann@jhu.edu>
5667         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
5668         Correct the argument type for the process_error signal.
5669         May fix bug #323154.
5671 2006-01-13  James Livingston  <jrl@ids.org.au>
5673         save the queue to disk when exiting, and reload on startup. Fixed bug
5674         326677 .
5676         * shell/rb-playlist-manager.c:
5677         (rb_playlist_manager_load_playlists),
5678         (rb_playlist_manager_save_playlists_async): don't disable saving of
5679         the queue
5681         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
5682         add the queue source as a gobject property.
5684         * sources/rb-play-queue-source.c:
5685         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
5686         code to save the queue to xml
5688         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
5689         load the queue from xml.
5690         * sources/rb-playlist-xml.h:
5692         * sources/rb-static-playlist-source.c:
5693         (rb_static_playlist_source_load_from_xml),
5694         (rb_static_playlist_source_new_from_xml):
5695         * sources/rb-static-playlist-source.h: split the playlist xml loading
5696         from the static playlist creation function, so the queue can use it.
5698 2006-01-13  James Livingston  <jrl@ids.org.au>
5700         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
5701         assertion that should be there. Fixes bug 325923.
5702         
5703         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
5704         return NULL if the entry already exists (e.g. as another type).
5705         * daapsharing/rb-daap-connection.c: (handle_song_listing):
5706         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
5707         (rb_podcast_manager_insert_feed):
5708         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
5709         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
5710         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
5711         for the above function returning NULL.
5713 2006-01-12  James Livingston  <jrl@ids.org.au>
5715         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
5716         is enabled. Fixes bug 326673.
5717         
5718         * doc/reference/tmpl/eggtrayicon.sgml:
5719         * doc/reference/tmpl/rb-daap-src.sgml:
5720         * doc/reference/tmpl/rb-source.sgml:
5721         * doc/reference/tmpl/rb-statusbar.sgml:
5722         * doc/reference/tmpl/rb-tree-model-sort.sgml:
5723         * doc/reference/tmpl/rhythmbox-unused.sgml:
5724         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
5726 2006-01-11  James Livingston  <jrl@ids.org.au>
5728         * widgets/rb-song-info.c: (rb_song_info_constructor),
5729         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
5730         (rb_song_info_populate_dialog): fill in the fields if all tracks have
5731         the same value for properties. From bug 326054.
5733 2006-01-11  James Livingston  <jrl@ids.org.au>
5735         * sources/rb-source.h:
5736         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
5737         (rb_shell_player_set_playing_source_internal), (eos_cb):
5738         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
5739         every entry.
5741         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
5742         source use this. Closes bug 322077.
5744 2006-01-10  William Jon McCann  <mccann@jhu.edu>
5746         * widgets/eggtrayicon.c (egg_tray_icon_notify):
5747         In order for set_icon_data_from_pixbuf() to be
5748         effective, one must not set an icon in _new().
5750 2006-01-10  William Jon McCann  <mccann@jhu.edu>
5752         * widgets/eggtrayicon.c (egg_tray_icon_init) 
5753         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
5754         (egg_tray_icon_notify): Add support for libnotify 0.3.
5755         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
5756         * configure.ac: Determine the version of libnotify.
5757         Fixes #326333.
5759 2006-01-08  James Livingston  <jrl@ids.org.au>
5761         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
5762         trying to share a track with unknown length.
5764 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
5766         * shell/rb-shell-player.c: (rb_shell_player_init):
5767         Sync volume on startup so it doesn't default to 0.
5769 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
5771         * shell/rb-shell-player.c: (rb_shell_player_class_init),
5772         (rb_shell_player_get_property), (rb_shell_player_open_location),
5773         (info_available_cb):  Add the iradio streamed song title as a
5774         property, and emit a signal when it changes.
5776         * shell/rb-shell.c: (rb_shell_constructor),
5777         (rb_shell_player_elapsed_changed_cb),
5778         (rb_shell_player_stream_song_changed_cb):
5779         Issue a notification when the iradio song title changes.
5780         Fixes #326166.
5782 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
5784         * shell/rb-shell-player.c: (rb_shell_player_init),
5785         (rb_shell_player_finalize), (rb_shell_player_set_property),
5786         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
5787         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
5788         (rb_shell_player_set_volume_relative),
5789         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
5790         (rb_shell_player_get_mute):
5791         * shell/rb-shell-player.h:
5792         * shell/rb-shell-player.xml:
5793         Store volume as a property on RBShellPlayer, rather than in gconf.
5794         Add some methods to control volume via dbus.
5796         * shell/rb-shell.c: (rb_shell_constructor),
5797         (rb_shell_volume_widget_changed_cb),
5798         (rb_shell_player_volume_changed_cb):
5799         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
5800         Update volume using player properties rather than gconf, and sync the
5801         volume with the volume control button when something else changes it.
5802         Fixes #323840.
5804 2006-01-07  William Jon McCann  <mccann@jhu.edu>
5806         * shell/rb-tray-icon.c (tray_popup_position_menu):
5807         Make tray menu align with edge of panel.
5809         patch from Jaap A. Haitsma <jaap@haitsma.org>
5810         Fixes #319913
5812 2006-01-07  William Jon McCann  <mccann@jhu.edu>
5813         * shell/rb-shell.c (sourcelist_drag_received_cb): 
5814         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
5815         (rb_playlist_manager_new_playlist_from_selection_data):
5816         Make a reasonable default name for playlists created from
5817         dropped data.  Fixes #326116.
5819 2006-01-07  William Jon McCann  <mccann@jhu.edu>
5821         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5822         Use new gconf key.
5823         (burn_cd): Always eject CD after burning.  Too many drives
5824         get confused if we don't.  Save the speed used if the burn
5825         was completed successfully.
5827         * data/rhythmbox.schemas: Use our own speed instead of from
5828         n-c-b. The situation is that the default_speed for n-c-b is most
5829         likely the maximum write speed.  This is fine for n-c-b because it
5830         has burn-proof turned on.  We can't turn it on for audio CDs
5831         because the results are poor in quality.  So we'll just pick a
5832         default that should work for everyone (4).
5834 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
5835         
5836         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
5837         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
5839 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
5841         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
5842         in my previous commit.  Fixes #326037.
5844 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
5846         patch by: Jonathan Matthew
5848         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
5849         error on Fedora Rawhide.
5851 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
5853         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
5854         Assume HTTP URLs ending with .xml or .rss are podcasts.
5855         (rb_shell_add_uri): Handle adding podcast feeds.
5857         * sources/rb-podcast-source.c: (rb_podcast_source_new):
5858         Register as the source for podcast feeds.
5860 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
5862         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
5863         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
5864         (rb_shell_preferences_append_view_page):
5865         * shell/rb-shell-preferences.h:
5866         Fix typo in function name.  Fixes #325992.
5868 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
5870         * shell/rb-audioscrobbler.c:
5871         Add '+' to the list of characters to URI-encode, so it doesn't get
5872         interpreted as a space.
5874 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
5876         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
5877         (rb_daap_connection_do_something):  Don't crash if the DAAP server
5878         goes away while we're still trying to log in.
5880 2006-01-06  James Livingston  <jrl@ids.org.au>
5882         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
5884 2006-01-06  James Livingston  <jrl@ids.org.au>
5886         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
5887         support for Year to automatic playlists. Closes bug 321341.
5889         * rhythmdb/rhythmdb-query-model.c:
5890         (rhythmdb_query_model_set_property):
5891         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
5892         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
5893         (rhythmdb_query_free), (rhythmdb_query_serialize),
5894         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
5895         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
5896         * rhythmdb/rhythmdb.h: Support special
5897         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
5898         year in date.
5900         * widgets/rb-query-creator-properties.c:
5901         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
5902         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
5904 2006-01-06  James Livingston  <jrl@ids.org.au>
5906         * configure.ac: make the playback backend selection work correctly
5908         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
5909         (rb_daap_src_class_init), (rb_daap_src_dispose),
5910         (rb_daap_src_change_state), (rb_daap_src_initialize):
5911         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
5912         doesn't work for this class. Fixes bug 325934
5914 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
5916         * configure.ac: Fix check for libnotify.
5918 2006-01-05  William Jon McCann  <mccann@jhu.edu>
5920         * sources/rb-playlist-source.c (xml_get_and_trim_names):
5921         Get name element for current lang and remove all name nodes
5922         from the XML tree.
5923         (get_playlist_name_from_xml): Try to get name element or
5924         fall back to name attribute.
5925         (rb_playlist_source_new_from_xml): Get name before turning over
5926         to sub-types for parsing so that we can remove name elements
5927         from the tree if necessary.
5929         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
5930         Load default playlists file if per user playlists are not found.
5932         * data/playlists.xml.in: 
5933         * data/Makefile.am: 
5934         * data/.cvsignore: Add default set of playlists.
5935         Fixes #323004
5937 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
5939         * shell/main.c: (main): Don't use the dbus interface to show the
5940         window if we're also going to use the bonobo interface.
5942 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
5944         * shell/rb-history.c: (rb_history_set_playing):
5945         Allow setting the playing song to NULL.
5946         (rb_history_append), (rb_history_delete_link):
5947         Don't randomly change position when entries are added and removed,
5948         it confuses play orders.
5949         
5950         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
5951         Random orders always have a next entry if the model is not empty.
5952         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
5953         Go back to the start of the history if we're past its end.
5955         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
5956         (rb_shuffle_play_order_go_next): Go back to the start of the history
5957         if we're past its end.
5958         (rb_shuffle_sync_history_with_query_model): Go back to the start of
5959         the history if the current entry is removed.
5961         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
5962         (rb_play_order_entry_deleted_cb): Only update have next/previous for
5963         the play order when the query has finished. This wasted about 10% CPU
5964         while the query was running.
5966         Fixes #324641: assertion failures when the query model was changed
5967         such that the playing song was no longer present.
5969 2006-01-05  James Livingston  <jrl@ids.org.au>
5971         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
5972         (rb_daap_src_dispose), (rb_daap_src_change_state):
5973         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
5974         (rhythmdb_gda_finalize):
5975         * widgets/rb-cell-renderer-pixbuf.c:
5976         * widgets/rb-cell-renderer-rating.c:
5977         (rb_cell_renderer_rating_class_init),
5978         (rb_cell_renderer_rating_finalize):
5979         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
5980         * widgets/rb-load-failure-dialog.c:
5981         (rb_load_failure_dialog_class_init),
5982         (rb_load_failure_dialog_finalize):
5983         * widgets/rb-rating.c: (rb_rating_class_init),
5984         (rb_rating_finalize):
5985         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
5986         (rb_search_entry_finalize): use G_DEFINE_TYPE
5988         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
5990 2006-01-05  James Livingston  <jrl@ids.org.au>
5992         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
5994         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
5995         the tarball.
5997         * shell/rb-history.c: (rb_history_class_init),
5998         (rb_history_finalize):
5999         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
6000         (rb_playlist_manager_finalize):
6001         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
6002         (rb_remote_init): use G_DEFINE_TYPE.
6004 2006-01-05  James Livingston  <jrl@ids.org.au>
6006         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
6007         changes
6009 2006-01-04  William Jon McCann  <mccann@jhu.edu>
6011         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
6012         Disable burn action when source is not a playlist.
6013         Fixes #323578.
6015 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
6017         Optionally use libnotify to display song change and other
6018         notifications, and provide an option to disable notifications.
6019         Fixes #320355 and innumerable informal complaints.
6021         * widgets/eggtrayicon.c: (egg_tray_icon_init),
6022         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
6023         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
6024         (egg_tray_icon_notify):
6025         * widgets/eggtrayicon.h:
6026         * configure.ac:
6027         * shell/Makefile.am:
6028         Optionally use libnotify instead of eggnotificationbubble.
6030         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
6031         (rb_tray_icon_constructor), 
6032         (rb_tray_icon_show_notifications_changed_cb),
6033         (rb_tray_icon_hide_notify_cb)
6034         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
6035         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
6036         EggNotificationBubble pointer to eggtrayicon.
6038         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
6039         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
6040         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
6042 2006-01-04  William Jon McCann  <mccann@jhu.edu>
6044         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
6045         Request a minimum size for the progress bar so that
6046         the window doesn't shrink too small.
6048 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6050         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
6051         (add_db_entry), (db_entry_deleted_cb):
6052         Don't track the number of songs currently present, track the next ID
6053         to assign.  Fixes potential ID conflict problems.
6054         
6055         (db_entry_changed_cb), (rb_daap_share_start_publish),
6056         (rb_daap_share_stop_publish):
6057         Watch for db entry changes, and when songs become non-hidden after
6058         a successful stat, add them to the mapping tables.   Fixes #325178,
6059         making the DAAP server usable again.
6061 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6062         
6063         * shell/rb-statusbar.c: (rb_statusbar_class_init),
6064         (rb_statusbar_construct), (rb_statusbar_init),
6065         (rb_statusbar_finalize), (rb_statusbar_set_property),
6066         (rb_statusbar_get_property), (rb_statusbar_new),
6067         (rb_statusbar_sync_with_source):
6068         * shell/rb-statusbar.h:
6069         Remove visibility management code, stop watching for play order
6070         changes (status bar doesn't show play order any more), remove unused
6071         'player' property, and some other minor cleanup.
6072         
6073         * shell/rb-shell.c: (rb_shell_constructor),
6074         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
6075         (rb_shell_sync_statusbar_visibility):
6076         Manage status bar visibility here rather than in the status bar
6077         itself, so we can take small mode into account.  Fixes #323589.
6079 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
6081         * widgets/eggnotificationbubble.c: (draw_bubble):
6082         Move the bubble off the visible screen while setting up bevels.  
6083         Fixes #316810.
6085 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6087         * shell/rb-shell-player.c: (rb_shell_player_init),
6088         (rb_shell_player_finalize): 
6089         Remove unused structure members.
6090         
6091         (do_next_idle), (rb_shell_player_error):
6092         Only queue one call to do_next_idle, so we don't skip tracks if we get
6093         two errors for the same song.  Fixes #325216.
6095 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6097         * data/glade/podcast-feed-properties.glade,
6098          podcast/rb-feed-podcast-properties-dialog.c:
6099         (rb_feed_podcast_properties_dialog_init),
6100         (rb_feed_podcast_properties_dialog_update):
6101         Add 'last episode' field to the podcast feed properties dialog.
6103         * podcast/rb-feed-podcast-properties-dialog.c:
6104         (rb_feed_podcast_properties_dialog_update_last_update),
6105         (rb_feed_podcast_properties_dialog_update_last_episode),
6106          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6107         Use last-seen property for the time at which we last updated the feed,
6108         and post-time for the time the last episode was published.
6110         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
6111         Handle upgrades from 0.9.2; if no post-time was found for a podcast
6112         feed, use last-seen (which in 0.9.2 was the last post time).
6114         Fixes #323894.
6116 2006-01-01  James Livingston  <jrl@ids.org.au>
6118         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
6120         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
6121         year from the ipod database.
6123 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6125         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
6126         Only set the pipeline back to NULL state for really uninteresting
6127         files.  This was causing deadlocks with various video files.
6128         Fixes #324912.
6130 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6132         * data/glade/song-info-multiple.glade:
6133         Add disc number label and field.
6134         * widgets/rb-song-info.c: (rb_song_info_construct_single),
6135         (rb_song_info_constructor): 
6136         Handle widgets for disc number.
6137         (rb_song_info_sync_entries_multiple):
6138         Set disc number property on selected entries.
6139         Fixes #324777.
6141 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6143         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
6144         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
6145         Activate the default widget when enter is pressed in these dialogs.
6146         Fixes #322887.
6148 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
6150         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
6151         Use rb_shell_player_get_playing_entry, so we get the right entry
6152         when playing from the queue.  Fixes #325379.
6154 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
6156         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6157         Include podcast posts with no publication date.  Typically
6158         seen in static collections rather than feeds.
6160 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
6162         * shell/main.c: (main): Don't attempt to handle
6163         bonobo-only arguments if we couldn't get a bonobo
6164         client proxy.
6166 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
6168         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
6169         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
6170         abort if daap sharing is disabled and then re-enabled.
6172 2005-12-29  William Jon McCann  <mccann@jhu.edu>
6174         * podcast/rb-podcast-parse.c (rb_insert_item):
6175         Add debugging.
6176         (rb_podcast_parser_start_element): Support itunes:image.
6177         Add debugging.  Don't abuse the break statement.  Warn
6178         if state is unknown.
6179         (rb_podcast_parser_end_element): Add debugging.  Warn
6180         if state is unknown.
6181         (rb_podcast_parser_characters): Warn if state is unknown.
6183         Fixes parsing of feeds that use the itunes:image element.
6184         Fixes #324632
6186 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
6188         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
6189         (stations_view_drag_data_received_cb):
6190         Remove calls to rhythmdb_entry_lookup_by_location, as
6191         rb_iradio_source_add_station does that anyway.
6192         
6193         (rb_iradio_source_add_from_playlist):
6194         If the URL doesn't point to a playlist, add it as the stream
6195         URL instead.
6197 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
6199         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
6200         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
6201         so we don't get an assertion failure.
6202         Fixes #325025.
6204 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
6206         * shell/main.c: (load_uri_args): don't compile this in if
6207         neither bonobo nor dbus are enabled.  Fixes #324890.
6209 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
6211         * sources/rb-audiocd-source.c:
6212         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
6213         so it closes the device.
6215 2005-12-20  James Livingston  <jrl@ids.org.au>
6217         * metadata/rb-metadata-gst.c: make the state changes time-out again,
6218         so that it doesn't spend forever getting stuck on the one file. Don't
6219         report errors for failing to change state on known non-audio files.
6221         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
6222         audio sink creation if we can't create the gconfaudiosink. This lets
6223         it work with only gst-plugins-base on 0.10.
6225 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
6227         * rhythmdb/rhythmdb-query-model.c:
6228         (rhythmdb_query_model_set_sort_order):
6229         Fix a tiny memory leak in the previous commit.
6231 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
6233         * rhythmdb/rhythmdb-query-model.c:
6234         (rhythmdb_query_model_set_sort_order):
6235         Don't try to emit reorders for empty query models, since it doesn't
6236         achieve anything and it results in a few warnings.
6238 2005-12-19  William Jon McCann  <mccann@jhu.edu>
6240         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
6241         Make burn dialog non-resizable so that the expander can shrink.
6242         Fixes #308951.
6244 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
6246         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
6247         add entries without a location, rather than those with one.
6249 2005-12-19  James Livingston  <jrl@ids.org.au>
6251         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
6252         the error isn't set.
6254 2005-12-19  James Livingston  <jrl@ids.org.au>
6255         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
6256         add entries without a location. Fixes bug 324290.
6258         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
6259         without a location.
6261         * shell/main.c: (main): don't crash if dbus initialisation fails
6262         without setting an error
6264 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
6266         * sources/rb-library-source.c: Remove unused structure members
6267         (rb_library_source_do_query): Actually use the cached 'all' query.
6268         Fixes #324025.
6269         
6270 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
6272         * sources/rb-audiocd-source.c 
6273         (rb_audiocd_get_cd_info): tab
6274         (rb_audiocd_scan_songs): Return boolean success/failure,
6275         fix error messages a bit.
6276         (metadata_cb): Don't crash if we have no tracks
6277         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
6278         the CD.
6279         Fixes #324222.
6281 2005-12-15  William Jon McCann  <mccann@jhu.edu>
6283         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
6284         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
6285         key.
6287         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
6288         Fixes #324157
6290 2005-12-14  William Jon McCann  <mccann@jhu.edu>
6292         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
6293         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
6294         (fullscreen_changed_cb): 
6295         * lib/rb-preferences.h: 
6296         * data/ui/rhythmbox-ui.xml: 
6297         * data/rhythmbox.schemas:
6298         Add fullscreen mode.
6300         Fixes #324075.
6302 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
6304         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
6305         configure.  It was not working with RPM.
6306         * data/Makefile.am: Switched dbus directory location to use
6307         datadir instead of variable that was not working.
6309 2005-12-13  James Livingston  <jrl@ids.org.au>
6311         patch by: Alex Lancaster <alexl@users.sourceforge.net>
6313         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
6314         the podcast browser work again. Closes bug 323856.
6316 2005-12-12  William Jon McCann  <mccann@jhu.edu>
6318         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
6319         Remove C99ism.
6321         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
6322         (rb_utf_friendly_time):
6323         * lib/rb-cut-and-paste-code.h:
6325         * podcast/rb-feed-podcast-properties-dialog.c:
6326         (rb_feed_podcast_properties_dialog_parse_time):
6327         * podcast/rb-podcast-properties-dialog.c:
6328         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
6329         to display the date in a more user friendly way.
6330         For example, if the feed was updated yesterday it will say:
6331         Last updated: Yesterday 10:00 AM
6332         instead of printing the date.
6334 2005-12-12  William Jon McCann  <mccann@jhu.edu>
6336         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
6337         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
6338         (rb_validate_item_propert, rb_podcast_parser_start_element) 
6339         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
6340         Use RB style.  Check for NULL before strcmp.  No C++ comments.
6341         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
6342         Don't set invalid mime type when mime type is NULL.  Fix leaks.
6343         (rb_podcast_parse_date): Add support for some real world
6344         date formats.
6345         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
6346         (rb_podcast_parse_item_free): Style and no need to check
6347         for NULL before g_free.
6349         May fix #323742
6351 2005-12-12  James Livingston  <jrl@ids.org.au>
6353         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
6354         with gstreamer 0.10, which replaced audioscale.
6356         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
6357         function to free the SoupSession
6359         * shell/rb-source-header.c: (rb_source_header_set_property),
6360         (rb_source_header_disclosure_toggled_cb),
6361         (rb_source_header_view_browser_changed_cb),
6362         (rb_source_header_sync_control_state):
6363         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
6364         * sources/rb-library-source.c: (rb_library_source_class_init):
6365         * sources/rb-source.c: (rb_source_class_init),
6366         (rb_source_get_status), (default_get_browser_key),
6367         (rb_source_get_browser_key), (rb_source_can_browse),
6368         (rb_source_notify_status_changed),
6369         (rb_source_notify_filter_changed):
6370         * sources/rb-source.h: seperate the enabling of browsers from the use
6371         of a gconf key.
6373 2005-12-11  William Jon McCann  <mccann@jhu.edu>
6375         * data/glade/podcast-feed-properties.glade: 
6376         * data/glade/podcast-properties.glade: Use scrolled viewports
6377         for description text.  Fix regression of #320509.
6379 2005-12-11  James Livingston  <jrl@ids.org.au>
6381         * sources/rb-auto-playlist-source.c:
6382         (rb_auto_playlist_source_class_init), (impl_reset_filters),
6383         (impl_search), (rb_auto_playlist_source_do_query),
6384         (rb_auto_playlist_source_set_query),
6385         (rb_auto_playlist_source_get_query): add support for the search box
6386         to automatic playlists.
6388         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
6389         memory leak.
6391 2005-12-11  James Livingston  <jrl@ids.org.au>
6393         * NEWS: update NEWS
6395 2005-12-11  James Livingston  <jrl@ids.org.au>
6397         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
6398         (rhythmdb_load), (monitor_subdirectory),
6399         (rhythmdb_sync_library_location):  start the library sync and
6400         monitoring in an idle callback.
6402 2005-12-10  William Jon McCann  <mccann@jhu.edu>
6404         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
6405         (rb_podcast_source_constructor): Remove unused pixbuf column.
6406         (rb_podcast_source_set_property, rb_podcast_source_get_property):
6407         Use consistent style.
6409         Fixes #322961.
6411 2005-12-11  James Livingston  <jrl@ids.org.au>
6413         * rhythmdb/rhythmdb-property-model.c:
6414         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
6415         (rhythmdb_property_model_insert),
6416         (rhythmdb_property_model_delete_prop):
6417         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
6418         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
6419         (destroy_tree_property):
6420         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
6421         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
6422         GMemChunks, they are crap and deprecated. Improves startup-time and
6423         memory usage slightly.
6425 2005-12-10  William Jon McCann  <mccann@jhu.edu>
6427         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
6428         Added license and website info.
6430         * MAINTAINERS.old: Add Colin.
6431         * MAINTAINERS: Add James.
6432         * AUTHORS: Put back in order.  Add extra space between name and email
6433         to make it easier to read.  Add James and jonathan.
6435         * widgets/rb-song-info.c (rb_song_info_init) 
6436         (rb_song_info_constructor): Make sure close button is primary/rightmost.
6438 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
6440         Play queue implementation. Closes bug 107787.
6442         * data/rhythmbox.schemas: add items for whether the queue should be
6443         displayed as a sidebar, and the height of the sourcelist if it is.
6445         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
6446         playlist, and podcast popups; add 'view queue as sidebar' menu item,
6447         add popups for queue as source and as sidebar.  We need a separate
6448         popup for the sidebar view because otherwise it's hard to tell which
6449         of the visible entry views the action came from.
6451         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
6453         * po/POTFILES.in: Add new file
6455         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
6456         Add helper function for deciding if a podcast episode is available for
6457         playback.
6459         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
6460         reorder entries in the query model.
6461         (idle_process_update): Handle new update type used to insert entries
6462         at a particular position in the query model.
6463         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
6464         parameter to specify the position (-1 meaning 'at the end').
6465         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
6466         parameter.
6467         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
6468         bad entry removal updates for entries that aren't in the model.
6469         (rhythmdb_query_model_emit_reorder): Add helper function for
6470         reordering rows.
6471         (rhythmdb_query_model_move_entry): New method for moving entries
6472         around in the model
6473         (rhythmdb_query_model_entry_added_cb),
6474         (rhythmdb_query_model_update_limited_entries),
6475         (rhythmdb_query_model_do_reorder),
6476         (rhythmdb_query_model_do_insert): Pass through the index parameter,
6477         use rhythmdb_query_model_emit_reorder where appropriate.
6479         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
6480         Don't allow the queue to be deleted.
6481         (handle_playlist_entry_cb): Update for method signature change
6482         (rb_playlist_manager_save_playlists_async),
6483         (rb_playlist_manager_get_playlists): Don't save the play queue,
6484         don't report it as a playlist.
6486         * shell/rb-play-order.c: Include queue play order in the list of
6487         available orders.
6489         * shell/rb-shell.c
6490         (rb_shell_class_init), (rb_shell_get_property): Add new property 
6491         for access to the clipboard object.
6492         (rb_shell_constructor): Handle playing-from-queue signal to update the
6493         sourcelist display; add queue sidebar in to UI, listen for queue
6494         sidebar pane changes, and read initial settings from gconf.
6495         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
6496         Only tell the sourcelist the source has changed if the new source is 
6497         not the queue, as we update the sourcelist differently in that case.
6498         (rb_shell_set_window_title): Only use the cached window title if the
6499         playing state was the same when it was created.
6500         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
6501         (rb_shell_sync_pane_visibility): Only hide the side pane if the
6502         sourcelist is hidden and the queue is shown as a source.
6503         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
6504         mode, since it doesn't make any sense.
6505         (sourcelist_visibility_changed_cb): Update the visibility of the pane
6506         too.
6507         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
6508         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
6509         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
6510         playing from queue shown as sidebar.
6512         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
6513         MusicProperties action here from rb-shell-player.c, since it acts like
6514         cut/copy/paste etc.
6515         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
6516         (rb_shell_clipboard_get_property): new property for queue source.
6517         Watch for selection changes in the sidebar entry view as well as the
6518         normal one.
6519         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
6520         actions and MusicProperties.
6521         (rb_shell_clipboard_cmd_queue_delete),
6522         (rb_shell_clipboard_cmd_add_song_to_queue),
6523         (rb_shell_clipboard_cmd_song_info),
6524         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
6526         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
6527         actually came from (could be the playing source, or the queue), add a 
6528         new play order object for the queue, add a property for the queue
6529         source, add a signal for when we switch between playing from the
6530         source and from the queue.
6531         (rb_shell_player_set_property): Handle playing directly from the
6532         queue so we stop once the queue is empty.  Create queue play order
6533         when we get the queue source.
6534         (rb_shell_player_get_playing_source): Return the source we're actually
6535         playing from.
6536         (rb_shell_player_get_playing_entry): Get playing entry from queue if
6537         that's where it is.
6538         (rb_shell_player_set_playing_entry): Update the queue play order if 
6539         that's where we're playing from.
6540         (rb_shell_player_play_order_update_cb): Take has next/previous for the
6541         queue into consideration too.
6542         (swap_playing_source): Helper function for switching the playing
6543         source.
6544         (rb_shell_player_do_previous): Check the queue, even though there's
6545         never a previous entry in it (yet), swap playing source if it changed.
6546         (rb_shell_player_do_next): Check the queue for entries to play before
6547         the normal play order, and swap playing source if it changed.
6548         (rb_shell_player_do_previous_or_seek): Check the queue for previous
6549         entries to go to as well.
6550         (rb_shell_player_playpause): Check the queue before the selection and
6551         the play order, and swap playing source if it changed.
6552         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
6553         (rb_shell_player_entry_activated_cb): Use
6554         rb_podcast_manager_entry_downloaded, do some tapdancing to make
6555         activating queue entries work properly (move the activated entry to
6556         the start of the queue and then play it); if we were playing from the
6557         queue, clear its playing entry so it'll start again from the start
6558         after the activated entry.
6559         (rb_shell_player_sync_buttons): MusicProperties action handler moved
6560         to rb-shell-clipboard.c
6561         (actually_set_playing_source): Add helper for updating the playing
6562         source.
6563         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
6564         signal if we stop or start doing so; use actually_set_playing_source; 
6565         emit playing-source-changed if we actually did change source.
6567         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
6568         rb_static_playlist_source_add_location.
6570         * sources/rb-library-source.c (rb_library_source_class_init): Allow
6571         enqueueing of songs from the library.
6573         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
6574         enqueueing of sonsg from playlists.
6575         (rb_playlist_source_entry_added_cb): Add extra parameter for
6576         rhythmdb_query_model_add_entry.
6577         
6578         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
6579         Implement (can_)add_to_queue for this class.
6580         (rb_podcast_source_entry_activated): Use
6581         rb_podcast_manager_entry_downloaded.
6582         (impl_can_add_to_queue): Return TRUE if at least one entry that has
6583         been downloaded is selected.
6584         (impl_add_to_queue): Only add downloaded entries to the queue.
6586         * sources/rb-source.{c,h}:
6587         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
6588         methods.
6589         (rb_source_class_init): Don't allow enqueueing by default; implement 
6590         add_to_queue though.
6591         (default_add_to_queue): Add all selected entries to the queue.
6592         
6593         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
6594         would be playing if there wasn't anything in the queue).
6595         (set_source_playing): Helper function for manipulating tree store.
6596         (rb_sourcelist_set_playing_source): Use set_source_playing
6597         (rb_sourcelist_preempt_playing_source): Update preempted source
6598         pointer, manipulate source states.
6600         * sources/rb-static-playlist-source.{c,h}:
6601         (rb_static_playlist_source_add_location_internal),
6602         (rb_static_playlist_source_add_location),
6603         (rb_static_playlist_source_add_entry): Add index parameter for
6604         specifying where in the playlist the new entry goes.
6605         (rb_static_playlist_source_new_from_xml), (impl_paste),
6606         (rb_static_playlist_source_add_list_uri),
6607         (rb_static_playlist_source_add_location_swapped),
6608         (rb_static_playlist_source_add_locations),
6609         (rb_static_playlist_source_non_entry_dropped),
6610         (rb_static_playlist_source_row_inserted):
6611         Handle new index parameter everywhere it appears
6612         (rb_static_playlist_source_move_entry): New method for moving entries
6613         around in the playlist.
6615         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
6616         warnings when trying to scroll entry views that have never been
6617         displayed.
6619         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
6620         play order that removes the old entry when switching to a new one.
6622         * sources/rb-play-queue-source.{c,h}: New files, implementing a
6623         static playlist subclass that has a second entry view for the sidebar
6624         view using alternate formatting, and that displays the number of
6625         entries it contains in its source list entry.
6627 2005-12-10  James Livingston  <jrl@ids.org.au>
6629         * rhythmdb/rhythmdb-query-model.c:
6630         (rhythmdb_query_model_add_entry),
6631         (rhythmdb_query_model_drag_data_received):
6632         * sources/rb-static-playlist-source.c:
6633         (rb_static_playlist_source_non_entry_dropped): when things are
6634         dropped, ignore any blank lines in the list of uris. Make the source
6635         responsible for adding new items to the db.
6637         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
6638         empty string.
6640 2005-12-10  James Livingston  <jrl@ids.org.au>
6642         * shell/rb-shell-player.c: (rb_shell_player_set_property),
6643         (rb_shell_player_sync_buttons),
6644         (rb_shell_player_selection_changed_cb): watch for the
6645         "selection-changed" signal, so that the Song Properties get enabled.
6646         Closes bug 323694.
6648 2005-12-10  James Livingston  <jrl@ids.org.au>
6650         * data/rhythmbox.schemas: fix the gconf schema
6652 2005-12-10  James Livingston  <jrl@ids.org.au>
6654         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
6655         the decoded-pad callback with gstreamer 0.8, it causes problems.
6657 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
6659         Remove more junk from RBEntryView. Closes bug 323640.
6661         * widgets/rb-entry-view.{c,h}:
6662         Remove unused private structure members, replace 'playing' boolean
6663         with an enum (so we know if we're paused too), and store a pointer to
6664         the RBShellPlayer too.  
6665         (rb_entry_view_class_init), (rb_entry_view_set_property),
6666         (rb_entry_view_get_property):
6667         Remove 'entry-selected' and 'changed' signals and
6668         'playing-entry' property, add 'selection-changed' signal and
6669         'shell-player' and 'playing-state' properties.
6670         (rb_entry_view_new): Take the shell player object reference
6671         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
6672         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
6673         No longer needed, shell player is the place to get this information.
6674         (rb_entry_view_busy), (rb_entry_view_get_duration),
6675         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
6676         (rb_entry_view_get_next_from_entry),
6677         (rb_entry_view_get_previous_from_entry),
6678         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
6679         (rb_entry_view_get_num_entries):
6680         Removed, callers should go to the query model directly.
6681         (rb_entry_view_playing_song_changed): Update active query model, emit
6682         row changed signals to update pixbufs, and scroll to the playing song
6683         when the playing song changes, based on a signal from the shell
6684         player.
6685         (queue_changed_sig), (rb_entry_view_row_changed_cb),
6686         (emit_entry_changed): Evil, removed.
6687         (rb_entry_view_selection_changed_cb): Remove old signals, add new
6688         selection-changed signal.
6689         (rb_entry_view_select_none), (rb_entry_view_select_entry):
6690         Remove selection lock.  It didn't work anyway.
6691         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
6692         (rb_entry_view_emit_row_changed): Simple helper function to emit
6693         row-changed signals.
6695         * widgets/Makefile.am: Entry view needs headers from the shell/
6696         directory.
6697         * widgets/rb-song-info.{c,h}: Use the query model for everything except
6699         scrolling the entry view to show the entry being displayed.
6700         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
6701         'source' property so we can watch for query model changes.
6702         (rb_song_info_finalize): Unref objects, disconnect signal handlers
6703         (rb_song_info_set_property): Watch for query model changes, don't
6704         watch for entry view changes.
6705         (rb_song_info_new): Take source as a parameter, use the source's entry
6706         view unless one was specifically supplied.
6707         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
6708         Use query model rather than entry view to move between songs.
6709         (rb_song_info_update_buttons): Use query model.
6710         (rb_song_info_query_model_changed_cb): Handle query model changes.
6712         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
6713         Only one copy of the code to enable/disable the CD burning action
6714         (rb_playlist_manager_playlist_entries_changed):
6715         Use the query model to get the number of entries, not the entry view.
6717         * shell/rb-play-order-random-by-age-and-rating.c,
6718         shell/rb-play-order-random-by-age.c,
6719         shell/rb-play-order-random-by-rating.c,
6720         shell/rb-play-order-random-equal-weights.c:
6721         Use G_DEFINE_TYPE
6723         * shell/rb-shell-player.{c,h}:
6724         Remove a few unused entries from the structure.
6725         (rb_shell_player_set_property):
6726         Don't use the 'changed' signal on the entry view (it's evil)
6727         (rb_shell_player_have_first): No longer needed
6728         (rb_shell_player_play): Just tell the entry view it's playing
6729         (rb_shell_player_playpause): Tell the entry view it's paused
6730         when pausing.
6731         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
6732         (rb_shell_player_property_row_activated_cb):
6733         Get the entry to play using the query model, not the entry view.
6734         (rb_shell_player_sync_buttons): Update entry view state while we're
6735         here.
6736         (rb_shell_player_set_playing_source_internal): Update entry view state
6737         (rb_shell_player_get_playing): Ask the entry view, not the player.
6738         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
6739         and rb_shell_set_window_title work properly, so you get "(Paused)" in
6740         the window title and tray icon tooltip.
6741         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
6743         * sources/rb-iradio-source.c, sources/rb-library-source.c,
6744         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
6745         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
6746         view constructor, pass the source in to the song info widget
6747         constructor.
6749         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
6750         Use 'selection-changed' instead of 'changed', since that's what the
6751         clipboard cares about.
6752         (rb_shell_clipboard_set_source): Don't die if source == NULL
6754 2005-12-10  James Livingston  <jrl@ids.org.au>
6756         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
6757         * sources/rb-playlist-source-recorder.c:
6758         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
6759         stuff not use the deprecated API when compiled against 2.13
6761 2005-12-10  James Livingston  <jrl@ids.org.au>
6763         patch by: Alex Lancaster <alexl@users.sourceforge.net>
6765         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
6766         problem where the genre tag was getting set to the artist. Closes bug
6767         323642.
6769 2005-12-09  William Jon McCann  <mccann@jhu.edu>
6771         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
6772         Return NULL if can't get first iter.
6774         Fixes #323663
6776 2005-12-09  William Jon McCann  <mccann@jhu.edu>
6778         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
6779         updated rb_station_properties_dialog_new API.
6780         (rb_iradio_source_add_from_playlist): New public function.
6781         (rb_iradio_source_first_time_changed): Use add_from_playlist.
6783         * shell/rb-shell.c (new_station_location_added): Handle
6784         iradio location added signal.
6785         (rb_shell_cmd_new_station): Use new iradio station dialog.
6787         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
6788         (rb_station_properties_dialog_new): Don't squeeze new
6789         station functionality into this class.
6790         (rb_station_properties_dialog_response_cb): ditto.
6791         (rb_station_properties_dialog_update_title): Make
6792         consistent with other properties dialogs.
6793         (rb_station_properties_dialog_location_changed_cb): Do nothing.
6795         * iradio/rb-new-station-dialog.[ch]: 
6796         * iradio/Makefile.am: Add new station dialog.
6798         * data/glade/station-new.glade: New file based on
6799         new podcast feed dialog.
6800         * data/glade/station-properties.glade: Updated to
6801         be consistent with song properties dialog.
6803         Fixes #323306.
6805 2005-12-10  James Livingston  <jrl@ids.org.au>
6807         patch by: StÃ¥le Lyngaas <staale@lyngaas.com>
6809         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
6810         submit songs longer than 30 minutes. Fixes bug 323639.
6812 2005-12-09  William Jon McCann  <mccann@jhu.edu>
6814         * shell/rb-shell.c (idle_save_playlist_manager): Use new
6815         async save function.
6816         (rb_shell_finalize): Remove save timeout sources.  Reorder
6817         steps a bit to make saving db and playlists a bit more
6818         failsafe in case something goes wrong later.
6819         (rb_shell_constructor): Keep track of save timeout source.
6820         (add_to_library_response_cb): Keep track of db save timeout source.
6822         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
6823         g_atomic.
6824         (rb_playlist_manager_shutdown): New function to shutdown
6825         threads etc. before exit.
6826         (rb_playlist_manager_finalize): Moved handling outstanding
6827         threads stuff to shutdown since if there are outstanding threads
6828         they hold a ref and finalize is never called.
6829         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
6830         of signal which may be required for sync save.
6831         (rb_playlist_manager_save_playlists_async): Renamed old
6832         save_playlists to save_playlists_async.  Use g_atomic.
6833         (rb_playlist_manager_save_playlists): New function to
6834         perform sync saves (symmetric with RhythmDB API).
6835         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
6837         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
6838         Style consistency anality.
6839         (rhythmdb_finalize): Remove save timeout source.
6840         (rhythmdb_set_property, rhythmdb_get_property) 
6841         (rhythmdb_process_events): More anality and keep track of
6842         save timeout source.
6843         (action_thread_main): No need to call g_thread_exit.
6844         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
6845         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
6846         (write_encoded_gvalue, read_encoded_property): La la la.
6848         Fixes #322940.
6850 2005-12-10  James Livingston  <jrl@ids.org.au>
6852         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
6853         non-audio files.
6855 2005-12-10  James Livingston  <jrl@ids.org.au>
6857         * Makefile.am:
6858         * configure.ac: remove the rpm spec files, so that automake works.
6859         oops
6861         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
6862         locking issue
6864 2005-12-09  James Livingston  <jrl@ids.org.au>
6866         * debian/: try to get cvs to actually remove the files
6868 2005-12-09  James Livingston  <jrl@ids.org.au>
6870         * rhythmbox.spec.in:
6871         * debian/: remove the distro package stuff, they are *really* old, and
6872         downstream manage it anyway.
6874 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
6876         Rework play orders to work off query models rather than 
6877         entry views, and track the playing entry themselves rather
6878         than relying on the entry view to do it.  This makes the entry
6879         view mostly just a widget. Closes bug 323612.
6881         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
6882         Use query model rather than entry view to get the number
6883         of entries in playlists.
6885         * rhythmdb/rhythmdb-query-model.{c.h}
6886         (rhythmdb_query_model_tree_path_to_entry),
6887         (rhythmdb_query_model_iter_to_entry),
6888         (rhythmdb_query_model_get_next_from_entry),
6889         (rhythmdb_query_model_get_previous_from_entry):
6890         New utility functions for iterating through query models.
6891         (rhythmdb_query_model_compute_status_normal):
6892         Have one copy of this code, not four.
6894         * shell/rb-play-order.{c,h}:
6895         Add signals for when next/previous availability changes, and
6896         when the playing entry is removed, and add a property for
6897         the current playing entry.  Add gtkdoc comments too.
6898         (rb_play_order_class_init): Add new property and signals.
6899         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
6900         (rb_play_orer_query_model_changed_cb),
6901         (rb_play_order_query_model_changed): 
6902         Use query model rather than entry view.
6903         (rb_play_order_set_property), (rb_play_order_get_property):
6904         Handle new playing-entry property.  Call playing_entry_changed virtual
6905         method so subclasses can do any processing required.
6906         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
6907         (rb_play_order_set_playing_entry):
6908         Just use the playing-entry property.
6909         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
6910         Utility methods for subclasses.
6911         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
6912         Update next/previous availability, check if the playing entry
6913         was removed.
6914         (default_playing_entry_removed):
6915         Keep the current behaviour of just stopping playback when the 
6916         playing entry is deleted.
6917         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
6918         these for subclasses that don't have go_next/go_previous, but do
6919         have get_next/get_previous.
6920         (rb_play_order_update_have_next_previous): Emit signal if the
6921         availability of next/previous entries has changed.
6923         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
6924         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
6925         Use G_DEFINE_TYPE, replace entry view iterator with query model 
6926         methods.
6927         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
6928         on the last song in the shuffled order, go back to the start. This
6929         means if you press 'play' again you'll get the whole order again, not
6930         just one song.
6932         * shell/rb-shell-player.c:
6933         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
6934         play order rather than the entry view.
6935         (rb_shell_player_set_property): Update the play order when the
6936         selected source changes and we aren't playing anything.
6937         (rb_shell_player_sync_play_order): Copy the playing entry across to
6938         the new play order so playback continues from the same song, and watch
6939         for updates to have_next/have_previous.
6940         (rb_shell_player_play_order_update_cb): Enable/disable the
6941         next/previous actions when next/previous entry availability changes.
6942         (rb_shell_player_jump_to_current): Just use the play order's idea of
6943         what's playing, not the entry view's; if not playing anything, clear
6944         the selection, so when a playlist ends and you hit play again, it'll
6945         start at the start rather than the end.
6946         (rb_shell_player_do_previous): restructure a bit.
6947         (rb_shell_player_do_next): restructure, jump to new playing entry in
6948         an idle handler instead of directly.
6949         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
6950         song if there is one.
6951         (rb_shell_player_playpause): Jump to playing song, don't update the
6952         play order if we got the song from the selection.
6953         (rb_shell_player_playing_entry_deleted_cb): Not needed.
6954         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
6955         looks after next/previous actions now.  Don't break if called while
6956         there is no selected source.
6957         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
6958         (rb_shell_player_set_playing_source_internal),
6959         (rb_shell_player_error): No need to track the attempted playing entry
6960         any more, since the play order does that.
6962         * shell/rb-shell.c:
6963         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
6964         rb_shell_player_get_playing_entry rather than going through the entry
6965         view.
6967         * shell/rb-statusbar.c (rb_statusbar_set_property),
6968         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
6969         than the entry view for status bar text changes.
6970         (rb_statusbar_sync_status): Ask the query model directly
6972         * sources/rb-source.{c}: Add query model property.
6973         (default_get_status): Get status text from query model, should be
6974         suitable for most sources.
6975         (rb_source_set_property): Listen for changes to the query model 
6976         to update the status text.
6977         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
6978         (idle_emit_status_changed): Emit status-changed signals when query
6979         model changes. 
6981         * sources/rb-library-source.c, sources/rb-podcast-source.c:
6982         (impl_get_status): Not needed, RBSource does this now
6983         (rb_library_source_do_query) (rb_podcast_source_do_query): 
6984         Update RBSource's query model reference.
6986         * sources/rb-playlist-source.c:
6987         Remove query-model property, since RBSource has one now
6988         (impl_get_status): Not needed, RBSource does this now
6989         (rb_playlist_source_row_deleted): Use query model iterator helper
6990         function.
6991         (rb_playlist_source_set_query_model): Update RBSource's query model
6992         reference too.
6994         * sources/rb-iradio-source.c:
6995         (impl_get_status): Ask the query model directly.
6996         (rb_iradio_source_do_query): Update RBSource's query model reference
6997         when we create a new query.
6999         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
7000         Use query model rather than entry view.
7002         * widgets/rb-entry-view.{c,h}: 
7003         Remove playing_entry_deleted signal (now in play order).
7004         (entry_from_tree_path), (entry_from_tree_iter): Not needed
7005          as RhythmDBQueryModel has equivalent helper functions.
7006         (rb_entry_view_*): Use query model helpers instead of the above two
7007         functions.
7009 2005-12-09  James Livingston  <jrl@ids.org.au>
7011         * configure.ac:
7012         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
7013         (rb_recorder_enabled):
7014         * shell/rb-removable-media-manager.c: (poll_tray_opened):
7015         * sources/rb-playlist-source-recorder.c:
7016         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
7017         whether libnautilusburn has the _drive_unref function, and if so use
7018         it. Stops it complaining about deprecated API.
7020 2005-12-09  James Livingston  <jrl@ids.org.au>
7022         * configure.ac: drop the minimum gstreamer version back down, it
7023         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
7025 2005-12-09  James Livingston  <jrl@ids.org.au>
7027         * widgets/rb-song-info.c: (rb_song_info_class_init),
7028         (rb_song_info_show), (rb_song_info_constructor),
7029         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
7030         (rb_song_info_forward_clicked_cb): save metadata changes when the
7031         Next/Previous buttons are pressed (closes bug 320952). use
7032         G_DEFINE_TYPE.
7034 2005-12-09  James Livingston  <jrl@ids.org.au>
7036         Patch by: <jonathan@kaolin.hn.org>
7038         * sources/rb-iradio-source.c:
7039         (stations_view_drag_data_received_cb):
7040         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
7041         of urls. Fixes bug 323610.
7043 2005-12-09  James Livingston  <jrl@ids.org.au>
7045          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
7046          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
7048         * configure.ac:
7049         * metadata/rb-metadata-gst.c:
7050         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
7051         (rb_player_construct), (rb_player_new):
7052         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
7053         (rb_recorder_gst_signal_error), (pipe_message),
7054         (rb_recorder_new_pad_cb), (rb_recorder_construct),
7055         (rb_recorder_new):
7056         * shell/main.c: (main):
7057         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
7058         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
7060 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
7062         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
7064         * shell/rb-playlist-manager.c:
7065           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
7066           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
7067           (rb_playlist_manager_set_automatic_playlist),
7068           (rb_playlist_manager_cmd_new_automatic_playlist),
7069           (rb_playlist_manager_cmd_edit_automatic_playlist):
7070            Use new playlist subclasses.
7071           (rb_playlist_manager_save_playlists): Only read the dirty flag
7072            for local playlists, minor pointless reformatting
7074         * sources/Makefile.am: add new files
7076         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
7077           split lots of stuff out into two
7078           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
7079           make RBPlaylistSource abstract, add virtual methods for showing a
7080           popup for the entry view and saving the playlist to XML.
7081           Other stuff is subclass-specific, or already virtual in RBSource.
7083         * sources/rb-playlist-xml: Define playlist XML tags and attributes
7084           in one place, since they're used across three source files now
7086         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
7087           Use new static playlist class
7089         * sources/rb-ipod-source.c: (add_rb_playlist):
7090           Use new static playlist class
7092         * sources/rb-static-playlist-source.{c,h},
7093         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
7094         files.
7096         * po/POTFILES.in: add new files
7098 2005-12-07  James Livingston  <jrl@ids.org.au>
7100         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
7101         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
7102         metadata loads not attempt to write changes to disk.
7104 2005-12-07  James Livingston  <jrl@ids.org.au>
7106         patch by: Alex Lancaster <alexl@users.sourceforge.net>
7108         * data/glade/song-info-multiple.glade:
7109         * widgets/rb-song-info.c: (rb_song_info_constructor),
7110         (rb_song_info_sync_entries_multiple): allow the year to be changed on
7111         multiple songs at once.
7113 2005-12-06  James Livingston  <jrl@ids.org.au>
7115         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
7116         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
7118 2005-12-06  James Livingston  <jrl@ids.org.au>
7120         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
7121         names rather than adding a horizontal scroll bar.
7123 2005-12-06  James Livingston  <jrl@ids.org.au>
7125         * rhythmdb/rhythmdb-query-model.c:
7126         (rhythmdb_query_model_update_limited_entries),
7127         (rhythmdb_query_model_drag_data_received): remove some pointless debug
7128         messages
7130         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
7131         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
7132         always hide rather than remove DB entries, which will make RB not lose
7133         information when tag editing happens or people move files to trash and
7134         then change their mind. Also fix some races where the monitoring code
7135         would notice the temporary files generated by saving metadata.
7137 2005-12-05  William Jon McCann  <mccann@jhu.edu>
7139         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
7140         Hide internals and add tooltips.
7141         (rb_song_display_box_size_allocate): Hide internals.
7142         (sanitize_string, info_url): Copied from rb-header.
7143         (rb_song_display_box_sync): New public function.
7145         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
7146         (rb_header_init): Use a separate row for the seek bar.
7147         (rb_header_finalize): Don't unref widgets.
7148         (rb_header_sync): Use rb_song_display_box_sync.
7149         (rb_header_set_urldata)
7150         (rb_header_set_show_artist_album): Hide instead of remove widgets.
7151         (rb_header_set_show_position_slider): Set visibility of seek bar.
7152         (rb_header_set_show_timeline): Set sensitivity of seek bar.
7153         (rb_header_get_elapsed_string): Don't shift when you first start playback.
7155         * shell/rb-statusbar.c (rb_statusbar_init)
7156         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
7158         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
7159         (rb_shell_constructor): Remove hseparator.  Monitor
7160         toolbar visibility settings.  Add toolbar.  Add
7161         volume button to toolbar.  Add tooltips for volume button.
7162         (rb_shell_view_toolbar_changed_cb) 
7163         (rb_shell_sync_toolbar_visibility)
7164         (toolbar_visibility_changed_cb): Set visibility of
7165         toolbar.
7166         (rb_shell_sync_smalldisplay): Set the toolbar style to
7167         icons only when in small display mode.
7168         (rb_shell_volume_widget_changed_cb): Save volume setting.
7170         * shell/rb-shell-player.c (rb_shell_player_constructor):
7171         Remove pause and stop actions.  Make play action "important"
7172         so that text is visible in horizontal toolbar position.
7173         Remove control buttons.
7174         (rb_shell_player_init) 
7175         (rb_shell_player_sync_song_position_slider_visibility):
7176         Set visbibility of seek bar.
7177         (rb_shell_player_cmd_play, rb_shell_player_playpause):
7178         Make play action a toggle.
7179         (rb_shell_player_sync_volume): Volume control moved
7180         to player.
7181         (gconf_song_position_slider_visibility_changed):
7182         Set visbibility of seek bar.
7183         (rb_shell_player_sync_buttons):
7184         Set sensitivity of actions instead of buttons.
7185         (rb_shell_player_playing_changed_cb): Add callback
7186         for player notify::playing changes.
7188         * lib/rb-preferences.h: Add hide toolbar and seek
7189         bar key names.
7191         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
7192         seek bar menu items.  Remove pause and stop actions
7193         from the control menu.  Add a toolbar.
7195         * data/rhythmbox.schemas: Add toolbar_hidden
7196         song_position_slider_hidden keys.
7198         Patch by: James Livingston  <jrl@ids.org.au>
7199                   William Jon McCann  <mccann@jhu.edu>
7200         Fixes #316238.
7202 2005-12-05  James Livingston  <jrl@ids.org.au>
7204         * data/glade/library-prefs.glade:
7205         * data/rhythmbox.schemas:
7206         * lib/rb-preferences.h:
7207         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
7208         (rhythmdb_sync_library_location):
7209         * sources/rb-library-source.c: (rb_library_source_class_init),
7210         (rb_library_source_finalize), (rb_library_source_constructor),
7211         (impl_get_config_widget), (rb_library_source_preferences_sync),
7212         (rb_library_source_watch_toggled_cb): allow people to disable library
7213         monitoring, because with nothing set the file chooser button selects
7214         the Home folder (and hence that will get monitored).
7216 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
7218         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
7219         attempt to fix problem with RSS parsing showing invalid feed types.
7220         Fixes bug 323153
7222 2005-12-04  James Livingston  <jrl@ids.org.au>
7224         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
7225         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
7226         importing a remote directory not block the UI.
7228 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
7230         * data/glade/podcast-feed-properties.glade:
7231         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
7233 2005-12-04  James Livingston  <jrl@ids.org.au>
7235         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
7237         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
7238         to && to fix a mistake in the earlier podcast patch.
7240 2005-12-03  James Livingston  <jrl@ids.org.au>
7242         * data/glade/podcast-new.glade:
7243         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
7244         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
7246         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
7247         GValue, which stops occasional errors.
7249         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7250         compile issue.
7252 2005-12-03  James Livingston  <jrl@ids.org.au>
7254         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
7256         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7257         crasher with some podcasts feeds.
7259 2005-12-03  James Livingston  <jrl@ids.org.au>
7261         * data/rhythmbox.schemas: fix the gconf schema
7263 2005-12-03  James Livingston  <jrl@ids.org.au>
7265         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
7266         add a selection timeout to the sourcelist. This lets you hold a track
7267         over the playlist source, and then have the view switch so you can
7268         insert the track in the middle of the playlist. Closes bug 323044.
7270         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
7271         (select_on_drag_timeout), (remove_select_on_drag_timeout),
7272         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
7273         (rb_tree_dnd_add_drag_dest_support):
7274         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
7275         timeout.
7277         * sources/rb-sourcelist-model.c:
7278         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
7279         the source list.
7281 2005-12-02  Bastien Nocera  <hadess@hadess.net>
7283         * data/glade/audioscrobbler-prefs.glade: add a space before the web
7284         links, so that the text doesn't touch the button
7286 2005-12-02  James Livingston  <jrl@ids.org.au>
7288         Add full support for gnome-vfs remote files. Closes bug 140355.
7290         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
7291         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
7292         for authentication information from the user doesn't block the UI.
7294         (rhythmdb_entry_set_visibility): don't emit the signal twice.
7296         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
7297         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
7298         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
7299         (rhythmdb_process_stat_event), (emit_load_error_idle),
7300         (rhythmdb_process_metadata_load),
7301         (rhythmdb_process_queued_entry_set_event),
7302         (rhythmdb_process_file_created_or_modified),
7303         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
7304         (queue_stat_uri), (add_thread_main),
7305         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
7306         (rhythmdb_load), (rhythmdb_save_thread_main),
7307         (threadsafe_entry_set), (rhythmdb_query_internal),
7308         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
7309         (rhythmdb_do_full_query_internal),
7310         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
7311         (rhythmdb_volume_unmounted_cb),
7312         (rhythmdb_check_changed_file): trivial changes to support the
7313         asynchronous stats.
7315         * shell/main.c: (main): activate the authentication manager.
7317         * shell/rb-playlist-manager.c:
7318         (rb_playlist_manager_cmd_load_playlist),
7319         (rb_playlist_manager_cmd_save_playlist):
7320         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
7321         (rb_shell_cmd_add_file_to_library):
7322         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
7323         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
7324         remote files.
7326 2005-12-02  James Livingston  <jrl@ids.org.au>
7328         * shell/rb-playlist-manager.c: makes playlist menu items use the
7329         elipses correctly. Fixes bug 322283.
7331 2005-12-02  James Livingston  <jrl@ids.org.au>
7333         * shell/rb-playlist-manager.c:
7334         (rb_playlist_manager_load_playlists): fix silly mistake
7336 2005-12-02  James Livingston  <jrl@ids.org.au>
7338         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
7339         print out metadata-write unless --debug was passed.
7341         * rhythmdb/rhythmdb.c: (rhythmdb_load):
7342         * shell/rb-playlist-manager.c:
7343         (rb_playlist_manager_load_playlists): block writes to disk if they are
7344         still being loaded.
7346 2005-12-02  James Livingston  <jrl@ids.org.au>
7348         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
7349         ctrl-T, because Ctrl-D is used by "small mode"
7351 2005-12-02  James Livingston  <jrl@ids.org.au>
7353         * shell/rb-shell-preferences.c:
7354         (rb_shell_preferences_append_view_page):
7355         * sources/rb-library-source.c: (impl_get_config_widget):
7356         * sources/rb-podcast-source.c: (impl_get_config_widget):
7357         * sources/rb-source.c: (rb_source_get_config_widget):
7358         * sources/rb-source.h: Make the preference actually work.
7360         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
7361         if Rhythmbox is being run for the first time.
7363 2005-12-02  James Livingston  <jrl@ids.org.au>
7365         Add support for Rhythmbox to watch your library, and automatically add
7366         new tracks. Fixes bug 160159.
7368         * data/glade/library-prefs.glade: add "library location" preference
7369         * data/rhythmbox.schemas: add gconf key for the library location
7371         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
7372         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
7373         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
7374         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
7375         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
7376         (rhythmdb_load_thread_main), (rhythmdb_load),
7377         (monitor_subdirectory), (monitor_library_directory),
7378         (monitor_entry_file), (rhythmdb_sync_library_location),
7379         (library_location_changed_cb), (rhythmdb_check_changed_file),
7380         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
7381         specifiec in the gconf key for new additions. Also fix monitoring code
7382         so that it works properly, and notices deletions.
7384         * lib/rb-preferences.h:
7385         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7386         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
7387         * shell/rb-audioscrobbler.h:
7388         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
7389         (rb_shell_preferences_append_view_page),
7390         (rb_shell_preferences_new):
7391         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
7392         it's preferences pane, so that we don't need #ifdef's through
7393         rb-shell-preferences.
7395         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7396         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
7397         "preferences" property, so that sources can acccess it. This is needed
7398         because the library location pref needs to take effect when the window
7399         is closed.
7401         * sources/rb-library-source.c:
7402         (rb_library_source_library_location_changed),
7403         (rb_library_source_dispose), (rb_library_source_finalize),
7404         (rb_library_source_constructor), (impl_get_config_widget),
7405         (rb_library_source_preferences_sync),
7406         (rb_library_source_process_library_location_change),
7407         (rb_library_source_prefs_update),
7408         (rb_library_source_process_library_handle_selection),
7409         (rb_library_source_library_location_cb): set up and control the
7410         "library location" preference.
7412         * sources/rb-audiocd-source.c:(rb_source_class_init):
7413         * sources/rb-source.c: (rb_source_class_init): remove some pointless
7414         code.
7416 2005-12-01  William Jon McCann  <mccann@jhu.edu>
7418         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
7419         (rb_feed_podcast_properties_dialog_update_title): 
7420         * data/glade/podcast-feed-properties.glade:
7421         Make the feed properties dialog consistent with the podcast
7422         properties dialog.
7424 2005-12-01  William Jon McCann  <mccann@jhu.edu>
7426         * metadata/.cvsignore: 
7427         * po/.cvsignore: 
7428         * podcast/.cvsignore: Updated.
7430         * shell/main.c (main): Support DBus 0.6 flags.
7432 2005-11-30  Bastien Nocera  <hadess@hadess.net>
7434         * data/ui/rhythmbox-ui.xml:
7435         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
7436         (rhythmbd_entry_move_to_trash_set_error),
7437         (rhythmdb_entry_move_to_trash):
7438         * rhythmdb/rhythmdb.h:
7439         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
7440         (rb_shell_clipboard_cmd_delete),
7441         (rb_shell_clipboard_cmd_move_to_trash):
7442         * sources/rb-library-source.c: (rb_library_source_class_init),
7443         (impl_delete), (impl_move_to_trash):
7444         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
7445         (impl_delete), (impl_move_to_trash):
7446         * sources/rb-removable-media-source.c:
7447         (rb_removable_media_source_class_init):
7448         * sources/rb-source.c: (rb_source_class_init),
7449         (rb_source_can_move_to_trash), (rb_source_delete),
7450         (rb_source_move_to_trash):
7451         * sources/rb-source.h:
7452         Add move_to_trash member for the sources, implement move to trash for
7453         the library and playlists
7454         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
7455         local files to the trash, and deleting them from the database
7456         (Closes: #315389)
7458 2005-11-30  William Jon McCann  <mccann@jhu.edu>
7460         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
7461         (rb_tray_icon_init, rb_tray_icon_finalize): 
7462         * shell/rb-statusbar.c (rb_statusbar_class_init) 
7463         (rb_statusbar_init, rb_statusbar_finalize): 
7464         * shell/rb-source-header.c (rb_source_header_class_init) 
7465         (rb_source_header_init, rb_source_header_finalize): 
7466         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
7467         (rb_shell_finalize): 
7468         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
7469         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
7470         * shell/rb-shell-player.c (rb_shell_player_class_init) 
7471         (rb_shell_player_init, rb_shell_player_finalize): 
7472         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
7473         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
7474         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
7475         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
7476         * shell/rb-play-order.c (rb_play_order_class_init) 
7477         (rb_play_order_init, rb_play_order_finalize): 
7478         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
7479         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
7480         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
7481         (rb_random_play_order_init, rb_random_play_order_finalize): 
7482         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
7483         (rb_history_finalize): 
7484         * shell/rb-commander.c (rb_commander_class_init) 
7485         (rb_commander_init, rb_commander_finalize): 
7486         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
7487         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
7488         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
7489         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
7490         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
7491         (rb_podcast_properties_dialog_init) 
7492         (rb_podcast_properties_dialog_finalize): 
7493         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
7494         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
7495         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
7496         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
7497         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
7498         (rb_feed_podcast_properties_dialog_init) 
7499         (rb_feed_podcast_properties_dialog_finalize): 
7500         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
7501         (rb_metadata_init, rb_metadata_finalize): 
7502         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
7503         (rb_station_properties_dialog_init) 
7504         (rb_station_properties_dialog_finalize): 
7505         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
7506         (rb_daap_share_init, rb_daap_share_dispose): 
7508         Use g_type_class_add_private in all classes. Closes bug 313688.
7509         
7510 2005-11-30  James Livingston  <jrl@ids.org.au>
7512         patch by: William Jon McCann <mccann@jhu.edu> to use
7513         g_type_class_add_private in all classes. Closes bug 313688.
7515         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
7516         (rb_thread_finalize):
7517         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
7518         (rb_player_finalize):
7519         * rhythmdb/rhythmdb-property-model.c:
7520         (rhythmdb_property_model_class_init),
7521         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
7522         * rhythmdb/rhythmdb-query-model.c:
7523         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
7524         (rhythmdb_query_model_finalize):
7525         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
7526         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
7527         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
7528         (rhythmdb_finalize):
7529         * sources/rb-daap-source.c: (rb_daap_source_class_init),
7530         (rb_daap_source_init), (rb_daap_source_dispose):
7531         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
7532         (rb_iradio_source_init), (rb_iradio_source_finalize):
7533         * sources/rb-library-source.c: (rb_library_source_class_init),
7534         (rb_library_source_init), (rb_library_source_finalize):
7535         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
7536         (rb_playlist_source_init), (rb_playlist_source_dispose):
7537         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7538         (rb_podcast_source_init), (rb_podcast_source_finalize):
7539         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
7540         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
7541         * sources/rb-sourcelist-model.h:
7542         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
7543         (rb_sourcelist_init), (rb_sourcelist_finalize):
7544         * sources/rb-sourcelist.h:
7545         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
7546         * widgets/rb-cell-renderer-rating.c:
7547         (rb_cell_renderer_rating_init),
7548         (rb_cell_renderer_rating_class_init),
7549         (rb_cell_renderer_rating_finalize):
7550         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
7551         (rb_druid_finalize):
7552         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
7553         (rb_entry_view_init), (rb_entry_view_finalize):
7554         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7555         (rb_header_finalize):
7556         * widgets/rb-load-failure-dialog.c:
7557         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
7558         (rb_load_failure_dialog_finalize):
7559         * widgets/rb-property-view.c: (rb_property_view_class_init),
7560         (rb_property_view_init), (rb_property_view_finalize):
7561         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
7562         (rb_rating_finalize):
7563         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
7564         (rb_search_entry_init), (rb_search_entry_finalize):
7565         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
7566         (rb_simple_view_init), (rb_simple_view_finalize):
7567         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
7568         (rb_song_display_box_init), (rb_song_display_box_finalize):
7569         * widgets/rb-song-info.c: (rb_song_info_class_init),
7570         (rb_song_info_init), (rb_song_info_finalize):
7571         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
7572         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
7574 2005-11-30  James Livingston  <jrl@ids.org.au>
7576         * iradio/rb-station-properties-dialog.c:
7577         (rb_station_properties_dialog_init),
7578         (rb_station_properties_dialog_new):
7579         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
7580         * lib/rb-glade-helpers.h:
7581         * podcast/rb-feed-podcast-properties-dialog.c:
7582         (rb_feed_podcast_properties_dialog_init),
7583         (rb_feed_podcast_properties_dialog_new):
7584         * podcast/rb-podcast-properties-dialog.c:
7585         (rb_podcast_properties_dialog_init),
7586         (rb_podcast_properties_dialog_new):
7587         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
7588         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
7589         * sources/rb-library-source.c: (impl_get_config_widget):
7590         * sources/rb-playlist-source-recorder.c:
7591         (rb_playlist_source_recorder_init):
7592         * widgets/rb-song-info.c: (rb_song_info_construct_single),
7593         (rb_song_info_constructor): create a single rb_glade_boldify_label()
7594         in rb-glade-helpers, rather than having eight implementation
7595         throughout the code.
7597 2005-11-30  James Livingston  <jrl@ids.org.au>
7599         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
7600         * lib/rb-util.h:
7601         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
7602         move the duration->string function into rb-utils, as it gets used in a
7603         few places.
7605         patch by: William Jon McCann <mccann@jhu.edu>
7607         * data/glade/podcast-properties.glade:
7608         * podcast/rb-podcast-properties-dialog.c:
7609         (rb_podcast_properties_dialog_init),
7610         (rb_podcast_properties_dialog_update),
7611         (rb_podcast_properties_dialog_update_title),
7612         (rb_podcast_properties_dialog_update_feed),
7613         (rb_podcast_properties_dialog_update_duration),
7614         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
7615         info dialog look more like the song info dialog. Use the same "Feed"
7616         value that is displayed in the treeview (ie. the album field), displays
7617         the duration, uses units in the bitrate field, and sort the fields in
7618         the same order.
7620 2005-11-29  James Livingston  <jrl@ids.org.au>
7622         * rhythmdb/rhythmdb-marshal.list:
7623         * rhythmdb/rhythmdb.h:
7624         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7625         (emit_load_error_idle), (rhythmdb_process_metadata_load),
7626         (entry_to_rb_metadata), (emit_save_error_idle),
7627         (action_thread_main): emit error signal when metadata write fails.
7629         * shell/rb-shell.c: (rb_shell_constructor),
7630         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
7631         "metadata save" error and display it to the user.
7633 2005-11-29  James Livingston  <jrl@ids.org.au>
7635         * data/ui/rhythmbox-ui.xml:
7636         * sources/rb-podcast-source.c:
7637         (rb_podcast_source_songs_show_popup_cb),
7638         (rb_podcast_source_cmd_download_post),
7639         (rb_podcast_source_cmd_cancel_download): split download and cancel
7640         download commands. Replace usage of "Post" with "Esisode". Fixes bug
7641         321653.
7643 2005-11-18  William Jon McCann  <mccann@jhu.edu>
7645         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
7646         title on alert dialogs per the HIG.
7648         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
7649         the term Burn.
7650         (free_song_list): Routine to free song list.
7651         (rb_playlist_source_recorder_finalize): Use free_song_list.
7652         (rb_playlist_source_recorder_add_from_model): Return FALSE
7653         if unable to add all songs.  Check that duration of all
7654         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
7655         Fixes #321753.
7657         * sources/rb-playlist-source-recorder.c (check_media_length)
7658         (rb_playlist_source_recorder_start): Only check the duration
7659         and current media if the playlist length is longer than a
7660         standard CD (74 min).  Otherwise, just let the Recorder do the
7661         check.
7662         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
7663         drive at init.
7664         (rb_recorder_set_device): Don't leak drives.
7665         (rb_recorder_get_media_length): Use drive that was already set.
7666         (rb_recorder_burn): Let the recorder handle checking media type/size.
7667         Fixes bug 321754.
7669 2005-11-29  James Livingston  <jrl@ids.org.au>
7671         * rhythmdb/rhythmdb-query-model.c:
7672         (rhythmdb_query_model_set_sort_order):
7673         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
7674         emitting the tree-model "resorted" signal.
7676         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
7677         (rb_entry_view_finalize), (rb_entry_view_set_property),
7678         (rb_entry_view_constructor), (rb_entry_view_resort_model):
7679         * widgets/rb-entry-view.h: add a function to resort the entry view,
7680         using the above function.
7682         * sources/rb-iradio-source.c:
7683         (rb_iradio_source_songs_view_sort_order_changed_cb):
7684         * sources/rb-library-source.c: (rb_library_source_finalize),
7685         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
7686         * sources/rb-playlist-source.c:
7687         (rb_playlist_source_songs_sort_order_changed_cb):
7688         * sources/rb-podcast-source.c:
7689         (rb_podcast_source_posts_view_sort_order_changed_cb),
7690         (rb_podcast_source_do_query): use the above function instead of
7691         re-creating the query model. This makes changing the sorting an order
7692         of magnitude faster, as it uses a single resorted signal rather than
7693         deleting and re-adding everything (which emits 2N signals). Closes bug
7694         315389.
7696 2005-11-29  James Livingston  <jrl@ids.org.au>
7698         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
7699         autosizing, which results in large speedups. Closes bug 312122.
7701         * po/ja.po: change the date format, so that it is a constant width
7703         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
7704         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
7705         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
7706         (rb_entry_view_constructor): make columns use fixed widths,
7707         disable column autosizing, and enable fixed-height mode.
7709         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
7710         (rb_entry_view_get_time_date_column_sample):
7711         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
7712         and get the canonical date format for the locale.
7714 ============ Version 0.9.2
7716 2005-11-28  James Livingston  <jrl@ids.org.au>
7718         * configure.ac: bump version to 0.9.2
7719         * NEWS: update with changes for 0.9.2
7721 2005-11-28  James Livingston  <jrl@ids.org.au>
7723         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
7725         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
7726         Disable saving, renaming and delting for DAAP playlists.
7727         Fixes bug 322627.
7729 2005-11-28  James Livingston  <jrl@ids.org.au>
7731         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
7732         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
7733         prevent bug 322619.
7735         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
7736         * sources/rb-removable-media-source.c:
7737         (rb_removable_media_source_class_init): fix ipod browser visibility
7738         problem.
7740 2005-11-28  James Livingston  <jrl@ids.org.au>
7742         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
7743         Avahi 0.6 support actually work. Fixes bug 322519.
7745 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
7747         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
7748         avahi is specified in --with-mdns
7750 2005-11-27  James Livingston  <jrl@ids.org.au>
7752         patch by: Bastien Nocera <hadess@hadess.net>
7754         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
7755         not the private one. Fixes bug 322485.
7757 2005-11-26  James Livingston  <jrl@ids.org.au>
7759         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
7760         Avahi 0.6, as well as 0.5.
7762         * configure.ac:
7763         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
7764         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
7765         (add_service):
7767 2005-11-25  James Livingston  <jrl@ids.org.au>
7769         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
7770         321926.
7772 2005-11-25  James Livingston  <jrl@ids.org.au>
7774         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
7775         correct type for checking the date against 0. Stops a warning when
7776         saving metadata.
7778 2005-11-25  James Livingston  <jrl@ids.org.au>
7780         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
7781         adjustment to be inside the element's limits. Without this songs that
7782         have large ReplayGain values will recieve no increase because they are
7783         outside the acceptable range, causing them to remain quiet.
7785 2005-11-25  James Livingston  <jrl@ids.org.au>
7787         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
7788         * sources/rb-daap-source.c: (rb_daap_source_class_init):
7789         * sources/rb-ipod-source.c:
7790         * sources/rb-source.h:
7791         * sources/rb-library-source.h:
7792         * sources/rb-library-source.c: (rb_library_source_class_init),
7793         (rb_library_source_constructor),
7794         (rb_library_source_has_first_added_column),
7795         (rb_library_source_has_drop_support):
7796         * sources/rb-removable-media-source.c:
7797         (rb_removable_media_source_class_init): Make library-derived sources
7798         not show the Date Added column, as it doesn't make sense. Fixes bug
7799         322269.
7800         Move some of the feature funcs from the ipod and audio cd sources up to
7801         the removable media source.
7803 2005-11-24  James Livingston  <jrl@ids.org.au>
7805         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
7806         errors. oops.
7808 2005-11-24  James Livingston  <jrl@ids.org.au>
7810         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
7811         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
7812         (rb_iradio_source_constructor): Chain up dispose method and use
7813         G_DEFINE_TYPE
7815 2005-11-24  James Livingston  <jrl@ids.org.au>
7817         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
7818         mistake in the last commit that can cause crashes.
7820 2005-11-24  James Livingston  <jrl@ids.org.au>
7822         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
7823         instead of g_printerr.
7825         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
7826         rb_debug instead of g_warning. The message happens every time for
7827         removable media/daap shares, so it's not unusual.
7829 2005-11-24  James Livingston  <jrl@ids.org.au>
7831         patch by: Tom Parker <palfrey@tevp.net>
7833         * configure.ac: fix libsoup test for enabling daap
7835 2005-11-23  James Livingston  <jrl@ids.org.au>
7837         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
7838         (rb_query_creator_init), (rb_query_creator_constructor),
7839         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
7840         empty row to queries with no criteria. Fixes bug 322078. use
7841         G_DEFINE_TYPE.
7843 2005-11-23  James Livingston  <jrl@ids.org.au>
7845         patch by:  <baptiste.millemathias@gmail.com>
7847         * help/C/quick-reference.xml: update the quick reference to have the
7848         correct key bindings.
7850 2005-11-22  James Livingston  <jrl@ids.org.au>
7852         * sources/rb-library-source.c: (genres_selection_reset_cb),
7853         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
7854         reset the query when all browser selections are removed.
7856 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
7858         * podcast/rb-podcast-manager.c:
7859         (rb_podcast_manager_db_entry_deleted_cb):
7860         Use a custom loop to remove podcast posts, rather than
7861         gtk_tree_model_foreach(), as deleting the entries within
7862         that loop causes the iterator to return the first entry
7863         twice.  Instead, we need to find the next entry before
7864         removing the current one. Fixes bug 321956.
7865         (rb_podcast_manager_entry_remove_cb): No longer needed.
7867 2005-11-22  James Livingston  <jrl@ids.org.au>
7869         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
7870         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
7871         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
7873 2005-11-22  James Livingston  <jrl@ids.org.au>
7875         * sources/rb-podcast-source.c:
7876         (rb_podcast_source_post_date_cell_sort_func),
7877         (rb_podcast_source_post_status_cell_sort_func),
7878         (rb_podcast_source_post_feed_cell_sort_func):
7879         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
7880         (rb_entry_view_album_sort_func),
7881         (rb_entry_view_double_ceiling_sort_func),
7882         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
7883         the entry's location as a last resort when sorting, so the sort order
7884         is stable. This will stop entries moving around when two entries have
7885         the same sorting, and one of them gets played.
7887 2005-11-22  James Livingston  <jrl@ids.org.au>
7889         * daapsharing/rb-daap-connection.c:
7890         (rb_daap_connection_class_init), (rb_daap_connection_init),
7891         (connection_get_password), (build_message),
7892         (http_response_handler), (http_get), (handle_server_info),
7893         (handle_login), (handle_update), (handle_database_info),
7894         (handle_song_listing), (handle_playlists),
7895         (handle_playlist_entries), (rb_daap_connection_new),
7896         (rb_daap_connection_constructor), (rb_daap_connection_logout),
7897         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
7898         (rb_daap_connection_get_headers),
7899         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
7900         (rb_daap_connection_set_property),
7901         (rb_daap_connection_get_property):
7902         * daapsharing/rb-daap-connection.h:
7903         * sources/rb-daap-source.c: (rb_daap_source_dispose),
7904         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
7905         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
7906         of destroying the object when it is going to be used by a callback and
7907         fixes a double-free. Fixes bugs 321930 and 322007.
7909 2005-11-22  James Livingston  <jrl@ids.org.au>
7911         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
7912         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
7913         notification if there aren't any. Fixes bug 321968.
7915 2005-11-22  James Livingston  <jrl@ids.org.au>
7917         * rhythmdb/rhythmdb-property-model.c:
7918         (rhythmdb_property_model_set_property),
7919         (rhythmdb_property_model_finalize),
7920         (rhythmdb_property_model_compare),
7921         (rhythmdb_property_model_insert),
7922         (rhythmdb_property_model_delete_prop): Fix property model sorting
7923         where the display and sort keys are different. Fixes bug 321980.
7925 2005-11-22  James Livingston  <jrl@ids.org.au>
7927         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
7928         when import as a file or passed on the command line, and load them as
7929         playlists.
7931 2005-11-22  James Livingston  <jrl@ids.org.au>
7933         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
7935         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
7936         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
7937         a broken daap server. Fixes bug 321919.
7939 2005-11-22  James Livingston  <jrl@ids.org.au>
7941         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
7942         drag-and-drop for both the episodes and feeds list.
7943         
7944         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
7945         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
7946         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
7948         * widgets/rb-property-view.c: (rb_property_view_class_init),
7949         (rb_property_view_set_property), (rb_property_view_get_property),
7950         (rb_property_view_new), (rb_property_view_constructor):
7951         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
7952         (rb_simple_view_new), (rb_simple_view_constructor):
7953         * widgets/rb-simple-view.h: add a "draggable" property to property
7954         views and set it to false for the feed list. Fixes bug 321284.
7956 2005-11-22  James Livingston  <jrl@ids.org.au>
7958         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
7960         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
7961         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
7962         * sources/rb-ipod-source.c: (add_rb_playlist):
7963         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
7964         (rb_playlist_source_set_property),
7965         (rb_playlist_source_get_property), (rb_playlist_source_new),
7966         (impl_receive_drag), (rb_playlist_source_add_location),
7967         (rb_playlist_source_new_from_xml):
7968         * sources/rb-playlist-source.h: give playlists and (optional)
7969         entry-type, and reject entries that don't match. Fixes bug 322006.
7971 2005-11-21  James Livingston  <jrl@ids.org.au>
7973         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
7974         (rb_source_header_finalize): remove the weak references when the
7975         source header is finalised. Stops the callbacks being called after the
7976         object is destroyed.
7978 2005-11-21  James Livingston  <jrl@ids.org.au>
7980         * shell/main.c: (main): don't try to acquite bonobo/dbus when
7981         --no-registration was passed. It causes warnings that make it
7982         impossible to run with --no-registration --g-fatal-warnings
7984 2005-11-21  James Livingston  <jrl@ids.org.au>
7986         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
7987         of strings when they are still in use. Fixes bug 321547.
7989         (rb_daap_connection_destroy): fix memory leak
7991 2005-11-21  James Livingston  <jrl@ids.org.au>
7993         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
7994         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
7995         (rb_daap_mdns_resolve_cancel), (publish_cb),
7996         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
7997         support.
7999 2005-11-21  James Livingston  <jrl@ids.org.au>
8001         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
8002         sorting by genre
8004 2005-11-20  James Livingston  <jrl@ids.org.au>
8006         * podcast/rb-podcast-manager.c:
8007         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
8008         that we don't leak thread structures. Fixes bug 321636, and probably
8009         321775.
8011 2005-11-20  James Livingston  <jrl@ids.org.au>
8013         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
8014         (lookup_cd):
8015         * podcast/rb-podcast-manager.c: (start_job),
8016         (rb_podcast_manager_db_entry_deleted_cb),
8017         (rb_podcast_manager_entry_remove_cb):
8018         * podcast/rb-podcast-parse.c: (rb_insert_item),
8019         (rb_podcast_parse_load_feed):
8020         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
8021         * shell/rb-removable-media-manager.c:
8022         (rb_removable_media_manager_append_media_source):
8023         * shell/rb-shell.c: (add_to_library_response_cb):
8024         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
8025         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
8026         * sources/rb-iradio-source.c:
8027         (stations_view_drag_data_received_cb):
8028         * sources/rb-library-source.c: (string_list_equal),
8029         (impl_get_extra_views), (impl_receive_drag):
8030         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
8031         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
8032         (impl_receive_drag):
8033         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
8034         (rb_entry_view_append_column_custom), (harvest_entries):
8035         * widgets/rb-property-view.c:
8036         (rb_property_view_selection_changed_cb):
8037         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
8038         switch from using g_list_append to g_list_prepend. This changes
8039         operations from O(n^2) to O(n), which in cases like deleting a lot of
8040         tracks can give huge improvements in speed. Closes bug 321696.
8042 2005-11-20  James Livingston  <jrl@ids.org.au>
8044         * sources/rb-sourcelist.c: (rb_sourcelist_init),
8045         (rb_sourcelist_update_expander_visibility): fix indenting of child
8046         sources.
8048 2005-11-20  James Livingston  <jrl@ids.org.au>
8050         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
8051         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
8052         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
8053         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
8054         (add_service), (entry_group_cb): dynamically allocate memory, rather
8055         than using static variables.
8057         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
8058         re-enable the daap share if the name hasn't changed.
8059         * shell/rb-shell-preferences.c:
8060         (share_name_entry_focus_out_event_cb): don't ask the daap share to
8061         change it's name when the checkbox is disabled. Fixed bug 321748.
8063 2005-11-18  James Livingston  <jrl@ids.org.au>
8065         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
8066         as hidden if it is on the current workspace.
8068 2005-11-17  William Jon McCann  <mccann@jhu.edu>
8070         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
8071         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
8072         (rb_podcast_properties_dialog_parse_time): 
8073         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
8074         (rb_feed_podcast_properties_dialog_parse_time):
8075         Rework the way the last mod time strings are created.  It was using
8076         thread unsafe functions, not creating value UTF, and not not checking
8077         the value of the result before modifying it.  This new method fixes
8078         these problems.
8080 2005-11-18  James Livingston  <jrl@ids.org.au>
8082         Don't reset the search box when viewing a different source, because it
8083         will change what is being played. Closes 321593.
8085         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
8086         the search box
8088         * shell/rb-source-header.c: (rb_source_header_class_init),
8089         (rb_source_header_init), (rb_source_header_finalize): use
8090         G_DEFINE_TYPE.
8092         (rb_source_header_set_property),
8093         (rb_source_header_source_weak_destroy_cb),
8094         (rb_source_header_search_cb): store the search text when leaving a
8095         source and put it in the search box when viewing it again.
8097 2005-11-18  James Livingston  <jrl@ids.org.au>
8099         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8100         (save_entry):
8101         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
8102         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
8103         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
8104         time stamp.
8106         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
8107         last-seen as the timestamp of the last update of the feed. Don't
8108         re-add episodes that have been deleted. Closes 319759.
8110 2005-11-18  James Livingston  <jrl@ids.org.au>
8112         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
8113         that don't have the day name at the start. Closes 321645.
8115 2005-11-18  James Livingston  <jrl@ids.org.au>
8117         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
8118         (rb_podcast_manager_copy_post),
8119         (rb_podcast_manager_get_podcast_dir):
8120         * podcast/rb-podcast-manager.h:
8121         * sources/rb-podcast-source.c: (impl_get_config_widget),
8122         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
8123         download location switching to / if the prefs were opened before
8124         downloading an episode. Closes 321611.
8126 2005-11-18  James Livingston  <jrl@ids.org.au>
8128         * data/glade/podcast-new.glade:
8129         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
8130         (rb_new_podcast_dialog_set_property),
8131         (rb_new_podcast_dialog_get_property),
8132         (rb_new_podcast_dialog_response_cb),
8133         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
8134         for entering new podcast urls in. Closes bug 321610.
8136 2005-11-18  James Livingston  <jrl@ids.org.au>
8138         * sources/rb-podcast-source.c: (construct_query_from_selection),
8139         (rb_podcast_source_do_query): allow podcast list to be re-sorted
8140         without restarting RB. Closes bug 321612.
8142 2005-11-18  James Livingston  <jrl@ids.org.au>
8144         * widgets/rb-entry-view.c: (set_column_visibility),
8145         (rb_entry_view_sync_columns_visible): when changing visibility of one
8146         column, don't hide and re-show all the others. Makes a show/hide
8147         column operation a lot faster.
8149 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
8151         Closes bug 321702.
8153         * iradio/rb-station-properties-dialog.c
8154          (rb_station_properties_dialog_update_bitrate):
8155         Mark the bitrate value as being kbps, using the same
8156         translatable format string as rb-song-info.c
8158         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
8159          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
8161         * shell/rb-shell-player.c (info_available_cb):
8162          Use RB_METADATA_FIELD_BITRATE to update the iradio
8163          station's bitrate value.
8165 2005-11-17  James Livingston  <jrl@ids.org.au>
8167         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
8169         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
8170         free a NULL date.
8172 2005-11-17  James Livingston  <jrl@ids.org.au>
8174         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
8176         * lib/rb-stock-icons.c: emit a single warning rather than multiple
8177         assertions. Lookup the icon size correctly.
8179 2005-11-16  William Jon McCann  <mccann@jhu.edu>
8181         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
8182         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
8183         Fix build errors.
8185 2005-11-16  James Livingston  <jrl@ids.org.au>
8187         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
8188         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
8189         (rb_shell_preferences_sync_column_button): block the toggle signal of
8190         the column checkboxes while setting their initial state. This stops
8191         the visibility being re-set, which causes a lot of time being spent
8192         measuring the columns aagin when opening the prefs window.
8194         Use G_DEFINE_TYPE.
8196 2005-11-16  James Livingston  <jrl@ids.org.au>
8198         * sources/rb-sourcelist.c: (rb_sourcelist_init),
8199         (rb_sourcelist_edit_source_name): don't assume that the editable
8200         source name is in the first column, because it isn't. Fixes bug
8201         320137.
8203 2005-11-16  James Livingston  <jrl@ids.org.au>
8205         * daapsharing/rb-daap-mdns.h:
8206         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
8207         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
8208         parts can know why operations failed. Avahi can report that the daemon
8209         was not running. Howl doesn't do this (yet).
8210         
8211         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
8212         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
8213         (browse_cb): don't display mdns errors to the user, if it wa because
8214         the daemon was not running.
8216 2005-11-16  James Livingston  <jrl@ids.org.au>
8218         * rhythmdb/rhythmdb-property-model.c:
8219         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
8220         (rhythmdb_property_model_compare),
8221         (rhythmdb_property_model_insert),
8222         (rhythmdb_property_model_insert_prop),
8223         (rhythmdb_property_model_delete),
8224         (rhythmdb_property_model_delete_prop),
8225         (rhythmdb_property_model_get_value): use RBRefStrings rather than
8226         copying the string and re-creating the sort key. Saves a little bit of
8227         memory and time.
8229         (rhythmdb_property_model_perform_sync),
8230         (rhythmdb_property_model_sync): perform the count sync in an idle
8231         callback, so that it doesn't have to be re-run once per value when
8232         loading.
8234 2005-11-16  James Livingston  <jrl@ids.org.au>
8236         * rhythmdb/rhythmdb-query-model.c:
8237         (rhythmdb_query_model_entry_deleted_cb),
8238         (rhythmdb_query_model_remove_entry): remove deleted entries from the
8239         limited list. Stops problems if they are deleted, and then things on
8240         the main list are
8242 2005-11-16  James Livingston  <jrl@ids.org.au>
8244         * NEWS: update NEWS
8246         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
8247         button's minimise-to-tray action
8249 2005-11-16  James Livingston  <jrl@ids.org.au>
8251         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
8252         leak. Disable adding newly created files for now, because it doesn't
8253         work properly.
8255         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
8256         (rb_sourcelist_model_finalize):
8257         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
8258         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
8260 2005-11-16  James Livingston  <jrl@ids.org.au>
8262         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
8263         problem where a GError* wasn't being set to NULL. Actually check the
8264         result.
8266 2005-11-16  James Livingston  <jrl@ids.org.au>
8268         * doc/reference/tmpl/rb-entry-view.sgml:
8269         * doc/reference/tmpl/rhythmbox-unused.sgml:
8270         * doc/reference/tmpl/rhythmdb-query-model.sgml:
8271         * doc/reference/tmpl/rhythmdb.sgml:
8272         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
8273         docs, including the patch that was on bug 
8275         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
8276         API, because it should only be used by RhythmDB itself.
8278 2005-11-16  James Livingston  <jrl@ids.org.au>
8280         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
8281         pausing by middle clicking on the tray icon.
8283 2005-11-15  James Livingston  <jrl@ids.org.au>
8285         * configure.ac: enable audioscrobbler support by default, if libsoup
8286         is present.
8288 2005-11-15  James Livingston  <jrl@ids.org.au>
8290         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8291         Closes bug 321157.
8293         * configure.ac:
8294         * daapsharing/rb-daap-connection.c: (build_message),
8295         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
8296         support gzip encoded daap connections.
8298         (handle_song_listing): fix leak
8300 2005-11-15  James Livingston  <jrl@ids.org.au>
8302         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8303         * sources/rb-podcast-source.c:
8304         (rb_podcast_source_post_date_cell_data_func): make the date format
8305         translatable again, so that translators can choose the best format for
8306         their locale (%x is huge in some locales)
8308 2005-11-15  James Livingston  <jrl@ids.org.au>
8310         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
8311         (end_job): mark podcast episodes as failed, if the metadata load
8312         fails. This will prevent people playing non-audio enclosures, helping
8313         stop bug 320366.
8315 2005-11-14  James Livingston  <jrl@ids.org.au>
8317         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
8318         video sink to fakesink. This will stop problems (potentially crashers)
8319         that will occur if the file contains a video stream.
8321         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
8322         rather than using magic numbers everywhere.
8324         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8325         * sources/rb-podcast-source.c:
8326         (rb_podcast_source_songs_show_popup_cb),
8327         (rb_podcast_source_cmd_download_post),
8328         (rb_podcast_source_post_status_cell_data_func),
8329         (rb_podcast_source_entry_activated_cb): use the above constants.
8331         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
8332         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
8333         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
8334         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
8335         (cancel_job), (download_progress_cb),
8336         (rb_podcast_manager_cancel_download),
8337         (rb_podcast_manager_insert_feed): use the constants, and fix a
8338         trhead-safety issue.
8340 2005-11-14  Bastien Nocera  <hadess@hadess.net>
8342         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
8343         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
8344         entry-changed events after stats on startup, fixes entry deleted from
8345         filtered views not disappearing
8347 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
8349         Fix rhythmdb query model refcount and polling problems. Closes bug
8350         321410.
8352         * rhythmdb/rhythmdb-property-model.c:
8353         (rhythmdb_property_model_finalize):
8354          Unref the query model if we have one.
8356         * rhythmdb/rhythmdb-query-model.h:
8357          Remove poll and cancel methods.  Query cancellation
8358          never did anything anyway.
8360         * rhythmdb/rhythmdb-query-model.c:
8361         (rhythmdb_query_model_init): Remove GAsyncQueues.
8362          Replace the GAsyncQueue-based update processing
8363          with a simpler g_idle_add approach; still has the
8364          same queueing properties, but now we don't poll the
8365          model forever and updates are processed immediately.
8367         (_unref_entry), (rhythmdb_query_model_finalize):
8368          Unref DB entries when finalized
8370         (rhythmdb_query_model_has_pending_changes):
8371          Use our own counter to decide if there are updates pending
8373         (rhythmdb_query_model_process_update), (idle_process_update):
8374          Process updates using g_idle_add, or directly if possible
8376         (rhythmdb_query_model_signal_complete),
8377         (rhythmdb_query_model_add_entries):
8378          Change to new update processing method
8380         (idle_poll_model), (rhythmdb_query_model_poll):
8381          Remove GAsyncQueue-based update processing.
8383         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
8384          No need to poll the model any more - updates are processed
8385          directly for synchronous queries.
8387         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8388          Property model needs to be unref'd here
8390         * sources/rb-library-source.c: (rb_library_source_do_query):
8391          Don't try to cancel the active query (it never worked anyway),
8392          remove obsolete poll call, unref property models as required,
8393          and don't unref the cached 'all' query, since hold on to it.
8394          We unref it when the sort order changes, which forces the query
8395          to be rerun.
8397         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8398          Unref the property model as required
8400         (rb_podcast_source_do_query):
8401          Treat any query with no selected feeds and no search text as
8402          an 'all' query.  Unref query models except for the cached
8403          'all' query, since we hold on to that.
8405         (rb_podcast_source_cmd_update_all):
8406          Unref the property model as required.
8408         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
8409          Don't try to cancel the query (it never worked anyway)
8411         (rb_entry_view_poll_model):
8412          No need for this any more.
8414         * widgets/rb-entry-view.h:
8415          Remove obsolete function rb_entry_view_poll_model
8417         * widgets/rb-property-view.c: (rb_property_view_set_property):
8418          Ref and unref the property model as required.
8420 2005-11-14  James Livingston  <jrl@ids.org.au>
8422         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8424         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
8425         for error. Closes bug 321416.
8427 2005-11-14  James Livingston  <jrl@ids.org.au>
8429         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8431         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
8432         a crasher if a feed's last-post value isn't set. Closes bug 321353.
8434 2005-11-14  James Livingston  <jrl@ids.org.au>
8436         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
8437         * shell/rb-removable-media-manager.c:
8438         (rb_removable_media_manager_set_uimanager):
8439         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
8440         translation domain for GTK action groups.
8442 2005-11-12  James Livingston  <jrl@ids.org.au>
8444         * po/POTFILES.in: remove the old station-new files
8446 2005-11-12  James Livingston  <jrl@ids.org.au>
8448         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8449         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
8450         (save_entry): cause Rhythmbox to re-read the metadata from a file,
8451         when upgrading from a pre-Date-supporting version to a version that
8452         supports Date metadata. Closes bug 320760.
8454 2005-11-12  James Livingston  <jrl@ids.org.au>
8456         Add "update all podcast feeds" command. Closes bug 319954.
8458         * data/ui/rhythmbox-ui.xml: add to source context menu.
8460         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8461         (register_action_group), (rb_podcast_source_cmd_download_post),
8462         (rb_podcast_source_cmd_delete_feed),
8463         (rb_podcast_source_cmd_properties_feed),
8464         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
8465         rather than the shell.
8467         (rb_podcast_source_update_feed_func),
8468         (rb_podcast_source_cmd_update_all): update every feed.
8470 2005-11-11  James Livingston  <jrl@ids.org.au>
8472         * shell/rb-shell-player.c: (rb_shell_player_class_init),
8473         (rb_shell_player_constructor), (rb_shell_player_finalize):
8474         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
8475         others follow the HIG recommentations.
8477 2005-11-11  James Livingston  <jrl@ids.org.au>
8479         * podcast/rb-podcast-manager.c:
8480         (rb_podcast_manager_subscribe_feed): check that the url is valid,
8481         before trying to use it.
8483 2005-11-11  James Livingston  <jrl@ids.org.au>
8485         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
8486         (rb_entry_view_append_column): When sorting by year, sort by album
8487         within a particular year.
8489 2005-11-11  James Livingston  <jrl@ids.org.au>
8491         * NEWS: updates
8493 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
8494         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
8495         spelling of "Language."
8497 2005-11-11  James Livingston  <jrl@ids.org.au>
8499         * rhythmdb/rhythmdb-property-model.c:
8500         (rhythmdb_property_model_row_inserted_cb),
8501         (rhythmdb_property_model_prop_changed_cb),
8502         (rhythmdb_property_model_entry_removed_cb),
8503         (rhythmdb_property_model_insert_prop),
8504         (rhythmdb_property_model_sync): display the count after the "All"
8505         entry of a property model.
8507         * widgets/rb-property-view.c: (rb_property_view_class_init),
8508         (rb_property_view_finalize), (rb_property_view_constructor): use
8509         G_DEFINE_TYPE
8511 2005-11-10  James Livingston  <jrl@ids.org.au>
8513         * rhythmdb/rhythmdb-query-model.c:
8514         (rhythmdb_query_model_remove_entry):
8515         * rhythmdb/rhythmdb-query-model.h: make
8516         rhythmdb_query_model_remove_entry return whether the entry was in the
8517         model.
8519         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
8520         don't add non-SONG entries, as it doesn't really work and can cause
8521         crashes.
8523         (rb_playlist_source_remove_location): assert if the playlist and model
8524         differ on whether the entry is in the playlist
8526 2005-11-10  James Livingston  <jrl@ids.org.au>
8528         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
8529         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
8530         (rb_podcast_manager_thread_parse_feed),
8531         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
8532         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
8533         emulating one with a list and mutex. Fixes a couple of threading
8534         issues.
8535         
8536         (rb_podcast_manager_insert_feed): fix some problems with ignoring
8537         updated feeds.
8538         
8539         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
8540         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
8541         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
8542         * podcast/rb-podcast-parse.c: (rb_insert_item),
8543         (rb_podcast_parse_channel_free):
8544         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
8545         fix some typos, and make a bit of code clearer.
8547 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
8549         Make the "delete podcast" dialog better. Closes bug 320899.
8551         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
8552         Add PROP_WINDOW for rb_shell_get_property so we can access the
8553         GtkWindow widget of the main window. 
8554         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
8555         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
8556         podcast feed delete dialog less confusing as well.
8558 2005-11-09  James Livingston  <jrl@ids.org.au>
8560         * shell/rb-removable-media-manager.c:
8561         (rb_removable_media_manager_mount_volume),
8562         (rb_removable_media_manager_scan): Fix a crasher where we were getting
8563         NULL for a cd volume.
8565 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
8567         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
8568         method return a gboolean indicating whether the changes
8569         to the entry have already been applied.
8571         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
8572         only modify the entry if impl_entry_set returns FALSE.
8574         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
8575         When setting the location of an entry, update the
8576         hash table mapping locations to entries.
8578 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
8580         * data/glade/Makefile.am:
8581         * iradio/Makefile.am:
8582           Remove 'new station' dialog.
8584         * iradio/rb-station-properties-dialog.h:
8585         * sources/rb-iradio-source.c: (impl_song_properties):
8586         * shell/rb-shell.c: (rb_shell_cmd_new_station):
8587          Add 'new station' mode parameter to
8588          rb_station_properties_dialog_new.
8590         * (rb_station_properties_dialog_response_cb),
8591         (rb_station_properties_dialog_create_station):
8592          When in 'new station' mode, create the station
8593          when OK button is pressed.
8595         * iradio/rb-station-properties-dialog.c:
8596         (rb_station_properties_dialog_location_changed_cb):
8597          Only enable OK button if a location is specified
8598         (rb_station_properties_dialog_init),
8599         (rb_station_properties_dialog_new),
8600         (rb_station_properties_dialog_update),
8601         (rb_station_properties_dialog_update_title),
8602         (rb_station_properties_dialog_rated_cb),
8603         (rb_station_properties_dialog_update_play_count),
8604         (rb_station_properties_dialog_update_bitrate),
8605         (rb_station_properties_dialog_update_last_played),
8606         (rb_station_properties_dialog_update_rating),
8607         (rb_station_properties_dialog_update_playback_error),
8608         (rb_station_properties_dialog_show):
8609          Handle 'new station' mode, where there's no current
8610          station to edit.
8612 2005-11-08  James Livingston  <jrl@ids.org.au>
8614         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
8615         keybinding for track columns consistent between library and playlist
8616         sources.
8618 2005-11-07  James Livingston  <jrl@ids.org.au>
8620         * data/ui/rhythmbox-ui.xml:
8621         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
8622         "Edit" item to playlist menu. Closes bug 311470.
8624 2005-11-07  James Livingston  <jrl@ids.org.au>
8626         patch by: Jaap A. Haitsma <jaap@haitsma.org>
8628         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
8629         confirmation to save dialogs, with gtk 2.8 or higher.
8631 2005-11-07 James Livingston  <jrl@ids.org.au>
8632         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
8633         requirement to a general on, because people are going to have it for
8634         the other dependencies.
8636 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
8638         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
8639         delete dialog less confusing.  Use HIG recommended button order.
8640         Closes bug 320840.
8642 2005-11-06  James Livingston  <jrl@ids.org.au>
8644         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
8645         drag-and-drop error.
8646         
8647         * sources/rb-library-source.c: (rb_library_source_constructor): only
8648         add drag-and-drop for the Library itself, subclasses can add support
8649         themselves if they want it.
8651         * sources/rb-removable-media-source.c:
8652         (rb_removable_media_source_class_init): by default removable media
8653         sources do not support dnd
8655 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
8657         * data/glade/station-properties.glade:
8658          Add box containing error icon and error message label
8659         * iradio/rb-station-properties-dialog.c:
8660         (rb_station_properties_dialog_class_init),
8661         (rb_station_properties_dialog_finalize):
8662          Change this class to use G_DEFINE_TYPE
8663         (rb_station_properties_dialog_init),
8664         (rb_station_properties_dialog_update),
8665         (rb_station_properties_dialog_update_playback_error):
8666          Display error icon and message when there is one, and hide the error
8667          box otherwise.
8668         (rb_station_properties_dialog_show): Hack widget show
8669          method to update the visibility of the error info box when showing
8670          the widget.  Otherwise the icon is displayed all the time (same thing
8671          is done in rb-song-info). Closes bug 320749.
8673 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
8675         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
8676         parsing of the duration of podcast episodes from the feed. Closes bug
8677         320748.
8679 2005-11-05  James Livingston  <jrl@ids.org.au>
8681         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
8682         release date metadata ("Year"). Closes bug 166093.
8684         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
8685         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
8686         (rb_metadata_gst_add_tag_data):
8687         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8688         (save_entry):
8689         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
8690         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
8691         (set_props_from_metadata), (rhythmdb_entry_set_internal),
8692         (rhythmdb_prop_get_type):
8693         * rhythmdb/rhythmdb.h: add support for "date" property
8694         
8695         * data/glade/general-prefs.glade:
8696         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
8697         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
8698         (rb_entry_view_append_column):
8699         * widgets/rb-entry-view.h:
8700         * sources/rb-library-source.c: (rb_library_source_constructor):
8701         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
8702         "Year" colums
8704         * data/glade/song-info.glade:
8705         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
8706         (rb_song_info_construct_single), (rb_song_info_constructor),
8707         (rb_song_info_populate_dialog), (rb_song_info_update_year),
8708         (rb_song_info_sync_entry_single): Add "Year" to song info window
8710         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
8711         sorted by year.
8713 2005-11-05  James Livingston  <jrl@ids.org.au>
8715         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
8716         description if it's very long.
8718 2005-11-05  James Livingston  <jrl@ids.org.au>
8720         pathc by: Artem Baguinski <femistofel@gmail.com>
8722         * help/C/Makefile.am:
8723         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
8724         Closes bug 320613.
8726 2005-11-05  James Livingston  <jrl@ids.org.au>
8728         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8730         * daapsharing/rb-daap-share.c: (write_next_chunk),
8731         (message_finished), (databases_cb): Use chunked file loading and
8732         sending in the DAAP server. This should reduce the amount of memory
8733         required to send files to the client.
8735 2005-11-05  James Livingston  <jrl@ids.org.au>
8737         * configure.ac: make the nautilus_burn_drive_door_is_open detection
8738         work better on some systems. Closes 320622.
8740 2005-11-05  James Livingston  <jrl@ids.org.au>
8742         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
8743         homepage, so that users can find out what AudioScrobbler is. Add
8744         access keys.
8746         * data/glade/daap-prefs.glade:
8747         * data/glade/general-prefs.glade:
8748         * data/glade/library-prefs.glade: make the indent be more consistent
8750         * data/glade/podcast-prefs.glade: 
8751         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8752         (impl_get_config_widget): move thing out of code into glade, where
8753         they belong
8755 2005-11-05  James Livingston  <jrl@ids.org.au>
8757         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
8758         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
8760 2005-11-04  James Livingston  <jrl@ids.org.au>
8762         * configure.ac: don't print DAAP configure info twice
8764 2005-11-04  James Livingston  <jrl@ids.org.au>
8766         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
8767         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
8768         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
8769         #ifdefs, since we removed the symbol. Oops
8771 2005-11-04  James Livingston  <jrl@ids.org.au>
8773         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
8774         after the connect line, not before. Oops.
8776 2005-11-04  James Livingston  <jrl@ids.org.au>
8778         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
8779         fix some warnings
8781 2005-11-03  James Livingston  <jrl@ids.org.au>
8783         * NEWS: update the news file
8785         * data/glade/general-prefs.glade: make the prefs refer to "time" not
8786         "duration" column.
8788         * data/ui/rhythmbox-ui.xml:
8789         * shell/rb-playlist-manager.c:
8790         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8791         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
8792         and "delete" for feeds.
8794 2005-11-03  James Livingston  <jrl@ids.org.au>
8796         * sources/rb-podcast-source.c: (impl_delete),
8797         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
8798         feed. Closes 319760.
8800 2005-11-03  James Livingston  <jrl@ids.org.au>
8802         Don't start playing from the remote site when a un-downloaded podcast
8803         is activated. Closes 319983.
8804         
8806         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
8807         (write_job_data), (download_progress_cb): write the local location as
8808         soon as any data is recieved
8810         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
8811         the mountpoint to NULL for podcast episodes that haven't yet been
8812         downloaded.
8813         
8814         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
8815         start playing a podcast if it hasn't been downloaded.
8816         
8817         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8818         (rb_podcast_source_entry_activated_cb): begin downloading when the
8819         podcast is activated.
8821 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
8823         * data/glade/general-prefs.glade:  Fix capitalization.
8824         * shell/rb-removable-media-manager.c:  Add a mnemonic.
8825         * sources/rb-podcast-source.c:
8826         (rb_podcast_source_songs_show_popup_cb),
8827         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
8829 2005-11-03  James Livingston  <jrl@ids.org.au>
8831         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
8833         * shell/rb-removable-media-manager.c:
8834         (rb_removable_media_manager_mount_volume): don't check network or
8835         autofs mounts, as they're not going to be removable media. Stops
8836         sending lots of warnings to syslog. Closes 320571.
8838         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
8839         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
8840         320570.
8842 2005-11-03  James Livingston  <jrl@ids.org.au>
8844         Add support for playing audio CDs. Metadata lookup is done using
8845         SoundJuicer's MusicBrainz lookup code, which can be switched to using
8846         the library when it gets broken out of S-J.
8847         
8848         Add a "rescan media" menu item, and commands for ejecting removable
8849         media.
8851         Move nautilus-cd-burner from optional to required depenency.
8853         * configure.ac:
8854         * data/ui/rhythmbox-ui.xml:
8855         * metadata/Makefile.am:
8856         + metadata/sj-error.c:
8857         + metadata/sj-error.h:
8858         + metadata/sj-metadata-marshal.list:
8859         + metadata/sj-metadata-musicbrainz.c:
8860         + metadata/sj-metadata-musicbrainz.h:
8861         + metadata/sj-metadata.c:
8862         + metadata/sj-metadata.h:
8863         + metadata/sj-structures.c:
8864         + metadata/sj-structures.h:
8865         * player/Makefile.am:
8866         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
8867         * po/POTFILES.in:
8868         * shell/Makefile.am:
8869         * shell/rb-removable-media-manager.c:
8870         (rb_removable_media_manager_dispose), (poll_tray_opened),
8871         (end_cd_drive_monitor), (begin_cd_drive_monitor),
8872         (rb_removable_media_manager_load_media),
8873         (rb_removable_media_manager_mount_volume),
8874         (rb_removable_media_manager_cmd_eject_medium),
8875         (rb_removable_media_manager_cmd_scan_media),
8876         (rb_removable_media_manager_check_volume),
8877         (rb_removable_media_manager_unmount_volume_swap),
8878         (rb_removable_media_manager_scan):
8879         * sources/Makefile.am:
8880         + sources/rb-audiocd-source.c:
8881         + sources/rb-audiocd-source.h:
8882         * tests/Makefile.am:
8884 2005-11-02  James Livingston  <jrl@ids.org.au>
8886         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8888         * sources/rb-iradio-source.c:
8889         (stations_view_drag_data_received_cb):
8890         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
8891         don't crash when the second uri is missing frm the drop, which
8892         browsers sometimes do.
8894 2005-11-01  James Livingston  <jrl@ids.org.au>
8896         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
8897         (rb_podcast_manager_insert_feed):
8898         * podcast/rb-podcast-manager.h:
8899         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
8900         (rb_set_item_value), (rb_validate_item_propert),
8901         (rb_podcast_parse_date), (rb_podcast_parse_time):
8902         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
8903         from the feed.
8905 2005-10-31  James Livingston  <jrl@ids.org.au>
8907         * ChangeLog:
8908         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
8909         huge
8911 2005-10-31  James Livingston  <jrl@ids.org.au>
8913         * sources/rb-podcast-source.c:
8914         (rb_podcast_source_post_date_cell_data_func): generate the date string
8915         in a way that is correct in all locales.
8916         
8917         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
8918         (rhythmdb_entry_sync_mirrored): make the last played/date added
8919         columns use the same format.
8921 2005-10-30  James Livingston  <jrl@ids.org.au>
8924         * podcast/rb-podcast-manager.c:
8925         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
8926         
8927         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
8928         iradio errors better.
8930 2005-10-30  James Livingston  <jrl@ids.org.au>
8932         patch by: Artem Baguinski <femistofel@gmail.com>
8934         * metadata/rb-metadata-gst.c: (rb_metadata_init):
8936 2005-10-30  James Livingston  <jrl@ids.org.au>
8938         * podcast/rb-podcast-manager.c:
8939         (rb_podcast_manager_subscribe_feed),
8940         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
8941         already been added, usually as a radio station. Closes 319434.
8943 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
8945         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
8946         mnemonics & resize issues)
8947         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
8948         & mnemonics)
8949         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
8950         widget for the "download location" label.
8952         Closes bug 320184.
8954 2005-10-29  James Livingston  <jrl@ids.org.au>
8956         Allow the search box to match words from multiple properties. Closes
8957         bug 139196. Thanks to the person from IRC who did a lot of the initial
8958         work.
8961         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
8962         * lib/rb-util.h: Add functions to split a string into words, and one
8963         to perform "search folding" which is currently like casefolding but
8964         also strips punctuation
8965         
8966         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
8967         (rhythmdb_query_preprocess):
8968         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
8969         against title, artist, album and genre (for the search box)
8970         
8971         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
8972         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8973         (save_entry), (search_match_properties),
8974         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
8975         splitting into words and matching across multiple properties.
8976         
8977         * sources/rb-library-source.c: (construct_query_from_selection): use
8978         the new SEARCH_MATCH property for the search box
8979         
8980         * widgets/rb-entry-view.c: (type_ahead_search_func):
8982 2005-10-29  James Livingston  <jrl@ids.org.au>
8984         * lib/rb-stock-icons.c: (rb_stock_icons_init):
8985         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
8986         
8987         * shell/rb-playlist-manager.c:
8988         * shell/rb-shell.c: use the above stock ids, so that the icons get set
8989         correctly.
8990         
8991         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
8992         initial state of the shuffle/repeat menu items correctly. Patch from
8993         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
8995 2005-10-29  James Livingston  <jrl@ids.org.au>
8997         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
8998         double-free.
8999         
9000         * widgets/rb-cell-renderer-pixbuf.c:
9001         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
9002         icon go black when row is not selected
9003         
9004         * doc/reference/tmpl/rb-daap-connection.sgml:
9005         * doc/reference/tmpl/rhythmdb.sgml: doc updates
9007 2005-10-29  James Livingston  <jrl@ids.org.au>
9009         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
9010         silly mistake, where it could think partial downloads has been
9011         completed.
9013 2005-10-29  James Livingston  <jrl@ids.org.au>
9015         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9017         * data/glade/song-info.glade:
9018         * widgets/rb-song-info.c: (rb_song_info_construct_single),
9019         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
9020         (rb_song_info_sync_entry_single): show the disc number in the song
9021         info window. From bug 311199.
9023 2005-10-29  James Livingston  <jrl@ids.org.au>
9025         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
9026         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
9027         regularly. Closes 155306.
9029 2005-10-29  James Livingston  <jrl@ids.org.au>
9031         * podcast/rb-podcast-manager.c:
9032         (rb_podcast_manager_download_entry),
9033         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
9034         (rb_podcast_manager_insert_feed):
9035         * podcast/rb-podcast-manager.h:
9036         * podcast/rb-podcast-parse.c: (rb_set_item_value),
9037         (rb_podcast_parser_start_element):
9038         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
9039         don't download them again. However, it can't resume
9040         partially-downloaded ones.
9042 2005-10-28  James Livingston  <jrl@ids.org.au>
9044         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
9045         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
9046         work. Don't attempt to write duration as a tag.
9048         Thanks to Artem Baguinski <femistofel@gmail.com>
9050 2005-10-28  James Livingston  <jrl@ids.org.au>
9052         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9053         don't disable the status-bar menu item when the current source doesn't
9054         use the search box.
9056 2005-10-28  James Livingston  <jrl@ids.org.au>
9058         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
9059         crash if the file has unknown length
9061 2005-10-27  James Livingston  <jrl@ids.org.au>
9063         * daapsharing/rb-daap-connection.c:
9064         (rb_daap_connection_state_done): don't assert when a daap server
9065         doesn't have any playlists
9067 2005-10-27  James Livingston  <jrl@ids.org.au>
9069         * sources/rb-sourcelist-model.c:
9070         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
9071         source for the sourcelist. Closes bug 319817.
9073 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
9075         Patch by: Renato Araujo <renatox@gmail.com>
9077         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
9078           Fix for a crasher caused by previous patch.
9080 2005-10-26  James Livingston  <jrl@ids.org.au>
9082         * data/glade/podcast-prefs.glade:
9083         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
9084         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
9085         * sources/rb-podcast-source.c: (rb_podcast_source_new):
9086         * podcast/rb-podcast-manager.c:
9087         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
9088         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
9089         * shell/rb-shell.c: Change some strings to make them more consistent.
9090         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
9091         makes it clearer which is which. "Episode" may not be the best term,
9092         but it seems to be widely used.
9093         
9094         Also fix some strings that weren't marked as translatable.
9095         
9096         * podcast/rb-feed-podcast-properties-dialog.c:
9097         (rb_feed_podcast_properties_dialog_class_init),
9098         (rb_feed_podcast_properties_dialog_finalize):
9099         * podcast/rb-new-podcast-dialog.c:
9100         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
9101         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
9102         (rb_simple_view_finalize), (rb_simple_view_constructor):
9103         * podcast/rb-podcast-properties-dialog.c:
9104         (rb_podcast_properties_dialog_class_init),
9105         (rb_podcast_properties_dialog_finalize):
9106         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
9107         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
9108         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9109         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
9110         use G_DEFINE_TYPE, instead of doing it manually.
9112 2005-10-26  James Livingston  <jrl@ids.org.au>
9114         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
9115         <jrl@ids.org.au>
9117         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
9118         (rb_metadata_init): Check that the necessary plugins are present to do
9119         id3 editing.
9120         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
9121         corrupted before replacing the original.
9123 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
9125         reviewed by: James Livingston <jrl@ids.org.au>
9127         Assign sequential IDs to playlists for DAAP rather than using the
9128         address of the playlist object.  Less flaky, and should work on 64bit
9129         platforms. Closes bug 319304.
9131         * daapsharing/rb-daap-share.c: 
9132         (rb_daap_share_set_property): watch for playlist creation
9133         (_find_by_id), (_find_by_source): playlist list search functions
9134         (rb_daap_share_playlist_created),
9135         (rb_daap_share_process_playlist),
9136         (rb_daap_share_playlist_destroyed):
9137          update playlist list as it changes, use weak refs on 
9138          playlists to get notified on destroy.
9139         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
9140          destroy playlist list on shutdown
9141         (add_playlist_to_mlcl): use playlist ID rather than pointer in
9142          DAAP response
9143         (databases_cb): search for playlist ID in list rather than just
9144          converting it to a pointer; return HTTP 404 if playlist not 
9145          found.
9146         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
9147          is already used for the main library
9149 2005-10-26  James Livingston  <jrl@ids.org.au>
9151         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9153         * daapsharing/rb-daap-connection.c: (build_message),
9154         (http_response_handler), (http_get), (handle_server_info),
9155         (handle_login), (handle_update), (handle_database_info),
9156         (handle_song_listing), (handle_playlists),
9157         (handle_playlist_entries), (handle_logout),
9158         (rb_daap_connection_new), (rb_daap_connection_logout),
9159         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
9160         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
9161         * daapsharing/rb-daap-connection.h:
9162         * sources/rb-daap-source.c: (rb_daap_source_activate),
9163         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
9164         (rb_daap_source_disconnect): Make connecting to DAAP sources
9165         asynchronous, so that non-responsive servers don't hang the UI. Closes
9166         316225.
9168 2005-10-26  James Livingston  <jrl@ids.org.au>
9170         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9172         * rhythmdb/rhythmdb-query-model.c:
9173         (rhythmdb_query_model_do_reorder): generate the row re-order map
9174         correctly.
9175         
9176         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
9177         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
9178         Update selection when rows get re-ordered. Closes 319718.
9180 2005-10-26  James Livingston  <jrl@ids.org.au>
9182         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
9184         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
9185         actually set the db pointer in play orders. Closes 319818.
9187 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
9189         Patch by: Renato Araujo <renatox@gmail.com>
9191         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
9192         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
9193         (rb_podcast_manager_update_synctime),
9194         (rb_podcast_manager_config_changed),
9195         (rb_podcast_manager_insert_feed):
9196         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9197         (save_entry):
9198         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
9199         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
9200         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
9202 2005-10-25  James Livingston  <jrl@ids.org.au>
9204         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
9205         (db_entry_deleted_cb): don't share tracks that are hidden because the
9206         file is missing.
9208 2005-10-22  James Livingston  <jrl@ids.org.au>
9210         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
9211         crash if an entry couldn't be playerd, without streamer setting an
9212         error.
9214         
9215         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
9217         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
9218         (rb_new_podcast_dialog_text_changed): enable the add button when a url
9219         is pasted into the dialog.
9220         
9221         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
9222         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
9223         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
9224         (rb_podcast_parse_channel_free):
9225         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
9226         feeds
9228 2005-10-22  James Livingston  <jrl@ids.org.au>
9230         * sources/rb-iradio-source.c:
9231         (rb_iradio_source_first_time_changed): Make merging the default
9232         stations actually work.
9233         
9234         * sources/rb-podcast-source.c:
9235         (rb_podcast_source_post_status_cell_data_func): fix problem where some
9236         people weren't seing the percentages in the stats column.
9238 2005-10-21  James Livingston  <jrl@ids.org.au>
9240         Patch from Caio Marcelo <cmarcelo@gmail.com>
9242         * shell/rb-shell.c: (rb_shell_window_state_cb),
9243         (rb_shell_get_visibility), (idle_hide_mainwindow),
9244         (rb_shell_set_visibility): Make the "show window" item in the tray
9245         icon menu show the toggle state correctly. Use a better policy on
9246         deciding whether the window is "visible" or not. Closes bug 308053.
9248 2005-10-21  James Livingston  <jrl@ids.org.au>
9250         * doc/reference/tmpl/rb-shell-preferences.sgml:
9251         * shell/Makefile.am: fix building with gtk-doc
9253         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9254         don't submit podcasts to audioscrobbler
9255         
9256         
9257         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
9258         
9259         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
9260         (rb_set_item_value): strip spaces surrounding podcast urls
9261         
9263         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
9264         
9265         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
9267 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
9269         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
9270          Audioscrobbler/Last.fm support
9272         * configure.ac:
9273         * data/glade/Makefile.am:
9274         * data/glade/audioscrobbler-prefs.glade:
9275         * data/rhythmbox.schemas:
9276         * lib/Makefile.am:
9277         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
9278         * lib/md5.h:
9279         * lib/rb-preferences.h:
9280         * po/POTFILES.in:
9281         * shell/Makefile.am:
9282         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
9283         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
9284         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
9285         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
9286         (rb_audioscrobbler_timeout_cb), (mkmd5),
9287         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
9288         (rb_audioscrobbler_do_handshake),
9289         (rb_audioscrobbler_do_handshake_cb),
9290         (rb_audioscrobbler_submit_queue),
9291         (rb_audioscrobbler_submit_queue_cb),
9292         (rb_audioscrobbler_import_settings),
9293         (rb_audioscrobbler_preferences_sync),
9294         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
9295         (rb_audioscrobbler_gconf_changed_cb),
9296         (rb_audioscrobbler_song_changed_cb),
9297         (rb_audioscrobbler_username_entry_changed_cb),
9298         (rb_audioscrobbler_username_entry_activate_cb),
9299         (rb_audioscrobbler_password_entry_changed_cb),
9300         (rb_audioscrobbler_password_entry_activate_cb),
9301         (rb_audioscrobbler_enabled_check_changed_cb),
9302         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
9303         (rb_audioscrobbler_load_entry_from_string),
9304         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
9305         (rb_audioscrobbler_print_queue),
9306         (rb_audioscrobbler_free_queue_entries):
9307         * shell/rb-audioscrobbler.h:
9308         * shell/rb-shell-preferences.c:
9309         (rb_shell_preferences_append_audioscrobbler_config):
9310         * shell/rb-shell-preferences.h:
9311         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9312         (rb_shell_select_source), (rb_shell_cmd_preferences):
9313         * sources/Makefile.am:
9315 2005-10-21  James Livingston  <jrl@ids.org.au>
9317         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
9319         * Makefile.am:
9320         * NEWS:
9321         * configure.ac:
9322         * data/art/Makefile.am:
9323         * data/glade/Makefile.am:
9324         * data/rhythmbox.schemas:
9325         * data/ui/rhythmbox-ui.xml:
9326         * doc/reference/Makefile.am:
9327         * doc/reference/tmpl/rhythmdb.sgml:
9328         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9329         * lib/rb-stock-icons.h:
9330         * po/POTFILES.in:
9331         * podcast/Makefile.am:
9332         + podcast/rb-feed-podcast-properties-dialog.c:
9333         + podcast/rb-feed-podcast-properties-dialog.h:
9334         + podcast/rb-new-podcast-dialog.c:
9335         + podcast/rb-new-podcast-dialog.h:
9336         + podcast/rb-podcast-manager.c:
9337         + podcast/rb-podcast-manager.h:
9338         + podcast/rb-podcast-marshal.list:
9339         + podcast/rb-podcast-parse.c:
9340         + podcast/rb-podcast-parse.h:
9341         + podcast/rb-podcast-properties-dialog.c:
9342         + podcast/rb-podcast-properties-dialog.h:
9343         * rhythmdb/rhythmdb-property-model.c:
9344         (rhythmdb_property_model_set_property),
9345         (rhythmdb_property_model_enable_drag):
9346         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9347         (rhythmdb_tree_parser_end_element), (save_entry),
9348         (rhythmdb_tree_save):
9349         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
9350         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
9351         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
9352         (rhythmdb_entry_podcast_feed_get_type):
9353         * rhythmdb/rhythmdb.h:
9354         * shell/Makefile.am:
9355         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
9356         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9357         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
9358         (rb_shell_quit):
9359         * sources/Makefile.am:
9360         + sources/rb-podcast-source.c:
9361         + sources/rb-podcast-source.h:
9362         * widgets/Makefile.am:
9363         * widgets/rb-property-view.c: (rb_property_view_class_init),
9364         (rb_property_view_constructor),
9365         (rb_property_view_selection_changed_cb),
9366         (rb_property_view_get_treeview):
9367         * widgets/rb-property-view.h:
9368         + widgets/rb-simple-view.c:
9369         + widgets/rb-simple-view.h:
9371 2005-10-20  James Livingston  <jrl@ids.org.au>
9373         * NEWS: update with changes since 0.9.1
9375         * configure.ac: check whether collate_key_for_filename is available
9376         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
9377         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
9378         it if it isn't available in glib (i.e. building against 2.6)
9379         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
9380         collation to get "natural sorting". Closes bug 158599.
9382 2005-10-20  James Livingston  <jrl@ids.org.au>
9384         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
9386         * doc/reference/tmpl/rb-shell-player.sgml:
9387         * shell/rb-shell-player.c: (rb_shell_player_class_init),
9388         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
9389         (rb_shell_player_get_playing),
9390         (rb_shell_player_get_playing_time_string),
9391         (rb_shell_player_get_playing_time),
9392         (rb_shell_player_set_playing_time), (tick_cb),
9393         (rb_shell_player_get_playing_path), (filter_mmkeys):
9394         * shell/rb-shell-player.h:
9395         * shell/rb-shell-player.xml:
9396         * shell/rb-shell.c: (rb_shell_constructor),
9397         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
9398         (rb_shell_set_window_title), (rb_shell_playing_impl),
9399         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
9400         Merge the duration_changed and elapsed_changed DBUS signals into one
9401         elapsed_changed signal. Check that the output argument isn't NULL
9402         before trying to put things in it.
9404 2005-10-20  James Livingston  <jrl@ids.org.au>
9406         * rhythmdb/rhythmdb-query-model.c:
9407         (rhythmdb_query_model_entry_added_cb),
9408         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
9409         problem where hidden entries could be shown in playlists.
9410         
9411         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
9412         issues when switching in and out of small mode.
9414 2005-10-19  James Livingston  <jrl@ids.org.au>
9416         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
9417         (rb_shell_constructor), (rb_shell_window_state_cb),
9418         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
9419         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
9420         (rb_shell_view_smalldisplay_changed_cb),
9421         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
9422         (rb_shell_sync_paned): remove gconf window-state races, prevent
9423         changing small mode too often, fix window event races. Closes 122806.
9425         
9426         Patch from Caio Marcelo <cmarcelo@gmail.com>
9428         * data/rhythmbox.schemas:
9429         * shell/rb-shell.c: (rb_shell_window_state_cb),
9430         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
9431         Remember the position of the window. Closes 315289.
9433 2005-10-19  James Livingston  <jrl@ids.org.au>
9435         Patch from Christophe Fergeau  <teuf@gnome.org>
9437         * configure.ac: determine whether libgpod is present when neither
9438         --with-ipod nor --without-ipod is passed
9440 2005-10-19  James Livingston  <jrl@ids.org.au>
9442         Patch from Caio Marcelo <cmarcelo@gmail.com>
9444         * shell/rb-shell-player.c: (do_next_idle),
9445         (rb_shell_player_do_previous), (rb_shell_player_do_next),
9446         (rb_shell_player_do_previous_or_seek),
9447         (rb_shell_player_previous_button_cb),
9448         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
9449         (rb_shell_player_cmd_next), (eos_cb):
9450         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
9451         end of the playlist is reached.
9453 2005-10-19  Christopher Aillon  <caillon@redhat.com>
9455         * lib/rb-thread.c: fix a few GSource leaks
9457 2005-10-19  James Livingston  <jrl@ids.org.au>
9459         * doc/reference/tmpl/bacon-volume.sgml:
9460         * doc/reference/tmpl/disclosure-widget.sgml:
9461         * doc/reference/tmpl/eel-gconf-extensions.sgml:
9462         * doc/reference/tmpl/eggnotificationbubble.sgml:
9463         * doc/reference/tmpl/eggtrayicon.sgml:
9464         * doc/reference/tmpl/gsequence.sgml:
9465         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
9466         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
9467         * doc/reference/tmpl/rb-daap-connection.sgml:
9468         * doc/reference/tmpl/rb-daap-dialog.sgml:
9469         * doc/reference/tmpl/rb-daap-mdns.sgml:
9470         * doc/reference/tmpl/rb-daap-share.sgml:
9471         * doc/reference/tmpl/rb-daap-sharing.sgml:
9472         * doc/reference/tmpl/rb-daap-source.sgml:
9473         * doc/reference/tmpl/rb-daap-src.sgml:
9474         * doc/reference/tmpl/rb-daap-structure.sgml:
9475         * doc/reference/tmpl/rb-debug.sgml:
9476         * doc/reference/tmpl/rb-dialog.sgml:
9477         * doc/reference/tmpl/rb-druid.sgml:
9478         * doc/reference/tmpl/rb-entry-view.sgml:
9479         * doc/reference/tmpl/rb-enums.sgml:
9480         * doc/reference/tmpl/rb-file-helpers.sgml:
9481         * doc/reference/tmpl/rb-glade-helpers.sgml:
9482         * doc/reference/tmpl/rb-header.sgml:
9483         * doc/reference/tmpl/rb-history.sgml:
9484         * doc/reference/tmpl/rb-ipod-source.sgml:
9485         * doc/reference/tmpl/rb-iradio-source.sgml:
9486         * doc/reference/tmpl/rb-library-source.sgml:
9487         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
9488         * doc/reference/tmpl/rb-metadata.sgml:
9489         * doc/reference/tmpl/rb-new-station-dialog.sgml:
9490         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
9491         * doc/reference/tmpl/rb-play-order-linear.sgml:
9492         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
9493         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
9494         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
9495         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
9496         * doc/reference/tmpl/rb-play-order-random.sgml:
9497         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
9498         * doc/reference/tmpl/rb-play-order.sgml:
9499         * doc/reference/tmpl/rb-player.sgml:
9500         * doc/reference/tmpl/rb-playlist-manager.sgml:
9501         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
9502         * doc/reference/tmpl/rb-playlist-source.sgml:
9503         * doc/reference/tmpl/rb-preferences.sgml:
9504         * doc/reference/tmpl/rb-property-view.sgml:
9505         * doc/reference/tmpl/rb-query-creator-private.sgml:
9506         * doc/reference/tmpl/rb-query-creator.sgml:
9507         * doc/reference/tmpl/rb-rating-helper.sgml:
9508         * doc/reference/tmpl/rb-rating.sgml:
9509         * doc/reference/tmpl/rb-recorder.sgml:
9510         * doc/reference/tmpl/rb-refstring.sgml:
9511         * doc/reference/tmpl/rb-removable-media-manager.sgml:
9512         * doc/reference/tmpl/rb-removable-media-source.sgml:
9513         * doc/reference/tmpl/rb-search-entry.sgml:
9514         * doc/reference/tmpl/rb-shell-clipboard.sgml:
9515         * doc/reference/tmpl/rb-shell-glue.sgml:
9516         * doc/reference/tmpl/rb-shell-player-glue.sgml:
9517         * doc/reference/tmpl/rb-shell-player.sgml:
9518         * doc/reference/tmpl/rb-shell-preferences.sgml:
9519         * doc/reference/tmpl/rb-shell.sgml:
9520         * doc/reference/tmpl/rb-song-display-box.sgml:
9521         * doc/reference/tmpl/rb-song-info.sgml:
9522         * doc/reference/tmpl/rb-source-header.sgml:
9523         * doc/reference/tmpl/rb-source.sgml:
9524         * doc/reference/tmpl/rb-sourcelist-model.sgml:
9525         * doc/reference/tmpl/rb-sourcelist.sgml:
9526         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
9527         * doc/reference/tmpl/rb-statusbar.sgml:
9528         * doc/reference/tmpl/rb-stock-icons.sgml:
9529         * doc/reference/tmpl/rb-string-helpers.sgml:
9530         * doc/reference/tmpl/rb-thread.sgml:
9531         * doc/reference/tmpl/rb-tray-icon.sgml:
9532         * doc/reference/tmpl/rb-tree-dnd.sgml:
9533         * doc/reference/tmpl/rb-tree-model-sort.sgml:
9534         * doc/reference/tmpl/rb-util.sgml:
9535         * doc/reference/tmpl/rhythmbox-unused.sgml:
9536         * doc/reference/tmpl/rhythmdb-property-model.sgml:
9537         * doc/reference/tmpl/rhythmdb-query-model.sgml:
9538         * doc/reference/tmpl/rhythmdb-tree.sgml:
9539         * doc/reference/tmpl/rhythmdb.sgml: update for changes
9540         
9541         * doc/reference/Makefile.am: make docs build with changed ipod support
9542         
9543         * po/POTFILES.in: remove sources/itunesdb
9545 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
9547         * sources/itunesdb.c:
9548         * sources/itunesdb.h: removed now useless files
9550 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
9552         * configure.ac:
9553         * shell/Makefile.am:
9554         * sources/Makefile.am:
9555         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
9556         code
9557         [1]: http://www.gtkpod.org/libgpod.html
9560 2005-10-18  James Livingston  <jrl@ids.org.au>
9562         patch from Funda Wang <fundawang@linux.net.cn>
9564         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
9565         the notification bubble string translatable.
9567 ============ Version 0.9.1
9569 2005-10-16  James Livingston  <jrl@ids.org.au>
9571         * configure.ac: bump version to 0.9.1
9572         * NEWS: update translation credits
9574 2005-10-16  James Livingston  <jrl@ids.org.au>
9576         * rhythmdb/rhythmdb-query-model.c:
9577         (rhythmdb_query_model_class_init),
9578         (rhythmdb_query_model_drag_data_received): 
9579         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
9580         notified when things are dropped into the entry view.
9581         
9582         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
9583         (rb_playlist_source_add_location_swapped),
9584         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
9585         (rb_playlist_source_non_entry_dropped),
9586         (rb_playlist_source_row_inserted): Use the new signal so that dropping
9587         things onto a playlist's entry view work correctly, and doesn't cause
9588         crashes. Allow folders to be dropped as well. (Closes 318308)
9590 2005-10-16  James Livingston  <jrl@ids.org.au>
9592         * NEWS: Update some more
9594         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9595         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
9596         with the paned size, so that it doesn't move when the window is
9597         maximised/restored. Closes bug 315852.
9599         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
9600         display the playcount column, as it's useless (it never get changed).
9602 2005-10-14  James Livingston  <jrl@ids.org.au>
9604         * Makefile.am:
9605         * data/Makefile.am:
9606         * doc/reference/Makefile.am: get "make distcheck" to pass again
9608 2005-10-11  James Livingston  <jrl@ids.org.au>
9610         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
9611         destroy the connection when retrieving the playlists fails, because
9612         tracks have already been added. Closes 318380.
9614 2005-10-11  James Livingston  <jrl@ids.org.au>
9616         * sources/rb-sourcelist.c: (rb_sourcelist_append),
9617         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
9618         (source_name_edited_cb): Ask for the columns to be resized when a
9619         source is added, deleted or changes name.
9621 2005-10-11  James Livingston  <jrl@ids.org.au>
9623         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
9624         create a thread when processing a directory. This stops up created one
9625         thread for each file in a playlist we're trying to load. Closes
9626         317850.
9628         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
9629         typo that made sort-by-artist not work correctly.
9631 2005-10-11  James Livingston  <jrl@ids.org.au>
9633         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
9634         support is enabled
9636 2005-10-11  James Livingston  <jrl@ids.org.au>
9638         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
9639         * lib/rb-file-helpers.h: add a function to turn uris into our
9640         canonical path-escaped form
9641         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
9642         above function when import playlists. This will fix the problem of
9643         duplicate entries due to different representations of the uri (bug
9644         158211).
9646 2005-10-11  James Livingston  <jrl@ids.org.au>
9648         * shell/rb-shell.c: (rb_shell_get_visibility),
9649         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
9650         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
9651         window hiding so that Alt-F4 works again.
9653         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
9654         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
9655         (rb_entry_view_string_sort_func): Stop some crashes where a string
9656         property was set to NULL.
9658 2005-10-10  James Livingston  <jrl@ids.org.au>
9660         * doc/reference/rhythmbox.types: fix gtk-doc generation
9662 2005-10-09  James Livingston  <jrl@ids.org.au>
9664         * sources/rb-sourcelist.c: (rb_sourcelist_init):
9665         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
9666         accelerators, so that we don't have as many conflicting keys.
9668 2005-10-08  James Livingston  <jrl@ids.org.au>
9670         * data/iradio-initial.pls: Update the list of radio stations. Thanks
9671         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
9672         bug 129285.
9674 2005-10-07  James Livingston  <jrl@ids.org.au>
9676         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
9677         local path names in the same way as every other URI. This should stop
9678         duplicates occurring due to different escapings. Closes bug 158211.
9680 2005-10-06  James Livingston  <jrl@ids.org.au>
9682         * NEWS: more updates
9683         
9684         patch from Jaap Haitsma <jaap@haitsma.org>:
9686         * configure.ac:
9687         * data/Makefile.am:
9688         * data/art/Makefile.am:
9689         - data/art/rhythmbox-paused.png:
9690         - data/art/rhythmbox-playback-error.png:
9691         - data/art/rhythmbox-playing.png:
9692         - data/art-clearlooks/:
9693         * lib/rb-file-helpers.c: (rb_file):
9694         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9695         * lib/rb-stock-icons.h:
9696         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
9697         * widgets/rb-cell-renderer-pixbuf.c:
9698         (rb_cell_renderer_pixbuf_render):
9699         * widgets/rb-entry-view.c: (rb_entry_view_init),
9700         (rb_entry_view_set_playing):
9701         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
9702         stock icons instead of custom art. Drop remanents of art-clearlooks.
9704 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
9706         * configure.ac: Added ne in ALL_LINGUAS
9708 2005-10-02  James Livingston  <jrl@ids.org.au>
9710         * data/glade/Makefile.am: actually install the daap prefs glade file
9712 2005-09-30  James Livingston  <jrl@ids.org.au>
9714         * po/POTFILES.in: mremove rb-string-helper.c from the list of
9715         translatable files, so that make check works and we don't annoy the
9716         translators.
9717         
9718         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
9719         sanity checking, in case a db entry is missing some properties.
9721 2005-09-29  James Livingston  <jrl@ids.org.au>
9723         - lib/rb-string-helpers.c:
9724         - lib/rb-string-helpers.h:
9725         * lib/Makefile.am:
9726         * rhythmdb/rhythmdb-tree.c:
9727         * rhythmdb/rhythmdb.c:
9728         * shell/main.c: (main):
9729         * shell/rb-shell.c:
9730         * widgets/rb-entry-view.c:
9731         * widgets/rb-property-view.c: remove rb-string-helpers, as they
9732         utility functions haven't been used in a while.
9734 2005-09-27  James Livingston  <jrl@ids.org.au>
9736         * data/art-clearlooks/Makefile.am:
9737         - data/art-clearlooks/rhythmbox-album.png:
9738         - data/art-clearlooks/rhythmbox-audiocd.png:
9739         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
9740         - data/art-clearlooks/rhythmbox-dnd.png:
9741         - data/art-clearlooks/rhythmbox-ipod.png:
9742         - data/art-clearlooks/rhythmbox-iradio.png:
9743         - data/art-clearlooks/rhythmbox-library.png:
9744         - data/art-clearlooks/rhythmbox-next.png:
9745         - data/art-clearlooks/rhythmbox-pause.png:
9746         - data/art-clearlooks/rhythmbox-play.png:
9747         - data/art-clearlooks/rhythmbox-playlist-menu.png:
9748         - data/art-clearlooks/rhythmbox-playlist.png:
9749         - data/art-clearlooks/rhythmbox-previous.png:
9750         - data/art-clearlooks/rhythmbox-repeat.png:
9751         - data/art-clearlooks/rhythmbox-rewind.png:
9752         - data/art-clearlooks/rhythmbox-shuffle.png:
9753         - data/art-clearlooks/rhythmbox-stop.png:
9754         - data/art-clearlooks/rhythmbox-visuals.png:
9755         - data/art-clearlooks/rhythmbox-volume-max.png:
9756         - data/art-clearlooks/rhythmbox-volume-medium.png:
9757         - data/art-clearlooks/rhythmbox-volume-min.png:
9758         - data/art-clearlooks/rhythmbox-volume-mute.png:
9759         - data/art-clearlooks/rhythmbox-volume-zero.png:
9760         * data/art/Makefile.am:
9761         - data/art/rhythmbox-album.png:
9762         - data/art/rhythmbox-audiocd.png:
9763         - data/art/rhythmbox-automatic-playlist.png:
9764         - data/art/rhythmbox-dnd.png:
9765         - data/art/rhythmbox-ipod.png:
9766         - data/art/rhythmbox-iradio.png:
9767         - data/art/rhythmbox-library.png:
9768         - data/art/rhythmbox-next.png:
9769         - data/art/rhythmbox-pause.png:
9770         - data/art/rhythmbox-play.png:
9771         - data/art/rhythmbox-playlist-menu.png:
9772         - data/art/rhythmbox-playlist.png:
9773         - data/art/rhythmbox-previous.png:
9774         - data/art/rhythmbox-repeat.png:
9775         - data/art/rhythmbox-rewind.png:
9776         - data/art/rhythmbox-shuffle.png:
9777         - data/art/rhythmbox-stop.png:
9778         - data/art/rhythmbox-visuals.png:
9779         - data/art/rhythmbox-volume-max.png:
9780         - data/art/rhythmbox-volume-medium.png:
9781         - data/art/rhythmbox-volume-min.png:
9782         - data/art/rhythmbox-volume-mute.png:
9783         - data/art/rhythmbox-volume-zero.png:
9784         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9785         * lib/rb-stock-icons.h:
9786         * shell/rb-playlist-manager.c:
9787         * shell/rb-shell-player.c:
9788         * sources/rb-daap-source.c: (rb_daap_get_icon):
9789         * sources/rb-ipod-source.c:
9790         * sources/rb-iradio-source.c: (rb_iradio_source_init):
9791         * sources/rb-library-source.c: (rb_library_source_new):
9792         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9793         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
9794         that hasn't been used in a LONG time, and also remove art that are
9795         now stock icons.
9797 2005-09-27  James Livingston  <jrl@ids.org.au>
9799         * README: point to the gnome.org web sites, and update the example
9800         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
9801         
9802         * rhythmdb/rhythmdb-query-model.c:
9803         (rhythmdb_query_model_set_property),
9804         (rhythmdb_query_model_get_property),
9805         (rhythmdb_query_model_finalize):
9806         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
9807         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
9808         * rhythmdb/rhythmdb.h:
9809         * sources/rb-iradio-source.c: (impl_search):
9810         * sources/rb-library-source.c: (impl_search): Add query
9811         "preprocessing", which performs operations such as casefolding any
9812         strings that will be compared to any of the *_FOLDED properties.
9813         Closes bug 316039
9815 2005-09-27  James Livingston  <jrl@ids.org.au>
9817         * data/glade/daap-prefs.glade:
9818         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
9819         file for the daap preferences pane
9820         
9821         * sources/rb-sourcelist.c: (rb_sourcelist_init),
9822         (rb_sourcelist_append), (rb_sourcelist_remove),
9823         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
9824         don't display the column for source expanders unless there is an
9825         expandable source.
9827 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
9829         * .cvsignore:
9830         * Makefile.am:
9831         * configure.ac:
9832         * doc/.cvsignore:
9833         * doc/Makefile.am:
9834         * doc/reference/.cvsignore:
9835         * doc/reference/Makefile.am:
9836         * doc/reference/rhythmbox-docs.sgml:
9837         * doc/reference/rhythmbox-sections.txt:
9838         * doc/reference/rhythmbox.types:
9839         * doc/reference/tmpl/bacon-volume.sgml:
9840         * doc/reference/tmpl/disclosure-widget.sgml:
9841         * doc/reference/tmpl/eel-gconf-extensions.sgml:
9842         * doc/reference/tmpl/eggnotificationbubble.sgml:
9843         * doc/reference/tmpl/eggtrayicon.sgml:
9844         * doc/reference/tmpl/gsequence.sgml:
9845         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
9846         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
9847         * doc/reference/tmpl/rb-daap-connection.sgml:
9848         * doc/reference/tmpl/rb-daap-dialog.sgml:
9849         * doc/reference/tmpl/rb-daap-mdns.sgml:
9850         * doc/reference/tmpl/rb-daap-share.sgml:
9851         * doc/reference/tmpl/rb-daap-sharing.sgml:
9852         * doc/reference/tmpl/rb-daap-source.sgml:
9853         * doc/reference/tmpl/rb-daap-src.sgml:
9854         * doc/reference/tmpl/rb-daap-structure.sgml:
9855         * doc/reference/tmpl/rb-debug.sgml:
9856         * doc/reference/tmpl/rb-dialog.sgml:
9857         * doc/reference/tmpl/rb-druid.sgml:
9858         * doc/reference/tmpl/rb-entry-view.sgml:
9859         * doc/reference/tmpl/rb-enums.sgml:
9860         * doc/reference/tmpl/rb-file-helpers.sgml:
9861         * doc/reference/tmpl/rb-glade-helpers.sgml:
9862         * doc/reference/tmpl/rb-header.sgml:
9863         * doc/reference/tmpl/rb-history.sgml:
9864         * doc/reference/tmpl/rb-ipod-source.sgml:
9865         * doc/reference/tmpl/rb-iradio-source.sgml:
9866         * doc/reference/tmpl/rb-library-source.sgml:
9867         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
9868         * doc/reference/tmpl/rb-metadata.sgml:
9869         * doc/reference/tmpl/rb-new-station-dialog.sgml:
9870         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
9871         * doc/reference/tmpl/rb-play-order-linear.sgml:
9872         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
9873         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
9874         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
9875         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
9876         * doc/reference/tmpl/rb-play-order-random.sgml:
9877         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
9878         * doc/reference/tmpl/rb-play-order.sgml:
9879         * doc/reference/tmpl/rb-player.sgml:
9880         * doc/reference/tmpl/rb-playlist-manager.sgml:
9881         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
9882         * doc/reference/tmpl/rb-playlist-source.sgml:
9883         * doc/reference/tmpl/rb-preferences.sgml:
9884         * doc/reference/tmpl/rb-property-view.sgml:
9885         * doc/reference/tmpl/rb-query-creator-private.sgml:
9886         * doc/reference/tmpl/rb-query-creator.sgml:
9887         * doc/reference/tmpl/rb-rating-helper.sgml:
9888         * doc/reference/tmpl/rb-rating.sgml:
9889         * doc/reference/tmpl/rb-recorder.sgml:
9890         * doc/reference/tmpl/rb-refstring.sgml:
9891         * doc/reference/tmpl/rb-removable-media-manager.sgml:
9892         * doc/reference/tmpl/rb-removable-media-source.sgml:
9893         * doc/reference/tmpl/rb-search-entry.sgml:
9894         * doc/reference/tmpl/rb-shell-clipboard.sgml:
9895         * doc/reference/tmpl/rb-shell-glue.sgml:
9896         * doc/reference/tmpl/rb-shell-player-glue.sgml:
9897         * doc/reference/tmpl/rb-shell-player.sgml:
9898         * doc/reference/tmpl/rb-shell-preferences.sgml:
9899         * doc/reference/tmpl/rb-shell.sgml:
9900         * doc/reference/tmpl/rb-song-display-box.sgml:
9901         * doc/reference/tmpl/rb-song-info.sgml:
9902         * doc/reference/tmpl/rb-source-header.sgml:
9903         * doc/reference/tmpl/rb-source.sgml:
9904         * doc/reference/tmpl/rb-sourcelist-model.sgml:
9905         * doc/reference/tmpl/rb-sourcelist.sgml:
9906         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
9907         * doc/reference/tmpl/rb-statusbar.sgml:
9908         * doc/reference/tmpl/rb-stock-icons.sgml:
9909         * doc/reference/tmpl/rb-string-helpers.sgml:
9910         * doc/reference/tmpl/rb-thread.sgml:
9911         * doc/reference/tmpl/rb-tray-icon.sgml:
9912         * doc/reference/tmpl/rb-tree-dnd.sgml:
9913         * doc/reference/tmpl/rb-tree-model-sort.sgml:
9914         * doc/reference/tmpl/rb-util.sgml:
9915         * doc/reference/tmpl/rhythmdb-property-model.sgml:
9916         * doc/reference/tmpl/rhythmdb-query-model.sgml:
9917         * doc/reference/tmpl/rhythmdb-tree.sgml:
9918         * doc/reference/tmpl/rhythmdb.sgml:
9919         * macros/.cvsignore:
9920         * shell/Makefile.am:
9921         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
9922         (rb_source_finalize), (rb_source_set_property),
9923         (rb_source_get_property), (default_get_pixbuf),
9924         (_rb_source_show_popup):
9925         * sources/rb-source.h:
9926         Add support for gtk-doc in rhythmbox.
9927         Convert RBSource to use newer glib functions, such as add_private.
9928         Gives RBSource a default get_pixbuf implementation.
9930 2005-09-25  James Livingston  <jrl@ids.org.au>
9932         * NEWS: Update with about a months worth of changes
9934         * data/glade/song-info-multiple.glade:
9935         * data/glade/song-info.glade:
9936         * data/rhythmbox.schemas:
9937         * lib/rb-preferences.h:
9938         * rhythmdb/rhythmdb.h:
9939         * shell/rb-shell-player.c:
9940         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
9941         few remaining parts of autorating.
9943 2005-09-24  James Livingston  <jrl@ids.org.au>
9945         * shell/rb-shell.c: (rb_shell_constructor),
9946         (rb_shell_window_state_cb), (rb_shell_set_visibility),
9947         (rb_shell_window_configure_cb): store window state in the gconf keys,
9948         so that it gets used. Closes bugs 313893 and 137068.
9950 2005-09-20  James Livingston  <jrl@ids.org.au>
9952         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
9953         crash if the entry has a NULL string in a property
9954         
9955         * shell/rb-removable-media-manager.c:
9956         (rb_removable_media_manager_load_media): fix some memory leaks
9957         
9958         (rb_removable_media_manager_mount_volume),
9959         (rb_removable_media_manager_eject_medium_cb),
9960         (rb_removable_media_manager_cmd_eject_medium): use
9961         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
9962         
9963         * sources/rb-removable-media-source.c:
9964         (rb_removable_media_source_set_property),
9965         (rb_removable_media_source_get_property): use
9966         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
9968 2005-09-18  James Livingston  <jrl@ids.org.au>
9970         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
9971         column
9973         * data/glade/general-prefs.glade:
9974         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
9975         (rb_shell_preferences_column_check_changed_cb),
9976         (rb_shell_preferences_sync): add checkbox to control visibility
9977         of the column
9978         
9979         
9980         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9981         (save_entry):
9982         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
9983         (rhythmdb_prop_get_type):
9984         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
9985         was as "last played" is handled
9986         
9987         * sources/rb-library-source.c: (rb_library_source_constructor):
9988         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9989         Make the column show in the library and playlists
9990         
9991         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
9992         * widgets/rb-entry-view.h: add the column
9993         
9994         * widgets/rb-query-creator-properties.c: allow automatic playlists to
9995         be sorted by the column
9997 2005-09-16  James Livingston  <jrl@ids.org.au>
9999         * shell/rb-shell-player.c: (rb_shell_player_init),
10000         (rb_shell_player_do_previous_or_seek),
10001         (rb_shell_player_previous_button_cb),
10002         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
10003         (rb_shell_player_playpause_button_cb): Make the previous button act
10004         the same as the menu item. Fix an inversion of the "previous track or
10005         seek" logic.
10006         
10007         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10008         
10009         (rb_shell_player_playpause): make --play-pause stop source that can't
10010         be paused
10012 2005-09-15  James Livingston  <jrl@ids.org.au>
10014         * configure.ac: increase totem-plparser requirements to 1.1.5
10016         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
10017         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
10018         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
10019         use the newer playlist APIs to save the name of the playlist, and use
10020         the name of a loaded playlist.
10022         Closes bug 309817.
10024 2005-09-15  James Livingston  <jrl@ids.org.au>
10026         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10028         * shell/Makefile.am: stop some linker warnings
10030         * shell/main.c: (main): make --no-registration work with dbus
10032 2005-09-15  James Livingston  <jrl@ids.org.au>
10034         * daapsharing/rb-daap-sharing.c: (create_share):
10035         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
10036         reference sinking and counting issues that I caused.
10038 2005-09-15  James Livingston  <jrl@ids.org.au>
10040         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
10041         playing" icon in the "now playing" column header.
10043 2005-09-14  James Livingston  <jrl@ids.org.au>
10045         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
10046         daap shares, when sharing is turned off.
10048 2005-09-12  Bastien Nocera  <hadess@hadess.net>
10050         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
10051         the GConf value's default, especially for badly installed schema
10052         files
10054 2005-09-12  James Livingston  <jrl@ids.org.au>
10056         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
10058         Patch from Paolo Borelli <pborelli@katamail.com>
10060         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
10061         grip when maximised. Closes bug 316055.
10063 2005-09-11  James Livingston  <jrl@ids.org.au>
10065         Patch from William Jon McCann <mccann@jhu.edu>
10067         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
10068         subclass of GtkStatusbar instead of GtkHBox.
10069         (rb_statusbar_construct): Don't set border width.
10070         (rb_statusbar_init): Use resize grip.  Don't use
10071         markup.
10072         (set_statusbar_tooltip, unset_statusbar_tooltip) 
10073         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
10074         Connect tooltips for actions.
10075         (rb_statusbar_sync_status): Push new message to statusbar.
10076         (rb_statusbar_set_progress): Don't use markup.
10077         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
10078         flag here since it prevents actually showing or hiding.
10079         (rb_statusbar_sync_with_source): Push new message to statusbar.
10081 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
10083         * daapsharing/rb-daap-structure.c:
10084         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
10085         around debugging definition.
10087 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
10088         
10089         * daapsharing/rb-daap-structure.c:
10090         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
10091         type = version.
10093         * daapsharing/rb-daap-mdns.c/h:
10094         (resolve_cb): Updated mDNS resolve callback to send service-name &
10095         name (read from Machine Name in the TXT data or equal to service-name
10096         if not in TXT).
10098         * daapsharing/rb-daap-source.c:
10099         (rb_daap_source_class_init), (rb_daap_source_set_property), 
10100         (rb_daap_source_get_property), (rb_daap_source_new),
10101         (find_source_by_service_name), (resolve_cb), (browse_cb), 
10102         (stop_resolver), (start_browsing), (stop_browsing), 
10103         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
10104         and added 'host' and 'port' gobject properties.  Updated to use new
10105         mDNS resolve callback sending service-name & name arguments.
10107 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
10109         * daapsharing/rb-daap-mdns.c:
10110         (howl_strerror): New function to report errors from Howl
10111         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
10112         (get_sw_discovery), (get_avahi_client): Better error reporting from
10113         Howl & Avahi.
10115         * sources/rb-daap-source.:
10116         (start_browsing), (stop_browsing): Fixed a bug where browsing would
10117         not get started or stopped in some situations.
10118         
10119 2005-09-12  James Livingston  <jrl@ids.org.au>
10121         * shell/rb-removable-media-manager.c: add a missing include, that
10122         would stop compilation if ipod support wasn't turned on
10124 2005-09-11  James Livingston  <jrl@ids.org.au>
10126         * daapsharing/rb-daap-dialog.c: (encode_base64),
10127         (rb_daap_password_dialog_new_run),
10128         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
10129         it is no broken in to two pieces, and remove a use of a goto
10130         
10131         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
10132         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
10133         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
10134         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
10135         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
10136         memory leaks, and some code style things.
10137         
10138         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
10139         (rb_daap_share_init), (rb_daap_share_set_property),
10140         (rb_daap_share_dispose), (rb_daap_share_new),
10141         (rb_daap_share_get_property): make the DB and the playlist manager
10142         gobject properties.
10143         
10144         (message_add_standard_headers),
10145         (message_set_from_rb_daap_structure), (server_info_cb),
10146         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
10147         (server_cb), (add_db_entry), (db_entry_added_cb),
10148         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
10149         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
10150         style and use CONF_PREFIX in the gconf keys
10151         
10152         * daapsharing/rb-daap-sharing.c: (create_share),
10153         (enable_sharing_changed_cb), (share_name_changed_cb),
10154         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
10155         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10156         (rb_daap_src_instance_init), (rb_daap_src_dispose),
10157         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
10158         (rb_daap_src_get_property), (rb_daap_src_getcaps),
10159         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
10160         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
10161         (rb_daap_src_get_time): Deal with gconf callbacks where the key
10162         hasn't actually changed, fix some memory leaks, code style and release
10163         gconf notifications when the object is destroyed.
10164         
10165         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
10166         (rb_daap_source_class_init), (rb_daap_source_init),
10167         (rb_daap_source_dispose), (rb_daap_source_set_property),
10168         (rb_daap_source_get_property), (rb_daap_source_new),
10169         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
10170         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
10171         (rb_daap_sources_init), (rb_daap_sources_shutdown),
10172         (rb_daap_source_activate), (rb_daap_source_disconnect),
10173         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
10174         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
10175         release gconf notifications, handle gconf callbacks where the key
10176         hasn't changed, make "real name" and "password protected" gobject
10177         properties, fix some code style and fix a memory leak.
10179 2005-09-11  James Livingston  <jrl@ids.org.au>
10181         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10183         * shell/rb-playlist-manager.c:
10184         (rb_playlist_manager_save_playlists),
10185         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
10186         when we aren't supposed to. (Closes bug 315886)
10188 2005-09-11  James Livingston  <jrl@ids.org.au>
10190         * shell/rb-removable-media-manager.c:
10191         (rb_removable_media_manager_class_init),
10192         (rb_removable_media_manager_init),
10193         (rb_removable_media_manager_dispose),
10194         (rb_removable_media_manager_set_property),
10195         (rb_removable_media_manager_get_property),
10196         (rb_removable_media_manager_new),
10197         (rb_removable_media_manager_load_media),
10198         (rb_removable_media_manager_volume_mounted_cb),
10199         (rb_removable_media_manager_volume_unmounted_cb),
10200         (rb_removable_media_manager_mount_volume),
10201         (rb_removable_media_manager_unmount_volume),
10202         (rb_removable_media_manager_source_deleted_cb),
10203         (rb_removable_media_manager_append_media_source),
10204         (rb_removable_media_manager_set_uimanager),
10205         (rb_removable_media_manager_eject_medium_cb),
10206         (rb_removable_media_manager_cmd_eject_medium):
10207         * shell/rb-removable-media-manager.h:
10208         * sources/rb-removable-media-source.c:
10209         (rb_removable_media_source_class_init),
10210         (rb_removable_media_source_init),
10211         (rb_removable_media_source_dispose),
10212         (rb_removable_media_source_set_property),
10213         (rb_removable_media_source_get_property), (impl_get_pixbuf),
10214         (impl_delete_thyself):
10215         * sources/rb-removable-media-source.h: Add the four files that I
10216         somehow managed not to add to cvs in the last commit. Oops.
10218 2005-09-11  James Livingston  <jrl@ids.org.au>
10220         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
10221         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
10222         
10223         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
10224         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
10225         removable-media-manager on startup, and handle creation of sources.
10226         
10227         * sources/rb-ipod-source.h:
10228         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
10229         (rb_ipod_source_init), (rb_ipod_source_constructor),
10230         (rb_ipod_source_dispose), (rb_ipod_source_new),
10231         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
10232         the iPod source over to the removable media framework.
10233         
10234         * sources/rb-library-source.c: (paned_size_allocate_cb),
10235         (rb_library_source_get_paned_key): fix a potential bug is a
10236         library-derived source doesn't have a paned-key
10238 2005-09-11  Bastien Nocera  <hadess@hadess.net>
10240         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
10241         mp3 when we can't get the suffix of a file (Closes: #315941)
10243 2005-09-10  James Livingston  <jrl@ids.org.au>
10245         * configure.ac: fix the mdns tests, so that it doesn't complain about
10246         not finding one, if daap support isn't being compiled in
10248 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
10250         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
10252         * daapsharing/rb-daap-dialog.c:
10253         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
10254         HIG compliancy & images.
10256         * daapsharing/rb-daap-mdns.c:
10257         (browse_cb), (resolve_cb): Better detection of local services.  
10258         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
10259         Howl's limitations.  Fix the way collision handling is done under
10260         Avahi.
10262         * daapsharing/rb-daap-share.c:
10263         (publish_cb): Better name collision handling (at least for Avahi).
10265 2005-09-10  James Livingston  <jrl@ids.org.au>
10267         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
10268         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
10269         preferences more HIG compliant (Closes #315889)
10270         
10271         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
10272         list of files to be translated
10274 2005-09-10  James Livingston  <jrl@ids.org.au>
10276         * configure.ac: fix it so that --enable-daap=no works
10277         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
10278         uninstalled
10280 2005-09-10  James Livingston  <jrl@ids.org.au>
10282         Patch from Christophe Fergeau <teuf@gnome.org>
10284         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
10285         the ipod code.
10287 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
10288         * README.daap: Updating documentation
10290 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
10291         * AUTHORS: Added myself.
10293         * daapsharing/rb-daap-connection.c:
10294         (connection_login), (rb_connection_new): Reorganized password
10295         handling.
10297         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
10299         * shell/rb-shell.c:
10300         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
10302         * sources/rb-daap-source.c:
10303         (rb_daap_source_activate): Better error handling when we are unable to
10304         connect.
10305         
10306 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
10307         * README.daap: Fixed some terminology.
10309         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
10310         New --with-mdns=auto|howl|avahi flag to specify.
10312         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
10313         name collision dialogs.
10315         * daapsharing/rb-daap-connection.c:
10316         (connection_get_password), (build_message), (http_get)
10317         (connection_login): Ask for & use a password if the share demands it.
10319         * daapsharing/rb-daap-connection.h: Changed prototype of
10320         rb_daap_connection_new.
10321         
10322         * daapsharing/rb-daap-mdns.c: 
10323         (resolve_cb): Better detection of your own music share so it doesn't 
10324         appear in the sourcelist.
10326         * daapsharing/rb-daap-share.c:
10327         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
10328         that start on any available port.
10330         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
10332         * sources/rb-daap-source.c:
10333         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
10334         (browse_cb): Handle passworded shares. Resolve the host immediately
10335         instead of when activated.
10336         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
10337         (rb_daap_source_new): New GConf keys for UI state.
10338         (rb_daap_source_activate): Use RBPlaylistSource instead of
10339         RBDAAPPlaylistSource
10340         
10341         * sources/rb-daap-playlist-source.c/h: Removed
10343         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
10344         if the playlist is local (i.e. not DAAP or iPod).
10345         
10346         * shell/rb-playlist-manager.c:
10347         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
10348         wouldn't get saved if the last playlist hadn't changed.  Only save
10349         local playlists.
10350         
10351 2005-09-09  James Livingston  <jrl@ids.org.au>
10353         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
10354         iPod preferences pane, as it already uses the browser views as the
10355         library.
10357 2005-09-09  James Livingston  <jrl@ids.org.au>
10359         * sources/rb-library-source.c: (rb_library_source_finalize),
10360         (rb_library_source_constructor): fix gconf monitoring of library
10361         preference keys.
10362         * sources/rb-library-source.h: remove declaration of function that
10363         does not exist
10365 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
10367         * player/rb-player-gst.c:
10368         (rb_player_set_time): Fix seeking in daap streams.
10370 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
10372         * data/rhythmbox.schemas: Turn music share browsing on by default.
10374 2005-09-07  James Livingston  <jrl@ids.org.au>
10376         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
10378 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
10379         * player/rb-player-gst.c: 
10380         (rb_player_get_time): Fix for extra << & == that accidentally made
10381         it in.
10383         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
10384         
10385 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
10386         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
10387         it in last time.  Sorry.
10389 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
10390         
10391         * player/rb-player-gst.c:
10392         (rb_player_get_time): Fix a small crash appearing when
10393         the uri isn't set in the player, but rb_player_get_time() is
10394         still called.
10396         * configure.ac: Also check for libsoup 2.4, which is what ships with
10397         Gnome 2.12.
10399         * po/POTFILES.in: Added music sharing files that have translatable 
10400         strings.
10402         * README.daap: New file explaining "How Music Sharing Works"  
10404 2005-09-06  Bastien Nocera  <hadess@hadess.net>
10406         * daapsharing/.cvsignore: added
10408 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
10410         * daapsharing/*: Music sharing library.
10411         
10412         * sources/rb-daap-source.c/h: Music share RBSource.
10413         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
10415         * configure.ac: --enable-daap flag to turn on music sharing. Requires
10416         libsoup and a mutlicast DNS implementation (howl or avahi).
10418         * data/rhythmbox.schemas: New GConf keys for music sharing.
10420         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
10421         source right click menu.
10423         * player/rb-player-gst.c: Changes to properly play & seek in remote
10424         music share files.
10426         * shell/rb-playlist-manager.c/h:
10427         (rb_playlist_manager_get_playlists): New function to get a GList * of
10428         the playlists.
10429         (rb_playlist_manager_save_playlists): Don't save music share playlists
10430         and fixed a GObject reference leak.
10432         * shell/rb-shell.c/h:
10433         (rb_shell_append_source): No longer a local function.  Now takes a
10434         parent RBSource * argument, NULL to append a toplevel source.
10435         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
10436         source (useful for disconnecting from remote music share,
10437         specifically).
10438         (rb_shell_quit): Stop music sharing/browsing.
10439         (rb_shell_playlist_added_cb): Work with tree source structure.
10440         (rb_shell_get_property): "playlist-manager" property accessor.
10441         (rb_shell_class_init): New "playlist-manager" property.
10442         (rb_shell_construor): Append sources as toplevel sources.  Initialize
10443         daap sharing/browsing.
10444         (rb_shell_select_source): Notify source of activation/deactivation.
10446         * shell/rb-shell-prefernces.c: Music sharing preferences.
10448         * sources/rb-source.c/h: New activate, deactivate and disconnect
10449         class functions.  Activate & deactivate are notification style 
10450         functions that will tell a source when it is selected/unselected.
10451         Disconnect can be hooked up to a UI object to disconnect the source.
10453         * sources/rb-sourcelist-model.c:
10454         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
10455         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
10456         append a toplevel source.
10458 2005-09-05  James Livingston  <jrl@ids.org.au>
10460         * rhythmdb/rhythmdb-query-model.c:
10461         (rhythmdb_query_model_entry_changed_cb),
10462         (rhythmdb_query_model_do_reorder): Update the query model's totals if
10463         the duration of filesize of an entry changes.  Emit the row-changed
10464         signals that I forgot to put back in, when I was doing query sorting.
10466         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
10467         out "0 minutes" or "0 bytes".
10469 2005-09-04  James Livingston  <jrl@ids.org.au>
10471         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
10472         remove a leftover bit of the "internal-name" property of sources.
10474 2005-09-03  James Livingston  <jrl@ids.org.au>
10476         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
10477         extraneous debug message
10478         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
10479         crasher would affect any library-derived sources (which was also a
10480         memory leak).
10482 2005-09-02  Colin Walters  <walters@verbum.org>
10484         * configure.ac: Fix sytnax error.
10486         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
10487         code to disable minimization icons - need to figure out
10488         why it doesn't work...
10490 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
10492         * data/glade/song-info-multiple.glade:
10493         * data/glade/song-info.glade:
10494         * widgets/rb-song-info.c: (rb_song_info_constructor):
10495         Add a mnemonic to the newly added "Automatically rate" label
10496         in the properties dialog and use a bold typeface like all the 
10497         other labels in the dialog. (Closes bug 315089)
10499 2005-09-03  James Livingston  <jrl@ids.org.au>
10501         * sources/rb-library-source.c: (rb_library_source_class_init),
10502         (rb_library_source_finalize), (rb_library_source_constructor),
10503         (rb_library_source_set_property), (rb_library_source_get_property),
10504         (impl_get_paned_key), (paned_size_allocate_cb),
10505         (rb_library_source_state_prefs_sync), (impl_show_popup),
10506         (rb_library_source_get_paned_key):
10507         * sources/rb-library-source.h: Allow sources derived from
10508         RBLibrarySource to use different gconf keys for sort order, browser
10509         visibility and browser pane position. Fix a crasher if a derived
10510         source overrides _get_pixbuf.
10512 2005-09-02  Colin Walters  <walters@verbum.org>
10514         * shell/rb-shell.c (rb_shell_set_visibility): Move
10515         hint setting which seems to avoid races more.
10516         
10517 2005-09-03  James Livingston  <jrl@ids.org.au>
10519         * shell/rb-shell.c: fix compilation with iPod support enabled
10520         
10521 2005-09-02  Colin Walters  <walters@verbum.org>
10523         * shell/rb-shell.c (struct RBShellPrivate): Add
10524         idle_hide_mainwindow_id.
10525         (rb_shell_constructor): Move taskbar skipping hint into
10526         rb_shell_set_visibility.
10527         (idle_hide_mainwindow): New function.
10528         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
10529         racy hack to avoid rb appearing in taskbar when minimized.
10531 2005-09-01  Colin Walters  <walters@verbum.org>
10533         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
10535         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
10536         from gtkstatusicion.c.
10538         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
10540         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
10541         TrayShowWindow entry.
10542         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
10543         (rb_tray_icon_constructor): Create action group here.
10544         (rb_tray_icon_finalize): Destroy action group.
10545         (rb_tray_icon_set_property): Don't take an action group.
10546         (rb_tray_icon_new): Ditto.
10547         (tray_popup_position_menu): Some mostly boilerplate code
10548         to position menu.
10549         (rb_tray_icon_button_press_event_cb): Position menu.
10550         (rb_tray_icon_get_geom): New function used for the shell
10551         to set minimization hints.
10553         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
10555         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
10556         (struct RBShellPrivate): Change visible to iconified.
10557         (set_icon_geometry): New function from Søren Sandmann to
10558         tell Metacity where to draw the minimization animiation.
10559         (rb_shell_window_state_cb): Update iconified.
10560         (rb_shell_get_visibility): New function to say whether
10561         or not we're currently visible.
10562         (rb_shell_set_visibility): Update to minimize to
10563         tray or present as appropriate.
10564         (rb_shell_window_delete_cb): On window close, just
10565         minimize to tray if we're deleted.
10566         (rb_shell_set_window_title): Kill old notification code.
10567         (rb_shell_toggle_visibility): Nwe function.
10568         (rb_shell_cmd_toggle_visibility): Call it.
10569         (rb_shell_constructor): Skip the taskbar.
10570         (tray_destroy_cb): Better debugging.
10571         
10572 2005-09-01  Colin Walters  <walters@verbum.org>
10574         * data/ui/rhythmbox-ui.xml: Add MusicClose.
10576         * configure.ac: Enable bonobo by default.
10577         
10578 2005-09-01  Colin Walters  <walters@verbum.org>
10580         * configure.ac: Default to old art.  Add macros subdir.
10582         * Makefile.am (SUBDIRS): Add macros.
10584         * macros/Makefile.am: New.
10585         
10586 2005-09-01  Colin Walters  <walters@verbum.org>
10588         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
10589         rb-shell-player.xml.
10591         * remote/dbus/rb-remote-dbus.h: Deleted.
10592         
10593         * remote/dbus/Makefile.am: Delete all the junk, just dist
10594         rb-print-playing.py and rb-set-rating.py.
10596         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
10598         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
10600 2005-09-02  James Livingston  <jrl@ids.org.au>
10602         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
10603         file from cvs
10605         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
10606         (rb_shell_constructor): Patches from Jonathan Matthew
10607         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
10608         a crash when using "browse this artist".
10610 2005-08-31  Colin Walters  <walters@verbum.org>
10612         * configure.ac: Add --with-old-art configure switch.  Also
10613         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
10614         but it doesn't work.
10616         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
10617         Don't use eel_create_colorized_pixbuf for new art.
10618         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
10620         * data/art-clearlooks: New artwork.
10621         
10622 2005-08-31  Colin Walters  <walters@verbum.org>
10624         * shell/main.c (main): Fix Bastien's commit to continue to focus
10625         the window with GTK+ 2.8 at least.
10626         
10627 2005-08-31  Colin Walters  <walters@verbum.org>
10629         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
10630         is already loaded.
10632         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
10634 2005-08-31  Bastien Nocera  <hadess@hadess.net>
10636         * README: remove mentions of the xine-lib backend
10637         * shell/main.c: (main): make it compilable with gtk+ < 2.8
10639 2005-08-30  Colin Walters  <walters@verbum.org>
10641         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
10642         Make non-visible sources insensitive.
10643         
10644 2005-08-30  Colin Walters  <walters@verbum.org>
10646         * shell/rb-shell.c: Don't use GConf for selected source; it's
10647         confusing to have the selected source change after startup,
10648         and since we don't save other things it's not worth saving this.
10650         * sources/rb-playlist-source.c:
10651         * sources/rb-library-source.c:
10652         * sources/rb-iradio-source.c:
10653         * sources/rb-ipod-source.c: Delete internal-name property usage.
10654         * sources/rb-source.c: Delete internal-name property.
10656         * data/rhythmbox.schemas: Delete selected_source.
10657         
10658 2005-08-30  Colin Walters  <walters@verbum.org>
10660         * sources/rb-sourcelist.c: Make playing source bold instead of
10661         displaying a pixbuf; it's much less ugly.
10662         
10663 2005-08-30  Colin Walters  <walters@verbum.org>
10665         * sources/rb-source.c:
10666         * sources/rb-source.h: New virtual method try_playlist.
10668         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
10669         impl_try_playlist.
10670         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
10671         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
10672         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
10673         need to.
10674         (stations_view_drag_data_received_cb): Don't check for iradio uris;
10675         in theory we should though...
10677         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
10678         list in rb_shell_construct now.
10679         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
10680         RBiPodSource.
10681         (rb_shell_constructor): Create library, iradio, ipod here.
10682         (rb_shell_source_deleted_cb): Use source directly instead of
10683         indirecting through type.
10684         (rb_shell_sync_selected_source): Ditto.
10685         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
10686         from the type instead of special-casing.
10687         (rb_shell_guess_type_for_uri) 
10688         (rb_shell_add_uri)
10689         (handle_one_uri_with_possible_metadata): New functions.
10690         (rb_shell_load_uri): Refactor to allow loading playlists again,
10691         also use other URI infrastructure.
10693         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
10694         (rb_shell_player_error): Always set entry error on error, instead
10695         of depending on EOF behavior.
10697         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
10698         to just invoke rb_shell_add_uri.
10699         (rb_playlist_manager_parse_file): Return error instead of tossing
10700         up dialog box directly.
10701         (load_playlist_response_cb): Display error here.
10702         (add_uri_to_playlist): Delete.
10703         (handle_playlist_entry_into_playlist_cb): Renamed to
10704         handle_playlist_entry_cb.
10706         * shell/rb-playlist-manager.h: Add error, update prototype.
10708         * lib/rb-file-helpers.c:
10709         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
10711 2005-08-29  Colin Walters  <walters@verbum.org>
10713         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
10714         if entry already exists.  Use rhythmdb_entry_set_uninserted.
10716         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
10717         needlessly duping string, and use rhythmdb_entry_set_uninserted.
10718         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
10720         * shell/rb-shell.h (enum RBShellError): Add some more errors.
10721         Prototype rb_shell_set_song_property.
10723         * shell/rb-shell.xml: Export setSongProperty.
10725         * shell/rb-shell.c (rb_shell_set_song_property): New function.
10726         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
10727         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
10729         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
10730         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
10731         want to notify of the change.
10732         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
10734         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
10735         logic error; idle functions would be enqueued for each set.
10736         (rhythmdb_entry_set): Fix assertion logic error.
10738         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
10739         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
10740         Return if the entry already exists.
10741         
10742 2005-08-29  Colin Walters  <walters@verbum.org>
10744         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
10745         "inserted" member which we use to keep track of
10746         whether or not an entry is in the DB.  Prototype
10747         rhythmdb_entry_set_uninserted.
10749         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
10750         flag.
10751         (rhythmdb_entry_insert): Assert entry is not already inserted.
10752         (rhythmdb_process_metadata_load): Update to call _set_uninserted
10753         just after creating entry.
10754         (rhythmdb_entry_set): Document, and fail on uninserted entries.
10755         (rhythmdb_entry_set_nonotify): Ditto.
10756         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
10757         entries.
10758         (rhythmdb_entry_set_internal): Change notify flag to
10759         notify_if_inserted.  Also move notification after assertions.
10761         Update all existing callers of rhythmdb_entry_set_internal
10762         to give TRUE for notify_if_inserted; this should be what
10763         we want but may be an efficiency hit.
10764         
10765 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
10767         * shell/rb-shell-player.c: (rb_shell_player_init),
10768         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
10769         (rb_shell_player_set_playing_source_internal),
10770         (rb_shell_player_sync_with_selected_source): Notify the player when an
10771         entry has updated the title, album or artist field, and resync the big
10772         display.
10773         
10774         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
10775         * sources/rb-library-source.c: (rb_library_source_class_init),
10776         (impl_get_config_widget):
10777         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
10778         * sources/rb-source.c:
10779         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
10780         get_album functions in rb-source and adapted other sources accordingly.
10781         
10782 2005-08-29  Colin Walters  <walters@verbum.org>
10784         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
10785         signal_change member.
10786         (threadsafe_entry_set): New function.
10787         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
10788         (rhythmdb_entry_set_nonotify): New function; just call
10789         threadsafe_entry_set with FALSE.
10790         (rhythmdb_entry_set_internal): Take a notify flag; if true
10791         add the change to our pending set.
10793         Also update all internal callers of rhythmdb_entry_set_internal
10794         to pass FALSE.  Some of these may be bugs however and need to
10795         pass TRUE...
10797         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
10798         rhythmdb_entry_set, and rename rhythmdb_entry_set to
10799         rhythmdb_entry_set_nonotify.
10801         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
10802         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
10804         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
10806         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
10807         * sources/rb-source.c (rb_source_update_play_statistics): 
10808         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
10809         * sources/rb-ipod-source.c (entry_set_string_prop) 
10810         (load_ipod_db_idle_cb): 
10811         * shell/rb-shell.c (rb_shell_set_rating_impl): 
10812         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
10813         (info_available_cb): 
10814         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
10815         (rb_station_properties_dialog_sync_entries): 
10816         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
10818         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
10819         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
10820         
10821 2005-08-29  Colin Walters  <walters@verbum.org>
10823         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
10825         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
10826         linking insanity.
10828         * widgets/rb-header.c (sanitize_string): New function, extracted
10829         from old info_url.  Be sure to always strip the string.
10830         (info_url): Rewrite to take artist/album, and generate a sane
10831         URL for them from last.fm, which is better than allmusic.com in
10832         that they support Rhythmbox, and have a *SANE* URL scheme.
10833         (artist_info_url, album_info_url): Delete.
10834         (rb_header_sync): Use info_url.
10836 2005-08-29  James Livingston  <jrl@ids.org.au>
10838         * sources/rb-source.c: (rb_source_search): Check to ensure that this
10839         is implemented before calling it. Many sources don't implement the
10840         method.
10842 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
10844         * data/glade/create-playlist.glade:  Cleanup the layout,
10845         and add a few more mnemonics.
10846         * shell/rb-playlist-manager.c:
10847         (rb_playlist_manager_cmd_load_playlist),
10848         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
10849         capitalization for window titles.
10850         * widgets/rb-query-creator-properties.c: Add mnemonics
10851         to checkbutton labels.
10852         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
10853         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
10855 2005-08-28  Colin Walters  <walters@verbum.org>
10857         * data/rhythmbox.schemas: Delete search_text for library
10858         and iradio; this isn't a persistent value anymore.
10859         Closes #313757.
10860         
10861         * sources/rb-source.h:
10862         * sources/rb-source.c: Delete impl_can_search.
10864         * sources/rb-iradio-source.c: Delete search_text usage.
10865         * sources/rb-library-source.c: Ditto.
10867         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
10868         search when source is set, and just do rb_source_search in
10869         rb_source_header_search_cb.
10871         * shell/rb-shell.c (rb_shell_append_source): Don't
10872         initiate search.
10874         * shell/Makefile.am: Don't dist dashboard.c.
10876 2005-08-28  Colin Walters  <walters@verbum.org>
10878         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
10879         
10880 2005-08-28  Colin Walters  <walters@verbum.org>
10882         * data/org.gnome.Rhythmbox.service.in: New.
10884         * data/Makefile.am: Install service file.
10886         * configure.ac: Define DBUS_SERVICES_DIR.
10888         * autogen.sh: Set ACLOCAL_FLAGS.
10890         * macros/acinclude.m4: New.
10891         
10892 2005-08-28  Colin Walters  <walters@verbum.org>
10894         Initial patch from Jonathan Matthew; closes 313684.
10896         * rhythmdb/rhythmdb-tree.c:
10897         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
10898         (save_entry): Return on error.
10899         (rhythmdb_tree_save): Handle error when saving the
10900         db; additionally, handle errors from fclose and unlink,
10901         and print error too.
10903 2005-08-28  Colin Walters  <walters@verbum.org>
10905         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
10906         extra _.
10907         
10908 2005-08-28  Colin Walters  <walters@verbum.org>
10910         * configure.ac: Change iPod support to --with-ipod;
10911           automatically enable it if we have HAL.  Try to
10912           support both HAL 0.5 and HAL 0.2.  Break out
10913           totem-plparser into its own check so later we
10914           can do version tests there too.
10915           Kill dashboard support.
10916         
10917         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
10918         to support HAL > 0.5, but preserve the old code for HAL < 0.5
10919         Closes #310017.
10920         
10921         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
10922         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
10924         * sources/Makefile.am: Also handle
10925         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
10927         * shell/dashboard.c: Delete; someone should just write a little
10928         python shim which lists on the D-BUS interface and writes the
10929         stuff to Dashboard.  Even better Dashboard should be ported
10930         to D-BUS and do the listening itself, perhaps on an abstract
10931         "org.gnome.MusicPlayer" interface or something.
10933         * shell/rb-shell.c: Kill dashboard support.
10935 2005-08-28  Colin Walters  <walters@verbum.org>
10937         * remote/dbus/rb-print-playing.py: New file.
10939 2005-08-28  Colin Walters  <walters@verbum.org>
10941         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
10942         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
10944         * shell/rb-shell-player.h:
10945         * shell/rb-shell-player.c: Add playing-uri-changed signal.
10946         * shell/rb-shell-player.xml: Export it.
10948         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
10949         (rb_shell_error_quark): New.
10951         * shell/rb-shell.h: Prototype.  Also add RBShellError.
10952         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
10953         
10954 2005-08-28  Colin Walters  <walters@verbum.org>
10956         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
10957         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
10958         bonobo_unlock.
10959         (rb_remote_bonobo_preinit): Lock setting moved here.
10960         (rb_remote_bonobo_init): From here.
10962         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
10963         Also invoke handle_cmdline in the right place.
10964         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
10965         GFunc.
10967 2005-08-28  James Livingston  <jrl@ids.org.au>
10969         * NEWS: keep the NEWS file up to date, so we don't have to do it all
10970         when 0.9.1 comes around.
10972 2005-08-28  James Livingston  <jrl@ids.org.au>
10974         * iradio/rb-new-station-dialog.c:
10975         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
10976         bug 314477.
10978 2005-08-28  James Livingston  <jrl@ids.org.au>
10980         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
10982         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
10983         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
10984         is a song is longer than 60 minutes. Closes bug 313311.
10986 2005-08-27  James Livingston  <jrl@ids.org.au>
10988         * data/glade/create-playlist.glade:
10989         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
10990         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
10991         "minutes" as an option in the playlist limit menu.
10993         * rhythmdb/rhythmdb-query-model.c:
10994         (rhythmdb_query_model_class_init),
10995         (rhythmdb_query_model_set_property),
10996         (rhythmdb_query_model_get_property),
10997         (rhythmdb_query_model_update_limited_entries): Allow query models to
10998         have a time limit
10999         
11000         * shell/rb-playlist-manager.c:
11001         (rb_playlist_manager_set_automatic_playlist),
11002         (rb_playlist_manager_cmd_edit_automatic_playlist):
11003         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
11004         (rb_playlist_source_get_query), (impl_receive_drag),
11005         (rb_playlist_source_new_from_xml),
11006         (rb_playlist_source_save_to_xml),
11007         (rb_playlist_source_songs_sort_order_changed_cb),
11008         (rb_playlist_source_do_query):
11009         * sources/rb-playlist-source.h:
11010         * widgets/rb-query-creator.h: Allow playlists to be limited by time
11012 2005-08-27  James Livingston  <jrl@ids.org.au>
11014         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
11016         * configure.ac:
11017         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
11018         non-standard location. Closes bug 314640.
11020 2005-08-26  Colin Walters  <walters@verbum.org>
11021         
11022         Patch from Olivier Blin <oblin@mandriva.com>
11024         * widgets/eggnotificationbubble.c (draw_bubble): 
11025         Handle extreme-left case as well.
11026         
11027 2005-08-26  Colin Walters  <walters@verbum.org>
11029         * shell/rb-shell.c (idle_save_state): Don't do this.
11030         (rb_shell_construct): Remove idle calls to idle_save_state.
11031         We should save the playlists automatically when they're
11032         modified.
11033         (rb_shell_load_uri): Don't try to re-stat entry if it already
11034         exists.
11036         * shell/rb-shell-player.c: Keep track of entry we are attempting
11037         to play.
11038         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
11039         Don't double-free error.
11040         (rb_shell_player_play_entry): Signal errors.
11041         (rb_shell_player_entry_activated_cb): Ditto.
11042         (rb_shell_player_property_row_activated_cb): Ditto.
11043         (rb_shell_player_set_playing_source_internal): Unset attempted
11044         playing entry.
11045         (rb_shell_player_error): Refactor to be usable both sync and
11046         async.  Handle case where displayed entry differs from entry.
11047         (error_cb): Move GDK locking here.
11049         * shell/main.c (main): Drop most commandline arguments for D-BUS;
11050         people can just use dbus-send or python.  We only support focusing
11051         and loading files.
11052         (load_uri_args): New function, extracted from handle_cmdline.
11053         (dbus_load_uri, bonobo_load_uri): New functions.
11055         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
11056         appropriate.
11058         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
11059         * remote/dbus/rb-remote-dbus.c: Deleted.
11061         * player/rb-player-gst.c: Clear any pending idle handlers when we
11062         close the player.  Signal errors generated during open/play etc
11063         as synchronous errors.
11065         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
11066         
11067 2005-08-26  Colin Walters  <walters@verbum.org>
11069         * shell/rb-shell.c (rb_shell_present): Try harder.
11071 2005-08-26  Colin Walters  <walters@verbum.org>
11073         * shell/rb-shell.c (rb_shell_present): Try to handle
11074         GTK_MINOR_VERSION < 8.
11076 2005-08-26  James Livingston  <jrl@ids.org.au>
11078         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
11079         <pbrobinson@gmail.com>
11081 2005-08-26  Colin Walters  <walters@verbum.org>
11083         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
11085 2005-08-25  Colin Walters  <walters@verbum.org>
11087         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
11088         Delete.
11089         (rb_shell_player_do_next_with_rating): Move back into
11090         rb_shell_player_do_next.
11091         (rb_shell_player_entry_activated_cb): Remove call to
11092         rb_shell_player_auto_adjust_rating.
11093         (do_next_idle): Just call rb_shell_player_do_next.
11095         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
11097 2005-08-25  Colin Walters  <walters@verbum.org>
11099         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
11100         before gtk_window_present_with_time.
11101         
11102 2005-08-25  Colin Walters  <walters@verbum.org>
11104         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
11105         default.
11107         * shell/rb-shell.c (rb_shell_constructor): Adapted from
11108         rb_shell_construct.  This is so we only have to do g_object_new.
11109         (rb_shell_get_player): New function.
11110         (rb_shell_get_player_path): Ditto.
11111         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
11112         
11113         * shell/rb-shell.h: Prototype them.
11115         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
11116         export over D-BUS.
11117         (reemit_playing_signal): New function.
11118         (rb_shell_player_open_playlist_location): Use return values from
11119         rb_player_open, rb_player_close, etc. instead of checking "error".
11120         Return a gboolean on failure.
11121         (rb_shell_player_open_entry): Just open entry location, don't
11122         print to stderr.
11123         (rb_shell_player_play): Handle retval from rb_player_play.  Return
11124         a gboolean.
11125         (do_next_idle): Move logic for handling of end of playlist here.
11126         (rb_shell_player_set_playing_entry): Take a GError, return a
11127         gboolean.  Update to use gboolean return values.
11128         (rb_shell_player_do_previous): Delete lots of crazy duplicate
11129         logic.  Signal an error on end of playlist.  Also signal error if
11130         we're not playing.  Move heuristic for replaying the song into
11131         rb_shell_player_cmd_previous.
11132         (rb_shell_player_do_next_with_rating): Signal error on end of
11133         playlist.
11134         (rb_shell_player_do_next): Return errors.
11135         (rb_shell_player_cmd_previous): Heuristic for restarting song
11136         moved here; the idea is you generally only want that from the GUI.
11137         (rb_shell_player_cmd_play): Handle error.
11138         (rb_shell_player_playpause): Signal errors.
11139         (filter_mmkeys): Use rb_shell_player_cmd_previous and
11140         rb_shell_player_cmd_next in favor of the internal _do functions.
11141         
11142         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
11143         errors.  Update prototypes for above changes.
11145         * shell/main.c: More tightly integrate D-BUS; register various
11146         major singleton objects here.  Fix handle_cmdline so we only
11147         process extra arguments, not every argument.
11149         * shell/Makefile.am: Generate D-BUS glue headers.
11151         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
11152         into shell/main.c.  Now this file just acts as a client library.
11153         Not heavily tested.
11155         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
11156         Moved here.
11157         (rb_remote_bonobo_init): Move long CORBA rant here along with
11158         setting of lock functions.
11160         * player/rb-player-gst.c (rb_player_construct)
11161         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
11162         on error.
11164         * player/rb-player.h: Update prototypes.
11166         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
11167         rb-remote-bonobo.c.
11168         (rb_threads_init): Don't set gdk lock functions here.
11170 2005-08-25  James Livingston  <jrl@ids.org.au>
11172         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
11174         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
11175         * lib/rb-tree-dnd.h:
11176         * rhythmdb/rhythmdb-property-model.c:
11177         (rhythmdb_property_model_class_init),
11178         (rhythmdb_property_model_drag_source_init),
11179         (rhythmdb_property_model_iter_parent),
11180         (rhythmdb_property_model_row_draggable),
11181         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
11182         (rhythmdb_property_model_drag_data_get),
11183         (rhythmdb_property_model_enable_drag):
11184         * rhythmdb/rhythmdb-property-model.h:
11185         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
11186         (rb_playlist_manager_set_property), (append_new_playlist_source),
11187         (rb_playlist_manager_save_playlists):
11188         * shell/rb-shell.c: (rb_shell_construct),
11189         (sourcelist_drag_received_cb):
11190         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11191         * sources/rb-playlist-source.c: (impl_receive_drag):
11192         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
11193         (rb_sourcelist_model_drag_dest_init),
11194         (rb_sourcelist_model_set_dnd_targets),
11195         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
11196         (rb_sourcelist_model_row_drop_position),
11197         (rb_sourcelist_model_get_drag_target),
11198         (rb_sourcelist_model_drag_data_get):
11199         * sources/rb-sourcelist-model.h:
11200         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
11201         (rb_sourcelist_init), (rb_sourcelist_get_property),
11202         (rb_sourcelist_selection_changed_cb):
11203         * sources/rb-sourcelist.h:
11204         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
11205         improve drag-n-drop support. Allow dragging of item from property
11206         views to the source list, to create new automatic playlists. Allow
11207         playlist re-ordering. Fix dragging from Rhythmbox to other
11208         applications. (Closes bug 147337)
11210 2005-08-24  Colin Walters  <walters@verbum.org>
11212         Patch from Olivier Blin <oblin@mandriva.com>
11214         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
11215         correctly in the case where the window is next to monitor edge.
11217 2005-08-24  James Livingston  <jrl@ids.org.au>
11219         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
11220         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
11221         a gobject property to get the query model that backs the playlist.
11223 2005-08-24  James Livingston  <jrl@ids.org.au>
11225         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
11226         (handle_playlist_entry_into_playlist_cb),
11227         (rb_playlist_manager_playlist_entries_changed): Disable the "create
11228         audio cd" menu item when a non-playlist source is selected, or the
11229         playlist is empty. (Closes Bug 313253)
11231 2005-08-24  James Livingston  <jrl@ids.org.au>
11233         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
11234         Fix the playlist length checkso it doesn't report 0 for automatic
11235         playlists. This was stopping automati playlists being burnt to cd.
11237 2005-08-24  James Livingston  <jrl@ids.org.au>
11239         * configure.ac:
11240         * sources/rb-playlist-source-recorder.c: (burn_cd):
11241         * sources/rb-playlist-source.c:
11242         (rb_playlist_source_songs_sort_order_changed_cb):
11243         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
11244         more warnings that occur when compiling RPMs on Fedora.
11246 2005-08-24  James Livingston  <jrl@ids.org.au>
11248         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
11249         was stopping some distros gcc version compiling.
11251 2005-08-24  James Livingston  <jrl@ids.org.au>
11253         * NEWS:
11254         * data/glade/create-playlist.glade:
11255         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
11256         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
11257         (rhythmdb_query_free), (rhythmdb_query_serialize),
11258         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
11259         * rhythmdb/rhythmdb.h:
11260         * shell/rb-playlist-manager.c:
11261         (rb_playlist_manager_set_automatic_playlist),
11262         (rb_playlist_manager_cmd_edit_automatic_playlist):
11263         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
11264         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
11265         (impl_receive_drag), (rb_playlist_source_new_from_xml),
11266         (rb_playlist_source_save_to_xml),
11267         (rb_playlist_source_songs_sort_order_changed_cb),
11268         (rb_playlist_source_do_query):
11269         * sources/rb-playlist-source.h:
11270         * widgets/Makefile.am:
11271         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
11272         (rb_entry_view_set_sorting_order):
11273         * widgets/rb-query-creator-private.h:
11274         * widgets/rb-query-creator-properties.c:
11275         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
11276         (stringCriteriaGetWidgetData),
11277         (escapedStringCriteriaSetWidgetData),
11278         (escapedStringCriteriaGetWidgetData), (set_rating_score),
11279         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
11280         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
11281         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
11282         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
11283         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
11284         (relativeTimeCriteriaCreateWidget),
11285         (relativeTimeCriteriaSetWidgetData),
11286         (relativeTimeCriteriaGetWidgetData):
11287         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
11288         (rb_query_creator_class_init), (rb_query_creator_constructor),
11289         (rb_query_creator_dispose), (rb_query_creator_set_property),
11290         (rb_query_creator_get_property), (rb_query_creator_load_query),
11291         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
11292         (get_entry_for_property), (rb_query_creator_get_query),
11293         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
11294         (limit_toggled_cb), (lookup_row_by_widget),
11295         (remove_button_click_cb), (append_row),
11296         (get_property_index_from_proptype), (select_criteria_from_value),
11297         (property_option_menu_changed), (create_property_option_menu),
11298         (create_criteria_option_menu), (sort_option_menu_changed),
11299         (setup_sort_option_menu):
11300         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
11301         playlists. The two most notable improvements are 1) adding more
11302         properties to the query creator, making it much easier to add more in
11303         the future, and 2) allow playlists to be sorted, from the query editor
11304         if they gave limits, and by clicking on column headers if they don't.
11306         Files added: widgets/rb-query-creator-private.h,
11307         sources/rb-query-creator-properties.c
11309 2005-08-21  James Livingston  <jrl@ids.org.au>
11311         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
11312         error=NULL. This stops some crashes.
11314 2005-08-19  Colin Walters  <walters@verbum.org>
11316         Patch from Olivier Blin <oblin@mandriva.com>
11318         * widgets/eggnotificationbubble.c (force_window): Support top
11319         orientation.
11320         * widgets/eggnotificationbubble.h: Remove
11321         egg_notification_bubble_force_window from header.
11322         
11323 2005-08-18  James Livingston  <jrl@ids.org.au>
11325         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
11326         with the changes since then.
11328 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
11330         * shell/rb-shell-player.c: (rb_shell_player_init),
11331         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
11332         (rb_shell_player_volume_widget_changed_cb):
11333         * sources/rb-iradio-source.c:
11334         * sources/rb-library-source.c:
11335         * sources/rb-playlist-source.c:
11336         * widgets/Makefile.am:
11337         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
11338         (bacon_volume_button_class_init), (bacon_volume_button_init),
11339         (bacon_volume_button_dispose), (bacon_volume_button_new),
11340         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
11341         (bacon_volume_button_scroll), (bacon_volume_button_press),
11342         (cb_button_timeout), (cb_button_press), (cb_button_release),
11343         (bacon_volume_release_grab), (cb_dock_press),
11344         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
11345         (bacon_volume_scale_new), (bacon_volume_scale_press),
11346         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
11347         * widgets/bacon-volume.h:
11348         * widgets/rb-volume.c:
11349         * widgets/rb-volume.h:
11350           Use BaconVolumeButton (#300867).
11352 2005-08-17  James Livingston  <jrl@ids.org.au>
11354         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
11355         (rhythmdb_process_metadata_load): don't reset the First Seen time
11356         whenever we recheck the metadata.
11358 2005-08-17  James Livingston  <jrl@ids.org.au>
11360         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
11361         temporary workaround to stop crashes when trying to burn an empty
11362         playlist. Doesn't disable the menu item which is the better solution
11363         (Bug 313253).
11365 2005-08-15  James Livingston  <jrl@ids.org.au>
11367         * shell/rb-source-header.c: (rb_source_header_init),
11368         (rb_source_header_sync_control_state),
11369         (rb_source_header_search_activate_cb):
11370         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
11371         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
11372         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11373         (rb_search_entry_init), (rb_search_entry_searching),
11374         (rb_search_entry_activate_cb):
11375         * widgets/rb-search-entry.h: Move focus to the entry view when user
11376         presses enter in the search box. Patch from Paolo Borelli
11377         <pborelli@katamail.com> (Closes bug 128110)
11379 2005-08-15  James Livingston  <jrl@ids.org.au>
11381         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11382         (rb_playlist_manager_new_playlist):
11383         * shell/rb-playlist-manager.h:
11384         * shell/rb-shell.c: (rb_shell_construct),
11385         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
11386         the source list to be shown when a new playlist is created. (Closes
11387         bug 161935)
11389 2005-08-15  James Livingston  <jrl@ids.org.au>
11391         * widgets/rb-header.c: (rb_header_init),
11392         (rb_header_set_show_timeline): disable the seek slider, rather than
11393         hiding it, which more closely follows the HIG. (Closes bug 139102)
11395 2005-08-13  Colin Walters  <walters@verbum.org>
11397         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
11398         rb_shell_hidden_notify.
11399         (rb_shell_hidden_notify): Notify if the shell is hidden.
11400         (rb_shell_set_visibility_impl): Debug goo.
11402         * shell/rb-shell.h: Export rb_shell_hidden_notify.
11404         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
11405         when the user clicks on notification.
11407         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
11408         CD burn is complete.
11409         (rb_playlist_source_recorder_finalize): Unref shell.
11410         (rb_playlist_source_recorder_new): Take shell.
11412         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
11413         Pass shell to RBPlaylistSourceRecorder.
11414         
11415 2005-08-13  Colin Walters  <walters@verbum.org>
11417         * lib/rb-thread.c:
11418         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
11419           time to convert.
11421 2005-08-13  Colin Walters  <walters@verbum.org>
11423         * widgets/eggnotificationbubble.h:
11424         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
11425         * widgets/eggtrayicon.c:
11426         * widgets/eggtrayicon.h: Add notification API.
11427         * shell/rb-tray-icon.c:
11428         * shell/rb-tray-icon.h: Add notification API.
11429         * shell/rb-shell.c: Notify on song change.
11431 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
11433         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
11434         Correct an inversion of two lines causing NULL to be unreffed
11436 ============ Version 0.9.0
11438 2005-08-10  Bastien Nocera  <hadess@hadess.net>
11440         * configure.ac: 0.9.0, whee!
11441         * NEWS: badly updated
11442         * remote/bonobo/Makefile.am:
11443         * remote/bonobo/rb-remote-bonobo.h:
11444         * shell/Makefile.am:
11445         * shell/main.c: make distcheck fixes