2006-10-07 James Livingston <doclivingston@gmail.com>
[rhythmbox.git] / ChangeLog
blob0d61598e09380fb9cf79cf2ca6a2f3e8b07fdede
1 2006-10-07  James Livingston  <doclivingston@gmail.com>
3         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
4         (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
5         * plugins/audioscrobbler/rb-lastfm-source.c:
6         (rb_lastfm_source_get_playback_uri): work around GStreamer not support
7         hypens in URI schemes.
9 2006-10-06  William Jon McCann  <mccann@jhu.edu>
11         * plugins/iradio/Makefile.am:
12         * plugins/audioscrobbler/Makefile.am:
13         * plugins/cd-recorder/Makefile.am:
14         Don't clean all plugin_DATA.
15         Fixes #360210
17 2006-10-06  James Livingston  <doclivingston@gmail.com>
19         patch from Matt N  <fisxoj@gmail.com>
21         * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
22         (rb_player_gst_bus_cb):
23         * backends/rb-player.c: (rb_player_interface_init),
24         (_rb_player_emit_tick), (_rb_player_emit_event):
25         * backends/rb-player.h: let the backend emit named "events", for
26         things that the core shouldn't know about.
28         * rhythmdb/rhythmdb.h:
29         * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
30         support for streams containing album metadata.
32         * plugins/audioscrobbler/Makefile.am:
33         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
34         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
35         (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
36         * plugins/audioscrobbler/rb-lastfm-gst-src.c:
37         * plugins/audioscrobbler/rb-lastfm-source.c:
38         * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
39         of last.fm streams. From #313049.
41 2006-10-06  James Livingston  <doclivingston@gmail.com>
43         * plugins/magnatune/magnatune/Makefile.am: add a file I missed
44         committing. Oops.
46 2006-10-06  James Livingston  <doclivingston@gmail.com>
48         patch by: Adam Zimmerman  <adam_zimmerman@sfu.ca>
50         * configure.ac:
51         * data/rhythmbox.schemas:
52         * plugins/Makefile.am:
53         * plugins/magnatune/Makefile.am:
54         * plugins/magnatune/magnatune-loading.glade:
55         * plugins/magnatune/magnatune-prefs.glade:
56         * plugins/magnatune/magnatune-purchase.glade:
57         * plugins/magnatune/magnatune.rb-plugin.desktop.in:
58         * plugins/magnatune/magnatune/BuyAlbumHandler.py:
59         * plugins/magnatune/magnatune/MagnatuneSource.py:
60         * plugins/magnatune/magnatune/TrackListHandler.py:
61         * plugins/magnatune/magnatune/__init__.py:
62         * plugins/magnatune/magnatune_circle_small.png:
63         * plugins/magnatune/magnatune_logo_color_small.png:
64         * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
65         play and download tracks from the MagnaTune online music store. From
66         #345783.
68 2006-10-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
70         * lib/rb-proxy-config.c: (rb_proxy_config_init),
71         (rb_proxy_config_dispose), (rb_proxy_config_finalize),
72         (check_auto_proxy_config), (get_proxy_config):
73         Don't crash when eel_gconf_get_string returns NULL.
74         Fixes #359974.
76 2006-10-04  James Livingston  <doclivingston@gmail.com>
78         patch by: Fryderyk Dziarmagowski  <freetz@gmx.net>
80         * plugins/audiocd/Makefile.am: fix the plugin when linking with
81         --as-needed. Fixes #358730
83 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
85         patch by:  William Jon McCann  <mccann@jhu.edu>
87         * sources/rb-iradio-source.c: (playing_source_changed_cb):
88         Fix some stupidity I introduced that caused crashes on shutdown.
89         Fixes #359181.
91 2006-10-02  William Jon McCann  <mccann@jhu.edu>
93         * plugins/audiocd/Makefile.am:
94         * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
95         * plugins/iradio/.cvsignore:
96         * plugins/iradio/Makefile.am:
97         * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
98         (impl_deactivate):
99         * plugins/power-manager/.cvsignore:
100         Install missing iradio ui file.  Don't leak ui filename.
101         Fix iradio install dir. Fix audiocd install dir.
102         Remove unused code from audio cd plugin.
104         Fixes #359170
106 2006-10-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
108         * sources/rb-ipod-source.c: (impl_move_to_trash):
109         Uncomment rhythmdb_entry_move_to_trash call that I accidentally
110         commented out while fixing bug 355235.  Oops.
112 2006-10-03  James Livingston  <doclivingston@gmail.com>
114         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
115         non-unicode warnings to debug statements, since they can occur with
116         slightly broken files.
118         * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
119         * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
120         iradio plugin is disabled and re-enabled.
122 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
124         * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
125         (rhythmdb_entry_podcast_post_get_type):
126         * rhythmdb/rhythmdb.h:
127         * tests/bench-rhythmdb-load.c: (main):
128         Add definitions for some common extra-metadata fields,
129         remove iradio entry type definition, add the concept of entry type
130         categories, define categories for the core entry types.
131         Categories are used to decide if an entry can be copied to a removable
132         device, if it should be reported to audioscrobbler, etc.
134         * shell/Makefile.am:
135         * shell/rb-shell-player.c: (rb_shell_player_class_init),
136         (rb_shell_player_constructor), (rb_shell_player_init),
137         (rb_shell_player_get_property), (open_location_thread),
138         (rb_shell_player_open_location),
139         (rb_shell_player_sync_with_source),
140         (rb_shell_player_set_playing_source_internal), (tick_cb):
141         * shell/rb-shell.c: (construct_widgets), (construct_sources),
142         (rb_shell_player_elapsed_changed_cb):
143         Remove iradio-specific code, use extra metadata fields for streaming
144         title and artist name.
146         * data/ui/rhythmbox-ui.xml:
147         Add a placeholder for 'new ...' menu items.
149         * Makefile.am:
150         * sources/Makefile.am:
151         * configure.ac:
152         * data/rhythmbox.schemas:
153         * plugins/Makefile.am:
154         * plugins/iradio/Makefile.am:
155         * plugins/iradio/iradio-ui.xml:
156         * plugins/iradio/iradio.rb-plugin.desktop.in:
157         * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
158         (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
159         (rb_iradio_plugin_class_init):
160         iradio plugin, enabled and hidden by default.
162         * plugins/audioscrobbler/rb-audioscrobbler.c:
163         (rb_audioscrobbler_song_changed_cb):
164         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
165         * sources/rb-daap-source.c: (rb_daap_source_new):
166         * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
167         Define entry type categories, and use them where appropriate.
169         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
170         (rb_iradio_source_constructor), (rb_iradio_source_new),
171         (impl_get_status), (impl_want_uri), (buffering_cb),
172         (check_entry_type), (streaming_title_request_cb),
173         (streaming_artist_request_cb), (extra_metadata_gather_cb),
174         (info_available_cb), (playing_entry_changed_cb),
175         (playing_source_changed_cb):
176         Move streaming metadata and buffering handling here from
177         rb-shell-player.c.  Emit extra-metadata notify signals when the streaming
178         title or artist changes, and handle request and gather signals for
179         those.
181         * widgets/rb-header.c: (rb_header_class_init),
182         (rb_header_set_property), (rb_header_get_property),
183         (rb_header_new), (append_and_free), (rb_header_sync):
184         * widgets/rb-header.h:
185         Rework to use streaming artist and title extra-metadata.
186         streaming-artist overrides entry artist, and streaming-title means
187         entry title is a stream name, displayed in brackets.
189         * doc/reference/Makefile.am:
190         * doc/reference/rhythmbox.types:
191         Remove iradio stuff from gtk-doc build.
193         Fixed #347097.
195 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
197         patch mostly by: Ed Catmur  <ed@catmur.co.uk>
199         * bindings/python/rhythmdb.defs:
200         * lib/rb-marshal.list:
201         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
202         (rhythmdb_emit_entry_deleted),
203         (rhythmdb_entry_extra_metadata_accumulator),
204         (rhythmdb_entry_request_extra_metadata),
205         (rhythmdb_emit_entry_extra_metadata_notify),
206         (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
207         * rhythmdb/rhythmdb.h:
208         Add signals for dealing with transient metadata outside the set stored
209         in RhythmDBEntry:
210         - entry_extra_metadata_request returns a value for the requested
211           metadata field
212         - entry_extra_metadata_notify notifies observers of a change to an
213           extra metadata field
214         - entry_extra_metadata_gather returns the values of all extra metadata
215           fields
217         * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
218         (rb_shell_player_extra_metadata_cb):
219         Sync the display on extra metadata changes and emit dbus signals when
220         we can marshal the value.
222         * shell/rb-shell.c: (rb_shell_get_song_properties):
223         Implement rb_shell_song_get_properties using
224         rhythmdb_entry_gather_metadata.
226         * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
227         (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
228         * configure.ac:
229         Add GValue marshaller for python (until bug 351072 is fixed)
231         From #345592.
233 2006-10-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
235         * configure.ac:
236         * data/rhythmbox.schemas:
237         * plugins/Makefile.am:
238         * plugins/power-manager/Makefile.am:
239         * plugins/power-manager/power-manager.rb-plugin.desktop.in:
240         * plugins/power-manager/rb-power-manager-plugin.c:
241         (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
242         (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
243         (playing_changed_cb), (impl_activate), (impl_deactivate):
244         gnome-power-manager integration: inhibit suspend while playing.
245         Fixes #344979.
247 2006-10-02  James Livingston  <doclivingston@gmail.com>
249         update by: Aloriel  <jorge.gonzalez.gonzalez@hispalinux.es>
250         and Alex Lancaster  <alexl@users.sourceforge.net>
252         * help/C/rhythmbox.xml: fix some mispellings and grammer.
253         Fixes #353143, #353146 and #353147.
255 ============ Version 0.9.6
257 2006-10-01  James Livingston  <doclivingston@gmail.com>
259         * configure.ac: bump version to 0.9.6. enable tag-writing and
260         ipod-writing by default
262         * NEWS: update NEWS
264 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
266         patch by:  William Jon McCann  <mccann@jhu.edu>
268         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
269         Use a local GError in case no error pointer pointer is passed in.
270         From bug #358396.
272 2006-09-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
274         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
275         Don't reference members of freed structures.
277 2006-09-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
279         patch by:  William Jon McCann  <mccann@jhu.edu>
281         * player/rb-recorder-gst.c: (rb_recorder_burn):
282         Drop GDK lock before entering n-c-b.  Fixes #353894?
284 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
286         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
287         (impl_activate):
288         Handle error/hangup conditions on the LIRC connection.  Fixes #358049.
290 2006-09-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
292         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
293         Call lirc_init before lirc_readconfig so we don't crash if the user's
294         .lircrc file has any mode sections. Fixes #357419.
296 2006-09-24  James Livingston  <doclivingston@gmail.com>
298         * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
299         if we get called twice, as that can happen. Fixes #357214.
301 2006-09-24  James Livingston  <doclivingston@gmail.com>
303         * backends/rb-encoder.h: add "file access" error
305         * lib/rb-file-helpers.c: (rb_dot_dir):
306         * podcast/rb-podcast-manager.c:
307         (rb_podcast_manager_download_file_info_cb): remove directory creation
308         race condition.
310         * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
311         (create_parent_dirs), (rb_encoder_gst_encode): check result of
312         directory creation. Fixes #347743
314 2006-09-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
316         * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
317         Strip trailing whitespace
319 2006-09-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
321         * rhythmdb/Makefile.am:
322         * rhythmdb/rhythmdb-private.h:
323         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
324         (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
325         * rhythmdb/rhythmdb-tree.h:
326         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
327         (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
328         * rhythmdb/rhythmdb.h:
329         Rather than aborting, show an error and refuse to load the database when
330         it appears to come from the future.  From bug #350304.
332 2006-09-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
334         * bindings/python/rhythmdb.override:
335         Make entry_foreach usable.
337 2006-09-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
339         * sources/rb-podcast-source.c: (rb_podcast_source_init):
340         Scale the icon so it matches the rest of the sources.
341         Fixes #351410.
343 2006-09-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
345         * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
346         (rhythmdb_property_model_set_query_model_internal),
347         (rhythmdb_property_model_row_inserted_cb),
348         (rhythmdb_property_model_prop_changed_cb),
349         (rhythmdb_property_model_entry_removed_cb),
350         (rhythmdb_property_model_delete),
351         (rhythmdb_property_model_perform_sync):
352         Use the hash table to track hidden entries, rather than visible
353         entries.  Cuts memory usage fairly significantly.  From bug #347425.
355 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
357         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
358         Patch from Christian Becke to fix compilation with -O3, bug #355945.
360 2006-09-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
362         * sources/rb-ipod-source.c: (add_rb_playlist),
363         (impl_move_to_trash), (impl_delete_thyself):
364         Delete ipod playlists when the ipod source is deleted.  Fixes #355235.
366         * sources/rb-sourcelist.c: (rb_sourcelist_remove):
367         Make sure we don't leave the sourcelist thinking a deleted source is
368         still playing.  Fixes nothing.
370 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
372         * shell/rb-shell.c:
373         Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
374         'Music->Import Folder' menu item for better icon theme coverage.
375         Fixes #354575.
377 2006-09-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
379         * rhythmdb/rhythmdb-private.h:
380         * rhythmdb/rhythmdb.c: (rhythmdb_init),
381         (rhythmdb_start_action_thread), (rhythmdb_finalize),
382         (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
383         (rhythmdb_load), (rhythmdb_save_async):
384         Use a limited thread pool for adding URIs to the database.
385         Fixes #352494.
387 2006-09-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
389         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
390         Do something like the previous change, but for gstreamer 0.10
391         this time.  Oops.  Really fixes #349569.
393 2006-09-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
395         * backends/gstreamer/rb-player-gst.c: (error_cb):
396         Ignore 'internal data flow error' messages if we've already got an
397         error for the file.  Fixes #349569.
399 2006-09-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
401         * shell/rb-shell-clipboard.c:
402         (rb_shell_clipboard_playlist_deleted_cb):
403         Rebuild 'add to playlist' menu before removing actions for deleted
404         playlists, and don't unref the action, as we never had a reference on
405         it to begin with.  Fixes #354599.
407 2006-09-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
409         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
410         (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
411         Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
413 2006-09-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
415         * daapsharing/rb-daap-connection.c: (handle_playlists):
416         Reverse the list of playlists on the DAAP server so it ends up in the
417         right order.  Fixes #353926.
419 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
421         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
422         Fully process each code so the LIRC client returns to its normal state
423         when we're done.  Makes LIRC actually work properly for me.
425 2006-09-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
427         patch by: Ed Catmur  <ed@catmur.co.uk>
429         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
430         (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
431         Don't show unused GdkWindows in SexyIconEntry.  Fixes #353671.
433 2006-09-02  William Jon McCann  <mccann@jhu.edu>
435         patch by: James Livingston <doclivingston@gmail.com>
437         * configure.ac:
438         * data/rhythmbox.schemas:
439         * metadata/Makefile.am:
440         * plugins/Makefile.am:
441         * plugins/audiocd/.cvsignore:
442         * plugins/audiocd/Makefile.am:
443         * plugins/audiocd/audiocd.rb-plugin.desktop.in:
444         * plugins/audiocd/rb-audiocd-plugin.c:
445         (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
446         (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
447         (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
448         (end_cd_drive_monitor), (begin_cd_drive_monitor),
449         (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
450         (rb_audiocd_plugin_playing_uri_changed_cb),
451         (nautilus_burn_drive_get_device),
452         (rb_audiocd_plugin_source_deleted), (create_source_cb),
453         (impl_activate), (_delete_cb), (impl_deactivate):
454         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
455         (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
456         * shell/main.c: (main):
457         * shell/rb-removable-media-manager.c:
458         (rb_removable_media_manager_finalize),
459         (rb_removable_media_manager_load_media),
460         (rb_removable_media_manager_mount_volume),
461         (rb_removable_media_manager_scan):
462         * sources/Makefile.am:
463         * sources/rb-audiocd-source.c:
464         * sources/rb-audiocd-source.h:
465         Make auto CD support a plugin.
467         Fixes #349415.
469 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
471         * daapsharing/rb-daap-connection.c: (handle_song_listing):
472         Add a final rhythmdb_commit to make sure all songs from the share show
473         up in the daap source.  Fixes #353913.
475 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
477         * sources/rb-sourcelist-model.c:
478         (rb_sourcelist_model_drag_data_received),
479         (rb_sourcelist_model_row_drop_possible):
480         Re-enable dragging of a set of tracks to the source list to create a
481         new static playlist.  Fixes #353893.
483 2006-09-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
485         * widgets/bacon-volume.c: (cb_button_timeout):
486         Actually drop the GDK lock, rather than returning while holding it.
487         Fixes #353895.
489 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
491         * plugins/generic-player/rb-generic-player-source.c:
492         (rb_generic_player_source_constructor),
493         (rb_generic_player_source_get_device_info), (impl_delete_thyself),
494         (rb_generic_player_source_load_songs), (load_playlist_file),
495         (default_load_playlists), (get_hal_context):
496         Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
497         Fixes #353483.
499 2006-08-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
501         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
502         Canonicalise URIs received from gnome-vfs file monitor.
503         Fixes #353447.
505 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
507         * help/C/rhythmbox.xml: unbreak help build
508         * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
509         Unbuffer the IO channel.  Fixes some weirdness for me.
511 2006-08-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
513         * help/C/rhythmbox.xml:
514         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
515         (impl_activate), (impl_deactivate):
516         Add 'playpause' LIRC command.
518 2006-08-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
520         * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
521         (rb_source_finalize):
522         Remove idle callbacks in dispose, rather than finalize. Fixes crashes
523         when disconnecting generic audio players.
525 2006-08-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
527         patch by: Paolo Borelli  <pborelli@katamail.com>
529         * plugins/rb-python-plugin.c: (rb_python_object_get_type):
530         Fix a small leak.
532 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
534         * backends/gstreamer/rb-player-gst.c:
535         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
536         Don't actually disable the seek bar for non-seekable songs,
537         because we can't reliably tell yet.
539 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
541         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
542         (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
543         (db_entry_deleted_cb), (rb_daap_share_server_start),
544         (rb_daap_share_server_stop):
545         * rhythmdb/rhythmdb-private.h:
546         * rhythmdb/rhythmdb-tree.c: (save_entry):
547         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
548         (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
549         (rhythmdb_entry_get_ulong):
550         * rhythmdb/rhythmdb.h:
551         Give db entries a numeric ID property, replacing the daap server's
552         entry->id map.  From #347665.
554 2006-08-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
556         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
557         * widgets/rb-header.c: (rb_header_class_init),
558         (rb_header_set_property), (rb_header_get_property),
559         (rb_header_set_playing_entry), (rb_header_sync),
560         (rb_header_sync_time):
561         * widgets/rb-header.h:
562         Add a 'seekable' property on RBHeader, and use it to make the seek bar
563         insensitive when the player backend tells us we can't seek in the
564         current song.  From #330410.
566 2006-08-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
568         * widgets/rb-song-info.c: (rb_song_info_update_buttons):
569         Don't try to unref previous/next entries if they aren't there.
570         Fixes #351806.
572 2006-08-15  James Livingston  <doclivingston@gmail.com>
574         * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
575         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
576         mountpoint into a RBRefString and compare equality of those, rather
577         than doign lots of strcmp()s.
579         * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
580         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
581         status notification as well as the visibility update in an idle
582         callback. Makes it take much less time to update after a volume
583         mount/unmount event.
585 2006-08-15  James Livingston  <doclivingston@gmail.com>
587         patch by: Christian Becke  <christianbecke@web.de>
589         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
590         multiple selections in the Import Folder dialog. Fixes #351414.
592 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
594         * shell/rb-shell.c: (construct_widgets):
595         * shell/rb-statusbar.c: (rb_statusbar_class_init),
596         (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
597         (rb_statusbar_get_property), (rb_statusbar_new):
598         * shell/rb-statusbar.h:
599         Use the connect-proxy signal from the UI manager, which covers all
600         action groups, rather than just one.  Fixes #351280.
602 2006-08-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
604         * widgets/rb-library-browser.c: (rebuild_child_model):
605         Fix query model reference counts (bug #349601).
607 2006-08-15  James Livingston  <doclivingston@gmail.com>
609         * backends/rb-player.c: (rb_player_interface_init): make the EOS and
610         Error signals be non-recursive. Fixes a highly-unlikely issue that
611         could have caused #322972.
613 2006-08-14  James Livingston  <doclivingston@gmail.com>
615         * sources/rb-auto-playlist-source.c:
616         (rb_auto_playlist_source_init):
617         * sources/rb-static-playlist-source.c:
618         (rb_static_playlist_source_init):
620 2006-08-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
622         * sources/rb-browser-source.c:
623         * sources/rb-import-errors-source.c:
624         * sources/rb-iradio-source.c:
625         * sources/rb-library-source.c:
626         * sources/rb-missing-files-source.c:
627         * sources/rb-play-queue-source.c:
628         * sources/rb-playlist-source.c:
629         * sources/rb-podcast-source.c:
630         * sources/rb-source.c:
631         Make entry-type a property on RBSource, rather than on most of its
632         subclasses.  Fixes #347288.
634 2006-08-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
636         * remote/dbus/rb-client.c: (parse_pattern),
637         (create_rb_shell_proxies), (main):
638         Actually implement %ag and %aG (genre) for --print-playing-format
640 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
642         * lib/rb-debug.c: (rb_debug_real):
643         No point allocating a buffer for the timestamp when we can just put it
644         on the stack.
646 2006-08-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
648         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
649         Don't ignore SIGPIPE.  gnome-vfs does it for us anyway.
651 2006-08-11  James Livingston  <doclivingston@gmail.com>
653         * podcast/rb-podcast-manager.c:
654         (rb_podcast_manager_update_synctime): fix accidental commit in the
655         last, which caused a warning.
657 2006-08-11  James Livingston  <doclivingston@gmail.com>
659         * data/rhythmbox.schemas:
660         * podcast/rb-podcast-manager.c:
661         (rb_podcast_manager_update_synctime): change the schema's
662         update-inteval value from 0 to 1, which causes it to update on
663         startup, rather than never. Should fixs #343818.
665 2006-08-11  James Livingston  <doclivingston@gmail.com>
667         * configure.ac:
668         * data/Makefile.am:
669         - data/rhythmbox.desktop.in:
670         + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
671         the @VERSION@ can be substituted in. Fix some issues with newer
672         bug-buddy versions. Fixes #348853.
674 2006-08-10  William Jon McCann  <mccann@jhu.edu>
676         * data/rhythmbox.schemas:
677         * plugins/Makefile.am:
678         * plugins/artdisplay/Makefile.am:
679         * plugins/audioscrobbler/Makefile.am:
680         * plugins/cd-recorder/Makefile.am:
681         * plugins/generic-player/Makefile.am:
682         * plugins/ipod/Makefile.am:
683         * plugins/lirc/Makefile.am:
684         * plugins/lyrics/Makefile.am:
685         * plugins/pythonconsole/Makefile.am:
686         * plugins/rb-module.c:
687         * plugins/rb-module.h:
688         * plugins/rb-plugin-manager.c: (configure_button_cb),
689         (plugin_manager_view_cell_cb), (cursor_changed_cb),
690         (plugin_manager_populate_lists), (plugin_manager_set_active),
691         (plugin_manager_toggle_active),
692         (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
693         (rb_plugin_manager_finalize):
694         * plugins/rb-plugin-manager.h:
695         * plugins/rb-plugin.c: (rb_get_plugin_paths),
696         (rb_plugin_find_file):
697         * plugins/rb-plugin.h:
698         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
699         (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
700         (rb_plugins_engine_init), (rb_plugin_info_free),
701         (load_plugin_module), (rb_plugins_engine_activate_plugin),
702         (rb_plugins_engine_deactivate_plugin),
703         (rb_plugins_engine_plugin_is_active),
704         (rb_plugins_engine_plugin_is_visible),
705         (rb_plugins_engine_plugin_is_configurable),
706         (rb_plugins_engine_configure_plugin),
707         (rb_plugins_engine_get_plugin_name),
708         (rb_plugins_engine_get_plugin_description),
709         (rb_plugins_engine_get_plugin_authors),
710         (rb_plugins_engine_get_plugin_website),
711         (rb_plugins_engine_get_plugin_copyright),
712         (rb_plugins_engine_get_plugin_icon):
713         * plugins/rb-plugins-engine.h:
714         * plugins/rb-python-module.c: (rb_python_module_init_python),
715         (rb_python_module_load), (rb_python_module_unload),
716         (rb_python_module_class_init), (rb_python_module_new),
717         (finalise_collect_cb), (rb_python_shutdown):
718         * plugins/rb-python-module.h:
719         * plugins/rb-python-plugin.c: (call_python_method),
720         (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
721         (impl_is_configurable), (rb_python_object_get_type):
722         * plugins/rb-python-plugin.h:
723         * plugins/rb/Makefile.am:
725         Use TRUE/FALSE in schemas to make it easier to read.  Remove
726         spurious whitespace.  Don't use libgnome explicitly.  Replace the
727         crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
728         Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc.  Don't
729         special case loading of dirs.  Install plugins to subdirectors of
730         PLUGINDIR so they don't interfere.  Install rb plugin to LIBDIR
731         not DATADIR.  Fixes #350352
733 2006-08-10  James Livingston  <doclivingston@gmail.com>
735         * daapsharing/rb-daap-connection.c: (connection_connected),
736         (connection_disconnected), (connection_operation_done):
737         * daapsharing/rb-daap-share.c: (name_collision_cb):
738         * plugins/generic-player/rb-generic-player-source.c:
739         (rb_generic_player_source_load_playlists):
740         * podcast/rb-podcast-manager.c:
741         (rb_podcast_manager_download_entry),
742         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
743         (end_job), (rb_podcast_manager_event_loop):
744         * rhythmdb/rhythmdb-property-model.c:
745         (rhythmdb_property_model_perform_sync):
746         * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
747         (rhythmdb_query_model_process_update), (idle_process_update),
748         (rhythmdb_query_model_reapply_query_cb):
749         * shell/rb-play-order.c: (sync_playing_entry_cb):
750         * shell/rb-removable-media-manager.c:
751         (rb_removable_media_manager_load_media):
752         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
753         (rb_shell_clipboard_sync),
754         (rb_shell_clipboard_entryview_changed_cb),
755         (rb_shell_clipboard_entries_changed_cb),
756         (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
757         (rebuild_playlist_menu_idle),
758         (rb_shell_clipboard_playlist_added_cb):
759         * shell/rb-shell-player.c: (notify_playing_idle),
760         (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
761         * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
762         (rb_shell_quit):
763         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
764         * sources/rb-library-source.c: (add_child_sources_idle):
765         * sources/rb-playlist-source-recorder.c: (response_idle_cb),
766         (burn_cd_idle):
767         * sources/rb-source.c: (update_visibility_idle):
768         * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
769         (cb_button_press):
770         * widgets/rb-druid.c: (idle_set_sensitive):
771         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
772         take the GDK lock when we should be, from #348588
774 2006-08-09  James Livingston  <doclivingston@gmail.com>
776         * rhythmdb/rhythmdb-property-model.c:
777         (rhythmdb_property_model_get_path),
778         (rhythmdb_property_model_get_value),
779         (rhythmdb_property_model_iter_next): don't attempt to verify the
780         iterator if it's the All value, since it isn't valid. Fixes a
781         potential crasher.
783 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
785         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
786         (rb_podcast_manager_download_file_info_cb),
787         (rb_podcast_manager_abort_download), (download_info_free),
788         (download_info_new):
789         Use gnome_vfs_async_get_file_info to figure out the local filename for
790         a podcast episode, so we get the filename from the target of any
791         redirects, rather than the source.  When creating the GnomeVFSURI, hide
792         the query string, then append it later, to stop gnome-vfs from
793         converting 'http://' to 'http:/'.  If the local filename ends with the
794         query string, remove it.  Fixes #330766 and #321991.
796 2006-08-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
798         * sources/rb-library-source.c: (impl_want_uri):
799         * sources/rb-static-playlist-source.c: (impl_want_uri):
800         Treat sftp:// URIs as likely indicators of songness.
802 2006-08-07  James Livingston  <doclivingston@gmail.com>
804         * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
805         remote tracks with GStreamer 0.10, and remember their visibility like
806         local ones.
808 2006-08-07  James Livingston  <doclivingston@gmail.com>
810         * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
811         apparently it's a borrowed reference. Should fix #347072.
813 2006-08-06  James Livingston  <doclivingston@gmail.com>
815         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
816         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
817         (rb_shuffle_play_order_get_previous),
818         (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
819         (remove_from_history), (add_randomly_to_history),
820         (rb_shuffle_sync_history_with_query_model),
821         (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
822         (query_model_and_history_contents_match): remove the tentatative
823         history stuff, which is from older code, like we did for -random a few
824         weeks ago.
826 2006-08-06  James Livingston  <doclivingston@gmail.com>
828         * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
829         (rb_queue_play_order_get_previous):
830         * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
831         (rb_random_play_order_go_next),
832         (rb_random_play_order_get_previous), (rb_random_db_changed):
833         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
834         (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
835         (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
836         (rb_shuffle_db_changed), (rb_shuffle_entry_added),
837         (rb_shuffle_entry_removed),
838         (query_model_and_history_contents_match):
839         * shell/rb-play-order.c: (rb_play_order_query_model_changed),
840         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
841         (default_has_next), (default_has_previous),
842         (rb_play_order_model_not_empty): Fix assorted refcounting issues in
843         various play orders, after reviewing the code. Should fix #349601.
845 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
847         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
848         Pass the items_per_notification parameter to
849         gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
850         with some versions of python.
852 2006-08-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
854         * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
855         Don't try to draw the icon if the drawable area is too small.
856         Fixes #349838.
858 2006-08-04  Ryan P Skadberg  <skadz@stigmata.org>
860         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
862         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
864 2006-08-05  James Livingston  <doclivingston@gmail.com>
866         * configure.ac: tell libtool not to check for C++/fortran/ etc
867         compilers
869         * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
870         watch, to fix some gconf warnings.
872 2006-08-04  James Livingston  <doclivingston@gmail.com>
874         patch by: William Jon McCann  <mccann@jhu.edu>
876         * shell/main.c: (main): use GOption instead of popt. Fixes #346930
878 2006-08-04  James Livingston  <doclivingston@gmail.com>
880         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
881         actually fix #349722 this time
883 2006-08-04  James Livingston  <doclivingston@gmail.com>
885         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
886         to seach for local art from http:// URIs, or those gnome-vfs doesn't
887         know about. Fixes #348571.
889 2006-08-03  Benjamin Otte  <in7y118@public.uni-hamburg.de>
891         various fixes for valgrind complaints:
892         * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
893         (init_rb_tree_dnd_data):
894           free the associated target list, too
895         * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
896           initialize allocation.{x,y,width,height} correctly
897         * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
898         (rb_entry_view_constructor):
899           free strings when no longer needed
901 2006-08-03  James Livingston  <doclivingston@gmail.com>
903         * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
904         real GtkTreeModel not the filter. Fixes #349722
906 2006-08-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
908         * backends/gstreamer/rb-player-gst.c:
909         Only use DAAP seek hacks for GStreamer 0.8 builds.
911         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
912         (rb_daap_src_open):
913         * daapsharing/rb-daap-src.h:
914         Implement normal GStreamer seeking for GStreamer 0.10 builds.
916         * sources/rb-daap-source.c: (rb_daap_source_class_init),
917         (rb_daap_source_get_headers):
918         * sources/rb-daap-source.h:
919         Reimplement rb_daap_source_get_headers for the case where we've
920         already got the byte offset.  Add a small hack to
921         rb_daap_source_class_init to prevent the linker from dropping
922         rb-daap-src.o entirely.
924         Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
926 2006-08-02  James Livingston  <doclivingston@gmail.com>
928         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
929         (handle_song_listing), (handle_playlist_entries),
930         (rb_daap_connection_dispose):
931         * sources/rb-daap-source.c: (_add_location_to_playlist),
932         (rb_daap_source_connection_cb): make the daap code use RBRefStrings
933         for playlist URIs, not pointless duplicate strings. From #347425.
935 2006-08-02  James Livingston  <doclivingston@gmail.com>
937         * data/rhythmbox.schemas:
938         * lib/rb-preferences.h:
939         * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
940         (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
941         (plugin_manager_set_active), (plugin_manager_toggle_active),
942         (plugin_manager_get_selected_plugin), (name_search_cb),
943         (plugin_manager_construct_tree), (rb_plugin_manager_new),
944         (rb_plugin_manager_finalize):
945         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
946         (rb_plugins_engine_load_all), (rb_plugin_info_free),
947         (rb_plugins_engine_plugin_is_visible),
948         (rb_plugins_engine_plugin_visible_cb):
949         * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
950         per-user plugins, and 2) hide plugins from the manager UI. From #349395
952 2006-08-02  James Livingston  <doclivingston@gmail.com>
954         * sources/rb-sourcelist-model.c:
955         (rb_sourcelist_model_drag_data_received): don't crash if we didn't
956         drop on a source. Fixes #349580.
958 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
960         * configure.ac:
961         * daapsharing/rb-daap-dialog.c:
962         * daapsharing/rb-daap-dialog.h:
963         * shell/Makefile.am:
964         * sources/Makefile.am:
965         * sources/rb-daap-source.c: (connection_auth_cb),
966         (rb_daap_source_connection_cb), (rb_daap_source_activate):
967         Add gnome-keyring support for DAAP passwords and use
968         gnome-password-dialog instead of our own.  
969         Patch mostly by James Livingston.  Fixes bug #330346.
971 2006-07-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
973         * shell/rb-shell-player.c:
974         (rb_shell_player_set_playing_source_internal),
975         (rb_shell_player_sync_with_selected_source):
976         Remove call to rb_source_have_url, as we never did anything with the
977         result.
979         * sources/rb-browser-source.c: (rb_browser_source_class_init):
980         * sources/rb-import-errors-source.c:
981         (rb_import_errors_source_class_init):
982         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
983         (impl_song_properties), (impl_want_uri), (impl_add_uri):
984         * sources/rb-library-source.c: (rb_library_source_class_init),
985         (impl_want_uri), (impl_add_uri):
986         * sources/rb-missing-files-source.c:
987         (rb_missing_files_source_class_init):
988         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
989         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
990         (impl_want_uri), (impl_add_uri):
991         * sources/rb-source.c: (rb_source_class_init),
992         (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
993         * sources/rb-source.h:
994         * sources/rb-static-playlist-source.c:
995         (rb_static_playlist_source_class_init), (search_action_changed),
996         (impl_want_uri):
997         Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
998         When adding a URI, want_uri gets called for each source; the one that
999         wants it most gets the URI passed to its add_uri method.
1000         
1001         * shell/rb-shell.h:
1002         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1003         (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1004         (handle_playlist_entry_cb), (rb_shell_load_uri):
1005         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1006         Use want_uri and add_uri to simplify and make generic
1007         rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1009         If a source that returns TRUE from try_playlist wants all the URIs in
1010         the playlist, give it the playlist URI instead.  This retains the
1011         existing behaviour for adding iradio playlists.
1013         * bindings/python/rb.defs: Update for above changes.
1015         From bug #347097.
1017 2006-07-31  James Livingston  <doclivingston@gmail.com>
1019         * data/Makefile.am:
1020         * data/generate-keys.sh: fix the build I broke with the last commit.
1021         Oops.
1023 2006-07-31  James Livingston  <doclivingston@gmail.com>
1025         * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1026         in a long time. Fixes #349179.
1028 2006-07-30  James Livingston  <doclivingston@gmail.com>
1030         * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1031         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1032         * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1034 2006-07-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1036         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1037         Don't tell the browser the query is still pending when doing a subset
1038         search.  Fixes #348617 again.
1040 2006-07-30  James Livingston  <doclivingston@gmail.com>
1042         * bindings/python/rb.override: remove an extraneous _wrap_ from the
1043         override definition. Fixes #348893.
1045 2006-07-30  James Livingston  <doclivingston@gmail.com>
1047         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1048         rb_error_dialog, as it's above this in the stack.
1050         * lib/rb-util.c: (rb_gvalue_compare):
1051         * lib/rb-util.h: change the return type to int, as we're returning
1052         -1/0/1
1054         * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1055         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1056         (rb_query_creator_set_sorting): minor leak fixes
1058 2006-07-28  James Livingston  <doclivingston@gmail.com>
1060         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1061         (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1062         (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1063         (get_or_create_genre), (remove_entry_from_album),
1064         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1065         (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1066         (rhythmdb_tree_entry_lookup_by_location),
1067         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1068         (rhythmdb_hash_tree_foreach),
1069         (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1070         threadsafe. Fix a nasty problem if the _foreach callback function
1071         caused the addition/removal of entries.
1073 2006-07-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1075         * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1076         Clear selection before changing our idea of the model.  Fixes crashes
1077         on model changes while playing.
1079 2006-07-27  James Livingston  <doclivingston@gmail.com>
1081         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1082         a missing rb_refstring_unref.
1084         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1085         (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1086         oops. should hopefully fix the crash reported on #347425.
1088 2006-07-27  James Livingston  <doclivingston@gmail.com>
1090         * backends/gstreamer/rb-encoder-gst.c:
1091         (get_profile_from_mime_type): fix encoding error issue, from #310774.
1093         * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1094         thread-safety issue.
1096 2006-07-27  James Livingston  <doclivingston@gmail.com>
1098         * rhythmdb/rb-refstring.c: (rb_refstring_find):
1099         * rhythmdb/rb-refstring.h: add a new function which returns the
1100         RBRefString that matches a string, but never creates a new one.
1102         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1103         (monitor_entry_file), (rhythmdb_check_changed_file),
1104         (rhythmdb_directory_change_cb):
1105         * rhythmdb/rhythmdb-private.h:
1106         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1107         (unparent_entries), (free_unknown_entries),
1108         (rhythmdb_tree_parser_start_element),
1109         (rhythmdb_tree_parser_end_element), (save_entry),
1110         (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1111         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1112         (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1113         (rhythmdb_tree_entry_type_registered):
1114         * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1115         (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1116         (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1117         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1118         (rhythmdb_process_metadata_load),
1119         (rhythmdb_process_file_created_or_modified),
1120         (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1121         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1122         (action_thread_main), (rhythmdb_entry_set_internal),
1123         (rhythmdb_entry_move_to_trash_set_error),
1124         (rhythmdb_entry_move_to_trash),
1125         (rhythmdb_entry_lookup_by_location),
1126         (rhythmdb_entry_lookup_by_location_refstring),
1127         (default_sync_metadata), (rhythmdb_entry_get_string),
1128         (rhythmdb_entry_get_refstring):
1129         * rhythmdb/rhythmdb.h:
1130         * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1131         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1132         (rb_playlist_source_row_deleted),
1133         (rb_playlist_source_entry_added_cb),
1134         (rb_playlist_source_location_in_map),
1135         (rb_playlist_source_add_to_map): Make the LOCATION field of
1136         RhythmDBEntry be a RBRefString instead, which reduces some of the
1137         memory-fragmentation on startup and saves RBStaticPlaylistSource
1138         duplicating all the strings.
1140 2006-07-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1142         * rhythmdb/rhythmdb-query-model.c:
1143         (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1144         * rhythmdb/rhythmdb-query-model.h:
1145         Add function to copy contents from one query model to another,
1146         filtered by the destination model's query.
1148         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1149         Use the above to create a new query model for subset searches, rather
1150         than filtering the existing model. Fixes #348617.
1152 2006-07-25  James Livingston  <doclivingston@gmail.com>
1154         * rhythmdb/rhythmdb-query-model.c:
1155         (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1156         lost from static playlists. Yet again. Fixes #323095.
1158         * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1159         case for the above, so that we should know if a change will break it
1160         again.
1162 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1164         * data/rhythmbox.schemas: Fix for last commit.
1166         * podcast/rb-podcast-manager.c:
1167         (rb_podcast_manager_download_entry),
1168         (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1169         (rb_podcast_manager_db_entry_deleted_cb):
1170         * rhythmdb/rhythmdb-property-model.c:
1171         (rhythmdb_property_model_set_query_model_internal),
1172         (rhythmdb_property_model_set_property),
1173         (rhythmdb_property_model_finalize),
1174         (rhythmdb_property_model_drag_data_get):
1175         * rhythmdb/rhythmdb-query-model.c:
1176         (rhythmdb_query_model_set_query_internal),
1177         (rhythmdb_query_model_set_property),
1178         (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1179         * rhythmdb/rhythmdb-query-model.h:
1180         * sources/rb-browser-source.c: (rb_browser_source_dispose),
1181         (rb_browser_source_do_query):
1182         * sources/rb-import-errors-source.c:
1183         (rb_import_errors_source_constructor):
1184         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1185         (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1186         (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1187         (impl_search), (impl_get_status),
1188         (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1189         (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1190         (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1191         * sources/rb-missing-files-source.c:
1192         (rb_missing_files_source_constructor),
1193         (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1194         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1195         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1196         (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1197         (rb_playlist_source_save_playlist),
1198         (rb_playlist_source_new_from_xml),
1199         (rb_playlist_source_save_to_xml),
1200         (rb_playlist_source_setup_entry_view),
1201         (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1202         (rb_playlist_source_get_query_model),
1203         (rb_playlist_source_mark_dirty),
1204         (rb_playlist_source_location_in_map),
1205         (rb_playlist_source_add_to_map):
1206         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1207         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1208         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1209         (impl_delete), (rb_podcast_source_state_prefs_sync),
1210         (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1211         (impl_get_config_widget), (rb_podcast_source_add_feed),
1212         (rb_podcast_source_cmd_download_post),
1213         (rb_podcast_source_cmd_cancel_download),
1214         (rb_podcast_source_cmd_delete_feed),
1215         (rb_podcast_source_cmd_update_feed),
1216         (rb_podcast_source_cmd_update_all),
1217         (rb_podcast_source_cb_interval_changed_cb),
1218         (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1219         (rb_podcast_source_entry_activated_cb):
1220         * sources/rb-source.c: (rb_source_finalize),
1221         (rb_source_set_query_model_internal), (rb_source_set_property),
1222         (default_get_status):
1223         * sources/rb-static-playlist-source.c:
1224         (rb_static_playlist_source_dispose),
1225         (rb_static_playlist_source_finalize),
1226         (rb_static_playlist_source_constructor),
1227         (rb_static_playlist_source_do_query):
1228         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1229         (rb_entry_view_set_shell_player_internal),
1230         (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1231         (rb_entry_view_set_model), (rb_entry_view_append_column),
1232         (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1233         (rb_entry_view_set_state):
1234         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1235         (rb_library_browser_finalize), (rb_library_browser_new),
1236         (update_browser_property_visibilty), (view_selection_reset_cb),
1237         (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1238         (restore_selection), (rebuild_child_model),
1239         (rb_library_browser_set_selection), (rb_library_browser_set_model):
1240         * widgets/rb-property-view.c:
1241         (rb_property_view_set_model_internal),
1242         (rb_property_view_set_selection_mode), (rb_property_view_reset),
1243         (rb_property_view_get_model), (rb_property_view_set_model),
1244         (rb_property_view_get_num_properties),
1245         (rb_property_view_set_selection),
1246         (rb_property_view_append_column_custom),
1247         (rb_property_view_set_search_func):
1248         Fix some more leaks.  Mostly RhythmDBQueryModel ref leaks.
1249         From #347446
1251 2006-07-25  William Jon McCann  <mccann@jhu.edu>
1253         * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1254         Work around a small n-c-b API change.
1256 2006-07-25  James Livingston  <doclivingston@gmail.com>
1258         * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1260         * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1261         (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1262         aborting entry-emission on finalise
1264 2006-07-25  James Livingston  <doclivingston@gmail.com>
1266         * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1267         warning when entry is NULL.
1269 2006-07-25  James Livingston  <doclivingston@gmail.com>
1271         * help/sv/.cvsignore:
1272         * lib/.cvsignore:
1273         * plugins/generic-player/.cvsignore:
1274         * remote/.cvsignore:
1275         * remote/dbus/.cvsignore:
1276         * shell/.cvsignore:
1277         * tests/.cvsignore: more .cvsignore updates
1279 2006-07-24  James Livingston  <doclivingston@gmail.com>
1281         * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1282         (transparent_expose_event), (make_transparent_again),
1283         (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1284         apply a patch for EggTrayIcon so that it handled transparent panels
1285         correctly. Patch by DanWinship  <danw@novell.com> from bug 150726.
1286         Fixes #348208.
1288 2006-07-24  James Livingston  <doclivingston@gmail.com>
1290         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1291         queries rather than taking ownership when parsing a subquery. Fixed a
1292         crash exposed by the recent leak fixes.
1294         * doc/reference/tmpl/disclosure-widget.sgml:
1295         * doc/reference/tmpl/rb-debug.sgml:
1296         * doc/reference/tmpl/rb-metadata.sgml:
1297         * doc/reference/tmpl/rb-play-order.sgml:
1298         * doc/reference/tmpl/rb-playlist-manager.sgml:
1299         * doc/reference/tmpl/rb-playlist-source.sgml:
1300         * doc/reference/tmpl/rb-shell-player.sgml:
1301         * doc/reference/tmpl/rb-shell.sgml:
1302         * doc/reference/tmpl/rb-song-display-box.sgml:
1303         * doc/reference/tmpl/rhythmbox-unused.sgml:
1304         * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1306 2006-07-24  James Livingston  <doclivingston@gmail.com>
1308         * lib/.cvsignore:
1309         * plugins/artdisplay/.cvsignore:
1310         * plugins/artdisplay/artdisplay/.cvsignore:
1311         * plugins/lyrics/.cvsignore:
1312         * plugins/pythonconsole/.cvsignore:
1313         * plugins/rb/.cvsignore: add/update various .cvsignore files
1315 2006-07-24  James Livingston  <doclivingston@gmail.com>
1317         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1318         (rb_refstring_ref): don't emit critical warnings when the refstring
1319         is NULL, as that happens often for podcast metadata.
1321         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1322         missing rhythmdb_entry_ref call
1324 2006-07-23  William Jon McCann  <mccann@jhu.edu>
1326         * bindings/python/rb.override:
1327         * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1328         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1329         (playlist_row_inserted_cb):
1330         * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1331         * plugins/rb-plugin-manager.c:
1332         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1333         (rb_podcast_manager_copy_post),
1334         (rb_podcast_manager_db_entry_deleted_cb),
1335         (rb_podcast_manager_insert_feed):
1336         * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1337         (rb_refstring_ref), (rb_refstring_get_sort_key):
1338         * rhythmdb/rhythmdb-private.h:
1339         * rhythmdb/rhythmdb-property-model.c:
1340         (rhythmdb_property_model_set_property),
1341         (rhythmdb_property_model_get_property),
1342         (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1343         (rhythmdb_property_model_row_inserted_cb),
1344         (rhythmdb_property_model_prop_changed_cb),
1345         (rhythmdb_property_model_compare),
1346         (rhythmdb_property_model_insert),
1347         (rhythmdb_property_model_iter_from_string),
1348         (rhythmdb_property_model_get_column_type),
1349         (rhythmdb_property_model_get_iter),
1350         (rhythmdb_property_model_get_value),
1351         (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1352         (rhythmdb_property_model_enable_drag):
1353         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1354         (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1355         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1356         (rhythmdb_query_model_chain),
1357         (rhythmdb_query_model_entry_added_cb),
1358         (rhythmdb_query_model_entry_changed_cb),
1359         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1360         (rhythmdb_query_model_add_entry),
1361         (rhythmdb_query_model_insert_into_main_list),
1362         (rhythmdb_query_model_insert_into_limited_list),
1363         (rhythmdb_query_model_remove_from_main_list),
1364         (rhythmdb_query_model_remove_from_limited_list),
1365         (rhythmdb_query_model_update_limited_entries),
1366         (rhythmdb_query_model_emit_reorder),
1367         (rhythmdb_query_model_do_reorder),
1368         (rhythmdb_query_model_do_insert),
1369         (rhythmdb_query_model_move_entry),
1370         (rhythmdb_query_model_remove_entry),
1371         (rhythmdb_query_model_entry_to_iter),
1372         (rhythmdb_query_model_iter_to_entry),
1373         (rhythmdb_query_model_get_previous_from_entry),
1374         (rhythmdb_query_model_row_draggable),
1375         (rhythmdb_query_model_drag_data_delete),
1376         (rhythmdb_query_model_drag_data_get),
1377         (rhythmdb_query_model_drag_data_received),
1378         (rhythmdb_query_model_row_drop_possible),
1379         (rhythmdb_query_model_row_drop_position),
1380         (rhythmdb_query_model_add_results),
1381         (rhythmdb_query_model_query_complete),
1382         (rhythmdb_query_model_get_column_type),
1383         (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
1384         (rhythmdb_query_model_iter_nth_child),
1385         (apply_updated_entry_sequence),
1386         (rhythmdb_query_model_child_index_to_base_index),
1387         (rhythmdb_query_model_get_entry_index),
1388         (rhythmdb_query_model_base_row_inserted),
1389         (rhythmdb_query_model_base_row_deleted),
1390         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1391         (rhythmdb_query_model_location_sort_func),
1392         (rhythmdb_query_model_title_sort_func),
1393         (rhythmdb_query_model_album_sort_func),
1394         (rhythmdb_query_model_artist_sort_func),
1395         (rhythmdb_query_model_track_sort_func),
1396         (rhythmdb_query_model_double_ceiling_sort_func),
1397         (rhythmdb_query_model_ulong_sort_func),
1398         (rhythmdb_query_model_date_sort_func),
1399         (rhythmdb_query_model_string_sort_func),
1400         (rhythmdb_query_model_within_limit):
1401         * rhythmdb/rhythmdb-tree.c: (unparent_entries),
1402         (rhythmdb_tree_parser_start_element),
1403         (rhythmdb_tree_parser_end_element),
1404         (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
1405         (write_elt_name_open), (write_elt_name_close), (save_entry_string),
1406         (save_entry_int), (save_entry_ulong), (save_entry_boolean),
1407         (save_entry_uint64), (save_entry_double), (save_entry),
1408         (set_entry_album), (rhythmdb_tree_entry_new),
1409         (get_genres_hash_for_type), (get_or_create_genre),
1410         (get_or_create_artist), (get_or_create_album), (remove_child),
1411         (remove_entry_from_album), (rhythmdb_tree_entry_set),
1412         (rhythmdb_tree_entry_delete), (remove_one_song),
1413         (rhythmdb_tree_entry_delete_by_type),
1414         (rhythmdb_tree_evaluate_query), (search_match_properties),
1415         (evaluate_conjunctive_subquery), (do_conjunction),
1416         (conjunctive_query_songs), (clone_remove_ptr_array_index),
1417         (conjunctive_query_albums), (conjunctive_query_artists),
1418         (conjunctive_query_genre), (conjunctive_query),
1419         (split_query_by_disjunctions), (do_query_recurse),
1420         (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
1421         (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1422         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1423         (hash_tree_artists_foreach), (hash_tree_genres_foreach):
1424         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1425         (extract_gtype_from_enum_entry),
1426         (extract_nice_name_from_enum_entry), (rhythmdb_init),
1427         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
1428         (rhythmdb_event_free), (rhythmdb_finalize),
1429         (rhythmdb_set_property), (rhythmdb_get_property),
1430         (rhythmdb_thread_create), (free_entry_changes),
1431         (emit_entry_changed), (sync_entry_changed),
1432         (process_added_entries_cb), (process_deleted_entries_cb),
1433         (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
1434         (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
1435         (rhythmdb_entry_insert), (rhythmdb_entry_new),
1436         (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
1437         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1438         (rhythmdb_entry_is_editable), (set_props_from_metadata),
1439         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1440         (rhythmdb_process_metadata_load),
1441         (rhythmdb_process_file_created_or_modified),
1442         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
1443         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
1444         (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
1445         (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
1446         (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
1447         (record_entry_change), (rhythmdb_entry_set_internal),
1448         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
1449         (rhythmdb_entry_move_to_trash_cb),
1450         (rhythmdb_entry_move_to_trash_set_error),
1451         (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
1452         (rhythmdb_nice_elt_name_from_propid),
1453         (rhythmdb_propid_from_nice_elt_name),
1454         (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
1455         (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
1456         (rhythmdb_compute_status_normal), (default_sync_metadata),
1457         (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
1458         (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
1459         (podcast_get_playback_uri), (podcast_data_destroy),
1460         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
1461         (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
1462         (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
1463         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1464         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
1465         (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
1466         * rhythmdb/rhythmdb.h:
1467         * shell/rb-play-order-linear-loop.c:
1468         (rb_linear_play_order_loop_get_next),
1469         (rb_linear_play_order_loop_get_previous):
1470         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1471         (rb_linear_play_order_get_previous):
1472         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
1473         * shell/rb-play-order-random.c: (get_query_model_contents):
1474         * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
1475         (get_query_model_contents):
1476         * shell/rb-play-order.c: (rb_play_order_constructor),
1477         (rb_play_order_finalize),
1478         (rb_play_order_set_playing_entry_internal),
1479         (rb_play_order_set_property), (rb_play_order_new),
1480         (rb_play_order_get_player), (rb_play_order_get_source),
1481         (rb_play_order_get_db), (rb_play_order_get_query_model),
1482         (rb_play_order_player_is_playing),
1483         (rb_play_order_set_playing_entry),
1484         (rb_play_order_get_playing_entry),
1485         (rb_play_order_playing_source_changed),
1486         (rb_play_order_query_model_changed),
1487         (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1488         (default_has_next), (default_has_previous),
1489         (sync_playing_entry_cb), (default_playing_entry_removed),
1490         (rb_play_order_has_next), (rb_play_order_get_next),
1491         (rb_play_order_go_next), (rb_play_order_has_previous),
1492         (rb_play_order_get_previous), (rb_play_order_go_previous),
1493         (rb_play_order_model_not_empty),
1494         (rb_play_order_update_have_next_previous):
1495         * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
1496         (rb_playlist_manager_save_playlists),
1497         (rb_playlist_manager_set_automatic_playlist),
1498         (rb_playlist_manager_cmd_edit_automatic_playlist),
1499         (_queue_track_cb), (rb_playlist_manager_get_playlists),
1500         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
1501         * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
1502         * shell/rb-shell-player.c: (rb_shell_player_constructor),
1503         (volume_pre_unmount_cb), (reemit_playing_signal),
1504         (notify_playing_idle), (rb_shell_player_open_playlist_url),
1505         (rb_shell_player_handle_eos_unlocked),
1506         (rb_shell_player_handle_eos), (rb_shell_player_init),
1507         (rb_shell_player_new), (rb_shell_player_get_playing_entry),
1508         (playlist_entry_cb), (rb_shell_player_open_entry),
1509         (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
1510         (rb_shell_player_set_play_order),
1511         (rb_shell_player_set_playback_state),
1512         (rb_shell_player_sync_play_order),
1513         (rb_shell_player_play_order_update_cb),
1514         (rb_shell_player_jump_to_current), (swap_playing_source),
1515         (rb_shell_player_do_previous), (rb_shell_player_do_next),
1516         (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
1517         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
1518         (rb_shell_player_entry_activated_cb),
1519         (rb_shell_player_property_row_activated_cb),
1520         (rb_shell_player_entry_changed_cb),
1521         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
1522         (rb_shell_player_pause),
1523         (rb_shell_player_get_playing_song_duration),
1524         (rb_shell_player_error), (error_cb), (tick_cb),
1525         (info_available_cb), (buffering_cb),
1526         (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
1527         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
1528         (rb_shell_jump_to_current):
1529         * sources/rb-auto-playlist-source.c:
1530         (rb_auto_playlist_source_finalize), (impl_receive_drag),
1531         (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
1532         (rb_auto_playlist_source_get_query):
1533         * sources/rb-auto-playlist-source.h:
1534         * sources/rb-browser-source.c: (rb_browser_source_do_query):
1535         * sources/rb-import-errors-source.c:
1536         (rb_import_errors_source_constructor):
1537         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
1538         * sources/rb-library-source.c: (filepath_parse_pattern):
1539         * sources/rb-missing-files-source.c:
1540         (rb_missing_files_source_constructor):
1541         * sources/rb-play-queue-source.c:
1542         (rb_play_queue_source_clear_queue),
1543         (rb_play_queue_source_track_info_cell_data_func):
1544         * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
1545         (rb_playlist_source_get_property), (playlist_iter_func),
1546         (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
1547         (rb_playlist_source_track_cell_data_func):
1548         * sources/rb-podcast-source.c: (construct_query_from_selection),
1549         (rb_podcast_source_post_status_cell_data_func),
1550         (rb_podcast_source_post_feed_cell_data_func),
1551         (rb_podcast_source_feed_title_search_func),
1552         (rb_podcast_source_post_date_cell_data_func):
1553         * sources/rb-source.c: (default_get_status),
1554         (rb_source_get_status), (rb_source_browser_toggled),
1555         (rb_source_update_play_statistics), (rb_source_search),
1556         (rb_source_get_config_widget), (default_add_to_queue),
1557         (rb_source_add_to_queue), (rb_source_receive_drag),
1558         (rb_source_gather_hash_keys):
1559         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
1560         (rb_sourcelist_model_is_row_visible),
1561         (rb_sourcelist_model_row_is_separator),
1562         (rb_sourcelist_model_drag_data_received), (path_is_droppable),
1563         (path_is_reorderable), (rb_sourcelist_model_row_draggable),
1564         (rb_sourcelist_model_drag_data_get):
1565         * sources/rb-sourcelist.c: (rb_sourcelist_append),
1566         (match_source_to_iter), (rb_sourcelist_source_to_iter),
1567         (rb_sourcelist_visible_source_to_iter),
1568         (rb_sourcelist_edit_source_name), (set_source_playing),
1569         (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
1570         (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
1571         (drop_received_cb), (row_activated_cb), (emit_show_popup),
1572         (key_release_cb), (name_notify_cb), (visibility_notify_cb),
1573         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
1574         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
1575         (rb_static_playlist_source_add_location_internal),
1576         (rb_static_playlist_source_row_inserted):
1577         * widgets/rb-entry-view.c: (type_ahead_search_func),
1578         (rb_entry_view_finalize), (rb_entry_view_set_model),
1579         (rb_entry_view_playing_cell_data_func),
1580         (rb_entry_view_rating_cell_data_func),
1581         (rb_entry_view_long_cell_data_func),
1582         (rb_entry_view_play_count_cell_data_func),
1583         (rb_entry_view_duration_cell_data_func),
1584         (rb_entry_view_year_cell_data_func),
1585         (rb_entry_view_quality_cell_data_func),
1586         (rb_entry_view_location_cell_data_func),
1587         (rb_entry_view_string_cell_data_func),
1588         (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
1589         (rb_entry_view_get_sorting_order),
1590         (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
1591         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
1592         (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
1593         (rb_entry_view_playing_song_changed), (harvest_entries),
1594         (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
1595         (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
1596         (set_column_visibility):
1597         * widgets/rb-entry-view.h:
1598         * widgets/rb-header.c: (rb_header_new),
1599         (rb_header_set_playing_entry), (rb_header_set_title):
1600         * widgets/rb-library-browser.c: (rebuild_child_model),
1601         (rb_library_browser_set_model):
1602         * widgets/rb-property-view.c:
1603         (rb_property_view_set_model_internal), (rb_property_view_finalize),
1604         (rb_property_view_set_property), (rb_property_view_get_property),
1605         (rb_property_view_reset), (rb_property_view_get_model),
1606         (rb_property_view_set_model), (rb_property_view_row_activated_cb),
1607         (rb_property_view_button_press_cb):
1608         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1609         (rb_query_creator_get_property), (rb_query_creator_load_query),
1610         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
1611         (rb_query_creator_get_query), (rb_query_creator_get_limit),
1612         (rb_query_creator_get_sort_order), (limit_toggled_cb),
1613         (lookup_row_by_widget), (remove_button_click_cb),
1614         (add_button_click_cb), (create_property_option_menu):
1615         * widgets/rb-song-info.c: (rb_song_info_constructor),
1616         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
1617         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
1618         (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
1619         Fix more leaks.  Mostly RhythmDBEntry ref leaks.  From #347446
1621 2006-07-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1623         * shell/rb-shell-player.c: (rb_shell_player_class_init),
1624         (rb_shell_player_get_property):
1625         Add a property providing access to the player backend object.
1627 2006-07-23  James Livingston  <doclivingston@gmail.com>
1629         * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
1630         (get_history), (rb_random_filter_history),
1631         (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
1632         remove the tentative history, since it appears to be a remanent from
1633         older play order code. The only thing it was doing was using up
1634         CPU-time and memory. From #345857
1636 2006-07-23  James Livingston  <doclivingston@gmail.com>
1638         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
1640         * shell/main.c: (main):
1641         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
1642         (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
1643         (rb_playlist_manager_get_property), (rb_playlist_manager_new),
1644         (rb_playlist_manager_load_playlists),
1645         (rb_playlist_manager_save_data):
1646         * shell/rb-playlist-manager.h:
1647         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
1648         (rb_shell_get_property), (rb_shell_sync_state),
1649         (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
1650         (construct_sources), (idle_handle_load_complete):
1651         * shell/rb-shell.h: Add a command-line option for changing the
1652         playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
1654 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1656         * daapsharing/rb-daap-share.c: (databases_cb):
1657         Make sure we set status codes on HTTP responses.
1659 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1661         * configure.ac:
1662         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1663         (chunked_message_finished), (send_chunked_file),
1664         (mapped_file_message_finished), (send_mapped_file), (databases_cb):
1665         Use GMappedFile to send local files to DAAP clients where possible.  
1666         iTunes can't seek properly in files sent using chunked transfer 
1667         encoding.  Also remove the useless bitrate calculation code, as we
1668         never even used the result anyway.  From #330410.
1670 2006-07-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1672         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
1674         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
1675         Enable multiple selection for 'import file'.  Fixes #347478.
1677 2006-07-20  Claudio Saavedra  <csaavedra@alumnos.utalca.cl>
1679         * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
1680         * metadata/rb-metadata-dbus-service.c: (main): Replace calls to 
1681         deprecated dbus_connection_disconnect () with dbus_connection_close ().
1682         Fixes #348098.
1684 2006-07-20  James Livingston  <doclivingston@gmail.com>
1686         * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
1687         aren't NULL before calling strstr. Fixes #347998.
1689 2006-07-19  James Livingston  <doclivingston@gmail.com>
1691         patch by: Alex Lancaster   <alexl@users.sourceforge.net>
1693         * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
1694         MB that only have years. Fixes #347906.
1696 2006-07-19  James Livingston  <doclivingston@gmail.com>
1698         * rhythmdb/rhythmdb-private.h:
1699         * rhythmdb/rhythmdb.c: (rhythmdb_init),
1700         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
1701         (_shutdown_foreach_swapped), (rhythmdb_shutdown),
1702         (rhythmdb_finalize), (timeout_rhythmdb_commit),
1703         (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
1704         (rhythmdb_execute_stat), (queue_stat_uri),
1705         (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
1706         (rhythmdb_load), (rhythmdb_entry_register_type),
1707         (rhythmdb_entry_register_type_alias): Keep track of outstanding
1708         asynchronous vfs operations, and cancel them when shutting down the
1709         DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
1711         * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
1712         (test_rhythmdb_shutdown): wait until the db has been finalised before
1713         continuing on to the next test.
1715 2006-07-19  James Livingston  <doclivingston@gmail.com>
1717         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
1718         right thing in the #ifdef. From #347832.
1720 2006-07-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1722         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1723         Fix compile warning.
1725 2006-07-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
1727         * rhythmdb/rhythmdb-query-model.c:
1728         (rhythmdb_query_model_set_property),
1729         (rhythmdb_query_model_reapply_query_cb):
1730         Ignore old query == new query case.
1731         Fixes auto playlists with time-relative queries.
1733         * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
1734         (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
1735         (rhythmdb_query_to_string):
1736         * rhythmdb/rhythmdb.h:
1737         Add debug helper for printing queries in case someone needs it again.
1739 2006-07-18  James Livingston  <doclivingston@gmail.com>
1741         patch by: Ståle Lyngaas  <staale@lyngaas.com>
1742         * sources/rb-audiocd-source.c: store the MB track ids in the database.
1743         Fixes #347832
1745         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
1746         write then into files.
1748 2006-07-17  William Jon McCann  <mccann@jhu.edu>
1750         * daapsharing/rb-daap-connection.c:
1751         (rb_daap_connection_set_property):
1752         * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
1753         (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
1754         (add_playlist_to_mlcl), (databases_cb):
1755         * daapsharing/rb-daap-sharing.c: (create_share):
1756         * iradio/rb-new-station-dialog.c:
1757         (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
1758         * iradio/rb-station-properties-dialog.c:
1759         (rb_station_properties_dialog_finalize),
1760         (rb_station_properties_dialog_set_property),
1761         (rb_station_properties_dialog_get_current_entry):
1762         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
1763         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
1764         * plugins/generic-player/rb-generic-player-source.c:
1765         (rb_generic_player_source_dispose), (rb_generic_player_source_new),
1766         (handle_playlist_entry_cb):
1767         * plugins/generic-player/rb-nokia770-source.c:
1768         (rb_nokia770_source_new), (hal_udi_is_nokia770):
1769         * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
1770         (visit_playlist_dirs), (hal_udi_is_psp):
1771         * podcast/rb-podcast-manager.c:
1772         * podcast/rb-podcast-properties-dialog.c:
1773         (rb_podcast_properties_dialog_finalize),
1774         (rb_podcast_properties_dialog_set_entry_view),
1775         (rb_podcast_properties_dialog_set_property):
1776         * rhythmdb/rhythmdb-property-model.c:
1777         * rhythmdb/rhythmdb-query-model.c:
1778         (rhythmdb_query_model_set_property),
1779         (rhythmdb_query_model_reapply_query_cb):
1780         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
1781         * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
1782         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1783         (rhythmdb_event_free), (rhythmdb_shutdown),
1784         (rhythmdb_thread_create), (action_thread_main),
1785         (rhythmdb_do_full_query_async_parsed),
1786         (rhythmdb_do_full_query_internal):
1787         * shell/main.c: (main):
1788         * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
1789         * shell/rb-play-order.c: (rb_play_order_finalize),
1790         (rb_play_order_set_player),
1791         (rb_play_order_set_playing_entry_internal),
1792         (rb_play_order_set_property),
1793         (rb_play_order_playing_source_changed),
1794         (rb_play_order_query_model_changed):
1795         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
1796         (rb_playlist_manager_set_source),
1797         (rb_playlist_manager_set_shell_internal),
1798         (rb_playlist_manager_set_property):
1799         * shell/rb-removable-media-manager.c:
1800         (rb_removable_media_manager_set_property),
1801         (rb_removable_media_manager_set_uimanager),
1802         (rb_removable_media_manager_cmd_eject_medium),
1803         (rb_removable_media_manager_cmd_copy_tracks):
1804         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
1805         (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
1806         (rb_shell_clipboard_set),
1807         (rb_shell_clipboard_cmd_add_to_playlist_new),
1808         (rb_shell_clipboard_playlist_add_cb),
1809         (rb_shell_clipboard_playlist_renamed_cb),
1810         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
1811         (rebuild_playlist_menu):
1812         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
1813         (rb_shell_player_set_queue_source_internal),
1814         (rb_shell_player_finalize), (rb_shell_player_set_play_order),
1815         (rb_shell_player_entry_activated_cb),
1816         (rb_shell_player_property_row_activated_cb),
1817         (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
1818         * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
1819         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
1820         (rb_shell_finalize), (construct_widgets),
1821         (rb_shell_playing_from_queue_cb),
1822         (rb_shell_player_stream_song_changed_cb),
1823         (rb_shell_player_volume_changed_cb):
1824         * shell/rb-statusbar.c: (rb_statusbar_new):
1825         * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
1826         (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
1827         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
1828         * sources/rb-auto-playlist-source.c:
1829         (rb_auto_playlist_source_class_init),
1830         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
1831         (rb_auto_playlist_source_constructor), (impl_receive_drag),
1832         (rb_auto_playlist_source_do_query),
1833         (rb_auto_playlist_source_set_query),
1834         (rb_auto_playlist_source_browser_changed_cb),
1835         (search_action_changed):
1836         * sources/rb-auto-playlist-source.h:
1837         * sources/rb-browser-source.c: (rb_browser_source_finalize),
1838         (search_action_changed), (rb_browser_source_constructor),
1839         (rb_browser_source_cmd_choose_artist), (impl_delete),
1840         (rb_browser_source_browser_changed_cb),
1841         (rb_browser_source_do_query):
1842         * sources/rb-daap-source.c: (rb_daap_source_dispose),
1843         (rb_daap_source_finalize), (rb_daap_source_class_init),
1844         (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
1845         (rb_daap_sources_init), (rb_daap_sources_shutdown),
1846         (rb_daap_source_connection_cb), (rb_daap_source_activate),
1847         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
1848         (rb_daap_source_get_headers):
1849         * sources/rb-import-errors-source.c:
1850         (rb_import_errors_source_constructor),
1851         (rb_import_errors_source_new), (impl_delete), (impl_get_status):
1852         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
1853         (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
1854         (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
1855         (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
1856         (impl_paste), (impl_receive_drag):
1857         * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
1858         (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
1859         (impl_song_properties):
1860         * sources/rb-library-source.c: (rb_library_source_constructor),
1861         (rb_library_source_new), (impl_paste),
1862         (rb_library_source_add_child_source):
1863         * sources/rb-missing-files-source.c: (impl_delete),
1864         (impl_get_status):
1865         * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
1866         (rb_play_queue_source_class_init),
1867         (rb_play_queue_source_constructor):
1868         * sources/rb-playlist-source.c: (rb_playlist_source_init),
1869         (rb_playlist_source_set_db), (rb_playlist_source_constructor),
1870         (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
1871         (rb_playlist_source_new_from_xml),
1872         (rb_playlist_source_save_to_xml):
1873         * sources/rb-podcast-source.c: (rb_podcast_source_init),
1874         (rb_podcast_source_dispose), (rb_podcast_source_finalize),
1875         (search_action_changed), (rb_podcast_source_constructor),
1876         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
1877         (construct_query_from_selection),
1878         (rb_podcast_source_cmd_download_post),
1879         (rb_podcast_source_cmd_cancel_download),
1880         (rb_podcast_source_cmd_delete_feed),
1881         (rb_podcast_source_start_download_cb),
1882         (rb_podcast_source_finish_download_cb),
1883         (rb_podcast_source_feed_updates_avaliable_cb),
1884         (rb_podcast_source_get_shell), (impl_can_add_to_queue),
1885         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
1886         (impl_get_status):
1887         * sources/rb-removable-media-source.c: (impl_delete_thyself):
1888         * sources/rb-source.c: (rb_source_get_property),
1889         (default_add_to_queue), (default_move_to_trash),
1890         (_rb_source_show_popup), (rb_source_gather_selected_properties),
1891         (_rb_source_register_action_group):
1892         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
1893         (rb_sourcelist_model_is_row_visible),
1894         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
1895         (rb_sourcelist_model_row_draggable),
1896         (rb_sourcelist_model_drag_data_get):
1897         * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
1898         (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
1899         (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
1900         (visibility_notify_cb):
1901         * sources/rb-static-playlist-source.c:
1902         (rb_static_playlist_source_class_init),
1903         (rb_static_playlist_source_init),
1904         (rb_static_playlist_source_finalize),
1905         (rb_static_playlist_source_constructor), (impl_delete),
1906         (rb_static_playlist_source_browser_changed_cb),
1907         (rb_static_playlist_source_add_location_internal),
1908         (search_action_changed):
1909         * sources/rb-static-playlist-source.h:
1910         * widgets/rb-druid.c:
1911         * widgets/rb-entry-view.c:
1912         (rb_entry_view_set_shell_player_internal),
1913         (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
1914         (rb_entry_view_get_property), (rb_entry_view_new),
1915         (rb_entry_view_button_press_cb):
1916         * widgets/rb-library-browser.c: (rb_library_browser_finalize),
1917         (rb_library_browser_set_property),
1918         (rb_library_browser_get_property):
1919         * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
1920         (get_entry_for_property), (get_property_index_from_proptype):
1921         * widgets/rb-song-info.c: (rb_song_info_constructor),
1922         (rb_song_info_finalize), (rb_song_info_set_source_internal),
1923         (rb_song_info_set_property), (rb_song_info_get_property):
1925         More leak and reference counting fixes.  From bug #347446.
1927 2006-07-17  James Livingston  <doclivingston@gmail.com>
1929         * sources/rb-auto-playlist-source.c:
1930         (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
1931         rather than setting the base model, as that lets us not import all the
1932         entries from the base model. This fixes some issues whether the search
1933         box wasn't filting automatic playlists.
1935 2006-07-17  James Livingston  <doclivingston@gmail.com>
1937         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
1938         error, which caused blacklist creation to fail.
1940 2006-07-17  James Livingston  <doclivingston@gmail.com>
1942         * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
1943         running with -n, because we don't start it then. Fixes a crash on
1944         exit.
1946 2006-07-17  James Livingston  <doclivingston@gmail.com>
1948         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
1950         * data/glade/playlist-save.glade: Make the "playlist save" dialog use
1951         Save not Open for the button. Fixes #345816
1953 2006-07-17  James Livingston  <doclivingston@gmail.com>
1955         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
1957         * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
1958         when track transfer is disabled. Fixes #347705
1960 2006-07-17  James Livingston  <doclivingston@gmail.com>
1962         patch by: Przemysław Grzegorczyk  <pgrzegorczyk@gmail.com>
1964         * sources/rb-library-source.c: (impl_get_config_widget): fix build
1965         with track transfer disabled. Fixes #347705
1967 2006-07-14  William Jon McCann  <mccann@jhu.edu>
1969         * rhythmdb/rhythmdb-query-model.c:
1970         (rhythmdb_query_model_set_property):
1971         * shell/main.c: (main):
1972         * shell/rb-shell-clipboard.c: (unset_source_internal),
1973         (rb_shell_clipboard_finalize),
1974         (rb_shell_clipboard_set_source_internal),
1975         (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
1976         * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
1977         (rb_shell_player_set_db_internal),
1978         (rb_shell_player_set_queue_source_internal),
1979         (rb_shell_player_finalize), (rb_shell_player_set_property):
1980         * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
1981         * sources/rb-auto-playlist-source.c:
1982         (rb_auto_playlist_source_constructor),
1983         (rb_auto_playlist_source_new_from_xml):
1984         * sources/rb-daap-source.c: (create_pixbufs):
1985         * sources/rb-ipod-source.c:
1986         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
1987         * sources/rb-library-source.c:
1988         (rb_library_source_add_child_source):
1989         * sources/rb-play-queue-source.c:
1990         (rb_play_queue_sync_playing_state),
1991         (rb_play_queue_source_track_info_cell_data_func):
1992         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
1993         * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1994         (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1995         (impl_can_add_to_queue), (impl_add_to_queue):
1996         * sources/rb-source.c: (rb_source_set_property):
1997         * sources/rb-sourcelist.c: (rb_sourcelist_append):
1998         * sources/rb-static-playlist-source.c:
1999         (rb_static_playlist_source_constructor),
2000         (rb_static_playlist_source_load_from_xml):
2001         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2002         * widgets/rb-entry-view.c: (rb_entry_view_init),
2003         (rb_entry_view_finalize), (rb_entry_view_append_column),
2004         (rb_entry_view_constructor):
2005         * widgets/rb-song-info.c: (rb_song_info_set_property):
2006         Fix leaks.  From bug #347446.
2008 2006-07-14  William Jon McCann  <mccann@jhu.edu>
2010         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2011         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2012         (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2013         (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2014         (add_decoding_pipeline), (profile_bin_find_encoder),
2015         (get_profile_from_mime_type), (extract_track), (transcode_track),
2016         (rb_encoder_gst_encode):
2017         * backends/gstreamer/rb-encoder-gst.h:
2018         * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2019         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2020         (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2021         (rb_player_gst_construct):
2022         * backends/gstreamer/rb-player-gst.h:
2023         * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2024         * backends/rb-encoder.h:
2025         * backends/rb-player.c: (_rb_player_emit_tick):
2026         * backends/rb-player.h:
2027         * daapsharing/rb-daap-connection.c: (build_message),
2028         (actual_http_response_handler), (http_response_handler),
2029         (http_get), (entry_set_string_prop), (emit_progress_idle),
2030         (handle_server_info), (handle_database_info),
2031         (handle_song_listing), (handle_playlists),
2032         (handle_playlist_entries), (rb_daap_connection_new),
2033         (connected_cb), (rb_daap_connection_do_something),
2034         (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2035         (rb_daap_connection_get_property):
2036         * daapsharing/rb-daap-connection.h:
2037         * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2038         (rb_daap_collision_dialog_new_run):
2039         * daapsharing/rb-daap-dialog.h:
2040         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2041         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2042         (DigestToString), (rb_daap_hash_generate):
2043         * daapsharing/rb-daap-hash.h:
2044         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2045         (resolve_cb), (browse_cb):
2046         * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2047         (resolve_cb), (rb_daap_mdns_browser_resolve),
2048         (rb_daap_mdns_browser_start), (resolver_free):
2049         * daapsharing/rb-daap-mdns-browser.h:
2050         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2051         * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2052         (publish_cb):
2053         * daapsharing/rb-daap-mdns-publisher.h:
2054         * daapsharing/rb-daap-share.c: (name_collision_cb),
2055         (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2056         (message_set_from_rb_daap_structure), (content_codes_cb),
2057         (session_id_validate), (logout_cb), (update_cb),
2058         (add_entry_to_mlcl), (add_playlist_to_mlcl),
2059         (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2060         (rb_daap_share_server_start), (rb_daap_share_server_stop),
2061         (rb_daap_share_publish_start):
2062         * daapsharing/rb-daap-share.h:
2063         * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2064         (share_password_changed_cb), (rb_daap_sharing_shutdown):
2065         * daapsharing/rb-daap-sharing.h:
2066         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2067         (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2068         (rb_daap_src_open):
2069         * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2070         (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2071         (rb_daap_structure_parse_container_buffer),
2072         (rb_daap_structure_parse), (gnode_find_node),
2073         (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2074         (print_rb_daap_item):
2075         * daapsharing/rb-daap-structure.h:
2076         * iradio/rb-new-station-dialog.c:
2077         (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2078         (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2079         (rb_new_station_dialog_text_changed):
2080         * iradio/rb-station-properties-dialog.c:
2081         (rb_station_properties_dialog_init),
2082         (rb_station_properties_dialog_new),
2083         (rb_station_properties_dialog_response_cb),
2084         (rb_station_properties_dialog_get_current_entry),
2085         (rb_station_properties_dialog_rated_cb),
2086         (rb_station_properties_dialog_update_rating),
2087         (rb_station_properties_dialog_update_playback_error),
2088         (rb_station_properties_dialog_sync_entries):
2089         * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2090         * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2091         (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2092         (rb_metadata_can_save), (rb_metadata_save):
2093         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2094         (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2095         (_handle_message), (_new_connection), (main):
2096         * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2097         (rb_metadata_dbus_read_from_message):
2098         * metadata/rb-metadata-dbus.h:
2099         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2100         (rb_add_id3_tagger), (rb_metadata_init),
2101         (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2102         (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2103         (rb_metadata_gst_new_decoded_pad_cb),
2104         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2105         * metadata/sj-error.c: (sj_error_quark):
2106         * metadata/sj-error.h:
2107         * metadata/sj-metadata-musicbrainz.c:
2108         (sj_metadata_musicbrainz_instance_init),
2109         (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2110         (get_rdf), (lookup_cd):
2111         * metadata/sj-metadata.c: (sj_metadata_get_type):
2112         * metadata/sj-structures.c:
2113         * metadata/sj-structures.h:
2114         * metadata/test-metadata.c: (load_metadata_cb), (main):
2115         * podcast/rb-feed-podcast-properties-dialog.c:
2116         (rb_feed_podcast_properties_dialog_init),
2117         (rb_feed_podcast_properties_dialog_update_title):
2118         * podcast/rb-feed-podcast-properties-dialog.h:
2119         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2120         (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2121         (rb_new_podcast_dialog_text_changed):
2122         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2123         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2124         (rb_podcast_manager_set_property),
2125         (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2126         (rb_podcast_manager_download_entry),
2127         (rb_podcast_manager_update_feeds),
2128         (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2129         (rb_podcast_manager_copy_post),
2130         (rb_podcast_manager_thread_parse_feed),
2131         (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2132         (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2133         (download_info_free), (download_info_new), (start_job),
2134         (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2135         (download_progress_cb), (download_progress_update_cb),
2136         (rb_podcast_manager_remove_feed),
2137         (rb_podcast_manager_db_entry_deleted_cb),
2138         (rb_podcast_manager_cancel_download),
2139         (rb_podcast_manager_update_synctime),
2140         (rb_podcast_manager_set_remove_files),
2141         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2142         (rb_podcast_manager_abort_subscribe),
2143         (rb_podcast_manager_get_podcast_dir):
2144         * podcast/rb-podcast-manager.h:
2145         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2146         (rb_validate_channel_propert), (rb_validate_item_propert),
2147         (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2148         (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2149         (rb_podcast_parse_date), (rb_podcast_parse_time),
2150         (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2151         * podcast/rb-podcast-parse.h:
2152         * podcast/rb-podcast-properties-dialog.c:
2153         (rb_podcast_properties_dialog_init),
2154         (rb_podcast_properties_dialog_get_current_entry),
2155         (rb_podcast_properties_dialog_update_title),
2156         (rb_podcast_properties_dialog_update_duration),
2157         (rb_podcast_properties_dialog_update_date):
2158         * podcast/rb-podcast-properties-dialog.h:
2159         * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2160         (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2161         (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2162         (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2163         (g_sequence_search), (g_sequence_set_aggregate_data),
2164         (g_sequence_node_update_fields), (g_sequence_node_rotate),
2165         (find_min), (g_sequence_node_find_by_pos),
2166         (g_sequence_node_find_closest), (g_sequence_node_free),
2167         (g_sequence_node_split), (g_sequence_node_insert_before),
2168         (g_sequence_node_get_length), (g_sequence_node_remove),
2169         (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2170         (g_sequence_calc_tree_height):
2171         * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2172         (rb_refstring_get):
2173         * rhythmdb/rb-refstring.h:
2174         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2175         (rhythmdb_gda_init), (dump_model), (execute_query),
2176         (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2177         (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2178         (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2179         (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2180         (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2181         (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2182         * rhythmdb/rhythmdb-gda.h:
2183         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2184         (rhythmdb_finalize_monitoring), (monitor_entry_file),
2185         (monitor_library_directory), (rhythmdb_check_changed_file),
2186         (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2187         (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2188         (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2189         * rhythmdb/rhythmdb-private.h:
2190         * rhythmdb/rhythmdb-property-model.c:
2191         (rhythmdb_property_model_set_property),
2192         (rhythmdb_property_model_row_inserted_cb),
2193         (rhythmdb_property_model_prop_changed_cb),
2194         (rhythmdb_property_model_compare),
2195         (rhythmdb_property_model_get_value),
2196         (rhythmdb_property_model_iter_nth_child),
2197         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2198         (rhythmdb_property_model_drag_data_get),
2199         (rhythmdb_property_model_enable_drag),
2200         (rhythmdb_property_model_column_get_type):
2201         * rhythmdb/rhythmdb-property-model.h:
2202         * rhythmdb/rhythmdb-query-model.c:
2203         (rhythmdb_query_model_class_init),
2204         (rhythmdb_query_model_set_property),
2205         (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2206         (rhythmdb_query_model_has_pending_changes),
2207         (rhythmdb_query_model_entry_changed_cb),
2208         (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2209         (rhythmdb_query_model_add_entry),
2210         (rhythmdb_query_model_remove_from_main_list),
2211         (rhythmdb_query_model_remove_entry),
2212         (rhythmdb_query_model_drag_data_received),
2213         (rhythmdb_query_model_row_drop_possible),
2214         (rhythmdb_query_model_compute_status_normal),
2215         (rhythmdb_query_model_set_sort_order),
2216         (rhythmdb_query_model_get_entry_index),
2217         (rhythmdb_query_model_base_row_inserted),
2218         (rhythmdb_query_model_base_row_deleted),
2219         (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2220         (rhythmdb_query_model_date_sort_func),
2221         (rhythmdb_query_model_within_limit):
2222         * rhythmdb/rhythmdb-query-model.h:
2223         * rhythmdb/rhythmdb-query-results.c:
2224         (rhythmdb_query_results_query_complete):
2225         * rhythmdb/rhythmdb-query-results.h:
2226         * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2227         (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2228         (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2229         (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2230         (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2231         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2232         (rhythmdb_tree_parser_start_element),
2233         (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2234         (save_entry), (save_entry_type), (save_unknown_entry_type),
2235         (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2236         (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2237         (get_or_create_genre), (remove_entry_from_album),
2238         (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2239         (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2240         (search_match_properties), (evaluate_conjunctive_subquery),
2241         (clone_remove_ptr_array_index), (conjunctive_query_albums),
2242         (conjunctive_query_artists), (conjunctive_query_genre),
2243         (conjunctive_query), (split_query_by_disjunctions),
2244         (do_query_recurse), (rhythmdb_tree_entry_foreach),
2245         (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2246         (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2247         (rhythmdb_hash_tree_foreach),
2248         (rhythmdb_tree_entry_type_registered):
2249         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2250         (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2251         (extract_nice_name_from_enum_entry), (rhythmdb_init),
2252         (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2253         (rhythmdb_shutdown), (rhythmdb_finalize),
2254         (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2255         (rhythmdb_entry_insert), (rhythmdb_entry_new),
2256         (rhythmdb_entry_example_new),
2257         (set_metadata_string_default_unknown), (is_ghost_entry),
2258         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2259         (rhythmdb_process_metadata_load),
2260         (rhythmdb_process_queued_entry_set_event),
2261         (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2262         (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2263         (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2264         (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2265         (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2266         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2267         (rhythmdb_entry_delete_by_type),
2268         (rhythmdb_propid_from_nice_elt_name),
2269         (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2270         (rhythmdb_compute_status_normal),
2271         (rhythmdb_entry_register_type_alias),
2272         (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2273         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2274         (rhythmdb_entry_import_error_get_type),
2275         (rhythmdb_entry_podcast_post_get_type),
2276         (rhythmdb_entry_podcast_feed_get_type),
2277         (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2278         (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2279         (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2280         * rhythmdb/rhythmdb.h:
2281         * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2282         * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2283         (rb_history_limit_size):
2284         * shell/rb-history.h:
2285         * shell/rb-play-order-linear-loop.c:
2286         (rb_linear_play_order_loop_get_next):
2287         * shell/rb-play-order-linear-loop.h:
2288         * shell/rb-play-order-linear.c:
2289         * shell/rb-play-order-linear.h:
2290         * shell/rb-play-order-queue.c:
2291         (rb_queue_play_order_playing_entry_removed):
2292         * shell/rb-play-order-queue.h:
2293         * shell/rb-play-order-random-by-age-and-rating.c:
2294         * shell/rb-play-order-random-by-age-and-rating.h:
2295         * shell/rb-play-order-random-by-age.c:
2296         (rb_random_by_age_get_entry_weight):
2297         * shell/rb-play-order-random-by-age.h:
2298         * shell/rb-play-order-random-by-rating.c:
2299         * shell/rb-play-order-random-by-rating.h:
2300         * shell/rb-play-order-random-equal-weights.c:
2301         * shell/rb-play-order-random-equal-weights.h:
2302         * shell/rb-play-order-random.c: (rb_random_filter_history),
2303         (rb_random_get_total_weight), (rb_random_play_order_get_next),
2304         (rb_random_db_changed), (rb_random_playing_entry_changed),
2305         (rb_random_db_entry_deleted):
2306         * shell/rb-play-order-shuffle.c: (remove_from_history),
2307         (add_randomly_to_history), (get_query_model_contents),
2308         (rb_shuffle_playing_entry_changed):
2309         * shell/rb-play-order-shuffle.h:
2310         * shell/rb-play-order.c: (rb_play_order_class_init),
2311         (rb_play_order_set_property),
2312         (rb_play_order_playing_source_changed),
2313         (rb_play_order_query_model_changed_cb),
2314         (rb_play_order_query_model_changed),
2315         (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2316         * shell/rb-play-order.h:
2317         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2318         (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2319         (rb_playlist_manager_set_property),
2320         (rb_playlist_manager_parse_file),
2321         (rb_playlist_manager_load_playlists),
2322         (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2323         (rb_playlist_manager_save_playlists),
2324         (rb_playlist_manager_new_playlist),
2325         (rb_playlist_manager_new_playlist_from_selection_data),
2326         (rb_playlist_manager_cmd_new_automatic_playlist),
2327         (rb_playlist_manager_cmd_edit_automatic_playlist),
2328         (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2329         (save_playlist_response_cb), (export_set_extension_cb),
2330         (filter_get_export_filter_label), (setup_format_menu),
2331         (rb_playlist_manager_cmd_save_playlist),
2332         (rb_playlist_manager_get_playlists),
2333         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2334         (rb_playlist_manager_delete_playlist),
2335         (rb_playlist_manager_export_playlist):
2336         * shell/rb-playlist-manager.h:
2337         * shell/rb-removable-media-manager.c:
2338         (rb_removable_media_manager_class_init),
2339         (rb_removable_media_manager_dispose),
2340         (rb_removable_media_manager_finalize),
2341         (rb_removable_media_manager_set_property),
2342         (split_drive_from_cdda_uri),
2343         (rb_removable_media_manager_playing_uri_changed_cb),
2344         (rb_removable_media_manager_load_media),
2345         (rb_removable_media_manager_volume_mounted_cb),
2346         (remove_volume_by_source),
2347         (rb_removable_media_manager_source_deleted_cb),
2348         (rb_removable_media_manager_volume_unmounted_cb),
2349         (rb_removable_media_manager_mount_volume),
2350         (rb_removable_media_manager_set_uimanager),
2351         (rb_removable_media_manager_scan), (do_transfer),
2352         (rb_removable_media_manager_cmd_copy_tracks):
2353         * shell/rb-removable-media-manager.h:
2354         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2355         (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2356         (rb_shell_clipboard_sync),
2357         (rb_shell_clipboard_idle_poll_deletions),
2358         (rb_shell_clipboard_cmd_add_to_playlist_new),
2359         (rb_shell_clipboard_playlist_add_cb),
2360         (rb_shell_clipboard_playlist_deleted_cb),
2361         (rb_shell_clipboard_playlist_renamed_cb),
2362         (rb_shell_clipboard_playlist_visible_cb),
2363         (rb_shell_clipboard_playlist_added_cb):
2364         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2365         (rb_shell_player_constructor), (volume_pre_unmount_cb),
2366         (rb_shell_player_init), (rb_shell_player_set_property),
2367         (rb_shell_player_new), (rb_shell_player_open_playlist_url),
2368         (rb_shell_player_open_location),
2369         (rb_shell_player_set_playing_entry),
2370         (rb_shell_player_play_order_update_cb),
2371         (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
2372         (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
2373         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
2374         (rb_shell_player_cmd_play), (rb_shell_player_playpause),
2375         (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2376         (gconf_song_position_slider_visibility_changed),
2377         (rb_shell_player_entry_activated_cb),
2378         (rb_shell_player_property_row_activated_cb),
2379         (rb_shell_player_entry_changed_cb),
2380         (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2381         (actually_set_playing_source),
2382         (rb_shell_player_set_playing_source_internal),
2383         (rb_shell_player_get_playing_song_duration), (eos_cb),
2384         (rb_shell_player_error), (error_cb), (info_available_cb),
2385         (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
2386         (rb_shell_player_error_get_type):
2387         * shell/rb-shell-player.h:
2388         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2389         (rb_shell_preferences_append_page),
2390         (share_check_button_toggled_cb),
2391         (password_check_button_toggled_cb), (add_daap_preferences),
2392         (rb_shell_preferences_column_check_changed_cb),
2393         (rb_shell_preferences_sync_column_button),
2394         (rb_shell_preferences_sync),
2395         (rb_shell_preferences_browser_views_activated_cb):
2396         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
2397         (rb_shell_set_property), (rb_shell_get_property),
2398         (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
2399         (construct_widgets), (construct_load_ui), (rb_shell_constructor),
2400         (rb_shell_get_visibility), (rb_shell_set_visibility),
2401         (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
2402         (rb_shell_register_entry_type_for_source),
2403         (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
2404         (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
2405         (rb_shell_player_stream_song_changed_cb),
2406         (rb_shell_set_window_title),
2407         (rb_shell_view_smalldisplay_changed_cb),
2408         (rb_shell_view_queue_as_sidebar_changed_cb),
2409         (rb_shell_cmd_plugins), (add_to_library_response_cb),
2410         (rb_shell_cmd_add_folder_to_library),
2411         (rb_shell_cmd_add_file_to_library),
2412         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2413         (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
2414         (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
2415         (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
2416         (handle_playlist_entry_cb), (rb_shell_load_uri),
2417         (rb_shell_add_to_queue), (rb_shell_present),
2418         (rb_shell_get_song_properties), (rb_shell_set_song_property),
2419         (rb_shell_volume_widget_changed_cb),
2420         (rb_shell_player_volume_changed_cb),
2421         (rb_shell_ui_location_get_type):
2422         * shell/rb-shell.h:
2423         * shell/rb-source-header.c: (ui_manager_add_widget_cb),
2424         (rb_source_header_init), (rb_source_header_set_source_internal),
2425         (rb_source_state_sync), (rb_source_header_clear_search),
2426         (rb_source_header_view_browser_changed_cb):
2427         * shell/rb-source-header.h:
2428         * shell/rb-statusbar.c: (rb_statusbar_construct),
2429         (rb_statusbar_init), (rb_statusbar_finalize),
2430         (rb_statusbar_set_property), (rb_statusbar_set_progress),
2431         (rb_statusbar_source_status_changed_cb):
2432         * shell/rb-statusbar.h:
2433         * shell/rb-tray-icon.c: (rb_tray_icon_init),
2434         (rb_tray_icon_constructor), (rb_tray_icon_finalize),
2435         (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
2436         (rb_tray_icon_get_geom), (rb_tray_icon_notify):
2437         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
2438         (rb_audiocd_create_track_entry):
2439         * sources/rb-auto-playlist-source.c:
2440         (rb_auto_playlist_source_class_init),
2441         (rb_auto_playlist_source_constructor),
2442         (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
2443         (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
2444         (rb_auto_playlist_source_query_complete_cb),
2445         (rb_auto_playlist_source_do_query),
2446         (rb_auto_playlist_source_set_query),
2447         (rb_auto_playlist_source_browser_changed_cb),
2448         (search_action_to_prop):
2449         * sources/rb-auto-playlist-source.h:
2450         * sources/rb-browser-source.c: (rb_browser_source_init),
2451         (rb_browser_source_dispose), (search_action_to_prop),
2452         (rb_browser_source_constructor),
2453         (rb_browser_source_cmd_choose_genre),
2454         (rb_browser_source_cmd_choose_artist),
2455         (rb_browser_source_cmd_choose_album), (impl_search),
2456         (rb_browser_source_browser_changed_cb),
2457         (rb_browser_source_do_query):
2458         * sources/rb-browser-source.h:
2459         * sources/rb-daap-source.c: (rb_daap_source_class_init),
2460         (rb_daap_source_init), (rb_daap_source_dispose),
2461         (rb_daap_source_set_property), (start_browsing),
2462         (rb_daap_sources_init), (rb_daap_sources_shutdown),
2463         (rb_daap_source_connection_cb), (rb_daap_source_activate),
2464         (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
2465         (rb_daap_source_get_headers), (rb_daap_source_get_status):
2466         * sources/rb-daap-source.h:
2467         * sources/rb-import-errors-source.h:
2468         * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2469         (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
2470         (add_ipod_song_to_db), (load_ipod_db_idle_cb),
2471         (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
2472         (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
2473         (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
2474         (ipod_mkdir_with_parents), (build_ipod_dir_name),
2475         (generate_ipod_filename), (ipod_path_from_unix_path),
2476         (impl_delete_thyself):
2477         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2478         (rb_iradio_source_init), (rb_iradio_source_constructor),
2479         (rb_iradio_source_new), (guess_uri_scheme),
2480         (rb_iradio_source_add_station),
2481         (rb_iradio_source_async_update_play_statistics),
2482         (genre_selection_reset_cb), (rb_iradio_source_do_query),
2483         (stations_view_drag_data_received_cb),
2484         (rb_iradio_source_cmd_new_station):
2485         * sources/rb-iradio-source.h:
2486         * sources/rb-library-source.c: (rb_library_source_dispose),
2487         (rb_library_source_constructor),
2488         (rb_library_source_location_button_clicked_cb),
2489         (impl_get_config_widget), (rb_library_source_library_location_cb),
2490         (sanitize_path), (filepath_parse_pattern),
2491         (layout_example_label_update),
2492         (rb_library_source_layout_filename_changed), (build_filename),
2493         (impl_can_paste), (impl_paste),
2494         (rb_library_source_add_child_source),
2495         (rb_library_source_sync_child_sources):
2496         * sources/rb-library-source.h:
2497         * sources/rb-missing-files-source.h:
2498         * sources/rb-play-queue-source.c:
2499         (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
2500         * sources/rb-play-queue-source.h:
2501         * sources/rb-playlist-source-recorder.c:
2502         (rb_playlist_source_recorder_class_init), (update_speed_combobox),
2503         (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
2504         (rb_playlist_source_recorder_init),
2505         (rb_playlist_source_recorder_new):
2506         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2507         (rb_playlist_source_save_playlist),
2508         (rb_playlist_source_entry_added_cb),
2509         (rb_playlist_source_set_query_model),
2510         (rb_playlist_source_add_to_map):
2511         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2512         (rb_podcast_source_init), (rb_podcast_source_dispose),
2513         (rb_podcast_source_finalize), (search_action_to_prop),
2514         (rb_podcast_source_constructor), (rb_podcast_source_set_property),
2515         (rb_podcast_source_get_property), (rb_podcast_source_new),
2516         (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2517         (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
2518         (rb_podcast_source_show_browser), (construct_query_from_selection),
2519         (rb_podcast_source_do_query), (impl_get_config_widget),
2520         (rb_podcast_source_btn_file_change_cb),
2521         (posts_view_drag_data_received_cb),
2522         (rb_podcast_source_cmd_download_post),
2523         (rb_podcast_source_cmd_cancel_download),
2524         (rb_podcast_source_cmd_delete_feed),
2525         (rb_podcast_source_cmd_properties_feed),
2526         (rb_podcast_source_cmd_update_feed),
2527         (rb_podcast_source_post_status_cell_data_func),
2528         (rb_podcast_source_post_feed_cell_data_func),
2529         (rb_podcast_source_post_date_cell_data_func),
2530         (rb_podcast_source_load_finish_cb), (impl_receive_drag),
2531         (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
2532         (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2533         (impl_get_status):
2534         * sources/rb-podcast-source.h:
2535         * sources/rb-removable-media-source.c:
2536         (rb_removable_media_source_constructor):
2537         * sources/rb-removable-media-source.h:
2538         * sources/rb-source.h:
2539         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
2540         (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
2541         (rb_sourcelist_model_row_is_separator),
2542         (rb_sourcelist_model_drag_data_received),
2543         (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
2544         (rb_sourcelist_model_row_drop_position),
2545         (rb_sourcelist_model_get_drag_target),
2546         (rb_sourcelist_model_row_draggable),
2547         (rb_sourcelist_model_drag_data_get),
2548         (rb_sourcelist_model_row_inserted_cb),
2549         (rb_sourcelist_model_get_group_path):
2550         * sources/rb-sourcelist.c: (rb_sourcelist_append),
2551         (match_source_to_iter), (rb_sourcelist_source_to_iter),
2552         (rb_sourcelist_visible_source_to_iter),
2553         (rb_sourcelist_edit_source_name),
2554         (rb_sourcelist_selection_changed_cb), (button_press_cb),
2555         (key_release_cb), (name_notify_cb), (icon_notify_cb),
2556         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2557         * sources/rb-static-playlist-source.c:
2558         (rb_static_playlist_source_class_init),
2559         (rb_static_playlist_source_constructor),
2560         (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
2561         (impl_search), (rb_static_playlist_source_do_query),
2562         (rb_static_playlist_source_browser_changed_cb),
2563         (impl_receive_drag), (impl_save_contents_to_xml),
2564         (rb_static_playlist_source_add_location_swapped),
2565         (search_action_to_prop):
2566         * sources/rb-static-playlist-source.h:
2567         * widgets/bacon-volume.c: (bacon_volume_button_get_type):
2568         * widgets/eggtrayicon.c: (egg_tray_icon_init),
2569         (egg_tray_icon_get_orientation_property),
2570         (egg_tray_icon_send_manager_message),
2571         (egg_tray_icon_update_manager_window),
2572         (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
2573         (egg_tray_icon_send_message), (egg_tray_icon_notify):
2574         * widgets/eggtrayicon.h:
2575         * widgets/rb-cell-renderer-pixbuf.c:
2576         (rb_cell_renderer_pixbuf_get_property),
2577         (rb_cell_renderer_pixbuf_set_property),
2578         (rb_cell_renderer_pixbuf_get_size),
2579         (rb_cell_renderer_pixbuf_render),
2580         (rb_cell_renderer_pixbuf_activate):
2581         * widgets/rb-cell-renderer-rating.c:
2582         (rb_cell_renderer_rating_class_init),
2583         (rb_cell_renderer_rating_get_property),
2584         (rb_cell_renderer_rating_set_property),
2585         (rb_cell_renderer_rating_get_size),
2586         (rb_cell_renderer_rating_render),
2587         (rb_cell_renderer_rating_activate):
2588         * widgets/rb-dialog.c:
2589         * widgets/rb-dialog.h:
2590         * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
2591         (path_dialog_response_cb), (idle_set_sensitive), (do_response),
2592         (rb_druid_page3_finish_cb):
2593         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2594         (rb_entry_view_init), (rb_entry_view_set_property),
2595         (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
2596         (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
2597         (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
2598         (rb_entry_view_set_sorting_order),
2599         (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
2600         (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2601         (rb_entry_view_playing_song_changed),
2602         (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
2603         (rb_entry_view_scroll_to_entry), (set_column_visibility),
2604         (rb_entry_view_set_fixed_column_width),
2605         (rb_entry_view_get_time_date_column_sample),
2606         (rb_entry_view_state_get_type):
2607         * widgets/rb-entry-view.h:
2608         * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
2609         (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
2610         (changed_idle_callback), (rb_header_elapsed_changed_cb):
2611         * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2612         (update_browser_property_visibilty),
2613         (rb_library_browser_construct_query), (restore_selection),
2614         (rebuild_child_model), (rb_library_browser_set_selection),
2615         (rb_library_browser_set_model):
2616         * widgets/rb-library-browser.h:
2617         * widgets/rb-property-view.c: (rb_property_view_class_init),
2618         (rb_property_view_set_property), (rb_property_view_reset),
2619         (rb_property_view_get_model), (rb_property_view_constructor),
2620         (rb_property_view_set_selection),
2621         (rb_property_view_selection_changed_cb),
2622         (rb_property_view_button_press_cb),
2623         (rb_property_view_set_search_func):
2624         * widgets/rb-query-creator-private.h:
2625         * widgets/rb-query-creator-properties.c:
2626         (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
2627         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
2628         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
2629         (relativeTimeCriteriaCreateWidget),
2630         (relativeTimeCriteriaSetWidgetData):
2631         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2632         (rb_query_creator_dispose), (rb_query_creator_load_query),
2633         (rb_query_creator_new_from_query), (rb_query_creator_get_query),
2634         (get_property_index_from_proptype), (select_criteria_from_value),
2635         (create_property_option_menu), (create_criteria_option_menu),
2636         (sort_option_menu_changed), (setup_sort_option_menu):
2637         * widgets/rb-query-creator.h:
2638         * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
2639         (rb_rating_render_stars):
2640         * widgets/rb-rating-helper.h:
2641         * widgets/rb-rating.c: (rb_rating_expose):
2642         * widgets/rb-rating.h:
2643         * widgets/rb-search-entry.c: (rb_search_entry_clear),
2644         (rb_search_entry_timeout_cb):
2645         * widgets/rb-search-entry.h:
2646         * widgets/rb-song-info.c: (rb_song_info_construct_single),
2647         (rb_song_info_constructor), (rb_song_info_new),
2648         (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
2649         (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
2650         (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2651         (rb_song_info_query_model_changed_cb),
2652         (rb_song_info_sync_entries_multiple),
2653         (rb_song_info_sync_entry_single):
2654         Strip all trailing whitespace.  Fixes #344293.
2656 2006-07-13  Ryan P Skadberg  <skadz@stigmata.org>
2658         * doc/reference/Makefile.am: Fix GTK Doc Build
2660 2006-07-13  James Livingston  <doclivingston@gmail.com>
2662         * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
2664         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
2665         instead of the LOCATION, and don't try to get the directory listing
2666         for http URI schemes
2668         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
2669         invalid utf8 in the error message, since apparently it can happen.
2671 2006-07-12  William Jon McCann  <mccann@jhu.edu>
2673         * sources/rb-import-errors-source.c:
2674         (rb_import_errors_source_class_init),
2675         (rb_import_errors_source_init),
2676         (rb_import_errors_source_constructor),
2677         (rb_import_errors_source_dispose), (rb_import_errors_source_new),
2678         (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
2679         * sources/rb-missing-files-source.c:
2680         (rb_missing_files_source_class_init),
2681         (rb_missing_files_source_init),
2682         (rb_missing_files_source_constructor),
2683         (rb_missing_files_source_dispose), (rb_missing_files_source_new),
2684         (rb_missing_files_source_songs_sort_order_changed_cb),
2685         (impl_get_status):
2686         * sources/rb-source.c: (rb_source_class_init),
2687         (rb_source_finalize), (update_visibility_idle),
2688         (queue_update_visibility), (rb_source_set_hidden_when_empty),
2689         (rb_source_set_property), (rb_source_get_property),
2690         (default_get_status), (rb_source_update_play_statistics),
2691         (default_add_to_queue), (_rb_source_show_popup),
2692         (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
2693         (rb_source_gather_selected_properties),
2694         (_rb_source_register_action_group):
2695         * sources/rb-source.h:
2696         * sources/rb-sourcelist.c: (visibility_notify_cb):
2697         Don't use a fake model for import-errors and missing-files
2698         sources.  Add a new source property "hidden-when-empty".
2699         Update source visibility in an idle.  Clean up some whitespace.
2700         From bug #346800
2702 2006-07-12  James Livingston  <doclivingston@gmail.com>
2704         * bindings/python/rb.defs:
2705         * bindings/python/rb.override: bind rb_error_dialog
2707         * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
2708         the current working directory for uninstalled plugins, and add the
2709         class name to the method name.
2711 2006-07-12  James Livingston  <doclivingston@gmail.com>
2713         * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
2714         the sources EOF type if it's NULL. Fixes #346284.
2716 2006-07-12  James Livingston  <doclivingston@gmail.com>
2718         * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
2719         I accidently committed. Nothing to see here, move along...
2721 2006-07-11  James Livingston  <doclivingston@gmail.com>
2723         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2724         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
2725         Unknown.
2727 2006-07-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2729         * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
2731 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2733         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2734         Don't try to set mtime if we've deleted the entry.
2736 2006-07-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2738         * bindings/python/rhythmdb.defs:
2739         * rhythmdb/rhythmdb.c:
2740         * rhythmdb/rhythmdb.h:
2741         * rhythmdb/rhythmdb-private.h:
2742         * rhythmdb/rhythmdb-query.c:
2743         Move data structures holding registered entry types inside the
2744         RhythmDB object, and add a vfunc called when new types are registered.
2745         Add a flag to RhythmDBEntryType specifying whether entries of the type
2746         should be saved to the on-disk database.
2748         * sources/rb-audiocd-source.c:
2749         * sources/rb-daap-source.c:
2750         * sources/rb-ipod-source.c:
2751         * plugins/generic-player/rb-generic-player-source.c:
2752         * plugins/generic-player/rb-nokia770-source.c:
2753         * plugins/generic-player/rb-psp-source.c:
2754         Adjust to the above changes.
2756         * rhythmdb/rhythmdb-tree.c:
2757         If the type for an entry hasn't been registered yet, store the entry's
2758         properties as-is, and convert them to a real entry when the type is
2759         registered.  If the type doesn't get registered, save the entry back
2760         to the database unmodified.  From #330226.
2762 2006-07-10  James Livingston  <doclivingston@gmail.com>
2764         * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
2765         os.path.unlink to os.unlink, so removing stuff works.
2767 2006-07-10  James Livingston  <doclivingston@gmail.com>
2769         patch by: Ed Catmur  <ed@catmur.co.uk>
2770               and Peter  <bugzilla-gnome-org@maubp.freeserve.co.uk>
2772         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2773         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2774         * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
2775         * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
2776         internals of the cover database and Amazon lookup engine, and add
2777         support for loading art from the local file system. Fixes #345688.
2779         * plugins/rb/Coroutine.py:
2780         * plugins/rb/Makefile.am:
2781         * plugins/rb/__init__.py: Add the Coroutine class to the common python
2782         plugin classes.
2784 2006-07-10  James Livingston  <doclivingston@gmail.com>
2786         * tests/Makefile.am: don't run the benchmark when doing "make check"
2788         * po/POTFILES.in: more build fixes, from Matti Lindell
2789         <feenixx@hotmail.com>. Fixes #347049.
2792 2006-07-10  James Livingston  <doclivingston@gmail.com>
2794         * plugins/cd-recorder/Makefile.am: build fixes
2796         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
2797         attempt to change properties if we couldn't create an entry.
2799         * shell/rb-source-header.c: (rb_source_header_init),
2800         (rb_source_header_view_browser_changed_cb),
2801         (rb_source_header_sync_control_state):
2802         * shell/rb-tray-icon.c:
2803         * widgets/Makefile.am:
2804         * widgets/disclosure-widget.c:
2805         * widgets/disclosure-widget.h: remove the remanents of the disclosure
2806         widget, as it hasn't been used for a while.
2808 2006-07-09  William Jon McCann  <mccann@jhu.edu>
2810         * Makefile.am:
2811         * configure.ac:
2812         * data/ui/rhythmbox-ui.xml:
2813         * plugins/Makefile.am:
2814         * plugins/cd-recorder/.cvsignore:
2815         * plugins/cd-recorder/Makefile.am:
2816         * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
2817         * plugins/cd-recorder/rb-cd-recorder-plugin.c:
2818         (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
2819         (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
2820         (source_burn), (cmd_burn_source), (playlist_entries_changed),
2821         (playlist_row_inserted_cb), (update_source),
2822         (shell_selected_source_notify_cb), (impl_activate),
2823         (impl_deactivate):
2824         * shell/Makefile.am:
2825         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
2826         (rb_playlist_manager_cmd_save_playlist):
2827         * shell/rb-shell.c: (rb_shell_select_source):
2828         * sources/Makefile.am:
2829         * sources/rb-playlist-source-recorder.c:
2830         (rb_playlist_source_recorder_new):
2831         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2832         (rb_playlist_source_add_to_map):
2833         * sources/rb-playlist-source.h:
2834         Move cd burning into a plugin.  Fixes #344300.
2836 2006-07-10  James Livingston  <doclivingston@gmail.com>
2838         * lib/eel-gconf-extensions.c:
2839         * shell/rb-shell.c: remove some ununsed gnomeui includes
2841         * widgets/Makefile.am:
2842         * widgets/rb-song-display-box.c:
2843         * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
2844         since it isn't acutally used anywhere. Fixes #346926
2846 2006-07-09  James Livingston  <doclivingston@gmail.com>
2848         * bindings/python/rb.defs:
2849         * bindings/python/rb.override:
2850         * lib/rb-debug.c: (rb_debug_real):
2851         * lib/rb-debug.h:
2852         * plugins/rb/__init__.py: don't print out an extra newline when
2853         diverting python print statements to RB's debug log.
2855 2006-07-09  James Livingston  <doclivingston@gmail.com>
2857         * rhythmdb/rhythmdb-property-model.c:
2858         (rhythmdb_property_model_drag_data_get):
2859         * sources/rb-sourcelist-model.c:
2860         (rb_sourcelist_model_row_draggable),
2861         (rb_sourcelist_model_drag_data_get): check that the path/iter we get
2862         from the row reference is still valid. Fixes #346709.
2864 2006-07-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2866         patch by: Peter  <bugzilla-gnome-org@maubp.freeserve.org.uk>
2868         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
2869         If all selected entries have the same rating, use that as the initial
2870         rating for the multiple song info dialog.  Fixes #345970.
2872 2006-07-09  James Livingston  <doclivingston@gmail.com>
2874         * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
2875         to prevent #343345:
2876                 - don't ever scale to 1x1, just hide the image in that case
2877                 - don't fade when the window is minimised
2878                 - use the last-good allocation width, not the current one - as
2879                   it sometimes get weird values.
2881 2006-07-08  William Jon McCann  <mccann@jhu.edu>
2883         * data/ui/rhythmbox-ui.xml:
2884         * shell/rb-shell.c:
2885         Remove Import audio CD from menu.  Fixes #339732
2887 2006-07-08  James Livingston  <doclivingston@gmail.com>
2889         * metadata/test-metadata.c: (print_metadata_string),
2890         (load_metadata_cb): print out all the metadata we have read, not just
2891         a few.
2893         * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
2894         (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
2896 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2898         * plugins/lyrics/lyrics.py:
2899         Change the lyrics cache location to match Quod Libet's,
2900         and fix the '&' -> 'and' substitution to require spaces.
2902 2006-07-08  James Livingston  <doclivingston@gmail.com>
2904         * bindings/python/rb.defs:
2905         * bindings/python/rb.override: bind rb_debug_real to rb._debug
2907         * configure.ac:
2908         * plugins/Makefile.am:
2909         * plugins/rb-python-module.c: (rb_python_module_init_python):
2910         * plugins/rb/Makefile.am: add a place to put common python classes.
2911         plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
2912         rb module/
2914         * plugins/lyrics/Makefile.am:
2915         * plugins/lyrics/Loader.py:
2916         * plugins/artdisplay/artdisplay/Makefile.am:
2917         * plugins/artdisplay/artdisplay/Loader.py:
2918         * plugins/rb/Loader.py: move the loader class to rb.Loader
2920         * plugins/rb/__init__.py: redirect stdout from python (e.g.
2921         "print ...") to rb_debug. error output (e.g. exceptions) are still
2922         printed on stderr.
2924         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
2925         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
2926         * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
2927         instead of Loader.
2929         Fixes #346895.
2931 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2933         * shell/rb-shell-player.xml:
2934         * shell/rb-shell-player.h:
2935         Correct the details of the playing-song-property-changed signal.
2937 2006-07-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2939         * lib/rb-marshal.list:
2940         * shell/rb-shell-player.c: (rb_shell_player_class_init),
2941         (rb_shell_player_entry_changed_cb):
2942         * shell/rb-shell-player.h:
2943         * shell/rb-shell-player.xml:
2944         Emit a dbus signal when a property is changed on the playing entry.
2945         Fixes #332461.
2947 2006-07-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
2949         * rhythmdb/rhythmdb-private.h:
2950         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
2951         Fix build break with gcc 4.1 by changing RBRefString pointers into
2952         gpointers.
2954 2006-07-07  James Livingston  <doclivingston@gmail.com>
2956         * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
2957         remove an extraneous !, which caused it not to monitor folders in the
2958         library with no tracks in them. Fixes #346759.
2960 2006-07-07  James Livingston  <doclivingston@gmail.com>
2962         * rhythmdb/rhythmdb-private.h:
2963         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
2964         (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
2965         (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
2966         (rhythmdb_entry_get_string):
2967         * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
2968         flags for the affected properties. _sync_mirrored will get run
2969         automatically when a dirty property is accessed, which improves
2970         performance a bit (especially during startup) as we don't need to sync
2971         every time they change. From #325215.
2973         * tests/bench-rhythmdb-load.c
2974         * tests/Makefile.am: add a RhythmDB loading benchmark.
2976 2006-07-06  James Livingston  <doclivingston@gmail.com>
2978         * bindings/python/rb.defs:
2979         * bindings/python/rb.override: some more fixes, so that
2980         python classes derived from RBSource work correctly.
2982 2006-07-06  James Livingston  <doclivingston@gmail.com>
2984         * configure.ac: bump pygtk requirements to 2.8, since we're already
2985         using some features of it, and weird things will happen if people are
2986         actually trying to use pygtk 2.6.
2988         * bindings/python/rb.override:
2989         * bindings/python/rhythmdb.defs:
2990         * bindings/python/rhythmdb.override: allow python to set
2991         RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
2993         * sources/rb-browser-source.c: remove some left over member variables
2995 2006-07-06  James Livingston  <doclivingston@gmail.com>
2997         * rhythmdb/rhythmdb.c:
2998         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
2999         (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3000         rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3001         former is pointless (as rhythmdb already knows which it should use)
3002         and the latter doesn't seem useful at all, and possibly bad. From
3003         #330226.
3005         * bindings/python/rhythmdb.defs:
3006         * bindings/python/rhythmdb.override:
3007         * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3008         (handle_song_listing):
3009         * podcast/rb-podcast-manager.c:
3010         (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3011         (rb_podcast_manager_insert_feed):
3012         * sources/rb-audiocd-source.c: (entry_set_string_prop),
3013         (rb_audiocd_create_track_entry):
3014         * sources/rb-ipod-source.c: (entry_set_string_prop),
3015         (add_ipod_song_to_db):
3016         * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3017         * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3019 2006-07-05  James Livingston  <doclivingston@gmail.com>
3021         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3022         (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3023         (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3024         totem-plparser gives us, or the file name if it doesn't give us
3025         anything. Set the default file name when saving too. Fixes #345261
3027 2006-07-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3029         patch by: Ed Catmur  <ed@catmur.co.uk>
3031         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3032         Skip all hidden directories, not just trash, and skip unreadable
3033         files.  Fixes #346322.
3035 2006-07-04  James Livingston  <doclivingston@gmail.com>
3037         * plugins/rb-module.h:
3038         * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3039         (rb_module_new):
3040         * plugins/rb-plugin.h:
3041         * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3042         (rb_plugin_finalise), (rb_plugin_set_property),
3043         (rb_plugin_get_property), (rb_plugin_activate),
3044         (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3045         (rb_plugin_find_file):
3046         * plugins/rb-plugins-engine.c: (load_plugin_module):
3047         * plugins/rb-python-module.c: (rb_python_module_new_object),
3048         (rb_python_module_new):
3049         * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3050         rb_plugin_find_file method for locating plugin-specific data. Fixes
3051         346473.
3053         * bindings/python/rb.defs:
3054         * plugins/Makefile.am:
3055         * plugins/generic-player/rb-generic-player-plugin.c:
3056         (create_source_cb):
3057         * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3059 2006-07-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3061         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3062         (rb_metadata_can_save), (rb_metadata_save):
3063         Protect the dbus connection with a mutex.
3065 2006-07-03  James Livingston  <doclivingston@gmail.com>
3067         * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3068         case of the parser/tagger not being able to be created.
3070 2006-07-03  James Livingston  <doclivingston@gmail.com>
3072         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3074         * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3075         window resizable, as it used to be. Fixes #345940.
3077 2006-07-01  James Livingston  <doclivingston@gmail.com>
3079         Patch from Ståle Lyngaas  <staale@lyngaas.com>
3081         * rhythmdb/rhythmdb.h:
3082         * rhythmdb/rhythmdb-private.h:
3083         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3084         (rhythmdb_tree_parser_end_element), (save_entry):
3085         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3086         (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3087         (set_props_from_metadata), (rhythmdb_entry_set_internal),
3088         (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3089         MusicBrainz track IDs in the database, and bump the on-disk version
3090         number to trigger a metadata reload.
3092         * backends/gstreamer/rb-player-gst.c: (process_tag):
3093         * metadata/rb-metadata-common.c:
3094         * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3095         (rb_metadata_gst_field_to_gst_tag):
3096         * metadata/rb-metadata.h: grab MB track IDs and use them.
3098         * plugins/audioscrobbler/rb-audioscrobbler.c:
3099         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3100         (rb_audioscrobbler_timeout_cb),
3101         (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3102         the other metadata. Fixes #343491.
3104 2006-06-30  James Livingston  <doclivingston@gmail.com>
3106         * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3107         method.
3109 2006-06-30  James Livingston  <doclivingston@gmail.com>
3111         * bindings/python/rb.defs:
3112         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3113         (rb_browser_source_songs_show_popup_cb),
3114         (default_show_entry_popup):
3115         * sources/rb-browser-source.h:
3116         * sources/rb-library-source.c: (rb_library_source_class_init),
3117         (rb_library_source_constructor), (impl_show_popup): allow
3118         RBBrowserSource-derived sources to override the entry context menu
3119         properly - by making it a virtual function, rather than relying on
3120         signal handler order (which doesn't really work).
3122 2006-06-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3124         * rhythmdb/rhythmdb-query-model.c:
3125         (rhythmdb_query_model_reapply_query_cb):
3126         Use the original query, not the preprocessed query, when redoing
3127         the query to pick up entries that previously didn't match.
3128         Preprocessing the query twice is bad.  Fixes #346186.
3130 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3132         * plugins/audioscrobbler/rb-audioscrobbler.c:
3133         (rb_audioscrobbler_song_changed_cb):
3134         Just check if the elapsed time has been reset, rather
3135         than checking if it's a different track.  Fixes #344827.
3137 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3139         * backends/gstreamer/rb-player-gst.c:
3140         Set cdda source read-speed to 1.  Fixes gaps in playback while the
3141         drive spins up, #344576.
3143 2006-06-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3145         * plugins/audioscrobbler/rb-audioscrobbler.c:
3146         (rb_audioscrobbler_perform):
3147         Use HTTP/1.1.  Fixes #345895.
3149 2006-06-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3151         * lib/rb-preferences.h:
3152         * lib/rb-proxy-config.c: (rb_proxy_config_init),
3153         (check_auto_proxy_config), (get_proxy_config):
3154         Don't try to use a HTTP proxy if no proxy host is specified.
3155         Alert the user to the fact that we don't support automatic proxy
3156         configuration as infrequently as possible.  From #345712.
3158 2006-06-25  James Livingston  <doclivingston@gmail.com>
3160         * rhythmdb/rhythmdb-property-model.c:
3161         (rhythmdb_property_model_set_property): connect to the
3162         "post-entry-delete" signal, rather than "entry-deleted". This ensures
3163         things get removed correctly, fixes #338183.
3165 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3167         * rhythmdb/rhythmdb-query-model.c:
3168         (rhythmdb_query_model_drag_data_received):
3169         Fix build break.
3171 2006-06-25  James Livingston  <doclivingston@gmail.com>
3173         patch by Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3175         * widgets/rb-search-entry.c: (rb_search_entry_init),
3176         (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3177         search box have a pale yellow background when it's in use, except for
3178         when the user has an "accessability" theme. Code based heavily on
3179         Epiphany's. Fixes #344416.
3181 2006-06-25  James Livingston  <doclivingston@gmail.com>
3183         * plugins/lyrics/lyrics.py:
3184         * plugins/pythonconsole/pythonconsole.py:
3185         * plugins/sample-python/sample-python.py: don't import gettext stuff
3186         as _, as the C code does this for us. Fixes i18n for python plugins,
3187         #343081
3189 2006-06-25  James Livingston  <doclivingston@gmail.com>
3191         * rhythmdb/rhythmdb-query-model.c:
3192         (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3193         a model use a reorder rather then deleting and re-adding the entry.
3194         This means it does do weird things like stop playback of a track that
3195         is dragged, fixing #337657.
3197 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3199         * metadata/rb-metadata-dbus-service.c:
3200         Add missing #include <glib/gi18n.h> from previous commit.
3202 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3204         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3206         * metadata/rb-metadata-dbus-service.c: (main):
3207         Initialize gettext in the metadata helper.
3208         * metadata/rb-metadata-gst.c:
3209         Make some strings translatable.  Fixes #345286.
3211 2006-06-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3213         * configure.ac:
3214         * lib/Makefile.am:
3215         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3216         Inline the custom icons so they can always be loaded, but are still
3217         themable.  Fixes #345796.
3219 2006-06-23  James Livingston  <doclivingston@gmail.com>
3221         * sources/rb-auto-playlist-source.c:
3222         (rb_auto_playlist_source_do_query): stop the search box being applied
3223         for limits in auto playlists. Fixes #345307.
3225 2006-06-23  James Livingston  <doclivingston@gmail.com>
3227         * shell/rb-shell-clipboard.c:
3228         (rb_shell_clipboard_set_source_internal),
3229         (rb_shell_clipboard_sync), (add_playlist_to_menu),
3230         (rebuild_playlist_menu): don't use the add-to-playlist menu for
3231         non-library tracks, as we don't supprot it yet. From #345248.
3233 2006-06-23  James Livingston  <doclivingston@gmail.com>
3235         patch by: Brian Cameron  <brian.cameron@sun.com>
3237         * plugins/generic-player/rb-generic-player-plugin.c:
3238         * plugins/generic-player/rb-generic-player-source.c:
3239         * plugins/generic-player/rb-nokia770-source.c:
3240         * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3241         Fixes 345673.
3243 2006-06-22  James Livingston  <doclivingston@gmail.com>
3245         * backends/rb-player.c: (rb_player_interface_init):
3246         * lib/rb-marshal.list:
3247         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3248         * rhythmdb/rhythmdb-query-model.c:
3249         (rhythmdb_query_model_class_init):
3250         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3251         * shell/rb-shell-player.c: (rb_shell_player_class_init):
3252         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3253         * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3254         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3255         * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3256         marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3257         possible not.
3259 2006-06-20  James Livingston  <doclivingston@gmail.com>
3261         patch by Alex Lancaster  <alexl@users.sourceforge.net>
3263         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3264         metadata to clients. Fixes #345276.
3266 2006-06-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3268         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3269         (rb_add_id3_tagger):
3270         Fix plugin/element version detection for id3v2mux.
3272 2006-06-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3274         * sources/rb-source.c: (rb_source_finalize),
3275         (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3276         (_autohide_update_visibility),
3277         (_rb_autohide_source_post_entry_deleted_cb),
3278         (_rb_autohide_source_row_inserted_cb),
3279         (_rb_source_hide_when_empty):
3280         Use post-entry-delete signal to update status and autohide sources.
3282 2006-06-20  James Livingston  <doclivingston@gmail.com>
3284         * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3285         "selection changed" idle callback, if present.
3287 2006-06-19  James Livingston  <doclivingston@gmail.com>
3289         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3291         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3292         don't try to translate the empty string. Fixes #345285.
3294 2006-06-19  James Livingston  <doclivingston@gmail.com>
3296         * bindings/python/rhythmdb.override: more python binding fixes
3298 2006-06-19  James Livingston  <doclivingston@gmail.com>
3300         * lib/rb-util.c: (rb_copy_function):
3301         * lib/rb-util.h: add a function that returns the same pointer it was
3302         passed.
3304         * rhythmdb/rhythmdb.h:
3305         * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3306         (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3307         "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3308         and RhythmDBEntryType into boxed types. This allows them to be used
3309         from python. Note that entry-types aren't actually reference counted
3310         (yet).
3312         * bindings/python/rb.defs:
3313         * bindings/python/rhythmdb.defs:
3314         * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3315         return types of some bindings.
3317         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3318         (process_added_entries_cb), (rhythmdb_entry_finalize),
3319         (rhythmdb_entry_delete):
3320         * daapsharing/rb-daap-connection.c:
3321         (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3322         (rb_daap_connection_get_property):
3323         * plugins/generic-player/rb-generic-player-source.c:
3324         (rb_generic_player_source_load_songs), (load_playlist_file):
3325         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3326         * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3327         * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3328         (idle_process_update), (rhythmdb_query_model_add_entry),
3329         (rhythmdb_query_model_insert_into_main_list),
3330         (rhythmdb_query_model_insert_into_limited_list),
3331         (rhythmdb_query_model_remove_from_main_list),
3332         (rhythmdb_query_model_remove_from_limited_list),
3333         (rhythmdb_query_model_drag_data_received),
3334         (rhythmdb_query_model_add_results),
3335         (rhythmdb_query_model_get_column_type),
3336         (rhythmdb_query_model_get_value):
3337         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3338         (rhythmdb_tree_entry_delete), (remove_one_song):
3339         * shell/rb-play-order-linear-loop.c:
3340         (rb_linear_play_order_loop_get_next),
3341         (rb_linear_play_order_loop_get_previous):
3342         * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3343         (rb_linear_play_order_get_previous):
3344         * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3345         (rb_queue_play_order_get_previous):
3346         * shell/rb-play-order-random.c: (rb_random_play_order_init),
3347         (rb_random_filter_history), (rb_random_play_order_get_next),
3348         (rb_random_play_order_go_next), (rb_random_db_changed),
3349         (rb_random_playing_entry_changed):
3350         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3351         (remove_from_history), (add_randomly_to_history),
3352         (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3353         * shell/rb-play-order.c: (rb_play_order_class_init),
3354         (rb_play_order_set_property), (rb_play_order_get_property),
3355         (rb_play_order_update_have_next_previous):
3356         * shell/rb-play-order.h:
3357         * shell/rb-shell-clipboard.c:
3358         (rb_shell_clipboard_process_deletions),
3359         (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3360         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3361         * sources/rb-auto-playlist-source.c:
3362         (rb_auto_playlist_source_constructor):
3363         * sources/rb-browser-source.c: (rb_browser_source_class_init),
3364         (rb_browser_source_set_property), (rb_browser_source_get_property),
3365         (rb_browser_source_do_query):
3366         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
3367         * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
3368         * sources/rb-ipod-source.c: (add_rb_playlist),
3369         (add_ipod_song_to_db), (impl_paste):
3370         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3371         (rb_iradio_source_set_property), (rb_iradio_source_get_property):
3372         * sources/rb-library-source.c: (layout_example_label_update):
3373         * sources/rb-missing-files-source.c:
3374         (rb_missing_files_source_class_init),
3375         (rb_missing_files_source_set_property),
3376         (rb_missing_files_source_get_property),
3377         (rb_missing_files_source_new):
3378         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3379         (rb_playlist_source_set_property),
3380         (rb_playlist_source_get_property):
3381         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3382         (rb_podcast_source_set_property), (rb_podcast_source_get_property),
3383         (construct_query_from_selection):
3384         * sources/rb-removable-media-source.c: (impl_delete_thyself):
3385         * sources/rb-static-playlist-source.c:
3386         (rb_static_playlist_source_constructor),
3387         (rb_static_playlist_source_add_location_internal):
3388         * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3389         * widgets/rb-header.c: (rb_header_class_init),
3390         (rb_header_set_property), (rb_header_get_property):
3391         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3392         (rb_library_browser_set_property),
3393         (rb_library_browser_get_property):
3394         * widgets/rb-song-info.c: (rb_song_info_class_init),
3395         (rb_song_info_get_property): Adjust for the _ref/_unref prototype
3396         change, do s/pointer/boxed/ in many places and free entry-types
3397         properly.
3399 2006-06-18  James Livingston  <doclivingston@gmail.com>
3401         * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
3402         unushed GThreadPool non-exclusive threads every now and then.
3404         * rhythmdb/rhythmdb-private.h:
3405         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
3406         (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
3407         threads. Fixes #341593
3409 2006-06-19  James Livingston  <doclivingston@gmail.com>
3411         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3412         the "Track number" checkbox actually work for playlists. From #329986.
3414 2006-06-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3416         * plugins/generic-player/rb-generic-player-source.c:
3417         Get playlist and audio folder information from HAL.  Fixes #333845.
3419 2006-06-18  James Livingston  <doclivingston@gmail.com>
3421         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
3423         * widgets/rb-entry-view.h:
3424         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3425         (rb_entry_view_append_column_custom),
3426         (rb_entry_view_insert_column_custom): add support for inserting custom
3427         columns at arbitrary locations, rather than just appending to the end.
3429         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3430         the playlists "track number" column go at the start, and add a normal
3431         track number column. Fixes #329986.
3433 2006-06-18  Dennis Cranston  <dennis_cranston@yahoo.com>
3435         * data/glade/library-prefs.glade: Capitalization fixes.  Fix
3436         a mnemonic conflict.  Add ellipses to the edit button.
3437         * sources/rb-library-source.c:
3438         (rb_library_source_edit_profile_clicked_cb),
3439         (impl_get_config_widget):  Hide dialog separator.  Assign a 
3440         mnemonic widget to the labels. Fixes #344114.
3442 2006-06-18  James Livingston  <doclivingston@gmail.com>
3444         * configure.ac: bump version
3445         * NEWS: add NEWS for 0.9.5
3447 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3449         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
3450         (rb_uri_handle_recursively):
3451         Don't attempt to recurse into directories we can't open.  
3452         Fixes #341485.
3454 2006-06-18  James Livingston  <doclivingston@gmail.com>
3456         patch by: Jaap A. Haitsma  <jaap@haitsma.org>
3458         * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
3459         #344610.
3461 2006-06-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3463         * bindings/python/rb.defs:
3464         * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
3465         * shell/rb-shell-player.h:
3466         * shell/rb-shell.c: (rb_shell_play_entry):
3467         Add source parameter to rb_shell_player_play_entry, using the selected
3468         source if not specified.
3470         * shell/rb-play-order.c: (rb_play_order_class_init),
3471         (rb_play_order_finalize), (rb_play_order_query_model_changed),
3472         (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
3473         (default_playing_entry_removed):
3474         * shell/rb-play-order.h:
3475         Move entry removal handling back to the row-deleted signal, as we need
3476         the entry to be present in the model.  When changing to the next entry
3477         after the playing entry is deleted, set the new entry as the playing
3478         entry and then sync it to the player in an idle handler, so we don't
3479         end up playing it if it was removed too.
3480         * shell/rb-play-order-queue.c:
3481         (rb_queue_play_order_playing_entry_changed),
3482         (rb_queue_play_order_playing_entry_removed):
3483         Use the playing-entry-removed handler from the play order class,
3484         setting a flag so we don't try to remove the already-removed entry
3485         from the model.
3487         This makes removal of the playing entry from playlists etc. work more
3488         or less correctly for all play orders.  Fixes #344627.
3490 2006-06-17  James Livingston  <doclivingston@gmail.com>
3492         patch by: Elijah Newren  <newren@gmail.com>
3494         * tests/test-rhythmdb.c: fix the build with older versions of check
3495         (again). Fixes #343718.
3497 2006-06-17  James Livingston  <doclivingston@gmail.com>
3499         * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
3500         name for capsfilter's "caps" property. Fixes #344968.
3502 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3504         * shell/rb-shell-player.c: (rb_shell_player_playpause):
3505         Don't leak the selected entry list when finding an entry to play.
3507 2006-06-17  James Livingston  <doclivingston@gmail.com>
3509         * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
3510         (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
3511         as a O(1) one works fine, and it will get called often when the user
3512         deleted multiple tracks. Part of #344922.
3514 2006-06-17  James Livingston  <doclivingston@gmail.com>
3516         * shell/rb-shell-player.c: (rb_shell_player_stop): make
3517         rb_shell_player_stop and rb_shell_player_playpause not mutually
3518         recursive. Fixed #336912.
3520 2006-06-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3522         * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
3523         Treat nested elements inside properties as unknown.  Fixes parsing of
3524         podcast feeds with unescaped HTML in description tags, bug #344532.
3526 2006-06-15  William Jon McCann  <mccann@jhu.edu>
3528         * shell/rb-shell.c (rb_shell_quit): Unset the playing source
3529         when quitting.  Fixes #344875.
3531 2006-06-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3533         * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
3534         Move the playing-entry-removed handling to after the normal entry
3535         delete handling, since we're called after the entry has been removed
3536         from the query model now.  Fixes crashes described in #344627.
3538 2006-06-13  William Jon McCann  <mccann@jhu.edu>
3540         * widgets/rb-rating-helper.c: (rb_rating_render_stars),
3541         (rb_rating_get_rating_from_widget):
3542         * widgets/rb-rating.c: (rb_rating_class_init),
3543         (rb_rating_finalize), (rb_rating_get_property),
3544         (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
3545         (rb_rating_button_press_cb):
3546         Don't crash when ratings icons can't be found.  Fixes #344533.
3548 2006-06-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3550         * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
3552 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3554         * Makefile.am:
3555         * configure.ac:
3556         * remote/Makefile.am:
3557         * remote/dbus/Makefile.am:
3558         * remote/dbus/rb-client.c:
3559         * shell/Makefile.am:
3560         New dbus client program providing --play/--next etc. arguments.
3561         Fixes #340863, #155763.
3563 2006-06-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3565         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
3566         g_mkdir_with_parents returns -1 on error, not 0.  Fixes #344316.
3568 2006-06-10  Ryan P Skadberg  <skadz@stigmata.org>
3570         patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
3572         * rhythmdb/rhythmdb-query-model.c:
3573         (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
3574         to Library incorrectly
3576 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3578         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3579         Return input string untouched if gnome_vfs_uri_new returns NULL.
3580         * sources/rb-static-playlist-source.c: (impl_receive_drag),
3581         (rb_static_playlist_source_add_list_uri):
3582         Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
3583         URIs don't break it.  Fixes #339033.
3585 2006-06-08  James Livingston  <doclivingston@gmail.com>
3587         * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
3588         for sources on the edge (i.e. the queue). Fixes #328409.
3590         * sources/rb-ipod-source.c: fix typo
3592 2006-06-08  James Livingston  <doclivingston@gmail.com>
3594         * configure.ac:
3595         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
3596         --enable-ipod-writing to enable the ipod syncing code.
3598 2006-06-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3600         * sources/rb-library-source.c: (layout_example_label_update):
3601         add missing comma so we don't generate broken markup.
3603 2006-06-08  James Livingston  <doclivingston@gmail.com>
3605         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
3606         tag-merging with id3v2mux as well as id3mux. From #342330.
3608 2006-06-07  James Livingston  <doclivingston@gmail.com>
3610         * tests/test-rhythmdb.c: #define fail_if for old version of check
3611         which don't have it. Hopefully fixes #343718.
3613 2006-06-07  James Livingston  <doclivingston@gmail.com>
3615         * shell/rb-playlist-manager.c:
3616         (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
3617         g_value_array_free with NULL. Fixes #341053.
3619 2006-06-07  James Livingston  <doclivingston@gmail.com>
3621         * shell/rb-playlist-manager.c:
3622         (rb_playlist_manager_playlist_entries_changed),
3623         (rb_playlist_manager_set_source): use the "post-entry-delete" signal
3624         instead of "row-removed", which fixes updating "burn playlist"
3625         sensitivity. Fixes #331119.
3627 2006-06-07  James Livingston  <doclivingston@gmail.com>
3629         * shell/rb-shell-player.c: (rb_shell_player_error): display errors
3630         rather than restarting if the source uses _RETRY and there is an
3631         actual error (like an undecodable stream) rather than it just dropping
3632         out and causing EOS.
3634 2006-06-07  James Livingston  <doclivingston@gmail.com>
3636         * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
3637         free the pixbufs if they couldn't be loaded. Fixed #343852.
3639 2006-06-07  James Livingston  <doclivingston@gmail.com>
3641         * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
3642         the close button on the dialog work. Fixes #335346.
3644 2006-06-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3646         * sources/rb-sourcelist-model.c: (path_is_droppable),
3647         (path_is_reorderable):
3648         * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
3649         (row_activated_cb), (emit_show_popup), (key_release_cb),
3650         (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3651         Ignore group marker rows in the source list.  Fixes #344089, a couple
3652         of other crashers, and some weird UI glitches too.
3654 2006-06-07  James Livingston  <doclivingston@gmail.com>
3656         * backends/gstreamer/rb-player-gst.c: check if we have a duration if
3657         the seeking query fails. This is needed because many gst elements
3658         don't implement the seeking query yet. Should fix 329977.
3660 2006-06-06  James Livingston  <doclivingston@gmail.com>
3662         * configure.ac: bump version for a prerelease, turn on track transfer
3663         by default.
3665         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
3666         ipod transfer stuff, since it has big issues and we'll hopefully land
3667         real support (bug 310774) after 0.9.5
3669 2006-06-06  James Livingston  <doclivingston@gmail.com>
3671         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
3672         id3v2mux once we've detected it.
3674 2006-06-06  James Livingston  <doclivingston@gmail.com>
3676         * lib/Makefile.am:
3677         * tests/test-rhythmdb.c: undo accidental commit which caused
3678         rb-thread.c to be built (which it isn't normally)
3680 2006-06-06  James Livingston  <doclivingston@gmail.com>
3682         * tests/test-rhythmdb.c: (test_rhythmdb_setup),
3683         (test_rhythmdb_shutdown), (START_TEST): add message strings to all
3684         fail_{if/unless} calls, as some versions of check need them (they are
3685         optional in others). Should fix bug 343718.
3687 2006-06-06  James Livingston  <doclivingston@gmail.com>
3689         * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
3690         343836.
3691         
3692         * lib/Makefile.am:
3693         * lib/rb-thread.c: (process_actions):
3694         * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
3695         tests that don't pass.
3697 2006-06-05  James Livingston  <doclivingston@gmail.com>
3699         * data/glade/Makefile.am:
3700         * data/glade/load-failure.glade:
3701         * data/rhythmbox.schemas: remove the remainder of the old load-failure
3702         dialog.
3704 2006-06-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3706         * bindings/python/rb.defs:  Remove rb_debug stuff I accidentally
3707         checked in.
3709 2006-06-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3711         * bindings/python/rb.defs:
3712         * sources/rb-source.h:
3713         * sources/rb-source.c: (rb_source_class_init),
3714         (rb_source_set_property), (rb_source_get_property),
3715         (rb_sourcelist_group_get_type):
3716         Add 'sourcelist-group' property on the RBSource class, describing how
3717         sources should be grouped in the source list.
3719         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
3720         (rb_sourcelist_model_new), (real_row_is_separator),
3721         (rb_sourcelist_model_is_row_visible),
3722         (rb_sourcelist_model_row_is_separator), (get_group_for_path),
3723         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
3724         (rb_sourcelist_model_row_draggable),
3725         (rb_sourcelist_model_row_inserted_cb),
3726         (rb_sourcelist_model_row_deleted_cb),
3727         (rb_sourcelist_model_get_group_path):
3728         * sources/rb-sourcelist-model.h:
3729         * sources/rb-sourcelist.c: (rb_sourcelist_init),
3730         (rb_sourcelist_append):
3731         Add group marker rows for each sourcelist group, and use these to
3732         insert sources in the right place.  Sort transient sources (DAAP
3733         shares) by name.  Show the group marker rows as separators when the
3734         next visible row is a source.  Make persistant sources (playlists) and
3735         removable sources reorderable using drag and drop, restricting them
3736         within the source groups.
3737         
3738         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
3739         * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
3740         * sources/rb-daap-source.c: (rb_daap_source_new):
3741         * sources/rb-ipod-source.c: (rb_ipod_source_new):
3742         * sources/rb-static-playlist-source.c:
3743         (rb_static_playlist_source_new):
3744         * plugins/generic-player/rb-generic-player-source.c:
3745         (rb_generic_player_source_new):
3746         * plugins/generic-player/rb-nokia770-source.c:
3747         (rb_nokia770_source_new):
3748         * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
3749         Add source list group information to existing source classes.
3751         Fixes #318754 and #336492.
3753 2006-06-04  James Livingston  <doclivingston@gmail.com>
3755         * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
3756         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
3757         win32 build fixes.
3759 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3761         * rhythmdb/rhythmdb-query-model.c:
3762         (rhythmdb_query_model_class_init),
3763         (rhythmdb_query_model_remove_from_main_list):
3764         * rhythmdb/rhythmdb-query-model.h:
3765         Add a new 'post-entry-delete' signal, emitted when the entry has been
3766         removed from the model's data structures.
3768         * shell/rb-play-order.c: (rb_play_order_finalize),
3769         (rb_play_order_query_model_changed),
3770         (rb_play_order_post_entry_delete_cb):
3771         Use the new signal to update the play order, so the queue play order
3772         doesn't try to scroll to entries that don't exist in a way that causes
3773         the tree view to crash.  Fixes #340216.
3775 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3777         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
3778         Fix rb_debug call I missed previously.
3780 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3782         * metadata/rb-metadata-gst.c:
3783         Don't use NULL as the error message for ignored files, as it crashes
3784         with some C libraries.  Fixes #343713.
3786 2006-06-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3788         * widgets/rb-dialog.c: (rb_error_dialog):
3789         * widgets/rb-dialog.h:
3790         Mark rb_error_dialog as taking printf-like arguments, and use a format
3791         string for the primary message rather than passing in the message
3792         directly.
3794         * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
3795         * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
3796         (info_available_cb):
3797         * shell/rb-playlist-manager.c: (load_playlist_response_cb):
3798         * shell/rb-removable-media-manager.c:
3799         (rb_removable_media_manager_eject_medium_cb):
3800         Make sure all calls to rb_error_dialog use string constants for the
3801         format string rather than passing the error message directly.  Remove
3802         an extra %s from the message used when playback fails.  Fixes #343562.
3804         * lib/rb-debug.h:
3805         * sources/rb-audiocd-source.c:
3806         * plugins/audioscrobbler/rb-audioscrobbler.c:
3807         (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
3808         Mark rb_debug as taking printf-like arguments and fix a few resulting
3809         warnings.
3811 2006-06-02  James Livingston  <doclivingston@gmail.com>
3813         * configure.ac:
3814         + macros/check.m4: add support for using check for unit tests, the .m4
3815         files is so autogen can run without check being installed
3817         * tests/Makefile.am:
3818         + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
3819         some of the old tests, and add some new ones. Currently
3820         deserialisation tests 2 and 3 fail, for reasons I haven't figured out
3821         yet (the query doesn't return any entries).
3823         - tests/deserialization-test1.xml:
3824         - tests/deserialization-test2.xml:
3825         - tests/deserialization-test3.xml:
3826         - tests/test-rhythmdb-indexing.c:
3827         - tests/test-rhythmdb-simple.c:
3828         - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
3829         have been ported
3831         - tests/test-cd.c:
3832         - tests/test-cmdline.c: remove obsolete tests
3834 2006-06-02  James Livingston  <doclivingston@gmail.com>
3836         * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3837         (rb_add_id3_tagger), (rb_metadata_init): add support for using
3838         id3v2mux, and check whether we are using a version of id3mux that has
3839         the correct merge-mode behaviour.
3841         * plugins/sample-python/Makefile.am: fix distcheck.
3843         * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
3844         the changed-files source was added before trying to remove it.
3846         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
3847         *old* bug which would crash if a query with top-level disjunctions
3848         tried to check later disjunctive parts. Hooray for unit-testing.
3850 2006-06-02  William Jon McCann  <mccann@jhu.edu>
3852         * player/rb-recorder-gst.c (rb_recorder_set_device):
3853         Check for a null drive.
3855 2006-05-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3857         * lib/Makefile.am:
3858         * lib/rb-stock-icons.c: (rb_stock_icons_init):
3859         Register the app icon as a builtin if the icon theme can't find it.
3861 2006-05-31  James Livingston  <doclivingston@gmail.com>
3863         * player/rb-recorder-gst.c: add missing include.
3865 2006-05-30  William Jon McCann  <mccann@jhu.edu>
3867         * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
3868         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
3869         (tick_timeout_cb), (rb_recorder_sync_pipeline),
3870         (nautilus_burn_drive_get_device), (rb_recorder_get_device),
3871         (rb_recorder_set_device), (rb_recorder_get_default_device):
3872         * shell/main.c: (main):
3873         * shell/rb-removable-media-manager.c:
3874         (rb_removable_media_manager_finalize),
3875         (get_nautilus_burn_drive_for_path),
3876         (rb_removable_media_manager_playing_uri_changed_cb),
3877         (rb_removable_media_manager_load_media),
3878         (nautilus_burn_drive_get_device),
3879         (rb_removable_media_manager_scan):
3880         * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
3882         Update for libnautilus-burn 2.15.3 API changes.
3883         Fixes #342604
3885 2006-05-30  James Livingston  <doclivingston@gmail.com>
3887         * daapsharing/rb-daap-connection.c: (handle_login): add a missing
3888         "return" to that it asks for the password again if it was wrong.
3890 2006-05-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3892         * metadata/rb-metadata-gst.c:  Don't leak a reference to decodebin's
3893         typefind element.
3895 2006-05-30  James Livingston  <doclivingston@gmail.com>
3897         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
3898         (download_progress_cb): don't do wonky things if the transfer
3899         "suceeds" without transferring any data.
3901 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3903         * sources/rb-library-source.c: (layout_example_label_update),
3904         (build_filename):  Fix crash when no audio profile is selected.
3905         Fixes #341447.
3907 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3909         * shell/rb-shell.c: (rb_shell_clear_queue):
3910         * shell/rb-shell.h:
3911         * shell/rb-shell.xml:
3912         * sources/rb-play-queue-source.c:
3913         (rb_play_queue_source_clear_queue),
3914         (rb_play_queue_source_cmd_clear):
3915         * sources/rb-play-queue-source.h:
3916         Add clearQueue dbus method.
3918 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3920         * shell/main.c: (main):  Implement --quit option.
3922 2006-05-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3924         * rhythmdb/rhythmdb-private.h:
3925         * rhythmdb/rhythmdb-tree.h:
3926         * rhythmdb/rhythmdb.c: (process_added_entries_cb),
3927         (rhythmdb_entry_insert), (rhythmdb_entry_set),
3928         (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
3929         (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
3930         (rhythmdb_entry_get_boolean):
3931         Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
3932         bitmask, giving the db backend anything past the first 16 bits for 
3933         its own private use.
3935         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3936         (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
3937         Add a 'loading' flag to indicate that an entry is being loaded from
3938         disk, and use that to ignore entry_set operations on such entries
3939         rather than the 'inserted' flag, which doesn't quite mean the same
3940         thing.  Fixes #342694.
3942 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3944         * shell/rb-shell.xml: Remove visibility property, since it causes
3945         crashes (dbus bug 7057) and doesn't do much else.
3947 2006-05-28  James Livingston  <doclivingston@gmail.com>
3949         * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
3951         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3952         * po/POTFILES.in: fix some more i18n issues.
3954 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3956         * bindings/python/rb.defs:
3957         * shell/rb-shell-player.c: (rb_shell_player_playpause),
3958         (filter_mmkeys):
3959         * shell/rb-shell-player.h:
3960         Deprecate the useless 'ignore_stop' parameter to
3961         rb_shell_player_playpause, leaving it in place to avoid breaking dbus
3962         API.  From bug #334829.
3964 2006-05-28  Jonathan Matthew  <jonathan@kaolin.wh9.net>
3966         * plugins/generic-player/rb-generic-player-source.c:
3967         (visit_playlist_dirs), (default_transform_playlist_uri):
3968         When playlist parsing fails, unref the playlist, not the parent
3969         source.  Fix memory leak in playlist uri transform.
3970         * plugins/generic-player/rb-nokia770-source.c:
3971         (impl_transform_playlist_uri):
3972         Fix memory leak in playlist uri transform.
3974 2006-05-27  Ryan P Skadberg  <skadz@stigmata.org>
3976         * doc/reference/Makefile.am: fix grk-doc build
3978 2006-05-27  James Livingston  <doclivingston@gmail.com>
3980         patch by: Nguyễn Thái Ngọc Duy  <pclouds@gmail.com>
3982         * plugins/lyrics/lyrics.py:
3983         * po/POTFILES.in: Make strings in plugins translatable. From bug
3984         343081.
3986 2006-05-27  James Livingston  <doclivingston@gmail.com>
3988         * backends/Makefile.am:
3989         * backends/gstreamer/Makefile.am:
3990         * lib/Makefile.am:
3991         * plugins/audioscrobbler/Makefile.am:
3992         * plugins/generic-player/Makefile.am:
3993         * po/POTFILES.in:
3994         * rhythmdb/rhythmdb-monitor.c:
3995         * rhythmdb/rhythmdb.c:
3996         * sources/Makefile.am:
3997         * widgets/Makefile.am: fix compilation after some CVS surgery was
3998         done.
4000 2006-05-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4002         * bindings/python/rhythmdb.defs:
4003         * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4004         (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4005         (rhythmdb_query_deserialize):
4006         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4007         (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4008         (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4009         (rhythmdb_entry_register_type_alias),
4010         (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4011         (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4012         (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4013         (rhythmdb_entry_podcast_feed_get_type),
4014         (rhythmdb_entry_import_error_get_type),
4015         (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4016         * rhythmdb/rhythmdb.h:
4017         Allocate a specified amount of extra memory for each db entry, to be
4018         used to store fields specific to the entry type.  Optionally associate
4019         a name with each entry type, to be used when saving entries and
4020         auto playlists to disk.  Allow entry types to have multiple names
4021         to handle older playlist files that used '0' to represent 'song'.
4022         Use private data to store podcast fields.
4024         * rhythmdb/rhythmdb-private.h:
4025         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4026         (rhythmdb_tree_parser_end_element), (save_entry),
4027         (rhythmdb_tree_entry_set):
4028         Simplify property handling by using existing code to convert
4029         properties from strings to GValues and to set properties on entries.
4030         Other assorted changes due to the above.
4032         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4033         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4034         * sources/rb-generic-player-source.c:
4035         (rb_generic_player_source_new):
4036         * sources/rb-ipod-source.c: (rb_ipod_source_new):
4037         * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4038         * sources/rb-psp-source.c: (rb_psp_source_new):
4039         Update for changes to rhythmdb_entry_register_type.  None of these
4040         entry types need names or use private data.
4042         Fixes #337429.
4044 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4046         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4047         Fix creation of ignored-file db entries - need to check for
4048         RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4050 2006-05-25  James Livingston  <doclivingston@gmail.com>
4052         * AUTHORS:
4053         * MAINTAINERS: update my email address
4055 2006-05-25  James Livingston  <doclivingston@gmail.com>
4057         * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4058         "(... mix)" when searching for lyrics. Cache the lyrics under
4059         ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4061 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4063         * sources/rb-import-errors-source.c:
4064         (rb_import_errors_source_class_init):
4065         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4066         * sources/rb-browser-source.c: (rb_browser_source_class_init):
4067         * sources/rb-source.c: (rb_source_class_init),
4068         (default_move_to_trash):
4069         Implement the basic move-to-trash operation once in rb-source.c, 
4070         rather than in each source type that supports it.
4072         * plugins/ipod/rb-ipod-plugin.c:
4073         * shell/rb-removable-media-manager.c:
4074         * shell/rb-shell.c: (rb_shell_constructor):
4075         Only scan removable media once after loading plugins.  Add a flag
4076         plugins can use to check if the initial scan has been done.
4078         * data/rhythmbox.schemas:
4079         Enable ipod and generic-player plugins by default.
4080         
4081         * configure.ac:
4082         * data/ui/Makefile.am:
4083         * data/ui/generic-player-ui.xml:
4084         * data/ui/rhythmbox-ui.xml:
4085         * plugins/Makefile.am:
4086         * plugins/generic-player/Makefile.am:
4087         * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4088         * plugins/generic-player/rb-generic-player-plugin.c:
4089         * sources/Makefile.am:
4090         * sources/rb-generic-player-source.c:
4091         * sources/rb-generic-player-source.h:
4092         * sources/rb-nokia770-source.c:
4093         * sources/rb-nokia770-source.h:
4094         * sources/rb-psp-source.c: (visit_playlist_dirs):
4095         * sources/rb-psp-source.h:
4096         Pluginise generic player (and nokia770 and PSP) support and add
4097         move-to-trash for players not mounted read-only.
4098         Fixes #342868.
4100 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4102         * daapsharing/rb-daap-connection.c (handle_song_listing):
4103         Lower bound check for batch commit.  Fixes #342848
4105         * sources/rb-daap-source.c (rb_daap_source_get_status):
4106         Always set output variables if provided.
4108 2006-05-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4110         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4111         (rhythmdb_tree_entry_delete), (remove_one_song):
4112         * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4113         Fix two db entry reference counting problems.
4114         The initial reference on the entry is held by the db backend, but it
4115         was never being dropped.  The reference count was incremented when
4116         adding an entry to the deleted_entries map and to the
4117         deleted_entries_to_emit list, but only decremented for one of those.
4119 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4121         * daapsharing/rb-daap-connection.c (http_response_handler) 
4122         (rb_daap_connection_dispose):
4123         Call soup_session_abort to make sure there are no outstanding
4124         requests when we dispose of the connection.  Ignore cancelled
4125         messages in the callback.
4127 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4129         * sources/rb-daap-source.c (rb_daap_source_connection_cb) 
4130         (rb_daap_source_disconnect): Set a flag when disconnecting
4131         the source.  Check this flag in connection callback
4132         to see if we should release the connection.
4134 2006-05-24  William Jon McCann  <mccann@jhu.edu>
4136         * daapsharing/Makefile.am:
4137         * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4138         (rb_daap_connection_class_init), (connection_connected),
4139         (connection_disconnected), (connection_operation_done),
4140         (build_message), (connection_set_error_message),
4141         (actual_http_response_handler), (http_get),
4142         (entry_set_string_prop), (emit_progress_idle),
4143         (handle_server_info), (handle_login), (handle_update),
4144         (handle_database_info), (handle_song_listing), (handle_playlists),
4145         (handle_playlist_entries), (handle_logout),
4146         (rb_daap_connection_new), (rb_daap_connection_is_connected),
4147         (connection_response_data_free), (connected_cb),
4148         (rb_daap_connection_connect), (disconnected_cb),
4149         (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4150         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4151         (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4152         (rb_daap_connection_get_property):
4153         * daapsharing/rb-daap-connection.h:
4154         * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4155         (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4156         (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4157         (rb_daap_hash_generate):
4158         * daapsharing/rb-daap-hash.h:
4159         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4160         (rb_daap_get_icon), (remove_source), (stop_browsing),
4161         (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4162         (connection_connecting_cb), (connection_disconnected_cb),
4163         (release_connection), (rb_daap_source_connection_cb),
4164         (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4165         (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4167         Adds a better async API for connect and disconnect.  Doesn't share
4168         callback data for every async call.  Adds a connect signal.  Uses
4169         an operation-done signal to trigger the callbacks.  Displays an
4170         error when connections fail.  A few refcounting fixes to fix
4171         crashes.  Uses a weak pointer to set the connection to NULL so we
4172         don't clobber references.  Wait for each disconnect when shutting
4173         down sources.  Split out DAAP hash stuff into its own file.  Fix
4174         typo in header.
4176         Fixes #342643
4177         
4178 2006-05-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4180         * sources/rb-auto-playlist-source.c:
4181         (rb_auto_playlist_source_new_from_xml):
4182         Initialize the gvalue used to hold the size limit correctly.
4183         Fixes #342744.
4185 2006-05-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4187         * shell/rb-shell.c: (rb_shell_window_delete_cb),
4188         (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4189         * shell/rb-shell.h:
4190         * shell/rb-shell.xml:
4191         Convert rb_shell_quit into a dbus method, and add visibility dbus
4192         property.
4194 2006-05-22  James Livingston  <doclivingston@gmail.com>
4196         * rhythmdb/rhythmdb.h:
4197         * rhythmdb/rhythmdb.c: (sync_entry_changed),
4198         (rhythmdb_entry_is_editable), (action_thread_main),
4199         (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4200         vfuncs for can_sync_metadata, and sync_metadata. The default is always
4201         false, and syncing into the file.
4203         (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4204         (rhythmdb_entry_iradio_get_type),
4205         (rhythmdb_entry_import_error_get_type):
4206         * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4207         vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4208         change the DB.
4210 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4212         * rhythmdb/Makefile.am:
4213         * rhythmdb/rhythmdb-monitor.c:
4214         * rhythmdb/rhythmdb-private.h:
4215         * rhythmdb/rhythmdb-query.c:
4216         * rhythmdb/rhythmdb.c:
4217         Split up rhythmdb.c a bit.
4219 2006-05-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4221         * data/glade/audioscrobbler-prefs.glade:
4222         Add a link to the last.fm server status page.
4224 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4226         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4227         Capitalization fix.
4228         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4229         (impl_create_configure_dialog):  UI layout fixes, remove
4230         dialog separator, and capitalization fix for window title.
4231         * shell/rb-shell.c: (rb_shell_cmd_plugins):  UI layout fixes, 
4232         and remove dialog separator.
4233         * data/glade/plugins.glade:  UI layout fixes.
4234         * data/glade/audioscrobbler-prefs.glade:  UI layout fixes,
4235         and capitalization fix.  Fixes #342438.
4237 2006-05-20  Dennis Cranston  <dennis_cranston@yahoo.com>
4239         * data/glade/podcast-properties.glade:  Fix layout of the download 
4240         location.  Fixes #342431.
4242 2006-05-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4244         * data/ui/rhythmbox-ui.xml:
4245         We only need one copy of the 'add to queue' action in the edit menu.
4247 2006-05-20  James Livingston  <doclivingston@gmail.com>
4249         * data/ui/rhythmbox-ui.xml:
4250         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4251         (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4252         (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4253         (rb_shell_clipboard_sync),
4254         (rb_shell_clipboard_cmd_add_to_playlist_new),
4255         (rb_shell_clipboard_cmd_queue_song_info),
4256         (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4257         (rb_shell_clipboard_playlist_deleted_cb),
4258         (rb_shell_clipboard_playlist_renamed_cb),
4259         (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4260         (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4261         * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4262         dynamically generated with all the static playlists. Fixes bug 323364.
4264         * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4265         right child, so it doesn't go weird when art appears and disappears.
4267 2006-05-20  James Livingston  <doclivingston@gmail.com>
4269         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
4271         * rhythmdb/rhythmdb-query-model.c:
4272         (rhythmdb_query_model_set_property),
4273         (rhythmdb_query_model_finalize),
4274         (rhythmdb_query_model_reapply_query_cb):
4275         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4276         (rhythmdb_query_append_prop_multiple),
4277         (rhythmdb_query_is_time_relative):
4278         * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4279         time-based criteria, fixes bug 341131.
4281 2006-05-20  James Livingston  <doclivingston@gmail.com>
4283         * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4284         we have already changed playing entries. Interpolate the art size so
4285         it doesn't jump when the old and new images have different aspect
4286         ratios.
4288 2006-05-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4290         * rhythmdb/rhythmdb-private.h:
4291         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4292         (save_entry):
4293         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4294         (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4295         (rhythmdb_entry_get_ulong):
4296         Include the GDate directly in RhythmDBEntry (it's only 8 bytes) 
4297         and elsewhere, use them on the stack rather than allocating on 
4298         the heap.  From bug #342333.
4300 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4302         * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4303         (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4304         (add_track), (eos_cb), (error_signal_idle),
4305         (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4306         (rb_recorder_construct), (recorder_track_free),
4307         (rb_recorder_finalize):
4308         * sources/rb-playlist-source-recorder.c:
4309         Support libnautilus-burn size -> capacity API change.  Add
4310         some braces to blocks.
4312 2006-05-19  William Jon McCann  <mccann@jhu.edu>
4314         * metadata/sj-metadata-musicbrainz.c:
4315         (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4316         Sync with sound-juicer in CVS.  Fixes #342177
4317         * sources/rb-audiocd-source.c: Don't declare variables
4318         in the middle of a block (c99ism).  Fix order of #includes.
4319         Use gi18n.h.  Don't include rhythmdb.h twice.  Declare
4320         one variable per line.  Update copyright date.
4322 2006-05-19  James Livingston  <doclivingston@gmail.com>
4324         patch by: Hendrik Richter  <hendi@gnome-de.org>
4326         * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4327         "translator_credits" to a hyphen, so it doesn't cause problems for
4328         tools that check access keys. Fixes bug 341832.
4330 2006-05-19  James Livingston  <doclivingston@gmail.com>
4332         * po/POTFILES.in: remove references to files that don't exist any more
4333         (fixes make distcheck).
4335 2006-05-19  Dennis Cranston  <dennis_cranston@yahoo.com>
4337         * plugins/lyrics/lyrics.py:  Fix layout close button in 
4338         Song Lyrics dialog. Fixes bug 342322.
4340 2006-05-19  James Livingston  <doclivingston@gmail.com>
4342         patch by: Loïc Minier  <lool+gnome@via.ecp.fr>
4344         * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4345         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4346         version checks not break when libnotify goes to 1.0.0. Fixes bug
4347         342244.
4349 2006-05-18  James Livingston  <doclivingston@gmail.com>
4351         * shell/rb-shell-clipboard.c:
4352         * shell/rb-shell.c:
4353         * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4355 2006-05-17  William Jon McCann  <mccann@jhu.edu>
4357         * sources/rb-playlist-source-recorder.c (get_song_description):
4358         Reverse artist and title in song description.  This
4359         is useful because at least the title will be visible
4360         when there is limited space.
4362 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4364         * daapsharing/rb-daap-connection.c: (connection_get_password):
4365         Take gdk lock before emitting authenticate signal.
4366         * sources/rb-daap-source.c: (connection_connecting_cb):
4367         Get rid of the unnecessary idle handler (it's already called from one)
4368         Fixes #342047 once more.
4370 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4372         * shell/rb-shell.c: (rb_shell_class_init):
4373         * shell/rb-shell.h:
4374         * widgets/rb-song-info.c: (rb_song_info_class_init),
4375         (rb_song_info_construct_single), (rb_song_info_construct_multiple),
4376         (rb_song_info_constructor), (rb_song_info_get_property),
4377         (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
4378         (rb_song_info_forward_clicked_cb):
4379         * widgets/rb-song-info.h:
4380         * data/glade/song-info-multiple.glade:
4381         * lib/rb-marshal.list:
4382         * bindings/python/Makefile.am:
4383         * bindings/python/rb.defs:
4384         * bindings/python/rb.override:
4385         Allow plugins to add pages to the notebooks used in song info windows,
4386         and to track the current song displayed in single-entry windows.
4387         
4388         * configure.ac:
4389         * plugins/Makefile.am:
4390         * plugins/lyrics/Loader.py:
4391         * plugins/lyrics/Makefile.am:
4392         * plugins/lyrics/lyrics.py:
4393         * plugins/lyrics/lyrics.rb-plugin.desktop.in:
4394         Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
4395         as a separate window (for the playing song) or as a page in the song
4396         info window.  A few TODO items left, but this fixes #319320.
4398 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4400         Patch by:  Roozbeh Pournader
4402         * configure.ac:
4403         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
4404         Update eel_strdup_strftime from eel CVS HEAD.  Fixes #341938.
4406 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4407         
4408         * sources/rb-daap-source.c: (update_connection_status):
4409         Correct return value.  Fixes #342047 again.
4411 2006-05-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4413         * sources/rb-daap-source.c: (update_connection_status),
4414         (connection_connecting_cb):
4415         Update status in an idle handler so we don't rely on the gdk lock
4416         being recursive (because it isn't any more).  Fixes #342047.
4418 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4420         * lib/rb-util.c: (rb_make_duration_string),
4421         (rb_make_elapsed_time_string):
4422         * lib/rb-util.h:
4423         Add a function for formatting an elapsed time string.
4425         * shell/rb-shell-player.c: (rb_shell_player_init),
4426         (rb_shell_player_sync_with_source),
4427         (rb_shell_player_get_playing_time_string), (tick_cb):
4428         Store elapsed time in the private data structure, and use the above
4429         function.
4430         
4431         * widgets/rb-header.c:
4432         * widgets/rb-header.h:
4433         Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
4434         object, so everything has the same idea of the elapsed time.
4435         Fixes #339693.
4437 2006-05-16  James Livingston  <doclivingston@gmail.com>
4439         * bindings/python/rhythmdb.defs:
4440         * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
4441         some parametre defaults, so you don't have to pass None, False for the
4442         sorting order.
4444 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4446         * bindings/python/rhythmdb.defs:
4447         * rhythmdb/rhythmdb-query-model.c:
4448         (rhythmdb_query_model_compute_status_normal):
4449         * rhythmdb/rhythmdb-query-model.h:
4450         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
4451         * rhythmdb/rhythmdb.h:
4452         Change the various compute_status methods to accept a singular/plural
4453         pair to use in the status string.
4454         
4455         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4456         (rb_podcast_source_cmd_new_podcast), (impl_get_status):
4457         * sources/rb-source.c: (default_get_status):
4458         Call entries 'songs' by default, and 'episodes' in the podcast source.
4459         Fixes #340227.
4461 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4463         patch by:  Paul Drain
4465         * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
4466         Fixes #341817.
4468 2006-05-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4470         * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
4471         Generate reorder maps correctly.
4472         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
4473         Scroll to the first entry from the old selection.
4474         Fixes #322992.
4476 2006-05-15  William Jon McCann  <mccann@jhu.edu>
4478         * data/ui/rhythmbox-ui.xml:
4479         * lib/rb-preferences.h:
4480         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4481         (rb_shell_playlist_created_cb),
4482         (rb_shell_view_sidepane_changed_cb),
4483         (rb_shell_sync_sidepane_visibility),
4484         (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
4485         (sidepane_visibility_changed_cb):
4486         * sources/rb-podcast-source.c:
4487         Convert sourcelist visibility to side-pane visbility.
4488         Fixes #339733
4490 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4492         * widgets/rb-header.c:
4493         * widgets/rb-header.h: Stop RBHeader from referring to itself as
4494         'player', and make it use the private data structure allocated for it.
4496 2006-05-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4498         * configure.ac: enable metadata helper with dbus < 0.35.
4500 2006-05-15  James Livingston  <doclivingston@gmail.com>
4502         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
4504         * data/glade/song-info.glade:
4505         * widgets/rb-song-info.c: (rb_song_info_construct_single),
4506         (rb_song_info_populate_dialog), (rb_song_info_update_duration),
4507         (rb_song_info_update_filesize): Add the file size into the song info
4508         window. Fixes bug 340861.
4510 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4512         * bindings/python/rhythmdb.defs:
4513         * rhythmdb/rhythmdb-query-model.c:
4514         (rhythmdb_query_model_set_property),
4515         (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
4516         * rhythmdb/rhythmdb-query-model.h:
4517         Add a new method to chain query models without importing entries from
4518         the parent into the child.  This is useful when the subset of entries
4519         in the child can be more easily determined by running a query than by
4520         filtering entries from the parent.
4522         * bindings/python/rb.defs:
4523         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4524         (rb_library_browser_set_property),
4525         (rb_library_browser_get_property), (rb_library_browser_new),
4526         (rebuild_child_model):
4527         * widgets/rb-library-browser.h:
4528         * sources/rb-auto-playlist-source.c:
4529         (rb_auto_playlist_source_constructor):
4530         * sources/rb-static-playlist-source.c:
4531         (rb_static_playlist_source_constructor):
4532         * sources/rb-browser-source.c: (rb_browser_source_constructor):
4533         Use more efficient queries for constructing the browser query model
4534         chain.  Include the entry type at each level (allowing the rhythmdb-tree 
4535         backend to optimise the query) and run new queries rather than
4536         filtering entries from the parent.  Fixes #341402.
4538         * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
4540 2006-05-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4542         * configure.ac:
4543         * shell/Makefile.am:
4544         * shell/main.c: (main), (load_uri_args), (send_present_message),
4545         (unregister_dbus_handler), (handle_dbus_message),
4546         (register_dbus_handler):
4547         Add minimal support for dbus 0.31 - 0.35.
4549         * doc/reference/Makefile.am:
4550         * doc/reference/rhythmbox.types:
4551         * data/Makefile.am:
4552         * data/GNOME_Rhythmbox.server.in:
4553         * data/rhythmbox.pc.in:
4554         * remote/*:
4555         * remote/bonobo/*:
4556         Remove remaining bonobo and generic remote interface files.
4558 2006-05-14  James Livingston  <doclivingston@gmail.com>
4560         * shell/rb-shell.c: (construct_widgets):
4561         * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
4562         resize the browser and queue-sidebar section of their panes, unless
4563         the other section is below the minimum size. Fixes bug 331927.
4565 2006-05-13  James Livingston  <doclivingston@gmail.com>
4567         * rhythmdb/rhythmdb-query-model.c:
4568         (rhythmdb_query_model_class_init),
4569         (rhythmdb_query_model_set_property),
4570         (rhythmdb_query_model_get_property),
4571         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
4572         (rhythmdb_query_model_insert_into_main_list),
4573         (rhythmdb_query_model_insert_into_limited_list),
4574         (rhythmdb_query_model_do_reorder),
4575         (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
4576         (rhythmdb_query_model_location_sort_func),
4577         (rhythmdb_query_model_title_sort_func),
4578         (rhythmdb_query_model_album_sort_func),
4579         (rhythmdb_query_model_artist_sort_func),
4580         (rhythmdb_query_model_genre_sort_func),
4581         (rhythmdb_query_model_track_sort_func),
4582         (rhythmdb_query_model_double_ceiling_sort_func),
4583         (rhythmdb_query_model_ulong_sort_func),
4584         (rhythmdb_query_model_date_sort_func),
4585         (rhythmdb_query_model_string_sort_func):
4586         * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
4587         instead of a RhythmDBPropType (which can be put in a gpointer). Add a
4588         "data destroy" property. Fixed bug 341543.
4590         * bindings/python/rhythmdb.defs:
4591         * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
4592         rhythmdb_query_model_set_sorting_order
4594         * rhythmdb/rhythmdb-property-model.c:
4595         (rhythmdb_property_model_drag_data_get):
4596         * sources/rb-import-errors-source.c:
4597         (rb_import_errors_source_constructor):
4598         * sources/rb-missing-files-source.c:
4599         (rb_missing_files_source_constructor):
4600         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
4601         (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
4602         * widgets/rb-entry-view.h: adapt to the above change.
4604 2006-05-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4606         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4607         (rhythmdb_tree_load):
4608         Commit loaded entries in batches, rather than individually.  
4609         More startup time reduction.
4611 2006-05-12  Ryan P Skadberg  <skadz@stigmata.org>
4613         * doc/reference/Makefile.am: fix gtk-doc compilation
4615 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4617         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4618         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4619         * plugins/artdisplay/artdisplay/Loader.py:
4620         Correct fallback to medium size.  Convert & to "and" when doing comparisons.
4621         Only call the first artist the best match when album==Unknown.
4622         Don't perform each query twice if album doesn't include "Vol N".
4623         Fix searching for compilations.  Fix blacklisting.
4624         Part of bug #307848
4626 2006-05-12  William Jon McCann  <mccann@jhu.edu>
4628         * Makefile.am:
4629         * bindings/python/Makefile.am:
4630         * bindings/python/rb.defs:
4631         * bindings/python/rb.override:
4632         * configure.ac:
4633         * doc/reference/Makefile.am:
4634         * plugins/Makefile.am:
4635         * plugins/audioscrobbler/Makefile.am:
4636         * plugins/ipod/Makefile.am:
4637         * plugins/lirc/Makefile.am:
4638         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
4639         (impl_activate), (impl_deactivate):
4640         * plugins/sample/Makefile.am:
4641         * remote/Makefile.am:
4642         * shell/Makefile.am:
4643         * shell/main.c: (main), (main_shell_weak_ref_cb):
4644         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
4645         (rb_shell_get_property), (rb_shell_window_state_cb),
4646         (idle_hide_mainwindow), (rb_shell_set_visibility),
4647         (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
4648         (rb_shell_set_song_property):
4649         * shell/rb-shell.h:
4650         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
4651         (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
4652         (rb_tray_icon_get_property), (rb_tray_icon_new),
4653         (rb_tray_icon_button_press_event_cb),
4654         (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
4655         (rb_tray_icon_show_window_changed_cb):
4656         * shell/rb-tray-icon.h:
4658         Remove bonobo, require DBUS.
4659         Patch from Jonathan Matthew  <jonathan@kaolin.wh9.net>
4660         Fixes #339720
4662 2006-05-13  James Livingston  <doclivingston@gmail.com>
4664         * bindings/python/rb.override: fix some pointer-type warnings
4666 2006-05-12  James Livingston  <doclivingston@gmail.com>
4668         * lib/rb-util.c: (rb_value_free):
4669         * lib/rb-util.h: Add function to unset and free a GValue* that was
4670         allocated in the heap.
4672         * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
4673         the metadata hastable values
4674         * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
4675         leak the metadata hashtable structure
4676         * metadata/rb-metadata-dbus.c:
4677         (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
4678         using g_strdup and then _take_string
4680         * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
4681         (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
4682         stat something.
4684         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
4685         leak the encoded string
4687         * widgets/rb-property-view.c:
4688         (rb_property_view_selection_changed_cb): set some variables to have
4689         inital values, because some code paths may not set them before we use
4690         them.
4692         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
4693         don't have python warning into a debug message".
4695 2006-05-10  William Jon McCann  <mccann@jhu.edu>
4697         * data/rhythmbox.schemas: Use zero instead of null for
4698         default burn speed.  Fixes #341283.
4700 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4702         * bindings/python/rb.defs:
4703         * widgets/rb-library-browser.c:
4704         (rb_library_browser_get_property_view):
4705         * widgets/rb-library-browser.h:
4706         Add a method to get the property view for a given property.
4708         * sources/rb-browser-source.c:
4709         (rb_browser_source_cmd_choose_genre),
4710         (rb_browser_source_cmd_choose_artist),
4711         (rb_browser_source_cmd_choose_album):
4712         Change the browser selection by changing the property view selection. 
4713         Makes the selection change visible, fixing #331740.
4715 2006-05-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4717         * bindings/python/rb.defs:
4718         * bindings/python/rb.override:
4719         * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
4720         * shell/rb-statusbar.c: (*),
4721         * sources/rb-import-errors-source.c: (impl_get_status):
4722         * sources/rb-iradio-source.c: (impl_get_status):
4723         * sources/rb-missing-files-source.c: (impl_get_status):
4724         * sources/rb-source.c: (default_get_status),
4725         (rb_source_get_status):
4726         * sources/rb-source.h:
4727         Allow sources to provide a progress value for the status bar.
4728         Simplify status bar processing (much less polling).
4729         Consider rhythmdb busy while it's still loading the database.
4731         * daapsharing/rb-daap-connection.c: (*)
4732         * daapsharing/rb-daap-connection.h:
4733         * lib/rb-marshal.list:
4734         * sources/rb-daap-source.c: (rb_daap_source_class_init),
4735         (rb_daap_source_init), (connection_connecting_cb),
4736         (rb_daap_source_activate), (rb_daap_source_get_paned_key),
4737         (rb_daap_source_get_status):
4738         Provide status information for DAAP connections, and move processing
4739         of large responses into a separate thread.
4740         Fixes bugs #322020 and #338978.
4742 2006-05-09  James Livingston  <doclivingston@gmail.com>
4744         Split the artdisplay plugin into several files.
4745         Fix loader and amazon-search re-use issues.
4746         Add some better search heuristics.
4748         * configure.ac:
4749         * plugins/artdisplay/Makefile.am:
4750         * plugins/artdisplay/artdisplay.py:
4751         * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4752         * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4753         * plugins/artdisplay/artdisplay/Loader.py:
4754         * plugins/artdisplay/artdisplay/Makefile.am:
4755         * plugins/artdisplay/artdisplay/__init__.py:
4757 2006-05-09  James Livingston  <doclivingston@gmail.com>
4759         * sources/rb-browser-source.h: remove the _has_first_added_column
4760         stuff since it isn't actually used anywhere. Sources that want it
4761         should just add it themselves, as the library already does
4763         * bindings/python/rb.defs:
4764         * sources/rb-daap-source.c: (rb_daap_source_class_init):
4765         * sources/rb-library-source.c: (rb_library_source_class_init):
4766         * sources/rb-removable-media-source.c:
4767         (rb_removable_media_source_class_init): Remove the remanants of the
4768         above.
4770 2006-05-09  James Livingston  <doclivingston@gmail.com>
4772         * bindings/python/rb.defs:
4773         * sources/rb-browser-source.h: remove a function that was declared in
4774         the header, but not defined anywhere.
4776 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4778         * plugins/artdisplay/.cvsignore:
4779         * plugins/ipod/.cvsignore: Added.
4781 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4783         * sources/rb-auto-playlist-source.c:
4784         (rb_auto_playlist_source_new_from_xml):
4785         Fix reading of older playlist files where all three limits were
4786         specified so we take the first nonzero limit.  From #341053.
4788 2006-05-09  James Livingston  <doclivingston@gmail.com>
4790         * bindings/python/Makefile.am:
4791         * bindings/python/rb.defs:
4792         * bindings/python/rb.override: bind RBBrowserSource,
4793         RBRemovableMediaSource and RBRemovableMediamanager.
4795 2006-05-09  James Livingston  <doclivingston@gmail.com>
4797         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
4799         * data/glade/plugins.glade: make the plugin dialog look a bit better.
4800         Fixes bug 339221.
4802 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4804         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
4805         Don't explode when trying to edit a query with no limit set.
4807 2006-05-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4809         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
4810         Clear the should_queue flag when switching to a non-submittable entry,
4811         so we don't submit songs that played for three seconds before
4812         switching to a podcast episode.
4814         * rhythmdb/rhythmdb-query-model.c
4815         (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
4816         in the drag data list.
4818 2006-05-08  James Livingston  <doclivingston@gmail.com>
4820         * lib/rb-util.c: (rb_value_array_append_data):
4821         * lib/rb-util.h: add function which is basically a combination of
4822         G_VALUE_COLLECT and g_value_array_append.
4824         * rhythmdb/rhythmdb-query-model.h:
4825         * rhythmdb/rhythmdb-query-model.c:
4826         (rhythmdb_query_model_class_init),
4827         (rhythmdb_query_model_set_property),
4828         (rhythmdb_query_model_get_property),
4829         (rhythmdb_query_model_finalize),
4830         (rhythmdb_query_model_update_limited_entries),
4831         (rhythmdb_query_model_set_sort_order),
4832         (rhythmdb_query_model_within_limit),
4833         (rhythmdb_query_model_limit_type_get_type): Make query model limits
4834         saner. Rather than having <count=N, time=N, size=N> we now have a
4835         <type, value> pair. This will also make it much easier to add new
4836         limit types in the future.
4838         * shell/rb-playlist-manager.c:
4839         (rb_playlist_manager_set_automatic_playlist),
4840         (rb_playlist_manager_cmd_edit_automatic_playlist):
4841         * sources/rb-auto-playlist-source.c:
4842         (rb_auto_playlist_source_finalize),
4843         (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
4844         (_save_write_ulong), (_save_write_uint64),
4845         (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
4846         (rb_auto_playlist_source_set_query),
4847         (rb_auto_playlist_source_get_query):
4848         * sources/rb-auto-playlist-source.h:
4849         * sources/rb-library-source.c:
4850         (rb_library_source_add_child_source):
4851         * sources/rb-psp-source.c: (visit_playlist_dirs):
4852         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
4853         (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
4854         * widgets/rb-query-creator.h: Adapt to the above change.
4856 2006-05-08  James Livingston  <doclivingston@gmail.com>
4858         * shell/rb-playlist-manager.c:
4859         (rb_playlist_manager_cmd_edit_automatic_playlist):
4860         * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
4861         (rb_auto_playlist_source_set_query),
4862         (rb_auto_playlist_source_get_query): copy the query in the _get method
4863         and free it in things calling that. Fixes a crasher.
4865 2006-05-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4867         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
4868         Make entries on newly mounted volumes visible immediately, hiding them
4869         later if they turn out to be missing.  Fixes #340068.
4871 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4873         * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
4874         Ignore zip files and ignore errors for files we've decided to ignore.
4876 2006-05-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4878         * sources/rb-ipod-source.c: (hal_udi_is_ipod):
4879         Add missing }, should fix #340844.
4881 2006-05-06  James Livingston  <doclivingston@gmail.com>
4883         * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
4884         typo.
4886 2006-05-06  James Livingston  <doclivingston@gmail.com>
4888         * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
4889         that we work with libnotify >= 0.4
4891 2006-05-06  James Livingston  <doclivingston@gmail.com>
4893         patch by: Joe Barnett  <thejoe@gmail.com>
4895         * configure.ac: check if we're using a version of libgpod that
4896         supports the Motorola ROKR
4898         * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
4899         for the db path, if we using the newer version.
4901         (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
4903 2006-05-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4905         * rhythmdb/rhythmdb-query-model.c:
4906         (rhythmdb_query_model_drag_data_get):
4907         Use playback URI, not location, for drag data.  Fixes #322597.
4909 2006-05-03  Dennis Cranston  <dennis_cranston@yahoo.com>
4911         * data/glade/general-prefs.glade:  HIG fixes from bug 340588.
4913 2006-05-03  James Livingston  <doclivingston@gmail.com>
4915         * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
4916         (rb_add_id3_tagger), (rb_metadata_save):
4917         Set the tags on the tagging element when it is
4918         created, not during pipeline creation - which is required for
4919         dynamically created elements.
4921         (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
4922         support for using the "vorbistag" element to re-tag ogg vorbis files.
4923         Fixes bug 339878.
4925 2006-05-03  James Livingston  <doclivingston@gmail.com>
4927         patch by: Martin Szulecki  <gnomebugzilla@sukimashita.com>
4929         * plugins/artdisplay/artdisplay.py:
4930         - Fix small bug callback of data loader getting overwritten on fast
4931         connections.
4932         - Add asynchronous loading with gnomevfs and urllib fallback (thx to
4933         Jonathan Matthew)
4934         - Fix Rhythmbox UI blocking while loading/searching cover art
4935         - Split logic into CoverArtDatabase, AmazonCoverArtSearch
4936         - Initial approach to allow additional "art search engines"
4937         - Further modularization in a couple of places
4938         - Minor fixes for empty entries (iradio, album, artist etc.)
4940 2006-05-03  James Livingston  <doclivingston@gmail.com>
4942         * shell/rb-playlist-manager.c:
4943         (rb_playlist_manager_playlist_entries_changed),
4944         (rb_playlist_manager_set_source): don't show the edit/delete/rename
4945         options for non-local sources, rather than showing disabled ones.
4947         * sources/rb-library-source.c: (add_child_sources_idle),
4948         (rb_library_source_constructor), (rb_library_source_new),
4949         (rb_library_source_library_location_changed),
4950         (rb_library_source_add_child_source),
4951         (rb_library_source_sync_child_sources): Create "child library" sources
4952         when the user has multiple library locations set. Fixes bug 100552.
4954 2006-05-03  Jonathan Matthew  <jonathan@kaolin.wh9.net>
4956         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
4957         * plugins/sample/sample.rb-plugin.desktop.in:
4958         Finish changing 'Author' to 'Authors'
4959         
4960         * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
4961         (rhythmdb_entry_import_error_get_type):
4962         Implement get_playback_uri for import errors (returns NULL)
4964         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
4965         Use rhythmdb_entry_get_playback_uri to figure out if we can play the
4966         entry, rather than doing entry type checks.
4968 2006-05-02  James Livingston  <doclivingston@gmail.com>
4970         patch from Alessandro Decina  <alessandro@nnva.org>
4972         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
4973         the signal emission in the case of fatal-on-init errors. From bug
4974         322268.
4976 2006-05-02  James Livingston  <doclivingston@gmail.com>
4978         * rhythmdb/rhythmdb.h:
4979         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
4980         (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
4981         (rhythmdb_entry_podcast_post_get_type),
4982         (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
4983         virtual function to entry-types for getting the playback URI. From bug
4984         330226.
4986         * backends/gstreamer/rb-encoder-gst.c:
4987         (create_pipeline_and_source), (extract_track):
4988         * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
4989         to get the URI.
4991 2006-05-02  James Livingston  <doclivingston@gmail.com>
4993         patch by: Brian Cameron  <brian.cameron@sun.com>
4995         * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
4996         340337.
4998 2006-05-01  William Jon McCann  <mccann@jhu.edu>
5000         * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5001         instead of clear.  Use regex matching to strip "disc N"
5002         from album.  Match titles in ProductName.  Perform
5003         fallback queries including various artist compilations.
5004         Include "us" locale.  Improve queries when artist or album
5005         is unknown.  Use medium size image if large is unavailable.
5007         patch by: Alex Lancaster  <alexl@users.sourceforge.net>,
5008         William Jon McCann  <mccann@jhu.edu>
5009         
5010 2006-04-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5012         * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5013         RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5014         (conjunctive_query): Sanity check.
5015         (evaluate_conjunctive_subquery): 
5016         Don't return TRUE immediately when a relative-time query criterion
5017         matches.  Fixes #339972.
5019 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5021         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5022         Don't crash if primary or secondary are NULL.
5024 2006-04-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5026         * doc/reference/Makefile.am: fix gtk-doc build yet again
5028 2006-04-28  James Livingston  <doclivingston@gmail.com>
5030         * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5031         python console. Fixes bug 339934.
5033 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5035         * rhythmdb/rhythmdb-property-model.c:
5036         (rhythmdb_property_model_drag_data_get):
5037         When creating uri list drag data, create a new query model based on
5038         the query model the property model is attached to.  Makes the
5039         resulting query use the right entry type and include the upstream
5040         query criteria.  Fixes half of #327540.
5042 2006-04-27  James Livingston  <doclivingston@gmail.com>
5044         * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5045         (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5046         build fixes.
5048 2006-04-27  James Livingston  <doclivingston@gmail.com>
5050         * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5052 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5054         * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5055         (rb_playlist_manager_save_data),
5056         (rb_playlist_manager_save_playlists):
5057         * shell/rb-playlist-manager.h:
5058         * shell/rb-shell.c: (rb_shell_sync_state),
5059         (idle_save_playlist_manager):
5060         Remove a bit more threading insanity from the playlist manager.
5062 2006-04-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5064         * shell/rb-playlist-manager.c: 
5065         * shell/rb-playlist-manager.h:
5066         Remove dead code, add gtk-doc, remove threading insanity (mostly).
5067         
5068         * shell/rb-shell.c: (rb_shell_sync_state),
5069         (idle_save_playlist_manager), (construct_sources),
5070         (rb_shell_select_source), (rb_shell_sync_party_mode):
5071         Adjustments for above changes.
5073 2006-04-26  William Jon McCann  <mccann@jhu.edu>
5075         * sources/rb-browser-source.c (impl_browser_toggled):
5076         Reset browser when hidden.  Fixes #339617.
5078 2006-04-26  James Livingston  <doclivingston@gmail.com>
5080         * backends/Makefile.am:
5081         * backends/gstreamer/Makefile.am: work again with separated
5082         built-roots
5084 2006-04-26  James Livingston  <doclivingston@gmail.com>
5086         * shell/rb-removable-media-manager.c:
5087         (rb_removable_media_manager_set_uimanager): fix compilation with
5088         -Werror and --enable-track-transfer.
5090 2006-04-26  James Livingston  <doclivingston@gmail.com>
5092         Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5093         implementing class. In theory allows alternate player implementations
5094         to be selected at run-time rather than compile-time. Fixes bug 338667.
5096         * Makefile.am:
5097         * backends/Makefile.am:
5098         * backends/gstreamer/Makefile.am:
5099         * backends/gstreamer/rb-player-gst.h:
5100         * backends/rb-player.c: (rb_player_interface_init),
5101         (rb_player_get_type), (rb_player_open), (rb_player_opened),
5102         (rb_player_close), (rb_player_play), (rb_player_pause),
5103         (rb_player_playing), (rb_player_set_volume),
5104         (rb_player_get_volume), (rb_player_set_replaygain),
5105         (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5106         (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5107         (_rb_player_emit_buffering), (_rb_player_emit_error),
5108         (_rb_player_emit_tick), (rb_player_error_quark):
5109         * player/Makefile.am:
5110         * player/rb-player-gst.c: (rb_player_gst_class_init),
5111         (rb_player_init), (tick_timeout), (rb_player_gst_init),
5112         (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5113         (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5114         (process_tag), (found_tag_cb), (buffering_cb),
5115         (rb_player_gst_bus_cb), (rb_player_gst_construct),
5116         (rb_player_gst_new):
5117         * player/rb-player.h:
5118         * shell/Makefile.am:
5119         * sources/rb-audiocd-source.c:
5120         * widgets/Makefile.am:
5121         * widgets/rb-header.c: (rb_header_class_init):
5123 2006-04-26  James Livingston  <doclivingston@gmail.com>
5125         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5126         don't try to download an episode if it couldn't be parsed. Fixes bug
5127         339712.
5129         * shell/rb-removable-media-manager.c:
5130         (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5131         Library" option when track transfer is disabled. Fixes bug 339728.
5133 2006-04-26  James Livingston  <doclivingston@gmail.com>
5135         * data/ui/Makefile.am:
5136         * data/ui/daap-ui.xml:
5137         * data/ui/rhythmbox-ui.xml:
5138         * sources/rb-daap-source.c: (rb_daap_sources_init),
5139         (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5140         way that the ipod ui is. Fixes bug 339743.
5142 2006-04-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5144         * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5145         (process_added_entries_cb), (process_deleted_entries_cb),
5146         (rhythmdb_commit_internal): 
5147         Combine the idle functions to emit entry-added and entry-deleted,
5148         and combine as many invocations of same as possible.  Another
5149         significant reduction in startup time.
5150         
5151         (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5152         Delay the next call to rhythmdb_process_events if the queue is
5153         empty or if we can't process any of the events in the queue because
5154         the database is read only.
5156         This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5158 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5160         * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5162         * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5163         Don't special case errors quite so much.
5165 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5167         * data/rhythmbox.schemas: Remove default speed.
5169         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5170         Add n-c-b 2.15 support.  Make the default speed to slowest since
5171         that is all that works reliably.
5173 2006-04-25  William Jon McCann  <mccann@jhu.edu>
5175         * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5176         Fix compiler error from last commit.
5178 2006-04-25  James Livingston  <doclivingston@gmail.com>
5180         patch by Alessandro Decina  <alessandro@nnva.org> to fix some
5181         transcoding-related issues. From bug 322268.
5183         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5184         don't emit the signal, since the object is being finalised, which os a
5185         Bad Thing To Do.
5187         (profile_bin_find_encoder), (get_profile_from_mime_type),
5188         (transcode_track): find the encoding element by iterating looking for
5189         element in the class Codec/Encoder/Audio rather than the one named
5190         "enc".
5192 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5194         * shell/rb-shell-player.xml:
5195         * shell/rb-shell.xml:
5196         Add signal argument information.  
5197         Patch by Tim Moloney  <t.moloney@verizon.net>
5199         * shell/rb-shell.c: (rb_shell_window_state_cb):
5200         Use the right value for the visibility_changed signal.  Most of the
5201         time, anyway.
5203 2006-04-25  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5205         * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5206         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5207         (impl_create_configure_dialog):
5208         * data/glade/audioscrobbler-prefs.glade:
5209         * shell/rb-audioscrobbler.c (*):
5210         * lib/rb-preferences.h:
5211         * data/rhythmbox.schemas:
5212         Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5213         Add status information (# tracks submitted, # queued, last submit
5214         time, result of last submission) to the plugin config window.
5215         Remove 'enabled' setting, since it's easier to just disable the
5216         plugin.  Call the plugin 'last.fm profile', to distinguish it from the
5217         nonexistant (so far) 'last.fm streaming' plugin.
5218         
5219         * help/C/rhythmbox.xml: Update documentation for last.fm profile
5220         plugin
5222         Fixes some of #325848.  We still don't provide a way to view the
5223         submission queue.
5225 2006-04-25  James Livingston  <doclivingston@gmail.com>
5227         patch by: Anders Petersson  <demitar@worldforge.org>
5229         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5230         the YY-MM-DD format.
5232 2006-04-23  James Livingston  <doclivingston@gmail.com>
5234         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5235         (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5236         * bindings/python/override_common.h:
5237         * bindings/python/rb.override: python binding fixes
5239 2006-04-23  James Livingston  <doclivingston@gmail.com>
5241         * shell/rb-statusbar.c: (rb_statusbar_finalize),
5242         (rb_statusbar_sync_with_source),
5243         (rb_statusbar_source_status_changed_cb): do the sync in an idle
5244         callback, rather than immediately every time. Takes ~5% off my warm-cache
5245         startup time.
5247         * bindings/python/rhythmdb.defs: fix the types using for
5248         RhythmDBEntryTypes.
5250 2006-04-22  James Livingston  <doclivingston@gmail.com>
5252         * data/ui/rhythmbox-ui.xml:
5253         * shell/rb-shell.c:
5254         * sources/rb-daap-source.c: (rb_daap_source_class_init),
5255         (remove_source), (rb_daap_sources_init),
5256         (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5257         (rb_daap_source_disconnect):
5258         * sources/rb-source.c: (rb_source_class_init),
5259         (rb_source_deactivate):
5260         * sources/rb-source.h: move the "disconnect" functionality from into
5261         RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5263 2006-04-22  James Livingston  <doclivingston@gmail.com>
5265         * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5266         actually get the translated strings for browser headers (they were
5267         already marked as translatable). Fixes bug 339380.
5269 2006-04-22  James Livingston  <doclivingston@gmail.com>
5271         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5272         submission timeout when the object is finalised.
5274         * bindings/python/Makefile.am:
5275         * bindings/python/rb.defs:
5276         * bindings/python/rb.override:
5277         * bindings/python/rhythmdb.defs: fix some python binding stuff.
5279         * widgets/rb-library-browser.c:
5280         (rb_library_browser_construct_query), (rebuild_output_model),
5281         (rebuild_child_model):
5282         * widgets/rb-library-browser.h: change from GPtrArray to
5283         RhythmDBQuery (which in C is the same thing).
5285 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5287         * shell/rb-shell.c: (rb_shell_get_song_properties):
5288         Don't try to include entry-type (or anything else not easily
5289         marshallable) in the song properties hash table.
5291         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5293         * sources/rb-playlist-source.c: (rb_playlist_source_init),
5294         (rb_playlist_source_constructor): Fix entry-type initialization as
5295         with previous commit.
5297 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5299         * sources/rb-iradio-source.c: (rb_iradio_source_init),
5300         (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5301         * sources/rb-podcast-source.c: (rb_podcast_source_init),
5302         (rb_podcast_source_constructor):
5303         Set default values for entry-type after base class construction,
5304         rather than in _init, because gobject will set the entry-type property
5305         to NULL after _init if no value is provided.  Fixes #339206.
5307 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5309         patch by: Gunnar Steinn Magnusson
5311         * COPYING:
5312         * backends/gstreamer/rb-encoder-gst.c:
5313         * backends/gstreamer/rb-encoder-gst.h:
5314         * backends/rb-encoder.c:
5315         * backends/rb-encoder.h:
5316         * bindings/python/override_common.c:
5317         * bindings/python/override_common.h:
5318         * daapsharing/rb-daap-connection.c:
5319         * daapsharing/rb-daap-connection.h:
5320         * daapsharing/rb-daap-dialog.c:
5321         * daapsharing/rb-daap-dialog.h:
5322         * daapsharing/rb-daap-mdns-browser-avahi.c:
5323         * daapsharing/rb-daap-mdns-browser-howl.c:
5324         * daapsharing/rb-daap-mdns-browser.h:
5325         * daapsharing/rb-daap-mdns-publisher-avahi.c:
5326         * daapsharing/rb-daap-mdns-publisher-howl.c:
5327         * daapsharing/rb-daap-mdns-publisher.h:
5328         * daapsharing/rb-daap-share.c:
5329         * daapsharing/rb-daap-share.h:
5330         * daapsharing/rb-daap-sharing.c:
5331         * daapsharing/rb-daap-sharing.h:
5332         * daapsharing/rb-daap-src.c:
5333         * daapsharing/rb-daap-src.h:
5334         * daapsharing/rb-daap-structure.c:
5335         * daapsharing/rb-daap-structure.h:
5336         * help/C/fdl-appendix.xml:
5337         * help/es/es.po:
5338         * help/ja/fdl-appendix.xml:
5339         * iradio/rb-new-station-dialog.c:
5340         * iradio/rb-new-station-dialog.h:
5341         * iradio/rb-station-properties-dialog.c:
5342         * iradio/rb-station-properties-dialog.h:
5343         * lib/mkdtemp.c:
5344         * lib/mkdtemp.h:
5345         * lib/rb-cut-and-paste-code.c:
5346         * lib/rb-cut-and-paste-code.h:
5347         * lib/rb-debug.c:
5348         * lib/rb-debug.h:
5349         * lib/rb-file-helpers.c:
5350         * lib/rb-file-helpers.h:
5351         * lib/rb-glade-helpers.c:
5352         * lib/rb-glade-helpers.h:
5353         * lib/rb-preferences.h:
5354         * lib/rb-proxy-config.c:
5355         * lib/rb-stock-icons.c:
5356         * lib/rb-stock-icons.h:
5357         * lib/rb-thread.c:
5358         * lib/rb-thread.h:
5359         * lib/rb-tree-dnd.c:
5360         * lib/rb-tree-dnd.h:
5361         * lib/rb-util.c:
5362         * lib/rb-util.h:
5363         * metadata/rb-metadata-common.c:
5364         * metadata/rb-metadata-dbus-client.c:
5365         * metadata/rb-metadata-dbus-service.c:
5366         * metadata/rb-metadata-dbus.c:
5367         * metadata/rb-metadata-dbus.h:
5368         * metadata/rb-metadata-gst.c:
5369         * metadata/rb-metadata.h:
5370         * metadata/sj-error.c:
5371         * metadata/sj-error.h:
5372         * metadata/sj-metadata-musicbrainz.c:
5373         * metadata/sj-metadata-musicbrainz.h:
5374         * metadata/sj-metadata.c:
5375         * metadata/sj-metadata.h:
5376         * metadata/sj-structures.c:
5377         * metadata/sj-structures.h:
5378         * metadata/test-metadata.c:
5379         * player/rb-player-gst.c:
5380         * player/rb-player.h:
5381         * player/rb-recorder-gst.c:
5382         * player/rb-recorder.h:
5383         * plugins/artdisplay/artdisplay.py:
5384         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5385         * plugins/ipod/rb-ipod-plugin.c:
5386         * plugins/lirc/rb-lirc-plugin.c:
5387         * plugins/pythonconsole/pythonconsole.py:
5388         * plugins/rb-module.c:
5389         * plugins/rb-module.h:
5390         * plugins/rb-plugin-manager.c:
5391         * plugins/rb-plugin-manager.h:
5392         * plugins/rb-plugin.c:
5393         * plugins/rb-plugin.h:
5394         * plugins/rb-plugins-engine.c:
5395         * plugins/rb-plugins-engine.h:
5396         * plugins/rb-python-module.c:
5397         * plugins/rb-python-module.h:
5398         * plugins/rb-python-plugin.c:
5399         * plugins/rb-python-plugin.h:
5400         * plugins/sample/rb-sample-plugin.c:
5401         * po/de.po:
5402         * po/el.po:
5403         * po/en_CA.po:
5404         * po/eu.po:
5405         * po/fi.po:
5406         * po/fr.po:
5407         * po/it.po:
5408         * po/ja.po:
5409         * po/mk.po:
5410         * po/pt_BR.po:
5411         * po/ru.po:
5412         * podcast/rb-feed-podcast-properties-dialog.c:
5413         * podcast/rb-feed-podcast-properties-dialog.h:
5414         * podcast/rb-new-podcast-dialog.c:
5415         * podcast/rb-new-podcast-dialog.h:
5416         * podcast/rb-podcast-manager.c:
5417         * podcast/rb-podcast-manager.h:
5418         * podcast/rb-podcast-parse.c:
5419         * podcast/rb-podcast-parse.h:
5420         * podcast/rb-podcast-properties-dialog.c:
5421         * podcast/rb-podcast-properties-dialog.h:
5422         * remote/bonobo/libmain.c:
5423         * remote/bonobo/rb-nautilus-context-menu.c:
5424         * remote/bonobo/rb-nautilus-context-menu.h:
5425         * remote/bonobo/rb-remote-bonobo.c:
5426         * remote/bonobo/rb-remote-bonobo.h:
5427         * remote/rb-remote-client-proxy.c:
5428         * remote/rb-remote-client-proxy.h:
5429         * remote/rb-remote-common.c:
5430         * remote/rb-remote-common.h:
5431         * remote/rb-remote-proxy.c:
5432         * remote/rb-remote-proxy.h:
5433         * rhythmdb/gsequence.c:
5434         * rhythmdb/gsequence.h:
5435         * rhythmdb/rb-refstring.c:
5436         * rhythmdb/rb-refstring.h:
5437         * rhythmdb/rhythmdb-gda.c:
5438         * rhythmdb/rhythmdb-gda.h:
5439         * rhythmdb/rhythmdb-private.h:
5440         * rhythmdb/rhythmdb-property-model.c:
5441         * rhythmdb/rhythmdb-property-model.h:
5442         * rhythmdb/rhythmdb-query-model.c:
5443         * rhythmdb/rhythmdb-query-model.h:
5444         * rhythmdb/rhythmdb-query-results.c:
5445         * rhythmdb/rhythmdb-query-results.h:
5446         * rhythmdb/rhythmdb-tree.c:
5447         * rhythmdb/rhythmdb-tree.h:
5448         * rhythmdb/rhythmdb.c:
5449         * rhythmdb/rhythmdb.h:
5450         * shell/main.c:
5451         * shell/rb-audioscrobbler.c:
5452         * shell/rb-audioscrobbler.h:
5453         * shell/rb-history.c:
5454         * shell/rb-history.h:
5455         * shell/rb-play-order-linear-loop.c:
5456         * shell/rb-play-order-linear-loop.h:
5457         * shell/rb-play-order-linear.c:
5458         * shell/rb-play-order-linear.h:
5459         * shell/rb-play-order-queue.c:
5460         * shell/rb-play-order-queue.h:
5461         * shell/rb-play-order-random-by-age-and-rating.c:
5462         * shell/rb-play-order-random-by-age-and-rating.h:
5463         * shell/rb-play-order-random-by-age.c:
5464         * shell/rb-play-order-random-by-age.h:
5465         * shell/rb-play-order-random-by-rating.c:
5466         * shell/rb-play-order-random-by-rating.h:
5467         * shell/rb-play-order-random-equal-weights.c:
5468         * shell/rb-play-order-random-equal-weights.h:
5469         * shell/rb-play-order-random.c:
5470         * shell/rb-play-order-random.h:
5471         * shell/rb-play-order-shuffle.c:
5472         * shell/rb-play-order-shuffle.h:
5473         * shell/rb-play-order.c:
5474         * shell/rb-play-order.h:
5475         * shell/rb-playlist-manager.c:
5476         * shell/rb-playlist-manager.h:
5477         * shell/rb-removable-media-manager.c:
5478         * shell/rb-removable-media-manager.h:
5479         * shell/rb-shell-clipboard.c:
5480         * shell/rb-shell-clipboard.h:
5481         * shell/rb-shell-player.c:
5482         * shell/rb-shell-player.h:
5483         * shell/rb-shell-preferences.c:
5484         * shell/rb-shell-preferences.h:
5485         * shell/rb-shell.c:
5486         * shell/rb-shell.h:
5487         * shell/rb-source-header.c:
5488         * shell/rb-source-header.h:
5489         * shell/rb-statusbar.c:
5490         * shell/rb-statusbar.h:
5491         * shell/rb-tray-icon.c:
5492         * shell/rb-tray-icon.h:
5493         * sources/rb-audiocd-source.c:
5494         * sources/rb-audiocd-source.h:
5495         * sources/rb-auto-playlist-source.c:
5496         * sources/rb-auto-playlist-source.h:
5497         * sources/rb-browser-source.c:
5498         * sources/rb-browser-source.h:
5499         * sources/rb-daap-source.c:
5500         * sources/rb-daap-source.h:
5501         * sources/rb-generic-player-source.c:
5502         * sources/rb-generic-player-source.h:
5503         * sources/rb-import-errors-source.c:
5504         * sources/rb-import-errors-source.h:
5505         * sources/rb-ipod-source.c:
5506         * sources/rb-ipod-source.h:
5507         * sources/rb-iradio-source.c:
5508         * sources/rb-iradio-source.h:
5509         * sources/rb-library-source.c:
5510         * sources/rb-library-source.h:
5511         * sources/rb-missing-files-source.c:
5512         * sources/rb-missing-files-source.h:
5513         * sources/rb-nokia770-source.c:
5514         * sources/rb-nokia770-source.h:
5515         * sources/rb-play-queue-source.c:
5516         * sources/rb-play-queue-source.h:
5517         * sources/rb-playlist-source-recorder.c:
5518         * sources/rb-playlist-source-recorder.h:
5519         * sources/rb-playlist-source.c:
5520         * sources/rb-playlist-source.h:
5521         * sources/rb-playlist-xml.h:
5522         * sources/rb-podcast-source.c:
5523         * sources/rb-podcast-source.h:
5524         * sources/rb-psp-source.c:
5525         * sources/rb-psp-source.h:
5526         * sources/rb-removable-media-source.c:
5527         * sources/rb-removable-media-source.h:
5528         * sources/rb-source.c:
5529         * sources/rb-source.h:
5530         * sources/rb-sourcelist-model.c:
5531         * sources/rb-sourcelist-model.h:
5532         * sources/rb-sourcelist.c:
5533         * sources/rb-sourcelist.h:
5534         * sources/rb-static-playlist-source.c:
5535         * sources/rb-static-playlist-source.h:
5536         * tests/test-cd.c:
5537         * tests/test-cmdline.c:
5538         * tests/test-rhythmdb-indexing.c:
5539         * tests/test-rhythmdb-query.c:
5540         * tests/test-rhythmdb-simple.c:
5541         * tests/test-rhythmdb-tree-deserialization.c:
5542         * tests/test-rhythmdb-tree-serialization.c:
5543         * tests/test-rhythmdb-view.c:
5544         * widgets/bacon-volume.c:
5545         * widgets/bacon-volume.h:
5546         * widgets/disclosure-widget.c:
5547         * widgets/disclosure-widget.h:
5548         * widgets/eel-gconf-extensions.c:
5549         * widgets/eel-gconf-extensions.h:
5550         * widgets/eggtrayicon.c:
5551         * widgets/eggtrayicon.h:
5552         * widgets/libsexy/sexy-icon-entry.c:
5553         * widgets/libsexy/sexy-icon-entry.h:
5554         * widgets/rb-cell-renderer-pixbuf.c:
5555         * widgets/rb-cell-renderer-pixbuf.h:
5556         * widgets/rb-cell-renderer-rating.c:
5557         * widgets/rb-cell-renderer-rating.h:
5558         * widgets/rb-dialog.c:
5559         * widgets/rb-dialog.h:
5560         * widgets/rb-druid.c:
5561         * widgets/rb-druid.h:
5562         * widgets/rb-entry-view.c:
5563         * widgets/rb-entry-view.h:
5564         * widgets/rb-header.c:
5565         * widgets/rb-header.h:
5566         * widgets/rb-library-browser.c:
5567         * widgets/rb-library-browser.h:
5568         * widgets/rb-property-view.c:
5569         * widgets/rb-property-view.h:
5570         * widgets/rb-query-creator-private.h:
5571         * widgets/rb-query-creator-properties.c:
5572         * widgets/rb-query-creator.c:
5573         * widgets/rb-query-creator.h:
5574         * widgets/rb-rating-helper.c:
5575         * widgets/rb-rating-helper.h:
5576         * widgets/rb-rating.c:
5577         * widgets/rb-rating.h:
5578         * widgets/rb-search-entry.c:
5579         * widgets/rb-search-entry.h:
5580         * widgets/rb-song-display-box.c:
5581         * widgets/rb-song-display-box.h:
5582         * widgets/rb-song-info.c:
5583         * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
5585 2006-04-20  Ryan P Skadberg  <skadz@stigmata.org>
5587         patch by: Gareth Murphy, James Livingston
5589         * bindings/python/rb.defs:
5590         * configure.ac:
5591         * plugins/Makefile.am:
5592         * plugins/artdisplay/Makefile.am:
5593         * plugins/artdisplay/artdisplay.py:
5594         * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
5595         * plugins/rb-python-module.c: (rb_python_module_init_python):
5596         * shell/rb-shell.c: (construct_widgets),
5597         (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
5598         (rb_shell_add_widget), (rb_shell_remove_widget),
5599         (rb_shell_ui_location_get_type):
5600         * shell/rb-shell.h:  Initial Art Display (and Download) Plugin Support
5602 2006-04-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5604         * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5605         Fix build failure caused by the combination of the previous two
5606         commits.
5608 2006-04-20  James Livingston  <doclivingston@gmail.com>
5610         patch by: Christophe Fergeau  <teuf@gnome.org> to make
5611         RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
5612         table to the entry types, which will allow us to get rid of some of
5613         the "if entry type == WHATEVER" code everywhere. From bug 
5615         * bindings/python/rb.defs:
5616         * bindings/python/rb.override:
5617         * bindings/python/rhythmdb.defs:
5618         * bindings/python/rhythmdb.override:
5619         * daapsharing/rb-daap-connection.c:
5620         (rb_daap_connection_class_init), (rb_daap_connection_init),
5621         (rb_daap_connection_set_property),
5622         (rb_daap_connection_get_property):
5623         * daapsharing/rb-daap-share.c: (db_entry_added_cb):
5624         * podcast/rb-podcast-manager.c:
5625         (rb_podcast_manager_entry_downloaded),
5626         (rb_podcast_manager_subscribe_feed),
5627         (rb_podcast_manager_db_entry_added_cb),
5628         (rb_podcast_manager_db_entry_deleted_cb),
5629         (rb_podcast_manager_insert_feed):
5630         * rhythmdb/rhythmdb-private.h:
5631         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5632         (conjunctive_query):
5633         * rhythmdb/rhythmdb.c: (sync_entry_changed),
5634         (process_added_entries_cb), (rhythmdb_entry_allocate),
5635         (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
5636         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
5637         (rhythmdb_process_metadata_load),
5638         (rhythmdb_process_file_created_or_modified), (action_thread_main),
5639         (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
5640         (write_encoded_gvalue), (read_encoded_property),
5641         (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
5642         (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
5643         (rhythmdb_entry_iradio_get_type),
5644         (rhythmdb_entry_podcast_post_get_type),
5645         (rhythmdb_entry_podcast_feed_get_type),
5646         (rhythmdb_entry_import_error_get_type),
5647         (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
5648         (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
5649         (rhythmdb_entry_type_get_type):
5650         * rhythmdb/rhythmdb.h:
5651         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5652         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
5653         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5654         (rb_shell_player_entry_activated_cb), (info_available_cb):
5655         * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
5656         (rb_shell_register_entry_type_for_source),
5657         (rb_shell_playing_from_queue_cb),
5658         (rb_shell_playing_entry_changed_cb),
5659         (rb_shell_player_stream_song_changed_cb),
5660         (rb_shell_jump_to_entry_with_source),
5661         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5662         (handle_playlist_entry_cb), (rb_shell_load_uri):
5663         * shell/rb-shell.h:
5664         * sources/rb-auto-playlist-source.c: (impl_receive_drag):
5665         * sources/rb-browser-source.c: (rb_browser_source_class_init),
5666         (rb_browser_source_init), (rb_browser_source_set_property),
5667         (rb_browser_source_get_property):
5668         * sources/rb-ipod-source.c: (impl_paste):
5669         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
5670         (rb_iradio_source_init), (rb_iradio_source_set_property),
5671         (rb_iradio_source_get_property):
5672         * sources/rb-library-source.c: (impl_paste):
5673         * sources/rb-missing-files-source.c:
5674         (rb_missing_files_source_class_init),
5675         (rb_missing_files_source_init),
5676         (rb_missing_files_source_set_property),
5677         (rb_missing_files_source_get_property):
5678         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5679         (rb_playlist_source_init), (rb_playlist_source_set_property),
5680         (rb_playlist_source_get_property):
5681         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5682         (rb_podcast_source_init), (rb_podcast_source_set_property),
5683         (rb_podcast_source_get_property):
5684         * sources/rb-static-playlist-source.c:
5685         (rb_static_playlist_source_add_location_internal):
5687 2006-04-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5689         * rhythmdb/rhythmdb.c: (rhythmdb_init),
5690         (rhythmdb_add_import_error_entry),
5691         (entry_volume_mounted_or_unmounted),
5692         (rhythmdb_volume_unmounted_cb):
5693         When a volume is unmounted, delete import errors for files stored on
5694         it.  When a volume is mounted, stat all tracks stored on it, rather
5695         than assuming they're present.  Fixes #339023.
5697 2006-04-20  James Livingston  <doclivingston@gmail.com>
5699         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to remember
5700         browser visibility for non-gconf-using sources (like playlists). Part
5701         of bug 118862.
5703         * shell/rb-source-header.c: (sourcestate_free),
5704         (rb_source_header_init), (rb_source_header_finalize),
5705         (rb_source_header_source_weak_destroy_cb): switch from storing the
5706         search string to storing a "source state" structure
5708         (rb_source_header_set_source_internal),  (rb_source_state_sync),
5709         (rb_source_header_search_cb), (rb_source_header_clear_search),
5710         (rb_source_header_disclosure_toggled_cb): as well as storing the
5711         string, stop the visibility of the source's browser.
5713 2006-04-20  James Livingston  <doclivingston@gmail.com>
5715         * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
5716         library entries back into the library. Fixes bug 339065.
5718 2006-04-20  James Livingston  <doclivingston@gmail.com>
5720         * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
5721         only exists in glib 2.10.
5723 2006-04-20  James Livingston  <doclivingston@gmail.com>
5725         patch by Brian Cameron  <brian.cameron@sun.com> to fix building on
5726         Solaris. From bug 335318.
5728         * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
5729         * shell/rb-audioscrobbler.c:
5730         * sources/rb-psp-source.c:
5732 2006-04-20  James Livingston  <doclivingston@gmail.com>
5734         * data/glade/Makefile.am: remove the use of $(NULL) since it causes
5735         issues for some people.
5737         * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
5738         accidental s/suffix/prefix/
5740         * sources/rb-auto-playlist-source.c:
5741         (rb_auto_playlist_source_set_query): fix the invered logic preventing
5742         you from sorting playlists which aren't limited by time.
5744 2006-04-19  James Livingston  <doclivingston@gmail.com>
5746         * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
5747         duration or bitrate back to the file, since they are properties of the
5748         audio data, not tags we can set.
5750 2006-04-19  James Livingston  <doclivingston@gmail.com>
5752         patch by: Götz Waschk  <waschk@mandriva.org> to use $(LIBTOOL) instead
5753         of libtool, to fix builds which are using a different version. Fixes
5754         bug 338996.
5756         * shell/Makefile.am:
5758 2006-04-19  James Livingston  <doclivingston@gmail.com>
5760         * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
5761         to sync data to a file which is uneditable.
5763 2006-04-19  James Livingston  <doclivingston@gmail.com>
5765         patch by: Gavin Stewart  <gavin@brokentrain.net>
5767         * data/glade/playlist-save.glade:
5768         * data/glade/Makefile.am:
5769         * po/POTFILES.in: add the playlist saving dialog.
5771         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
5772         (export_set_extension_cb), (filter_get_export_filter_label),
5773         (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
5774         * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
5775         formats (PLS and M3U at the moment). Fixes bug 316295.
5777 2006-04-19  James Livingston  <doclivingston@gmail.com>
5779         * shell/rb-playlist-manager.c:
5780         (rb_playlist_manager_set_source_internal): don't let you edit remove
5781         auto playlists.
5783         * sources/rb-auto-playlist-source.c:
5784         (rb_auto_playlist_source_set_query): correctly handle time-limited
5785         playlists.
5787 2006-04-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5789         Patch by: Mikael Olenfalk  <mikael.olenfalk@gmail.com>
5791         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
5792         Don't crash if the queue file contains no newlines.
5793         Fixes #338924.
5795 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
5797         * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
5798         condition
5800 2006-04-18  Christophe Fergeau  <teuf@gnome.org>
5802         * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
5803         case. Moreover, they may not exist yet, so take that into account when
5804         generating the iPod filename.
5806 2006-04-18  Christophe Fergeau  <christophe@anevia.com>
5808         * sources/rb-ipod-source.c: added support for drag and drop from the
5809         library to the iPod (only enabled if --enable-track-transfer was
5810         passed to configure)
5812 2006-04-17  Christophe Fergeau  <teuf@gnome.org>
5814         * configure.ac:
5815         * lib/rb-marshal.list:
5816         * lib/rb-util.c: 
5817         * lib/rb-util.h:
5818         * plugins/Makefile.am:
5819         * plugins/ipod/Makefile.am:
5820         * plugins/ipod/ipod.rb-plugin.desktop.in:
5821         * plugins/ipod/rb-ipod-plugin.c: 
5822         * plugins/rb-plugin.h:
5823         * shell/Makefile.am:
5824         * shell/rb-removable-media-manager.c:
5825         * shell/rb-removable-media-manager.h:
5826         * shell/rb-shell.c: 
5827         * sources/Makefile.am:
5828         * sources/rb-ipod-source.c: 
5829         * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
5830         various iPod related files should be moved to plugins/ipod/ now...
5832 2006-04-17  James Livingston  <doclivingston@gmail.com>
5834         Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
5835         and "vic".
5837         * help/C/figures/rb-iradio-main.png:
5838         * help/C/figures/rb-notification-area-menu.png:
5839         * help/C/figures/rb-notification-window.png:
5840         * help/C/figures/rb-notification-zone.png:
5841         * help/C/figures/rb-podcast-main.png:
5842         * help/C/figures/rb-statusbar.png:
5843         * help/C/figures/rb-volume-changer.png:
5844         * help/C/figures/rb-window-small.png:
5845         * help/C/figures/rb-window.png:
5846         * help/C/rhythmbox.xml:
5848 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5850         * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
5851         more obviously.
5853         * metadata/rb-metadata-gst.c: (rb_metadata_init),
5854         (make_undecodable_error), (rb_metadata_gst_error_cb),
5855         (rb_metadata_gst_new_decoded_pad_cb),
5856         (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
5857         Ignore really small files (<4kB) for which typefinding fails.
5858         Always link decoded pads from decodebin to fakesink.
5859         Shut the pipeline down by posting an error on the bus when decodebin
5860         emits unknown-type signals.  Fixes bug #338062.
5862 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5864         * shell/rb-shell.c: (rb_shell_load_uri):
5865         Fix glaring mistakes in previous commit: actually pass arguments to
5866         rb_debug, and specify the right entry type when adding a new iradio
5867         station so we don't try to add local playlist files to the library.
5869 2006-04-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5871         * shell/main.c: (load_uri_args):  Don't check that remote URLs exist
5872         before trying to add them, as iradio streams often fail rb_uri_exists().
5874         * shell/rb-shell-player.c: (notify_playing_idle),
5875         (rb_shell_player_open_playlist_url), (playlist_entry_cb),
5876         (open_location_thread), (rb_shell_player_open_location),
5877         (rb_shell_player_play), (rb_shell_player_set_playing_entry),
5878         (eos_cb):  When playing an iradio stream using a playlist, keep a list
5879         of all the stream URLs, and try them in turn.  If we get through the
5880         whole playlist too quickly, error out.  Various other fixes that make
5881         iradio work a lot better.
5883         * shell/rb-shell.c: (add_to_library_response_cb),
5884         (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5885         (handle_playlist_entry_cb), (rb_shell_load_uri):
5886         Add playlists containing streams as iradio stations.  If the playlist
5887         is local, add each stream URL, but if the playlist is remote, just add
5888         the playlist URL.
5889         
5890         * sources/rb-iradio-source.c: (new_station_location_added):
5891         Add new station URLs as-is, rather than parsing the playlist and
5892         adding the streams.
5893         
5894         * rhythmdb/rhythmdb-query-model.c:
5895         (rhythmdb_query_model_entry_changed_cb),
5896         (rhythmdb_query_model_emit_reorder),
5897         (rhythmdb_query_model_do_reorder):
5898         Emit row-changed notifications when an entry changes but is not
5899         reordered.
5901         * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
5902         Display the playback error icon when the entry has an error and
5903         there's nothing else to display.
5904         
5905         Fixes bug #320336 and some of #324402.
5906         
5907 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5909         * sources/rb-ipod-source.c: use a GHashTable for the
5910         RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
5911         time, this fixes compilation breakage for people not having libgpod
5912         CVS HEAD
5914 2006-04-16  Ryan P Skadberg  <skadz@stigmata.org>
5916         patch by:  Jonathan Matthew  <jonathan@kaolin.wh9.net>
5918         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
5919         (rb_podcast_manager_insert_feed):
5920         * podcast/rb-podcast-manager.h: Actually automatically podcasts,
5921         fixes bug 321945
5923 2006-04-16  James Livingston  <doclivingston@gmail.com>
5925         * sources/rb-library-source.c:
5926         (rb_library_source_library_location_cb): return FALSE like we are
5927         supposed to, not void.
5929         patch by: FreeBSD GNOME Project
5930         * configure.ac: fix some bash-isms.
5932         patch by: Pawel Worach  <pawel.worach@gmail.com>
5933         * metadata/rb-metadata-dbus-client.c:
5934         * rhythmdb/rhythmdb-query-model.c:
5935         (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
5938 2006-04-16  James Livingston  <doclivingston@gmail.com>
5940         Patch from: Alessandro Decina  <alessandro@nnva.org> to add support
5941         for transcoding to RBEncoderGst.
5943         * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
5944         (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
5945         (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
5946         (add_decoding_pipeline), (encoder_match_mime),
5947         (get_profile_from_mime_type), (extract_track), (transcode_track),
5948         (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
5950 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5952         * sources/rb-ipod-source.c: (add_ipod_song_to_db),
5953         (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
5954         load_ipod_db_idle_cb to a new separate function
5956 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5958         * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
5959         source
5961 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5963         * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
5964         variables
5966 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5968         * data/ui/Makefile.am:
5969         * data/ui/ipod-ui.xml: added new ui file containing the iPod context
5970         menu
5971         * lib/rb-util.c: check if the widget we got from the UI manager isn't
5972         NULL before using it as a popup menu
5973         * sources/rb-ipod-source.c: added the possibility to 'rename' and 
5974         'eject' an iPod
5976 2006-04-16  Christophe Fergeau  <teuf@gnome.org>
5978         * sources/rb-ipod-source.c: when hal tells us a partition is on an
5979         iPod, check if it contains an iPod database before using it (in case
5980         the iPod was repartitionned somehow). Should fix bug #325034
5982 2006-04-16  Steve Frécinaux  <steve@istique.net>
5984         * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
5986         * data/Makefile.am: install application icon into the default theme.
5988         * data/rhythmbox.desktop.in: don't specify icon file extension.
5989         
5990         * shell/main.c: (main): set default window icon from theme.
5991         
5992         * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
5993         code concerning window icon, and fix leak by unreferencing the about
5994         logo pixbuf once it's not used anymore.
5996 2006-04-16  James Livingston  <doclivingston@gmail.com>
5998         * configure.ac: bump version to 0.9.4
5999         * NEWS: update NEWS and 0.9.4 insert translations
6001 2006-04-16  James Livingston  <doclivingston@gmail.com>
6003         * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6004         namespace automatically.
6006 2006-04-16  James Livingston  <doclivingston@gmail.com>
6008         * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6010         * doc/reference/Makefile.am:
6011         * doc/reference/rhythmbox.types: make distcheck work again
6013         * doc/reference/tmpl/eggnotificationbubble.sgml:
6014         * doc/reference/tmpl/eggtrayicon.sgml:
6015         * doc/reference/tmpl/rb-debug.sgml:
6016         * doc/reference/tmpl/rb-entry-view.sgml:
6017         * doc/reference/tmpl/rb-enums.sgml:
6018         * doc/reference/tmpl/rb-metadata.sgml:
6019         * doc/reference/tmpl/rb-new-station-dialog.sgml:
6020         * doc/reference/tmpl/rb-playlist-manager.sgml:
6021         * doc/reference/tmpl/rb-refstring.sgml:
6022         * doc/reference/tmpl/rb-shell-player.sgml:
6023         * doc/reference/tmpl/rb-shell-preferences.sgml:
6024         * doc/reference/tmpl/rb-shell.sgml:
6025         * doc/reference/tmpl/rb-song-info.sgml:
6026         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6027         * doc/reference/tmpl/rb-statusbar.sgml:
6028         * doc/reference/tmpl/rhythmbox-unused.sgml:
6029         * doc/reference/tmpl/rhythmdb-query-model.sgml:
6030         * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6032 2006-04-16  James Livingston  <doclivingston@gmail.com>
6034         patch by: Christian Kirbach  <Christian.Kirbach@student.uni-siegen.de>
6036         * po/LINGUAS: don't split the variable across two lines, as it breaks
6037         the build. Fixes bug 338625.
6039 2006-04-15  James Livingston  <doclivingston@gmail.com>
6041         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6042         add a "sourcelist-model" gobject property.
6044 2006-04-14  William Jon McCann  <mccann@jhu.edu>
6046         * .cvsignore:
6047         * backends/.cvsignore:
6048         * backends/gstreamer/.cvsignore:
6049         * bindings/.cvsignore:
6050         * bindings/python/.cvsignore:
6051         * help/es/.cvsignore:
6052         * metadata/.cvsignore:
6053         * plugins/.cvsignore:
6054         * plugins/audioscrobbler/.cvsignore:
6055         * plugins/lirc/.cvsignore:
6056         * plugins/pythonconsole/.cvsignore:
6057         * plugins/sample-python/.cvsignore:
6058         * plugins/sample/.cvsignore:
6059         * shell/.cvsignore:
6060         * widgets/libsexy/.cvsignore:
6061         Make CVS ignore files.
6063 2006-04-14  James Livingston  <doclivingston@gmail.com>
6065         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6066         the track-loading thread hold a reference on the source, so it doesn't
6067         explode if the cd is removed before it is done. Fixes bug 337237.
6069 2006-04-14  James Livingston  <doclivingston@gmail.com>
6071         * bindings/python/override_common.c:
6072         (_helper_unwrap_pointer_pylist):
6073         * bindings/python/override_common.h:
6074         * bindings/python/rb.override:
6075         * bindings/python/rhythmdb.override: Bind some more functions and
6076         virtual functions.
6078         * shell/rb-shell.c: (rb_shell_select_source):
6079         * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6080         * sources/rb-audiocd-source.c:
6081         * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6082         * sources/rb-browser-source.c: (impl_get_search_actions):
6083         * sources/rb-iradio-source.c: (impl_get_ui_actions):
6084         * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6085         * sources/rb-playlist-source.c: (impl_get_ui_actions):
6086         * sources/rb-podcast-source.c: (impl_get_ui_actions),
6087         (impl_get_search_actions):
6088         * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6089         the impl_get_ui_actions and impl_get_search_actions functions return
6090         lists that contain copies of the strings, instead of constant ones.
6091         Needed to bindings
6093 2006-04-14  James Livingston  <doclivingston@gmail.com>
6095         * bindings/python/rhythmdb.defs:
6096         * bindings/python/rhythmdb.override: fix the method argument format
6097         specifiers.
6099 2006-04-14  James Livingston  <doclivingston@gmail.com>
6101         * bindings/python/rhythmdb.defs:
6102         * bindings/python/rhythmdb.override:
6103         * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6104         (entry_to_rb_metadata), (record_entry_change),
6105         (rhythmdb_entry_set_visibility):
6106         * rhythmdb/rhythmdb.h:
6107         * shell/rb-shell.c: (rb_shell_get_song_properties): change
6108         rhythmdb_entry_get to take the db as the first parameter. Fixes the
6109         python bindings of it. The rhythmdb_entry_get_* ones are left the same
6110         since they are used in too many places, and not in the Python
6111         bindings.
6113 2006-04-13  William Jon McCann  <mccann@jhu.edu>
6115         * lib/rb-debug.c: (_rb_profile_log):
6116         * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6117         * rhythmdb/rhythmdb.c: (rhythmdb_load):
6118         * shell/main.c: (main):
6119         * shell/rb-shell.c: (rb_shell_constructor),
6120         (rb_shell_set_visibility), (rb_shell_sync_window_state),
6121         (rb_shell_present):
6122         Fix profile output indentation.  Add more profiling points.
6123         Fixes part of #338114
6125 2006-04-13  James Livingston  <doclivingston@gmail.com>
6127         * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6128         library source being deleted, by setting the active source to NULL.
6129         From bug 338116.
6131 2006-04-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6133         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6134         Update the last-seen string when hiddenness changes.
6136 2006-04-12  James Livingston  <doclivingston@gmail.com>
6138         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6139         which caused the first-seen time to be reset when a metadata load was
6140         done. Fixes bug 336874.
6142         * shell/rb-shell.h: remove old function declaration.
6144         * bindings/python/rhythmdb.defs:
6145         * bindings/python/rhythmdb.override: Fix some python binding stuff.
6147 2006-04-11  James Livingston  <doclivingston@gmail.com>
6149         * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6150         (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6151         interaction. Fixes bug 337999.
6153 2006-04-11  James Livingston  <doclivingston@gmail.com>
6155         patch by: Christohpe Fergeau  <teuf@gnome.org> to fix building without
6156         track transfer. Fixes bug 338056.
6158         * shell/Makefile.am:
6160 2006-04-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6162         * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6164 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6166         * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6167         (_rb_profile_log):
6168         * lib/rb-debug.h:
6169         * shell/rb-shell.c: (construct_db), (construct_widgets),
6170         (construct_sources), (construct_load_ui), (rb_shell_constructor):
6171         Add profiling.  Fixes #337387
6173 2006-04-10  William Jon McCann  <mccann@jhu.edu>
6175         * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func): 
6176         * widgets/rb-header.c:
6177         Use italics for artist and album. Fixes #336748
6179 2006-04-10  James Livingston  <doclivingston@gmail.com>
6181         * Makefile.am:
6182         * backends/gstreamer/Makefile.am:
6183         * configure.ac:
6184         * data/glade/library-prefs.glade:
6185         * shell/Makefile.am:
6186         * shell/rb-removable-media-manager.c:
6187         * shell/rb-removable-media-manager.h:
6188         * sources/Makefile.am:
6189         * sources/rb-audiocd-source.c:
6190         * sources/rb-library-source.c: (rb_library_source_class_init),
6191         (rb_library_source_finalize), (impl_get_config_widget),
6192         (rb_library_source_preferences_sync), (impl_can_paste): add a
6193         --enable-track-transfer configure option, abd make cd ripping disabled
6194         by default.
6196         * shell/rb-source-header.c:
6197         * sources/rb-source.c: (rb_source_class_init),
6198         (rb_source_delete_thyself), (default_get_entry_view):
6199         * lib/rb-glade-helpers.c:
6200         * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6201         some compiler warnings, and also bug 337427.
6203 2006-04-10  James Livingston  <doclivingston@gmail.com>
6205         * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6206         (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6207         if the gconf key is missing. Fixes bug 337742.
6209 2006-04-10  James Livingston  <doclivingston@gmail.com>
6211         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6212         to fix build problems I caused with a commit yesterday. Fixed bug
6213         337806.
6215         * daapsharing/rb-daap-mdns-browser-howl.c:
6216         (rb_daap_mdns_browser_class_init):
6217         * podcast/Makefile.am:
6218         * rhythmdb/Makefile.am:
6219         * widgets/eggtrayicon.h:
6221 2006-04-09  Steve Frécinaux  <steve@istique.net>
6223         * configure.ac:
6224         * po/LINGUAS:
6225         
6226         Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6227         translators' life easier.
6229 2006-04-09  James Livingston  <doclivingston@gmail.com>
6231         * bindings/python/rb.defs:
6232         * bindings/python/rb.override: add bindings for most RBSource virtual
6233         functions.
6235         * sources/rb-source.h:
6236         * sources/rb-source.c: (rb_source_class_init): make
6237         impl_get_browser_key return a non-consht string, since Python can't
6238         really give us constant strings.
6240         * shell/rb-source-header.c: (rb_source_header_finalize),
6241         (rb_source_header_set_source_internal):
6242         * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6243         * sources/rb-iradio-source.c: (impl_get_browser_key):
6244         * sources/rb-library-source.c: (impl_get_browser_key):
6245         * sources/rb-playlist-source.c:
6246         * sources/rb-browser-source.c: (rb_browser_source_constructor),
6247         (rb_browser_source_state_prefs_sync):
6248         * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6249         above change.
6251         * plugins/sample-python/sample-python.py: show how to add a new
6252         source.
6254 2006-04-09  James Livingston  <doclivingston@gmail.com>
6256         * daapsharing/Makefile.am:
6257         * daapsharing/rb-daap-connection.c:
6258         (rb_daap_connection_class_init):
6259         * daapsharing/rb-daap-marshal.list:
6260         * daapsharing/rb-daap-mdns-browser-avahi.c:
6261         (rb_daap_mdns_browser_class_init):
6262         * lib/rb-marshal.list:
6263         * player/Makefile.am:
6264         * player/rb-recorder-gst.c: (rb_recorder_class_init):
6265         * player/rb-recorder-marshal.list:
6266         * podcast/Makefile.am:
6267         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6268         * podcast/rb-podcast-marshal.list:
6269         * rhythmdb/Makefile.am:
6270         * rhythmdb/rhythmdb-marshal.list:
6271         * rhythmdb/rhythmdb-query-model.c:
6272         (rhythmdb_query_model_class_init):
6273         * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6274         into one file, as there is no point having several of them.
6276 2006-04-09  James Livingston  <doclivingston@gmail.com>
6278         * lib/Makefile.am:
6279         * lib/rb-enums.h:
6280         * widgets/Makefile.am:
6281         * widgets/eggnotificationbubble.c:
6282         * widgets/eggnotificationbubble.h:
6283         * widgets/rb-song-info.c: remove lib/rb-enums.h and
6284         widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6286         * rhythmdb/rhythmdb-property-model.h:
6287         * rhythmdb/rhythmdb-query-model.h:
6288         * rhythmdb/rhythmdb.h:
6289         * shell/rb-playlist-manager.h:
6290         * widgets/rb-cell-renderer-pixbuf.h:
6291         * widgets/rb-cell-renderer-rating.h:
6292         * widgets/rb-rating.h: fix the prototypes of various class-closures.
6294 2006-04-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6296         * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6297         so we can build without a system-wide installed copy.
6299 2006-04-09  James Livingston  <doclivingston@gmail.com>
6301         * data/glade/general-prefs.glade:
6302         * data/rhythmbox.schemas:
6303         * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6304         (rb_combo_box_hyphen_separator_func):
6305         * lib/rb-glade-helpers.h:
6306         * lib/rb-preferences.h:
6307         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6308         (rb_shell_preferences_sync),
6309         (rb_shell_preferences_toolbar_style_cb),
6310         (rb_shell_preferences_browser_views_activated_cb):
6311         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6312         (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6313         overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6315 2006-04-09  James Livingston  <doclivingston@gmail.com>
6317         * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6318         data that MusicBrainz returns to us. Last part of bug 334167.
6320 2006-04-09  James Livingston  <doclivingston@gmail.com>
6322         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6323         crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6325 2006-04-09  James Livingston  <doclivingston@gmail.com>
6327         * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6328         the entry view properly when the rows are reordered. Fixes bug 337019.
6330 2006-04-09  James Livingston  <doclivingston@gmail.com>
6332         * configure.ac:
6333         * widgets/Makefile.am:
6334         * widgets/libsexy/Makefile.am:
6335         * widgets/libsexy/sexy-icon-entry.c:
6336         * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6337         libsexy, and allow building against it or a system-wide installed
6338         copy.
6341         * widgets/rb-search-entry.c: (rb_search_entry_init),
6342         (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6343         search box. Fixes bug 128109.
6345 2006-04-09  James Livingston  <doclivingston@gmail.com>
6347         patch by: Alex Lancaster  <alexl@users.sourceforge.net>
6349         * widgets/rb-entry-view.c: (rb_entry_view_init),
6350         (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6351         and Pause icons rather than the volume ones in the Now Playing column.
6352         Closes bug 336482.
6354 2006-04-08  James Livingston  <doclivingston@gmail.com>
6356         * bindings/python/override_common.h:
6357         * bindings/python/rb.override:
6358         * bindings/python/rhythmdb.override: bind some more functions 
6360 2006-04-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6362         * metadata/rb-metadata-dbus-service.c: (_send_error):
6363         Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6364         are sent properly and we don't get 'method doesn't exist' messages
6365         from dbus instead.
6367 2006-04-08  James Livingston  <doclivingston@gmail.com>
6369         * bindings/python/override_common.h:
6370         * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6371         (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
6372         more utility functions for C<->Python conversions
6374         * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
6375         (rb_entry_view_state_get_type):
6376         * widgets/rb-entry-view.h: make the colume type and entry view state
6377         GTypes
6379         * bindings/python/Makefile.am:
6380         * bindings/python/rb.defs:
6381         * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
6382         RBSource.
6384 2006-04-08  James Livingston  <doclivingston@gmail.com>
6386         * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
6387         initialiser for a GError
6389         * sources/rb-source.c: (rb_source_eof_type_get_type):
6390         * sources/rb-source.h: add a GType for RBSourceEOFType
6392         * bindings/python/Makefile.am:
6393         * bindings/python/rb.defs:
6394         * bindings/python/rb.override: bind RBSource and RBSourceList
6396 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6398         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6399         (rb_shell_player_get_property),
6400         (rb_shell_player_get_active_source),
6401         (rb_shell_player_set_playing_source_internal):
6402         * shell/rb-shell-player.h:
6403         Change 'playing-from-queue' from being a signal to being a property.
6405         * shell/rb-shell.c: (rb_shell_constructor),
6406         (rb_shell_playing_from_queue_cb),
6407         (rb_shell_view_queue_as_sidebar_changed_cb),
6408         (rb_shell_jump_to_entry_with_source):
6409         When the queue side pane is used, make 'jump to current' jump to the
6410         entry in the registered source for its type, rather than in the queue,
6411         and show it as playing in that source.
6412         
6413         * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
6414         * sources/rb-sourcelist.h:
6415         Remove the 'preempted source' stuff, since it wasn't doing anything
6416         anyway.
6418 2006-04-07  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6420         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
6421         (download_progress_cb): Canonicalise downloaded file location before
6422         setting the mountpoint property of the corresponding entry.
6423         Fixes #337287 and a couple of memory leaks.
6425 2006-04-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6427         * metadata/rb-metadata-dbus-service.c: (test_can_save),
6428         (test_load), (main): Call g_set_prgname, report errors more
6429         usefully in test mode.
6430         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
6431         (rb_metadata_load): Don't ignore the have-type signal for non-audio
6432         files.  Run the event loop when the state change fails so we get the
6433         error messages from the bus.  Fixes #336921.
6435 2006-04-05  William Jon McCann  <mccann@jhu.edu>
6437         * data/art/Makefile.am: Install media-eject.
6439         * lib/rb-stock-icons.c (rb_stock_icons_init): Check
6440         return value of rb_file.
6442         Fixes #337209
6444 2006-04-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6446         Patch by: William Jon McCann  <mccann@jhu.edu>
6448         * metadata/test-metadata.c: (main): Use GOption to parse arguments.
6449         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
6450         Fix GError leak.
6452 2006-04-04  William Jon McCann  <mccann@jhu.edu>
6454         * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
6455         Don't try to add a date when we don't have one.  Fixes #336741.
6457         Also fix variable declaration in middle of block.
6459 2006-04-04  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6461         * shell/rb-shell-player.c: (rb_shell_player_playpause):
6462         Don't crash if source is already NULL.  Hackishly fixes bug #336912.
6464 2006-04-02  James Livingston  <doclivingston@gmail.com>
6466         * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
6467         inverted logic causing imports to fail.
6469 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6471         * shell/main.c: (main): Fix dbusless build.
6473 2006-04-02  Christophe Fergeau  <teuf@gnome.org>
6475         * player/rb-recorder-gst.c: fix packing of the C struct holding a
6476         wav header for non-gcc compilers (not tested much, was only written
6477         according to docs)
6479 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6481         * shell/main.c: (main): Check if we got a dbus connection before
6482         trying to create a proxy for the shell object.  Fixes #336634.
6484 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6486         * doc/reference/Makefile.am:
6487         * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
6488         * shell/rb-source-header.c:
6489         * sources/rb-generic-player-source.c:
6490         (default_transform_playlist_uri):
6491         Fix various build issues.  Patch approximately 50% by Alex Lancaster
6492         <alexl@users.sourceforge.net>
6494 2006-04-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6496         * configure.ac: Detect LIRC.
6497         
6498         * plugins/Makefile.am:
6499         * plugins/lirc/Makefile.am:
6500         * plugins/lirc/lirc.rb-plugin.desktop.in:
6501         * plugins/lirc/rb-lirc-plugin.c:
6502         LIRC plugin.
6504         * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h: 
6505         Remove obsolete files.
6507 2006-04-02  James Livingston  <doclivingston@gmail.com>
6509         * sources/rb-generic-player-source.c:
6510         (default_transform_playlist_uri): consider playlist paths as relative
6511         to the volume root by default, since that is what most players use.
6513 2006-04-02  James Livingston  <doclivingston@gmail.com>
6515         * lib/rb-util.c: (rb_mime_get_friendly_name):
6516         * lib/rb-util.h: add helper function to get the "friendly" name for a
6517         mime-type
6519         * metadata/rb-metadata-gst.c: (rb_metadata_init),
6520         (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
6521         the user better error messages about undecodable streams, using the
6522         "friendly" name if possible. Fixes bug 128109.
6524 2006-04-02  James Livingston  <doclivingston@gmail.com>
6526         * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
6527         (start_pipeline): fix building with gstreamer 0.8
6529 2006-04-02  James Livingston  <doclivingston@gmail.com>
6531         * sources/rb-podcast-source.c: (impl_delete),
6532         (rb_podcast_source_cmd_delete_feed),
6533         (rb_podcast_source_cmd_update_feed): copy the list before traversing
6534         it, since it may change during traversal. Fixes bug 336204.
6536 2006-04-01  James Livingston  <doclivingston@gmail.com>
6538         * data/art/media-eject.png: add the media-eject icon from Banshee
6539         (BSD-licensed), for use when the user's icon theme doesn't have one.
6541         * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
6542         bug 334897.
6544 2006-04-01  James Livingston  <doclivingston@gmail.com>
6546         * shell/rb-shell-player.h:
6547         * shell/rb-shell-player.c: (rb_shell_player_play),
6548         (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
6549         new rb_shell_player_{play,pause} functions, so everyone doesn't have
6550         to do rb_shell_player_playing followed by rb_shell_player_playpause.
6552         * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
6553         (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
6554         * shell/rb-shell.h: add rb_shell_get_ui_manager.
6556         * bindings/python/rb.defs: bind the above to Python, and remove some
6557         useless stuff from the bindings.
6559 2006-04-01  James Livingston  <doclivingston@gmail.com>
6561         * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
6562         number tag.
6564         * shell/rb-shell.c:
6565         * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
6567         * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
6568         to true.
6570         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
6571         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
6572         method assigning, so it's understandable
6574         * sources/rb-library-source.c: (rb_library_source_class_init),
6575         (impl_paste): rather than hard-coding the types to ignore, use
6576         rb_source_can_copy.
6578 2006-03-31  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6580         * sources/rb-library-source.c:
6581         (rb_library_source_preferences_sync):
6582         Don't crash if no audio profile is selected and the gconf schemas are 
6583         not installed.
6585 2006-03-31  James Livingston  <doclivingston@gmail.com>
6587         * plugins/rb-python-module.c: (rb_python_module_load): add a missing
6588         "*" which caused compilation to fail
6590 2006-03-31  James Livingston  <doclivingston@gmail.com>
6592         * configure.ac:
6593         * Makefile.am:
6594         * backends/Makefile.am:
6595         * backends/gstreamer/Makefile.am:
6596         * backends/gstreamer/rb-encoder-gst.c:
6597         * backends/gstreamer/rb-encoder-gst.h:
6598         * backends/rb-encoder.c:
6599         * backends/rb-encoder.h: add a interface for transcoding, and a
6600         GStreamer implementation of it (based on Sound-Juicer's code).
6602         * shell/Makefile.am:
6603         * shell/rb-removable-media-manager.c:
6604         (rb_removable_media_manager_class_init),
6605         (rb_removable_media_manager_init),
6606         (rb_removable_media_manager_dispose),
6607         (rb_removable_media_manager_finalize),
6608         (rb_removable_media_manager_scan), (emit_progress), (error_cb),
6609         (progress_cb), (completed_cb), (do_transfer),
6610         (rb_removable_media_manager_queue_transfer), (copy_entry),
6611         (rb_removable_media_manager_cmd_copy_tracks):
6612         * shell/rb-removable-media-manager.h: use the encoder interface to
6613         perform transfers of entries to other locations
6615         * shell/rb-shell-player.c: (open_location_thread):
6616         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
6617         (rb_shell_constructor), (rb_shell_transfer_progress_cb),
6618         (rb_shell_quit):
6619         * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
6620         progress in the status bar.
6622         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6623         (rb_shell_preferences_sync),
6624         (rb_shell_preferences_browser_views_activated_cb):
6625         * data/glade/general-prefs.glade: move the browser views setting from
6626         the library tab to the general one.
6628         * data/glade/library-prefs.glade: add settings for the layout of the
6629         user's library, and their preferred encoding format (e.g. for CD
6630         ripping).
6632         * lib/rb-preferences.h:
6633         * data/rhythmbox.schemas: add keys for the above options (and a few
6634         other minor ones)
6636         * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
6637         * rhythmdb/rhythmdb.h: add a new function for creating an "example"
6638         entry, that isn't inserted into the database.
6640         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
6641         (rb_audiocd_create_track_entry):
6642         * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
6643         cds, and set the mime-type of audio cd tracks correctly.
6645         * sources/rb-library-source.c: (rb_library_source_class_init),
6646         (rb_library_source_finalize),
6647         (rb_library_source_edit_profile_clicked_cb),
6648         (impl_get_config_widget), (rb_library_source_preferences_sync),
6649         (impl_receive_drag), (rb_library_source_path_changed_cb),
6650         (rb_library_source_filename_changed_cb),
6651         (rb_library_source_format_changed_cb), (sanitize_path),
6652         (filepath_parse_pattern), (layout_example_label_update),
6653         (rb_library_source_layout_path_changed),
6654         (rb_library_source_layout_filename_changed), (build_filename),
6655         (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
6656         entries to the library. Large chunks of code for determining the
6657         destination file name stolen from Sound-Juicer.
6659         * sources/rb-sourcelist-model.c: (path_is_droppable):
6660         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
6661         * sources/rb-static-playlist-source.c:
6662         (rb_static_playlist_source_class_init):
6663         * sources/rb-removable-media-source.c:
6664         (rb_removable_media_source_class_init):
6665         * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
6666         (rb_source_can_paste):
6667         * sources/rb-source.h: add a new _can_paste method, and use it (rather
6668         than _can_copy) to determine whether we can paste into the source.
6671 2006-03-31  Steve Frécinaux  <steve@istique.net>
6673         * plugins/rb-python-module.c: allow import of python modules with a '.'
6674         (gedit's bug 336403). Patch by Johan Dahlin.
6676 2006-03-31  James Livingston  <doclivingston@gmail.com>
6678         * sources/rb-library-source.c: 
6679         * sources/rb-library-source.h:
6680         * sources/rb-browser-source.c:
6681         * sources/rb-browser-source.h: Split RBLibrarySource into two.
6682         RBBrowserSource now contains all the stuff for having a source which
6683         views a particular entry type (including browsers and searching).
6684         RBLibrarySource derives from this, and includes the library-specific
6685         stuff, like importing and library watching. Fixes some issues where
6686         library-derived sources were doing things that should be
6687         library-specific. Fixes bug 335185.
6689         * data/ui/rhythmbox-ui.xml:
6690         * sources/Makefile.am: modifications for the above
6692         * sources/rb-daap-source.c: (rb_daap_source_class_init),
6693         (rb_daap_source_get_paned_key):
6694         * sources/rb-daap-source.h:
6695         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
6696         * sources/rb-removable-media-source.c:
6697         (rb_removable_media_source_class_init):
6698         * sources/rb-removable-media-source.h: derive from RBBrowserSource
6699         instead of RBLibrarySource.
6701 2006-03-31  James Livingston  <doclivingston@gmail.com>
6703         * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
6704         I buggered up when changing from GnomeVFSFileSize.
6706 2006-03-30  James Livingston  <doclivingston@gmail.com>
6708         * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
6709         for "-Wno-error".
6711         * bindings/python/rb.override:
6712         * bindings/python/Makefile.am: make the RB python bindings depend on
6713         the RhythmDB ones, and use "-Wno-error" since the machine-generated
6714         code sometimes emits warnings.
6716         * shell/rb-shell-player.c: (rb_shell_player_class_init),
6717         (rb_shell_player_error_get_type):
6718         * shell/rb-shell-player.h:
6719         * bindings/python/rb.defs: add bindings for RBShellPlayer
6721         * rhythmdb/rhythmdb.c: (rhythmdb_init),
6722         (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
6723         (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
6724         * rhythmdb/rhythmdb.h:
6725         * shell/rb-shell.c: (rb_shell_get_song_properties):
6726         * widgets/rb-entry-view.c: (propid_from_name):
6727         * widgets/rb-property-view.c: (rb_property_view_class_init):
6728         * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
6729         than just plain GPtrArray, and add bindings for it.
6731         * bindings/python/rhythmdb.override: wrap some functions that use
6732         GValues
6734 2006-03-30  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6736         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
6737         Only watch directories from which entries of type SONG have been
6738         added.
6740 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6742         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
6743         No need to restore the selection after rebuilding the child model,
6744         since that can't have changed the selection.
6746 2006-03-29  James Livingston  <doclivingston@gmail.com>
6748         * bindings/python/override_common.c:
6749         * bindings/python/override_common.h: add some for missing files to
6750         cvs.
6752 2006-03-29  James Livingston  <doclivingston@gmail.com>
6754         * configure.ac:
6755         * bindings/python/Makefile.am: remove usage of gtksourceview, it was
6756         copied from gedit's autofoo and we don't need it
6758         * bindings/python/rhythmdb.defs:
6759         * bindings/python/rhythmdb.override: add missing files to cvs
6761 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6763         * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
6764         * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
6765         before running any of the debug/test modes.
6766         * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
6767         Make plugin loading work when running uninstalled from the shell/
6768         directory.
6770 2006-03-29  James Livingston  <doclivingston@gmail.com>
6772         * rhythmdb/rhythmdb-property-model.c:
6773         (rhythmdb_property_model_sync),
6774         (rhythmdb_property_model_column_get_type):
6775         * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
6777         * rhythmdb/rhythmdb-private.h:
6778         * rhythmdb/rhythmdb-query-model.c:
6779         (rhythmdb_query_model_class_init):
6780         * rhythmdb/rhythmdb-query-model.h:
6781         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
6782         (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
6783         (rhythmdb_entry_get_type):
6784         * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
6786         * widgets/rb-query-creator-properties.c:
6787         * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
6788         was missing.
6790         * bindings/python/Makefile.am:
6791         * bindings/python/rb.defs:
6792         * bindings/python/rb.override:
6793         * plugins/rb-python-module.c: (rb_python_module_init_python): add
6794         Python bindings for RhythmDB.
6796 2006-03-29  James Livingston  <doclivingston@gmail.com>
6798         * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
6799         sharing when using --no-registration
6801 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6803         * rhythmdb/rhythmdb-query-model.c:
6804         (rhythmdb_query_model_reapply_query):
6805         Don't remove entries while iterating, as it breaks the sequence
6806         nodes.  Instead, collect a list of removed entries and process it
6807         after iterating the sequence.  Fixes #334642.
6809 2006-03-29  James Livingston  <doclivingston@gmail.com>
6811         * plugins/rb-plugin-manager.c: (active_toggled_cb),
6812         (row_activated_cb), (plugin_manager_toggle_all):
6813         * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
6814         (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
6815         (button_press_cb), (source_name_edited_cb):
6816         * widgets/rb-property-view.c: (rb_property_view_set_property),
6817         (rb_property_view_post_row_deleted_cb),
6818         (rb_property_view_row_activated_cb),
6819         (rb_property_view_selection_changed_cb),
6820         (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
6821         ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
6823 2006-03-29  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6825         * rhythmdb/rhythmdb-query-model.c:
6826         (rhythmdb_query_model_drag_data_received):
6827         Increment the reference count for entries added by drag and drop.
6828         Fixes #336045.
6830 2006-03-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6832         * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
6833         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
6834         Ignore invalid UTF-8 strings.  Fixes most of #334167.
6836 2006-03-27  James Livingston  <doclivingston@gmail.com>
6838         * shell/rb-shell.c: (rb_shell_constructor),
6839         (rb_shell_sync_window_state): fix a maximise-realise race that would
6840         cause some widgets to be resized after we had explicity set theri
6841         size. Hopefully fixes bug 331927.
6843 2006-03-27  James Livingston  <doclivingston@gmail.com>
6845         * plugins/rb-plugin-manager.c: (active_toggled_cb),
6846         (row_activated_cb), (plugin_manager_set_active),
6847         (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
6848         configure button sensitivity when a plugin is enabled/disabled.
6850 2006-03-27  James Livingston  <doclivingston@gmail.com>
6852         * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
6853         stop warnings, only the vbos is used anyway
6855         * plugins/rb-plugins-engine.c: (garbage_collect_cb),
6856         (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
6857         collection every now an then.
6859         * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
6860         if we are finalising because the python object couldn't be created.
6862         * plugins/rb-python-module.c: (rb_python_module_new_object): return
6863         NULL if the python-side object couldn't be created. Stops crashes when
6864         the object is later used when it doesn't exist in Python.
6866         (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
6867         (rb_python_shutdown): do better garbage collection when shutting down.
6868         Fixes the problem where Python was holding a reference to the shell,
6869         causing RB not to exit.
6871 2006-03-27  James Livingston  <doclivingston@gmail.com>
6873         * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
6874         336131.
6876 2006-03-27  James Livingston  <doclivingston@gmail.com>
6878         * data/iradio-initial.pls: Change the AfterHours DJ stream address.
6879         From bug 334829.
6881 2006-03-26  James Livingston  <doclivingston@gmail.com>
6883         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
6884         library location list to NULL after we free it. Fixes bug 336047.
6886 2006-03-26  James Livingston  <doclivingston@gmail.com>
6888         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
6890         * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
6891         supplies. Fixes bug 335947.
6893 2006-03-25  James Livingston  <doclivingston@gmail.com>
6895         * data/glade/audioscrobbler-prefs.glade:
6896         * shell/rb-audioscrobbler.c:
6897         (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
6898         "submit songs" checkbox, and make it not disable username/password
6899         entry. This will be needed when we support other last.fm stuff
6900         (profile access, radio, etc).
6902 2006-03-24  Dennis Cranston  <dennis_cranston@yahoo.com>
6904         * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
6905         Volume should not display stock_volume-0 for volume > 0. Fixes bug
6906         335777.
6908 2006-03-24  James Livingston  <doclivingston@gmail.com>
6910         * shell/rb-shell-player.c: (rb_shell_player_set_property),
6911         (rb_shell_player_sync_play_order),
6912         (rb_shell_player_play_order_update_cb),
6913         (actually_set_playing_source): update the next/previous availablility
6914         in places where it was missing. Fixes bug 335490.
6916 2006-03-24  James Livingston  <doclivingston@gmail.com>
6918         * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
6919         can't find the widget
6921         * lib/rb-util.c: (rb_uri_list_parse):
6922         * lib/rb-util.h: add function for parsing a URI list into strings.
6924         * metadata/Makefile.am: make the metdata helper build when linking
6925         with --as-needed
6927         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
6928         g_mkdir_with_parents instead of coding our own.
6930         * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
6931         <itunes:author> over <generator>, instead of using whichever comes
6932         last.
6934         * rhythmdb/rhythmdb-private.h:
6935         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
6936         field, as we don't ever check it (to detect corruption). Saves a bit
6937         of memory.
6939 2006-03-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6941         * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
6942         (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
6943         Escape '&' and '=' in the paths we get back from
6944         gnome_vfs_directory_visit.  Fixes #333998 a bit more.
6946 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6948         * shell/rb-shell.c: (rb_shell_constructor):
6949         Issue startup notification after creating the main window, so
6950         notification is issued whether the window is visible or not.
6951         Fixes #335086.
6953 2006-03-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
6955         * sources/rb-auto-playlist-source.c: (impl_search),
6956         (rb_auto_playlist_source_query_complete_cb),
6957         (rb_auto_playlist_source_do_query):
6958         * sources/rb-library-source.c: (impl_search),
6959         (rb_library_source_query_complete_cb),
6960         (rb_library_source_do_query):
6961         Defer subset searches (where text is appended to an existing search)
6962         until the original query is complete.
6964 2006-03-21  Ryan P Skadberg  <skadz@stigmata.org>
6966         patch by: Jonathan Matthew  <jonathan@kaolin.wh9.net>
6968         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
6969         (rb_refstring_get_sort_key): fixes for strict-aliasing
6971 2006-03-21  James Livingston  <jrl@ids.org.au>
6973         * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
6974         importing a single file. Fixes bug 335307.
6976 2006-03-21  James Livingston  <jrl@ids.org.au>
6978         * shell/Makefile.am: remove the reference to backends/ that I
6979         accidently included.
6981 2006-03-21  James Livingston  <jrl@ids.org.au>
6983         patch by: Brian Cameron  <brian.cameron@sun.com> to fix comilation
6984         with Forte (on Solaris). Closes bug 335318.
6986         * configure.ac:
6987         * lib/Makefile.am:
6988         * player/rb-recorder-gst.c:
6989         * podcast/rb-podcast-parse.c:
6990         * remote/bonobo/Makefile.am:
6991         * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
6992         * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
6993         (rhythmdb_query_model_add_entry),
6994         (rhythmdb_query_model_add_results):
6995         * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
6996         * rhythmdb/rhythmdb.h:
6997         * shell/Makefile.am:
6998         * sources/rb-playlist-source-recorder.c: (get_write_speeds),
6999         (update_speed_combobox):
7000         * sources/rb-sourcelist-model.c:
7002 2006-03-21  James Livingston  <jrl@ids.org.au>
7004         Patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7006         * player/Makefile.am:
7007         * shell/Makefile.am: work correctly with a separate build root.
7009 2006-03-21  James Livingston  <jrl@ids.org.au>
7011         * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7012         get handed NULL.
7014 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7016         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7017         Only create ignore entries when importing into the library.  
7018         Ignore entries for files in removable media sources don't help.
7020 2006-03-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7022         * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7023         * shell/rb-source-header.h:
7024         * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7025         * widgets/rb-search-entry.h:
7026         Add functions to make the search box grab focus.
7028         * shell/rb-shell.c: (rb_shell_cmd_view_all):
7029         Focus the search box after handling the 'view all' action.
7031 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7033         * rhythmdb/rhythmdb.h:
7034         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7035         (rhythmdb_execute_multi_stat_info_cb),
7036         (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7037         (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7038         (action_thread_main):
7039         Collect all the get_file_info requests on startup into one gnome-vfs
7040         job to reduce overhead and avoid contention for the rhythmdb lock.
7041         Add a new method to call when all initial query models are set up.
7042         
7043         * shell/rb-shell.c: (idle_handle_load_complete):
7044         Call rhythmdb startup complete function when we've loaded all the
7045         playlists.  Fixes #334106.
7047 2006-03-20  James Livingston  <jrl@ids.org.au>
7049         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7050         (rb_entry_view_selection_changed_cb),
7051         (rb_entry_view_have_complete_selection): make has_complete_selection
7052         not slow. Fixes a performance issue I added a week or so ago.
7054 2006-03-20  James Livingston  <jrl@ids.org.au>
7056         * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7057         before passing to strcmp. From bug 334559.
7059 2006-03-20  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7061         * configure.ac:
7062         * lib/Makefile.am:
7063         * lib/rb-proxy-config.c:
7064         * lib/rb-proxy-config.h:
7065         Add a new object to watch the HTTP proxy configuration and emit
7066         signals when it changes.
7068         * shell/rb-audioscrobbler.c:
7069         * shell/rb-audioscrobbler.h:
7070         Use rb-proxy-config to watch HTTP proxy configuration.
7072         * shell/rb-shell.c:
7073         Construct rb-proxy-config object on startup, and remove all
7074         audioscrobbler references.
7076         * shell/Makefile.am:
7077         * plugins/audioscrobbler/Makefile.am:
7078         * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7079         Move all audioscrobbler code into the plugin.  We should move
7080         rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7081         point.  Don't use a private data structure in the plugin, since the
7082         class definition isn't in a header file.  Fixes #335091.
7084 2006-03-20  James Livingston  <jrl@ids.org.au>
7086         * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7087         don't enable Next if the source has an EOS type other than
7088         RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7090 2006-03-20  James Livingston  <jrl@ids.org.au>
7092         * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7093         (rb_song_info_forward_clicked_cb): deal with there being no
7094         next/previous entry.
7096         (rb_song_info_query_model_inserted_cb),
7097         (rb_song_info_query_model_deleted_cb),
7098         (rb_song_info_query_model_reordered_cb),
7099         (rb_song_info_query_model_changed_cb): monitor the query for changes,
7100         to update the button status. Fixes bug 333293.
7102 2006-03-20  James Livingston  <jrl@ids.org.au>
7104         * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7105         caused by my last commit
7107 2006-03-20  James Livingston  <jrl@ids.org.au>
7109         * bindings/python/Makefile.am:
7110         * bindings/python/rb.defs:
7111         * bindings/python/rb.override: add python bindings of RBRemoteProxy
7113         * shell/rb-shell.c: (rb_shell_constructor),
7114         (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7115         tray-icon detection slightly
7117 2006-03-19  Steve Frécinaux  <steve@istique.net>
7119         * data/ui/rhythmbox-ui.xml:
7120         * shell/rb-shell.c:
7122         Add an empty Tool Menu (hidden by default) containing placeholders for
7123         plugins.
7125         * configure.ac:
7126         * plugins/Makefile.am:
7127         * plugins/pythonconsole/Makefile.am:
7128         * plugins/pythonconsole/pythonconsole.py:
7129         * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7130         
7131         Python Console plugin
7133 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7135         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7136         Extra step to encode '&' and '=' to match what gnome-vfs does
7137         internally.
7138         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7139         (rhythmdb_tree_save):
7140         Increment rhythmdb xml version to 1.2, and force another uri
7141         re-canonicalisation when loading v1.1 databases.
7142         Fixes bug #333998.
7144 2006-03-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7146         * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7147         (avahi_client_init), (browse_cb):
7148         * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7149         (avahi_client_init):
7150         Fix compilation with Avahi 0.5.x (bug #334551).
7152 2006-03-19  James Livingston  <jrl@ids.org.au>
7154         Add Increase/Decrease Volume menu items and keybindings. From bug
7155         123383.
7157         * data/ui/rhythmbox-ui.xml:
7158         * shell/rb-shell-player.c: (rb_shell_player_constructor),
7159         (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7160         (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7162 2006-03-19  James Livingston  <jrl@ids.org.au>
7164         patch by: Mikhail Zabaluev  <mhz@altlinux.org>
7166         * shell/Makefile.am: fix the link order, so that we compile with
7167         "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7169 2006-03-19  James Livingston  <jrl@ids.org.au>
7171         patch by: Adam Petaccia  <adam@tpetaccia.com>
7173         * data/ui/rhythmbox-ui.xml: move preferences below "configure
7174         plugins". Fixes bug 335037.
7176 2006-03-18  James Livingston  <jrl@ids.org.au>
7178         * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7179         (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7180         332992.
7182         * widgets/rb-header.c: don't make artist/album info in the header the
7183         small size, since it's hard to read.
7185 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7187         * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7188         (rhythmdb_finalize): Don't leak the hash tables.
7189         (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb) 
7190         (rhythmdb_commit_internal): Make sure to process the deletions.
7191         (rhythmdb_entry_delete): Use a hash.
7193         * podcast/rb-podcast-manager.c: Random analness about char*
7194         (rb_podcast_manager_remove_feed): Add debugging.
7195         (rb_podcast_manager_db_entry_deleted_cb): Ditto.  Check
7196         the result of gnome_vfs_unlink.  Don't leak a uri.
7198         Fixes #334786
7200 2006-03-18  James Livingston  <jrl@ids.org.au>
7202         * NEWS: update NEWS file
7204 2006-03-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7206         * rhythmdb/rhythmdb-property-model.c:
7207         (rhythmdb_property_model_prop_changed_cb):
7208         Remove entries from the hash table after processing visible->hidden
7209         changes.
7211 2006-03-16  William Jon McCann  <mccann@jhu.edu>
7213         * sources/rb-daap-source.c (connection_connected_cb) 
7214         (connection_disconnected_cb): Add debug.
7215         (rb_daap_source_get_headers): Check for NULL connection.
7217         * daapsharing/rb-daap-src.c (rb_daap_src_open):
7218         Check return value of rb_daap_source_get_headers.
7220         Fixes #332089
7222 2006-03-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7224         * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7225         Restore the selection after rebuilding the child model, so the
7226         selection is shown correctly after using the 'browse this
7227         album/artist/genre' menu items.
7229 2006-03-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7231         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7232         Clear the selection before changing the active model.
7233         Fixes crash reported in bug 334549.
7235 2006-03-15  James Livingston  <jrl@ids.org.au>
7237         * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7238         (rb_tray_icon_sync_action):
7239         * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7240         (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7241         for non-libnotify notification bubbles. Fixes bug 331721.
7243 2006-03-15  James Livingston  <jrl@ids.org.au>
7245         Add search-bar options to playlists. Fixes bug 334407.
7247         * sources/rb-auto-playlist-source.c:
7248         (rb_auto_playlist_source_class_init),
7249         (rb_auto_playlist_source_constructor),
7250         (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7251         (search_action_to_prop), (search_action_changed):
7252         * sources/rb-static-playlist-source.c:
7253         (rb_static_playlist_source_class_init),
7254         (rb_static_playlist_source_constructor),
7255         (construct_query_from_selection), (impl_get_search_actions),
7256         (search_action_to_prop), (search_action_changed):
7258 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7260         * shell/rb-source-header.c (rb_source_header_set_source_internal):
7261         Remove broken attempt at making the search bar buttons not
7262         homogeneous.  It wasn't working and was causing some UI sizing weirdness.
7264 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7266         * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7267         Chain up to parent's dispose instead of finalize.  Fixes #334479.
7269 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7271         * widgets/rb-header.c (rb_header_sync): Escape album and
7272         artist before adding to markup.
7274 2006-03-14  William Jon McCann  <mccann@jhu.edu>
7276         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7277         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7278         (rb_header_set_property), (rb_header_get_property),
7279         (rb_header_sync):
7280         Remove the GnomeUrl song links until we can do it properly.
7281         Fixes #334453.
7283 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7285         * shell/rb-source-header.c: (rb_source_header_clear_search):
7286         Remove the stored search text from the hash table, so it doesn't
7287         reappear after switching to another source and back.
7289         * sources/rb-auto-playlist-source.c: (impl_search):
7290         * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7291         * sources/rb-static-playlist-source.c: (impl_search):
7292         Make sure all sources treat impl_search(NULL) and impl_search("") the
7293         same.  Fixes #334525.
7295 2006-03-14  James Livingston  <jrl@ids.org.au>
7297         Store which thread created new entries, and make rhythmdb_commit only
7298         insert the entries for the thread that calls it. This stops one thread
7299         calling rhythmdb_commit inserting entries that are half-way through
7300         construction by another thread (as happens with audio cds). From bug
7301         330226.
7303         * rhythmdb/rhythmdb.c: (rhythmdb_init),
7304         (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7305         (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7306         (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7307         (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7308         (rhythmdb_process_metadata_load),
7309         (rhythmdb_process_queued_entry_set_event),
7310         (rhythmdb_prop_get_type):
7312 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7314         * rhythmdb/rhythmdb-query-model.c:
7315         (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7316         (rhythmdb_query_model_finalize):
7317         Move object unrefs from _finalize into _dispose.
7318         
7319         * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7320         Remove extra g_object_ref that was causing query model leaks.
7321         
7322         * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7323         (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7324         (genre_selection_reset_cb), (rb_iradio_source_do_query):
7325         Remove the cached 'all' query, since it doesn't really help and it
7326         makes the code more complicated.  Attach the genre property view to
7327         the query model build from the search text, so only genres for
7328         stations matching the search terms are displayed.  Preserve the genre
7329         selection across searches.
7331         * widgets/rb-library-browser.c: 
7332         (rb_library_browser_class_init), (rb_library_browser_get_property):
7333         Add properties for the input and output models for the browser, and
7334         remove the 'changed' signal as we can just use notify::output-model.
7335         (ignore_selection_changes),
7336         (selection_restore_data_destroy), (query_complete_cb),
7337         (restore_selection): Helper functions for preserving selections across
7338         query model rebuilds.
7339         (rebuild_output_model):  New function for creating a query model to
7340         use as the display model for a source using the browser.
7341         (rebuild_child_model): Add a call to rebuild_output_model, add missing
7342         g_object_unrefs, reuse the parent's query model when there's no
7343         selection, and use ignore_selection_changes and restore_selection.
7344         (rb_library_browser_set_selection): rebuild_child_model emits the
7345         changed signal, so no need to do it here.
7346         (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7347         ignore_selection_changes and restore_selection. 
7348         * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7349         flag to rb_library_browser_set_model indicating whether the query is
7350         asynchronous.
7352         * sources/rb-static-playlist-source.c:
7353         (rb_static_playlist_source_class_init),
7354         (rb_static_playlist_source_dispose):
7355         (rb_static_playlist_source_constructor):  Add an extra reference on
7356         the base model, so it doesn't vanish when we set a new display model
7357         based on a search or browser selection.
7358         (impl_search): Ensure the search_text field in the source is NULL if
7359         the search box is empty.
7360         (construct_query_from_selection),
7361         (rb_static_playlist_source_do_query): Use the query model constructed
7362         from the search as the input model for the browser.
7363         (rb_static_playlist_source_browser_changed_cb): Use the browser's
7364         output model as the query model for the source.
7366         * sources/rb-auto-playlist-source.c:
7367         (rb_auto_playlist_source_finalize): Free more stuff.
7368         (rb_auto_playlist_source_constructor),
7369         (rb_auto_playlist_source_browser_changed_cb):
7370         Update for rb-library-browser changes, use the browser's output query
7371         model as the query model for the source.
7372         (impl_reset_filters), (impl_search), 
7373         (rb_auto_playlist_source_do_query),
7374         (rb_auto_playlist_source_set_query):
7375         Use the query model constructed from the search text as the input to
7376         the library browser, and when adding text to an existing search, apply
7377         the new query to the existing query model.
7378         
7379         * sources/rb-library-source.c: (rb_library_source_dispose):
7380         (rb_library_source_finalize): Chain dispose up to the parent class.
7381         (rb_library_source_constructor): Update for rb-library-browser
7382         changes. 
7383         (impl_search): Ensure search_text is NULL if the search box is empty,
7384         and use the subset flag to _do_query if text has been appended to an
7385         existing search.
7386         (search_action_changed), (impl_reset_filters):
7387         (rb_library_source_browser_changed_cb),
7388         (rb_library_source_do_query): Use the browser's output model as the
7389         query model for the source.
7391         Rework library and playlist sources to use a single query chain,
7392         and to limit the entries shown in property views based on the search
7393         terms.  Fixes bug #322787.
7395 2006-03-14  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7397         * configure.ac:  Enable metadata helper by default, and fix a typo.
7399 2006-03-13  James Livingston  <jrl@ids.org.au>
7401         Make RBRefStrings lazily create the folded and sort-key strings when
7402         they are first used. This will same some memory by not creating ones
7403         that are never used, and delaying some of the others to when the user
7404         resorts or performs a similar action. Fixes bug 332992.
7406         * rhythmdb/rb-refstring.c: (rb_refstring_free),
7407         (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
7408         (rb_refstring_get), (rb_refstring_get_folded),
7409         (rb_refstring_get_sort_key), (rb_refstring_hash),
7410         (rb_refstring_equal):
7411         * rhythmdb/rb-refstring.h:
7412         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7414 2006-03-12  William Jon McCann  <mccann@jhu.edu>
7416         * data/ui/rhythmbox-ui.xml:
7417         * lib/rb-stock-icons.c: (rb_stock_icons_init):
7418         * lib/rb-stock-icons.h:
7419         * shell/rb-shell-player.c:
7420         * shell/rb-shell.c: (rb_shell_constructor):
7421         * shell/rb-source-header.c: (force_no_shadow),
7422         (ui_manager_add_widget_cb), (rb_source_header_constructor),
7423         (rb_source_header_class_init), (rb_source_header_init),
7424         (merge_source_ui_cb), (toolbar_set_homogeneous),
7425         (rb_source_header_set_source_internal),
7426         (rb_source_header_set_property), (rb_source_header_get_property),
7427         (rb_source_header_set_source), (rb_source_header_new),
7428         (rb_source_header_filter_changed_cb):
7429         * shell/rb-source-header.h:
7430         * sources/rb-library-source.c: (rb_library_source_class_init),
7431         (rb_library_source_init), (search_action_to_prop),
7432         (search_action_changed), (rb_library_source_constructor),
7433         (impl_search), (impl_reset_filters), (impl_get_search_actions),
7434         (construct_query_from_selection):
7435         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7436         (rb_podcast_source_init), (search_action_to_prop),
7437         (search_action_changed), (rb_podcast_source_constructor),
7438         (construct_query_from_selection), (impl_get_ui_actions),
7439         (impl_get_search_actions):
7440         * sources/rb-source.c: (rb_source_class_init),
7441         (rb_source_get_ui_actions), (default_get_search_actions),
7442         (rb_source_get_search_actions):
7443         * sources/rb-source.h:
7445         Add a search bar.  Fixes #328618
7447 2006-03-12  James Livingston  <jrl@ids.org.au>
7449         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
7450         * shell/main.c: (main): make --no-update not stat files checking for
7451         changes, instead of doing nothing. Fixes bug 125177.
7453 2006-03-12  James Livingston  <jrl@ids.org.au>
7455         * podcast/rb-podcast-manager.c:
7456         (rb_podcast_manager_thread_parse_feed):
7457         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
7458         * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
7459         having an invalid mime-type. Fixed bug 329813.
7461 2006-03-12  James Livingston  <jrl@ids.org.au>
7463         Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
7464         Finally lets us close bug 309609.
7466         * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
7467         (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
7468         0.10
7470         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
7471         inverted logic of the editable check.
7473 2006-03-12  James Livingston  <jrl@ids.org.au>
7475         Make API doc generation work again. Fixes bug 334276.
7477         * doc/reference/Makefile.am:
7478         * doc/reference/tmpl/rb-debug.sgml:
7479         * doc/reference/tmpl/rb-druid.sgml:
7480         * doc/reference/tmpl/rb-entry-view.sgml:
7481         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
7482         * doc/reference/tmpl/rb-metadata.sgml:
7483         * doc/reference/tmpl/rb-shell.sgml:
7484         * doc/reference/tmpl/rhythmbox-unused.sgml:
7485         * doc/reference/tmpl/rhythmdb.sgml:
7487 2006-03-12  James Livingston  <jrl@ids.org.au>
7489         * shell/rb-shell-clipboard.c:
7490         (rb_shell_clipboard_set_source_internal),
7491         (rb_shell_clipboard_sync): don't try to use the source's entry view if
7492         it doesn't have one. Fixes bug 331673.
7494         * sources/rb-source.c: (rb_source_class_init): provide a default
7495         have_url implementation that returns FALSE.
7497 2006-03-12  James Livingston  <jrl@ids.org.au>
7499         * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
7500         doing a distclean. Fixes bug 334221.
7503         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
7505         * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
7507 2006-03-11  James Livingston  <jrl@ids.org.au>
7509         * shell/rb-shell.c: (rb_shell_window_state_cb),
7510         (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
7511         update the window width/height when iconified. Stops the window
7512         changing size when it is restored from the tray, fixing bug 333824. 
7514 2006-03-11  James Livingston  <jrl@ids.org.au>
7516         Try to get cvs to actually add the necessary files for plugin support
7518 2006-03-11  James Livingston  <jrl@ids.org.au>
7520         Add a plugin framework, with basic support for Python plugins (based
7521         on gedit's). Closes bug 330523.
7523         * Makefile.am:
7524         * shell/Makefile.am:
7525         * configure.ac: necessary autofoo.
7527         * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
7529         * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
7530         * lib/rb-file-helpers.h:
7532         * data/glade/plugins/glade:
7533         * lib/rb-preferences.h:
7534         * plugins/*:
7535         * bindings/*: plugin framework
7537         * plugins/sample/*:
7538         * plugins/sample-python/*: sample plugins
7540         * plugins/audioscrobbler/*:
7541         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7542         (rb_audioscrobbler_set_property),
7543         (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
7544         submission into a plugin. shell/audioscrobbler.* should really be
7545         moved, but that sucks with cvs.
7547         * shell/rb-shell.h:
7548         * shell/rb-shell.c: (rb_shell_constructor),
7549         (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
7550         (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
7551         (rb_shell_quit): start and stop plugin framework.
7553 2006-03-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7555         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
7556         (rhythmdb_entry_delete):
7557         Emit entry-deleted signals when rhythmdb_commit is called, rather than
7558         immediately, so we can't get change notifications afterwards.  
7559         Fixes #331732.
7560         (rhythmdb_process_metadata_load): Add a commit after removing an
7561         entry so we can recreate it with a different type without getting
7562         confused.
7564 2006-03-11  James Livingston  <jrl@ids.org.au>
7566         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
7567         use the drive name for audio CDs, use "Unknown CD".
7569 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7571         patch by:  James Henstridge  <james@jamesh.id.au>
7573         * sources/rb-removable-media-source.c:
7574         (rb_removable_media_source_constructor):
7575         Get the device name from the GnomeVFSDrive if possible,
7576         since this is usually a more descriptive name.  Fixes #333080.
7578 2006-03-09  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7580         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
7582         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7583         Don't automatically download episodes when configured for manual
7584         updating.  Fixes #331564.
7586 2006-03-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7588         * rhythmdb/rhythmdb-property-model.c:
7589         (rhythmdb_property_model_iter_from_string):
7590         Return an iterator for the 'all' property when name == NULL,
7591         and don't write to *iter if iter == NULL.
7593 2006-03-06  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7595         * shell/rb-shell-player.c: (rb_shell_player_do_next):
7596         When switching to the play queue, still call _go_next on the normal
7597         play order, so self-emptying auto playlists ("play count = 0" etc.)
7598         don't restart once the queue is empty.
7600         * shell/rb-tray-icon.c:
7601         Change shortcut for 'show notifications' to 'o' so it doesn't clash
7602         with 'next'.
7604 2006-03-05  James Livingston  <jrl@ids.org.au>
7606         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7607         don't submit tracks which could not be played. Fixed bug 333013.
7609         * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
7610         tracks which could not be played.
7612 2006-03-05  James Livingston  <jrl@ids.org.au>
7614         Sync musicbrainz lookup code from Sound-Juicer cvs.
7616         * metadata/sj-metadata-musicbrainz.c:
7617         (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
7618         (get_offline_track_listing), (artist_and_title_from_title),
7619         (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
7620         (mb_list_albums), (mb_get_submit_url):
7621         * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
7622         * metadata/sj-metadata.h:
7623         * metadata/sj-structures.c: (track_details_free),
7624         (album_details_free):
7625         * metadata/sj-structures.h:
7627 2006-03-05  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7629         * lib/rb-debug.h:
7630         * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
7631         (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
7632         (rb_profiler_reset), (rb_profiler_free):
7633         Filter debug output by matching the file and function names against a
7634         match string.
7636         * shell/main.c: (main):
7637         Add -D command line option to specify the debug match string.
7639         * shell/rb-removable-media-manager.c:
7640         (rb_removable_media_manager_mount_volume):
7641         Fix some typos in debug output.
7643 2006-03-03  James Livingston  <jrl@ids.org.au>
7645         * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
7646         * shell/rb-shell.c: (rb_shell_load_uri):
7647         * sources/rb-generic-player-source.c: (visit_playlist_dirs):
7648         * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
7649         use the new "recurse" property from totem-plparser, if present. Stop
7650         RB hanging for new users who don't have a 'net connection. From bug
7651         331508.
7653 2006-03-02  Bastien Nocera  <hadess@hadess.net>
7655         * shell/rb-removable-media-manager.c:
7656         (rb_removable_media_manager_mount_volume):
7657         * sources/Makefile.am:
7658         * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
7659         Fix missing files on make dist (conditional files), only build the
7660         N770 support if there's HAL support, as we have no other ways of
7661         detecting it
7663 2006-03-03  James Livingston  <jrl@ids.org.au>
7665         * shell/rb-shell-clipboard.c:
7666         (rb_shell_clipboard_set_source_internal): really fix it this time.
7667         hopefully.
7669 2006-03-03  James Livingston  <jrl@ids.org.au>
7671         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
7672         with the idle function not being removed.
7674 2006-03-02  James Livingston  <jrl@ids.org.au>
7676         * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
7677         * widgets/rb-entry-view.h: add function for determining whether all
7678         entries are selected.
7680         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
7681         (rb_shell_clipboard_set_source_internal),
7682         (rb_shell_clipboard_finalize),
7683         (rb_shell_clipboard_idle_poll_deletions),
7684         (rb_shell_clipboard_entryview_changed_cb),
7685         (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
7686         removals, to update things.
7688         (rb_shell_clipboard_sync): update the Select All and Select None
7689         sensitivity, based on what is selected. Fixed bug 172220.
7691 2006-03-02  James Livingston  <jrl@ids.org.au>
7693         * widgets/rb-library-browser.c: (rebuild_child_model): save and
7694         restore the selections of later models. This means that selecting the
7695         artist for the selected album does not reset the album selection.
7697 2006-03-02  James Livingston  <jrl@ids.org.au>
7699         * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
7700         Stops it emitting critical warnings.
7702 2006-03-02  James Livingston  <jrl@ids.org.au>
7704         * lib/rb-file-helpers.c: (rb_uri_append_uri):
7705         * lib/rb-file-helpers.h: Add uri concatenation function for when the
7706         second fragment is already escaped.
7708         * sources/rb-generic-player-source.c:
7709         (rb_generic_player_source_class_init),
7710         (rb_generic_player_source_constructor), (impl_show_popup),
7711         (rb_generic_player_source_load_playlists),
7712         (rb_generic_player_source_transform_playlist_uri),
7713         (handle_playlist_entry_cb), (visit_playlist_dirs),
7714         (default_load_playlists), (default_transform_playlist_uri):
7715         * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
7716         the device. Allow subclasses to override the playlist loading, and
7717         (playlist uri)->(actual uri) mapping. A lot of devices which have
7718         playlists won't work right now, but people will see them and hopefully
7719         file bugs.
7721         * sources/rb-psp-source.c: (rb_psp_source_class_init),
7722         (rb_psp_source_create_playlists): Adapt the PSP for the above change
7723         
7724         * sources/Makefile.am:
7725         + sources/rb-nokia770-source.{c,h}:
7726         * shell/rb-removable-media-manager.c:
7727         (rb_removable_media_manager_mount_volume): Add support for reading
7728         playlists of Nokia 770s.
7730 2006-03-02  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7732         * data/glade/podcast-properties.glade:
7733         * podcast/rb-podcast-properties-dialog.c:
7734         (rb_podcast_properties_dialog_init),
7735         (rb_podcast_properties_dialog_update),
7736         (rb_podcast_properties_dialog_update_location),
7737         (rb_podcast_properties_dialog_update_download_location):
7738         Add 'download location' field showing the path to the downloaded copy.
7739         Fixes #330696.
7741 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7743         * configure.ac: simplify HAVE_HAL define
7745 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7747         * configure.ac:
7748         * lib/rb-file-helpers.c: (rb_uri_append_path):
7749         * lib/rb-file-helpers.h:
7750         * shell/rb-removable-media-manager.c:
7751         (rb_removable_media_manager_mount_volume):
7752         * sources/Makefile.am:
7753         * sources/rb-ipod-source.c:
7754         * sources/rb-psp-source.*:
7755         Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
7756         support, additional HAL < 0.5 support by yours truly (Closes: #332337)
7758 2006-03-02  James Livingston  <jrl@ids.org.au>
7760         * shell/rb-shell-player.c: (rb_shell_player_set_property),
7761         (rb_shell_player_play), (rb_shell_player_jump_to_current),
7762         (swap_playing_source), (rb_shell_player_playpause),
7763         (rb_shell_player_sync_buttons), (actually_set_playing_source),
7764         (rb_shell_player_set_playing_source_internal): check for the entry
7765         view being NULL before trying to use it. Lets us support sources which
7766         don't have an entry view. From bug 331673.
7768 2006-03-01  Bastien Nocera  <hadess@hadess.net>
7770         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
7771         use gnome_vfs_read_entire_file with a URI, not a local filename
7773 2006-03-01  James Livingston  <jrl@ids.org.au>
7775         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
7776         first-seen and last-seen when merging duplicate entries.
7778 2006-03-01  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7780         * widgets/rb-property-view.c: (rb_property_view_set_search_func):
7781         * widgets/rb-property-view.h:  New function, allowing custom 
7782         interactive search functions for property views.
7783         
7784         * sources/rb-podcast-source.c: 
7785         (feed_select_change_cb): Only do a new query when the selection
7786         actually changes.
7787         (rb_podcast_source_constructor),
7788         (rb_podcast_source_feed_title_search_func):
7789         Interactive search function for podcast feed titles.  Fixes #327451.
7791 2006-03-01  James Livingston  <jrl@ids.org.au>
7793         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
7794         the uri in the callback, since it causes symbols to not be escaped.
7795         Fixes bug 332976.
7797         * data/ui/rhythmbox-ui.xml:
7798         * sources/rb-import-errors-source.c:
7799         (rb_import_errors_source_class_init),
7800         (rb_import_errors_source_constructor), (impl_get_status),
7801         (impl_move_to_trash),
7802         (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
7803         import errors source
7804         
7805         * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
7806         (rb_entry_view_append_column): unescape the URI for display.
7808 2006-03-01  James Livingston  <jrl@ids.org.au>
7810         * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
7811         (rhythmdb_process_metadata_load): fix crashers when the vfs get info
7812         function fails.
7814 2006-02-28  Dennis Cranston  <dennis_cranston@yahoo.com>
7816         * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
7817         * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
7818         * sources/rb-play-queue-source.c:
7819         (rb_play_queue_source_constructor), (rb_play_queue_source_new),
7820         (rb_play_queue_source_update_count):  Use "Play Queue" instead
7821         of "Queued Songs".
7823         Fixes #331637.
7825 2006-03-01  James Livingston  <jrl@ids.org.au>
7827         * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
7828         Fixes bug 332913.
7830 2006-03-01  James Livingston  <jrl@ids.org.au>
7832         * daapsharing/rb-daap-mdns-browser-howl.c:
7833         (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
7834         * daapsharing/rb-daap-mdns-publisher-avahi.c:
7835         (rb_daap_mdns_publisher_class_init),
7836         (rb_daap_mdns_publisher_finalize):
7837         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
7838         * player/rb-recorder-gst.c: (rb_recorder_class_init),
7839         (rb_recorder_finalize):
7840         * rhythmdb/rhythmdb-query-model.c:
7841         (rhythmdb_query_model_constructor):
7842         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
7843         * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7844         * sources/rb-playlist-source-recorder.c:
7845         (rb_playlist_source_recorder_style_set),
7846         (rb_playlist_source_recorder_class_init),
7847         (rb_playlist_source_recorder_finalize):
7848         * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
7849         other classes in the same way, so they don't break when derived from.
7851 2006-03-01  James Livingston  <jrl@ids.org.au>
7853         * sources/rb-generic-player-source.c:
7854         (rb_generic_player_source_constructor): don't get the parent class in
7855         a dumb way, and it breaks when the class is derived from.
7857 2006-02-28  Abel Cheung  <maddog@linuxhall.org>
7859         * configure.ac: Added "zh_HK" to ALL_LINGUAS.
7861 2006-03-01  James Livingston  <jrl@ids.org.au>
7863         * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
7864         not work in glib 2.8 systems.
7866 2006-03-01  James Livingston  <jrl@ids.org.au>
7868         * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
7869         prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
7870         say it is crap.
7872         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
7873         (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
7874         podcasts on ion-local places
7876         * rhythmdb/gsequence.c: (g_sequence_node_new),
7877         (g_sequence_node_free): use gslice if we are building against glib
7878         2.10.
7880         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
7881         local files too, so it doesn't block.
7883 2006-02-28  James Livingston  <jrl@ids.org.au>
7885         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
7886         file:// prefix, instead of using gnome_vfs_uri_is_local, since that
7887         stats the file. Stops the UI blocking while stats are done.
7889 2006-02-28  James Livingston  <jrl@ids.org.au>
7891         * sources/rb-static-playlist-source.c:
7892         (rb_static_playlist_source_class_init),
7893         (rb_static_playlist_source_constructor), (impl_reset_filters),
7894         (impl_get_property_views), (impl_browser_toggled),
7895         (rb_static_playlist_source_do_query),
7896         (rb_static_playlist_source_browser_changed_cb): add browsers to static
7897         playlists. From bug 118862.
7899         * sources/rb-play-queue-source.c:
7900         (rb_play_queue_source_class_init): disable them for the play queue.
7902 2006-02-27  Dennis Cranston  <dennis_cranston@yahoo.com>
7904         * data/glade/library-prefs.glade:  Add a mnemonic.
7905         * sources/rb-library-source.c:
7906         (rb_library_source_location_button_clicked_cb):  Use title
7907         capitalization for window title.
7909 2006-02-28  James Livingston  <jrl@ids.org.au>
7911         * sources/rb-auto-playlist-source.c:
7912         (construct_query_from_selection): don't create a subquery for only one
7913         criteria, as it's a silly effifiency degredation.
7915 2006-02-28  James Livingston  <jrl@ids.org.au>
7917         * rhythmdb/rhythmdb.h:
7918         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7919         (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
7920         saved to disk
7922         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
7923         (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
7924         (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
7925         (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
7926         IGNORE (e.g. known video stream) create an entry of the Ignore type.
7927         This will make importing files quicker as we don't need to try files
7928         that we know are not going to be interesting - especially useful when
7929         using the library watching facility.
7931         Fixes bug 323179.
7933 2006-02-28  James Livingston  <jrl@ids.org.au>
7935         * shell/rb-shell.c: (rb_shell_constructor),
7936         (rb_shell_set_visibility): fix browser and source-list pane
7937         positioning, that I broke with the "remember visibility" patch.
7939 2006-02-27  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7941         * metadata/rb-metadata-dbus-service.c: (main):
7942         Change argument handling so you can use --debug with the --load and
7943         --can-save test modes.
7944         * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
7945         Use a separate GMainContext, not the default one.  Probably fixes
7946         #332344.
7948 2006-02-27  James Livingston  <jrl@ids.org.au>
7950         * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
7951         first starting up. Fixes bug 330342.
7953 2006-02-27  James Livingston  <jrl@ids.org.au>
7955         * sources/rb-sourcelist-model.c:
7956         (rb_sourcelist_model_set_dnd_targets):
7957         * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
7958         COPY action for draging sources and tracks, not MOVE as well. Stops
7959         Nautilus moving file away, and fixes bug 332488.
7961 2006-02-27  James Livingston  <jrl@ids.org.au>
7963         patch by: Gunnar Steinn Magnusson  <gsm@gunnarsteinn.com>
7965         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
7966         and Last Played metadata off iPods. Closes bug 324648.
7968 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7970         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
7971         Disable audioscrobbler when run with the --no-registration flag, since
7972         last.fm doesn't allow multiple concurrent clients per user.
7974 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7976         * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
7977         Rename renamable sources when F2 is pressed when the sourcelist has
7978         focus.  Fixes #330700.
7980 2006-02-26  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7982         * shell/rb-playlist-manager.c: (cleanup_edit_data),
7983         (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
7984         (rb_playlist_manager_cmd_edit_automatic_playlist):
7985         Fix various crashes when deleting auto playlists previously edited
7986         by disconnecting signal handlers when the query editor is closed or
7987         the playlist is deleted.
7989 2006-02-24  Jonathan Matthew  <jonathan@kaolin.wh9.net>
7991         * metadata/rb-metadata-gst.c:  Correct comment referring to the now
7992         removed load failure dialog, and actually use the friendly file type
7993         name in error messages.
7995 2006-02-24  James Livingston  <jrl@ids.org.au>
7997         patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
7999         * sources/rb-library-source.c:
8000         (rb_library_source_location_button_clicked_cb),
8001         (rb_library_source_preferences_sync),
8002         (rb_library_source_library_location_cb): convert the library URI to
8003         for display, and back again. Fixes bug 332356.
8005 2006-02-23  James Livingston  <jrl@ids.org.au>
8007         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8008         (rhythmdb_process_metadata_load), (monitor_subdirectory),
8009         (rhythmdb_sync_library_location): don't monitor files at all if
8010         watching is turned off. From bug 323096.
8012 2006-02-23  James Livingston  <jrl@ids.org.au>
8014         * data/rhythmbox.schemas:
8015         * lib/rb-preferences.h:
8016         * shell/rb-shell.c: (rb_shell_constructor),
8017         (rb_shell_set_visibility): remember main window visibility between
8018         sessions. Fixes bug 127320.
8020 2006-02-23  James Livingston  <jrl@ids.org.au>
8022         * data/glade/library-prefs.glade:
8023         * sources/rb-library-source.c: (impl_get_config_widget),
8024         (rb_library_source_location_button_clicked_cb),
8025         (rb_library_source_preferences_sync),
8026         (rb_library_source_library_location_cb),
8027         (rb_library_source_watch_toggled_cb): change the library-location
8028         widgets from the file-chooser drop menu to a text entry and Browse
8029         button. This is needed to prevent the location from chaning if the
8030         directory cannot be found. Fixes bug 328414.
8032 2006-02-23  James Livingston  <jrl@ids.org.au>
8034         * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8035         item. Fixes bug 329042.
8037 2006-02-23  James Livingston  <jrl@ids.org.au>
8039         patch by:  Alex Lancaster  <alexl@users.sourceforge.net>
8041         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8042         comma in some podcast feeds. Fixes bug 332194.
8044 2006-02-23  James Livingston  <jrl@ids.org.au>
8046         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8047         lower priority.
8049         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8050         the internal audio cd URIs from "cdda://device:track" to
8051         "cdda://track#device" as it makes processing much easier.
8053         * shell/rb-shell-player.c: (rb_shell_player_open_location):
8054         * player/rb-player-gst.c: don't have the shell close the player
8055         between songs, as doing that should be backend-specific. Make the
8056         gstreamer backend close before starting a new track, unless the old
8057         and new ones are both tracks on the same audio cd. Just seek in that
8058         case.
8060 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8062         * doc/reference/rhythmbox.types: Fix doc build a bit more.
8064 2006-02-23  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8066         * configure.ac: Enable more warnings in my stupid setup too.
8067         * shell/rb-shell.c: Fix compile errors from last commit.  Fixes
8068         #332210.
8070 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8072         * sources/rb-missing-files-source.h,
8073         * sources/rb-missing-files-source.c,
8074         * sources/rb-import-errors-source.h,
8075         * sources/rb-import-errors-source.c:
8076         Add library meta-sources, showing missing files and import errors.
8077         Fixes #167763, #142322.
8079         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8080         * sources/rb-sourcelist-model.h:
8081         * sources/rb-sourcelist.c: (rb_sourcelist_append),
8082         (match_source_to_iter), (rb_sourcelist_source_to_iter),
8083         (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8084         (visibility_notify_cb):
8085         Store source visibility in the sourcelist model, so we can determine
8086         child source counts correctly and get the sourcelist expander column
8087         right.
8088         
8089         * widgets/rb-entry-view.h:
8090         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8091         (rb_entry_view_append_column), (set_column_visibility):
8092         Allow the creator of the entry view to specify which columns are
8093         always visible.
8095         * sources/rb-source.h:
8096         * sources/rb-source.c: (_autohide_update_visibility),
8097         (_rb_autohide_source_row_deleted_cb),
8098         (_rb_autohide_source_row_inserted_cb),
8099         (_rb_source_hide_when_empty):
8100         Allow sources to automatically hide themselves when empty.
8101         
8102         * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8103         * sources/rb-library-source.c: (rb_library_source_constructor):
8104         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8105         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8106         Explicitly specify which columns are always visible.
8107         
8108         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8109         (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8110         Remove load error signal handling and load failure dialog.
8111         Create missing files and import errors sources for the library.
8113         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8114         (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8115         Create DB entries for import errors rather than emitting the 'load
8116         error' signal; mark loaded entries visible.
8117         (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8118         (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8119         (rhythmdb_prop_get_type): Store string form of last seen time for
8120         hidden entries, since it's used in the missing files source.
8121         (rhythmdb_entry_import_error_get_type): 
8122         Add entry type for import errors.
8123         (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8124         (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8125         (rhythmdb_entry_move_to_trash_set_error),
8126         (rhythmdb_entry_move_to_trash):  
8127         Correct spelling, add missing rhythmdb_commit.
8128         * rhythmdb/rhythmdb.h:  
8129         Add import error entry type and last seen string property.
8130         * rhythmdb/rhythmdb-private.h:  Add string form of last seen time.
8131         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8132         (save_entry):  Ignore string form of 'last seen' property.
8134         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8135         Don't try to play hidden entries or import error entries.
8137         * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8138         * sources/Makefile.am: Add meta-source files
8139         * widgets/Makefile.am: Remove load failure dialog files
8141 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8143         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8144         * help/C/rhythmbox.xml:  add a 'getting started' section, and fix a
8145         few bits and pieces.
8147 2006-02-22  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8149         * metadata/test-metadata.c: (load_metadata_cb):
8150         Fix compile warning for ignoring return value from getcwd, #332064.
8152 2006-02-21  James Livingston  <jrl@ids.org.au>
8154         * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8155         (edit_auto_playlist_deleted_cb),
8156         (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8157         playlist editor non-modal. Fixes bug 320030.
8159 2006-02-21  James Livingston  <jrl@ids.org.au>
8161         * shell/rb-shell.c: (rb_shell_constructor):
8162         * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8163         (rb_header_set_show_artist_album):
8164         * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8165         (rb_song_display_box_sync): make the queue sidebar and song display
8166         not get affected by gtk_widget_show_all. Fixes bug 332001.
8168 2006-02-21  James Livingston  <jrl@ids.org.au>
8170         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
8172         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8173         feeds which use timezone names instead of offsets. Doesn't actually
8174         parse the timezone name since they are not standardised. Fixes bug
8175         331691.
8177 2006-02-21  James Livingston  <jrl@ids.org.au>
8179         * help/C/figures/rb-notification-area.png:
8180         * help/C/figures/rb-sidebar.png:
8181         * help/C/quick-reference.xml: remove obsolete files from CVS.
8183         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8184         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8185         (rhythmdb_query_free), (rhythmdb_query_serialize),
8186         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8187         * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8189         * widgets/rb-query-creator-properties.c: add prefix and suffix
8190         (escapedStringCriteriaGetWidgetData): use better escaping, so it
8191         doesn't escape the ':' separator in uris.
8193 2006-02-21  James Livingston  <jrl@ids.org.au>
8195         * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8196         on startup.
8198 2006-02-21  James Livingston  <jrl@ids.org.au>
8200         * NEWS: update with recent changes
8202 2006-02-21  James Livingston  <jrl@ids.org.au>
8204         * shell/rb-shell.c: (rb_shell_constructor),
8205         (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8206         * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8207         (rb_druid_browse_clicked_cb), (do_response):
8208         * widgets/rb-druid.h: Make running the druid not block RBShell
8209         starting up. This is required so that bonobo registration doesn't time
8210         out. Fixed bug 318766.
8212 2006-02-21  James Livingston  <jrl@ids.org.au>
8214         * rhythmdb/rhythmdb-property-model.c:
8215         (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8216         hash table after using it, not before. Fixed bug 331922.
8218 2006-02-21  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8220         * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8221         (rb_shell_view_queue_as_sidebar_changed_cb):
8222         When playing from the queue, only attempt to highlight the queue
8223         source in the source list if it's actually visible there.  Otherwise,
8224         leave the preempted source highlighted.  Mostly fixes #330819.
8226 2006-02-20  James Livingston  <jrl@ids.org.au>
8228         * rhythmdb/rhythmdb-property-model.c:
8229         (rhythmdb_property_model_row_inserted_cb),
8230         (rhythmdb_property_model_prop_changed_cb),
8231         (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8232         store the roperty value in the entry-mapping table, so that receiving
8233         the remove signal from a query model before we get notified of a
8234         change doesn't cause a crash. Fixes bug 331770.
8236 2006-02-20  James Livingston  <jrl@ids.org.au>
8238         * data/ui/rhythmbox-ui.xml:
8239         * sources/rb-play-queue-source.c:
8240         (rb_play_queue_source_class_init),
8241         (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8242         playlist things in the queue popup source. From 330490.
8244         * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8245         previous commit
8247 2006-02-20  James Livingston  <jrl@ids.org.au>
8249         * widgets/rb-song-info.c: (rb_song_info_response_cb),
8250         (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8251         attempt to sync data for non-editable entries when using
8252         next/previous. Don't write our Year if it wasn't changed. Fixes bug
8253         331762.
8255 2006-02-19  Luca Ferretti  <elle.uca@libero.it>
8257         * .cvsignore:
8258         * Makefile.am:
8259         * autogen.sh:
8260         * configure.ac:
8261         * help/.cvsignore:
8262         * help/Makefile.am: ported to gnome-doc-utils
8263         * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8264         * help/ChangeLog: added, for translators
8265         * help/C/rhytmbox-C.omf: removed, no longer used
8266         Know issue: figures are installed, but some are not showed; manual
8267         description added, but not showed in Yelp while browsing. I'll
8268         investigate, maybe are needed some little changes to
8269         help/C/rhythmbox.xml.
8271 2006-02-20  James Livingston  <jrl@ids.org.au>
8273         * data/ui/rhythmbox-ui.xml:
8274         * help/C/figures/rb-adv.png:
8275         * help/C/figures/rb-asst-finish.png:
8276         * help/C/figures/rb-asst-library.png:
8277         * help/C/figures/rb-asst-start.png:
8278         * help/C/figures/rb-basic.png:
8279         * help/C/figures/rb-browser.png:
8280         * help/C/figures/rb-context-menu.png:
8281         * help/C/figures/rb-empty.png:
8282         * help/C/figures/rb-full-play.png:
8283         * help/C/figures/rb-group-auto.png:
8284         * help/C/figures/rb-group-create.png:
8285         * help/C/figures/rb-group.png:
8286         * help/C/figures/rb-imported.png:
8287         * help/C/figures/rb-iradio-add.png:
8288         * help/C/figures/rb-iradio.png:
8289         * help/C/figures/rb-nextprev.png:
8290         * help/C/figures/rb-nobrowse-play.png:
8291         * help/C/figures/rb-notification-area-menu.png:
8292         * help/C/figures/rb-player.png:
8293         * help/C/figures/rb-prefs-general.png:
8294         * help/C/figures/rb-prefs-ipod.png:
8295         * help/C/figures/rb-prefs-library.png:
8296         * help/C/figures/rb-prefs.png:
8297         * help/C/figures/rb-repeat.png:
8298         * help/C/figures/rb-search.png:
8299         * help/C/figures/rb-shuffle.png:
8300         * help/C/figures/rb-stats.png:
8301         * help/C/figures/rb-toolbar-editor.png:
8302         * help/C/figures/rb-volume-mute.png:
8303         * help/C/figures/rhythmbox-group.png:
8304         * help/C/figures/rhythmbox-tray-icon.png:
8305         * help/C/user-guide.xml: remove old stuff from cvs
8307 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8309         * metadata/rb-metadata-dbus-client.c: 
8310         * metadata/rb-metadata-dbus-service.c:
8311         * metadata/rb-metadata-dbus.c:
8312         * metadata/rb-metadata-dbus.h:
8313         New files, adding an external service for reading and writing
8314         metadata, and an implementation of the RBMetaData interface that uses
8315         dbus to communicate with it.
8316         
8317         * metadata/rb-metadata.h,
8318         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8319         (rb_metadata_get_field_name): Put metadata details in a static array
8320         instead of using a hash table, and add a field for language code (not
8321         used for anything)
8322         * metadata/rb-metadata-gst.c: Updates for changes in
8323         rb-metadata-common.c, fix signal handler closure leak for the typefind
8324         element's have-type signal, and add XML to the list of types we ignore.
8325         * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8326         Update for changes to rb_metadata_get_field_type
8327         (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8328         rhythmdb_commit_internal do that for non-local files.  Saves us a stat
8329         here and there.
8330         
8331         * configure.ac: Add --enable-metadata-helper option (not enabled by
8332         default) to use the external metadata service
8333         * metadata/Makefile.am: Add new files
8334         * metadata/test-metadata.c:  Test program for the metadata service
8336         Fixes #329597. 
8338 2006-02-19  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8340         * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8341         * sources/rb-podcast-source.c: (impl_get_ui_actions),
8342         (rb_podcast_source_cmd_new_podcast):
8343         Move 'new podcast' action to the podcast source, and add it to the
8344         toolbar.  Fixes #331562.
8346 2006-02-19  James Livingston  <jrl@ids.org.au>
8348         * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8349         menus, and away from move-to-trash. Fixes bug 331013.
8351 2006-02-19  James Livingston  <jrl@ids.org.au>
8353         * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8354         when deleting last entry. Fixes bug 331712.
8356 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8358         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8359         (rb_entry_view_button_press_cb):
8360         * widgets/rb-entry-view.h: Emit show-popup when right clicked
8361         anywhere, and include a flag indicating whether the click was over an
8362         entry or not.
8363         
8364         * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8365         (rb_playlist_source_songs_show_popup_cb):
8366         * sources/rb-playlist-source.h:
8367         Add the 'over entry' flag to the class show popup method, and in the
8368         default handler, ignore right clicks when not over an entry.
8369         
8370         * sources/rb-iradio-source.c:
8371         (rb_iradio_source_songs_show_popup_cb):
8372         * sources/rb-library-source.c:
8373         (rb_library_source_songs_show_popup_cb):
8374         * sources/rb-podcast-source.c:
8375         (rb_podcast_source_songs_show_popup_cb):
8376         Show the source list popup menu when right clicked while not over an
8377         entry.
8379         * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
8380         For the queue sidebar, always display the popup so the 'clear queue'
8381         action is available regardless of where you click.  For the queue
8382         source, only display the popup when right clicked over an entry.
8383         Fixes #331392.
8385 2006-02-19  James Livingston  <jrl@ids.org.au>
8387         * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
8388         * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
8389         entry view, when we're not even using it
8391         * rhythmdb/rhythmdb-property-model.c:
8392         (rhythmdb_property_model_row_inserted_cb): use the query-model utility
8393         function, rather than a copy of the code.
8395         * shell/rb-playlist-manager.c:
8396         (rb_playlist_manager_playlist_row_inserted_cb),
8397         (rb_playlist_manager_set_source_internal),
8398         (rb_playlist_manager_playlist_entries_changed): use the query-model
8399         directly, rather than the source's entry view.
8401         * shell/rb-source-header.c: don't use the entry view, just select the
8402         source widget.
8404 2006-02-18  James Livingston  <jrl@ids.org.au>
8406         update by:  Baptiste Mille-Mathias  <bmm80@free.fr>
8408         * help/C/figures/rb-iradio-main.png:
8409         * help/C/figures/rb-notification-area-menu.png:
8410         * help/C/figures/rb-notification-window.png:
8411         * help/C/figures/rb-notification-zone.png:
8412         * help/C/figures/rb-podcast-main.png:
8413         * help/C/figures/rb-statusbar.png:
8414         * help/C/figures/rb-toolbar-prevplaynext.png:
8415         * help/C/figures/rb-toolbar-repeat.png:
8416         * help/C/figures/rb-toolbar-shuffle.png:
8417         * help/C/figures/rb-toolbar.png:
8418         * help/C/figures/rb-volume-changer.png:
8419         * help/C/figures/rb-window-small.png:
8420         * help/C/figures/rb-window.png:
8421         * help/C/rhythmbox.xml: Update user guide with some of the changes
8422         that have occurred after 0.8.8. From bug 314001.
8424 2006-02-18  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8426         * rhythmdb/rhythmdb-query-results.h,
8427           rhythmdb/rhythmdb-query-results.c:
8428         New interface for objects that accept query results from RhythmDB.
8430         * rhythmdb/rhythmdb-query-model.c:
8431         (rhythmdb_query_model_query_results_init),
8432         (rhythmdb_query_model_set_query),
8433         (rhythmdb_query_model_add_results),
8434         (rhythmdb_query_model_query_complete):
8435         * rhythmdb/rhythmdb-query-model.h:
8436         Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
8438         * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
8439         (rhythmdb_tree_do_full_query):
8440         * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
8441         (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
8442         (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
8443         (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
8444         * rhythmdb/rhythmdb.h:
8445         Pass query results through the RhythmDBQueryResults interface, rather
8446         than directly to a RhythmDBQueryModel.
8448         * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
8449         (rb_podcast_manager_db_entry_deleted_cb):
8450         * sources/rb-auto-playlist-source.c:
8451         (rb_auto_playlist_source_do_query),
8452         (rb_auto_playlist_source_set_query):
8453         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8454         * sources/rb-library-source.c: (rb_library_source_constructor),
8455         (rb_library_source_do_query):
8456         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8457         (rb_podcast_source_do_query):
8458         * rhythmdb/rhythmdb-property-model.c:
8459         (rhythmdb_property_model_drag_data_get):
8460         Cast the query model to RhythmDBQueryResults when passing to one of
8461         the RhythmDB query methods.
8463         * rhythmdb/Makefile.am: Add new files.
8465 2006-02-18  James Livingston  <jrl@ids.org.au>
8467         * data/ui/rhythmbox-ui.xml:
8468         * shell/rb-playlist-manager.c:
8469         (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
8470         "queue playlist" item to source context menu. Fixes bug 330490.
8472 2006-02-18  James Livingston  <jrl@ids.org.au>
8474         * data/glade/general-prefs.glade:
8475         * shell/rb-shell-preferences.c:
8476         (rb_shell_preferences_column_check_changed_cb),
8477         (rb_shell_preferences_sync):
8478         * sources/rb-library-source.c: (rb_library_source_constructor):
8479         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8480         * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
8481         (rb_entry_view_append_column): Add a "quality" colume which indicates
8482         the bitrate of media. Part of bug 167659.
8484 2006-02-18  James Livingston  <jrl@ids.org.au>
8486         * shell/rb-play-order.c: (do_next_idle_cb),
8487         (default_playing_entry_removed): move to next track when playing entry
8488         is deleted. Fixes bug 131150.
8490         * shell/rb-shell-player.h: remove ancient stuff
8492 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8494         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal) 
8495         (rb_shell_clipboard_set_property): 
8496         * shell/rb-shell.c (rb_shell_sync_party_mode):
8497         Trigger a resync of the clipboard properties when changing party mode.
8499 2006-02-17  William Jon McCann  <mccann@jhu.edu>
8501         * sources/rb-static-playlist-source.c: Fix includes.
8503         * sources/rb-source.c (rb_source_can_rename) 
8504         (rb_source_can_delete, rb_source_can_move_to_trash):
8505         Return FALSE if in party mode.
8507         * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
8508         Replace fullscreen with party mode.
8509         (rb_shell_window_delete_cb): Don't quit if in party mode.
8510         (rb_shell_view_party_mode_changed_cb): Setup party mode.
8511         (window_state_event_cb): Try to deiconify shell when iconified
8512         in party mode.
8513         (rb_shell_sync_party_mode): Sync party mode properties.
8514         Currently, that means [de]sensitizing close, quit, and small-display,
8515         going into fullscreen mode with window stuck and kept above, and
8516         toggling queue-only for the shell player.
8517         (rb_shell_sync_smalldisplay): Sensitive party mode.
8518         (rb_shell_get_party_mode): Get party mode setting.
8520         * shell/rb-shell-player.c (rb_shell_player_class_init) 
8521         (rb_shell_player_set_property, rb_shell_player_get_property):
8522         Add queue-only property.
8523         (rb_shell_player_entry_activated_cb): If in party mode
8524         only queue the entry on activation.
8526         * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
8527         Break out from set_properties.  Desensitize some actions when
8528         in party mode.
8529         (rb_playlist_manager_set_property): Break out set_source_internal.
8531         * data/rhythmbox.schemas: Remove fullscreen mode.
8533         * data/ui/rhythmbox-ui.xml: Replace fullscreen
8534         action with party mode.
8536         Partial fix for #323933
8538 2006-02-17  James Livingston  <jrl@ids.org.au>
8540         * configure.ac:
8541         * shell/rb-removable-media-manager.c:
8542         (get_nautilus_burn_drive_for_path),
8543         (rb_removable_media_manager_playing_uri_changed_cb): only use
8544         nautilus_burn_drive_new_by_path when it exists, fall back to iterating
8545         over the list when it doesn't.
8547 2006-02-17  James Livingston  <jrl@ids.org.au>
8549         * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
8550         (rb_iradio_source_first_time_changed): Only do the import on the
8551         first change from FALSE to TRUE.
8553         * sources/rb-library-source.c:
8554         (rb_library_source_preferences_sync),
8555         (rb_library_source_library_location_cb): set the first-run done flag
8556         if the user presses close and then sets their watches library
8557         location. Fixes bug 325997.
8559 2006-02-17  James Livingston  <jrl@ids.org.au>
8561         * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
8562         removable media manager gobject properties
8564         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
8565         (split_drive_from_cdda_uri),
8566         (rb_removable_media_manager_playing_uri_changed_cb),
8567         (rb_removable_media_manager_load_media): stop polling a cd drive
8568         when we are playing from it. Part of bug 330716.
8570 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8572         * rhythmdb/rhythmdb-query-model.c:
8573         (rhythmdb_query_model_set_property),
8574         (rhythmdb_query_model_finalize),
8575         (rhythmdb_query_model_base_entry_removed):
8576         Propagate entry removal from base models out to attached property
8577         models.  Fixes the rest of #331165.
8579 2006-02-17  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8581         * rhythmdb/rhythmdb-property-model.c:
8582         (rhythmdb_property_model_row_inserted_cb),
8583         (rhythmdb_property_model_prop_changed_cb),
8584         (rhythmdb_property_model_insert):
8585         Don't store NULL as a hash table value if we want to use
8586         g_hash_table_lookup to check if a key exists, and get the checks for
8587         how and whether to handle entry changes the right way around.
8588         Fixes #331211 and half of #331165.
8590 2006-02-16  James Livingston  <jrl@ids.org.au>
8592         * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
8593         the audio cd's TOC in a separate thread, so it doesn't block the UI.
8594         Fixes bug 329942.
8596 2006-02-16  James Livingston  <jrl@ids.org.au>
8598         * widgets/rb-library-browser.c: (reset_view_cb): make View All
8599         actually reset the browsers.
8601 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8603         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8604         Escape the strings we pass into libnotify so we don't get blank
8605         notifications when the song name contains '&' etc.  Fixes #330784.
8607 2006-02-16  James Livingston  <jrl@ids.org.au>
8609         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8610         enable "View All" when there is only a search box and no browser.
8611         Fixes bug 331395.
8613 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8615         * data/ui/rhythmbox-ui.xml:  Add 'clear queue' to the sidebar queue
8616         popup menu, which I forgot to commit with the patch for bug #330014.
8618 2006-02-16  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8620         * shell/rb-shell-player.c: (open_location_thread):
8621         Sync button and entry view state once we've started the player, so the
8622         entry view gets into the playing state for iradio.
8624 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8626         * shell/rb-shell-player.c: (open_location_thread):
8627         Take GDK lock before doing anything UI-related.
8629 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8631         * shell/rb-shell.c: Move 'new iradio station' action to
8632         iradio source.
8634         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8635         (rb_iradio_source_init), (rb_iradio_source_finalize),
8636         (rb_iradio_source_constructor):
8637         Remove some unused stuff.
8639         (guess_uri_scheme), (rb_iradio_source_add_station),
8640         (rb_iradio_source_add_from_playlist),
8641         (impl_get_ui_actions), (new_station_location_added),
8642         (rb_iradio_source_cmd_new_station):  Handle 'new iradio station'
8643         action, include it in the toolbar, and make sure the URI we add has a
8644         scheme.  Fixes #327059, more or less.
8646 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8648         * sources/rb-play-queue-source.c:
8649         (rb_play_queue_source_class_init),
8650         (rb_play_queue_source_constructor),
8651         (rb_play_queue_source_update_count),
8652         (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
8653         Add a toolbar button to clear the play queue, and make it sensitive
8654         only when there are entries in the queue.  Fixes #330014.
8656         * sources/rb-source.c: (_rb_source_register_action_group):
8657         * sources/rb-source.h:  Add helper function to register an
8658         action group for a source.
8660         * sources/rb-library-source.c: (rb_library_source_constructor):
8661         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8662         (register_action_group):  Use _rb_source_register_action_group.
8664 2006-02-15  James Livingston  <jrl@ids.org.au>
8666         * widgets/rb-song-info.c: (rb_song_info_add_completion),
8667         (rb_song_info_constructor), (rb_song_info_set_property): make
8668         tag-editing completion work for albums too.
8670 2006-02-15  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8672         * widgets/rb-query-creator.c: (rb_query_creator_load_query):
8673         Check the 'limit' checkbox for time-limited playlists.
8675 2006-02-14  Sven Herzberg  <herzi@gnome-de.org>
8677         * widgets/rb-song-info.c: Prove text-completion when editing title,
8678         artist or album
8680 2006-02-14  James Livingston  <jrl@ids.org.au>
8682         * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
8683         tray icon popup menu. Fixes bug 331026.
8685 2006-02-14  James Livingston  <jrl@ids.org.au>
8687         * data/iradio-initial.pls: update the Virgin Radio stations to use the
8688         Ogg Vorbis streams, instead of the MP3 ones.
8690 2006-02-14  James Livingston  <jrl@ids.org.au>
8692         * rhythmdb/rhythmdb-property-model.c:
8693         (rhythmdb_property_model_class_init),
8694         (rhythmdb_property_model_drag_data_get):
8695         * rhythmdb/rhythmdb-query-model.c:
8696         (rhythmdb_query_model_title_sort_func):
8697         * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
8698         LOCATION as the key. Fixes bug 330601.
8700 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8702         * sources/rb-playlist-source.c: (playlist_iter_func):
8703         Make it compile with older versions of totem-plparser too.      
8705 2006-02-13  James Livingston  <jrl@ids.org.au>
8707         * rhythmdb/rhythmdb.h:
8708         * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
8709         structure private, since things should use the accessor functions
8710         rather than manipulating it directly - Only RhythmDB and the
8711         implementation classes should access it directly. Part of the RhythmDB
8712         cleanup of bug 330226.
8714         * iradio/rb-station-properties-dialog.c:
8715         (rb_station_properties_dialog_update_title),
8716         (rb_station_properties_dialog_update_title_entry),
8717         (rb_station_properties_dialog_update_genre),
8718         (rb_station_properties_dialog_update_location),
8719         (rb_station_properties_dialog_update_play_count),
8720         (rb_station_properties_dialog_update_bitrate),
8721         (rb_station_properties_dialog_update_last_played),
8722         (rb_station_properties_dialog_update_rating),
8723         (rb_station_properties_dialog_update_playback_error),
8724         (rb_station_properties_dialog_sync_entries):
8725         * podcast/rb-feed-podcast-properties-dialog.c:
8726         (rb_feed_podcast_properties_dialog_update_title),
8727         (rb_feed_podcast_properties_dialog_update_title_label),
8728         (rb_feed_podcast_properties_dialog_update_author),
8729         (rb_feed_podcast_properties_dialog_update_location),
8730         (rb_feed_podcast_properties_dialog_update_copyright),
8731         (rb_feed_podcast_properties_dialog_update_language),
8732         (rb_feed_podcast_properties_dialog_update_summary):
8733         * podcast/rb-podcast-manager.c:
8734         (rb_podcast_manager_entry_downloaded),
8735         (rb_podcast_manager_db_entry_added_cb),
8736         (download_progress_update_cb),
8737         (rb_podcast_manager_db_entry_deleted_cb):
8738         * podcast/rb-podcast-properties-dialog.c:
8739         (rb_podcast_properties_dialog_update_title),
8740         (rb_podcast_properties_dialog_update_title_label),
8741         (rb_podcast_properties_dialog_update_feed),
8742         (rb_podcast_properties_dialog_update_location),
8743         (rb_podcast_properties_dialog_update_play_count),
8744         (rb_podcast_properties_dialog_update_bitrate),
8745         (rb_podcast_properties_dialog_update_last_played),
8746         (rb_podcast_properties_dialog_update_rating),
8747         (rb_podcast_properties_dialog_update_date),
8748         (rb_podcast_properties_dialog_update_description):
8749         * rhythmdb/rhythmdb-query-model.c:
8750         (rhythmdb_query_model_entry_changed_cb),
8751         (rhythmdb_query_model_remove_from_main_list),
8752         (rhythmdb_query_model_update_limited_entries),
8753         (rhythmdb_query_model_drag_data_get),
8754         (rhythmdb_query_model_album_sort_func):
8755         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8756         (save_entry):
8757         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
8758         (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
8759         (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
8760         (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
8761         (rhythmdb_entry_get_double):
8762         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
8763         * shell/rb-play-order-random-by-age-and-rating.c:
8764         (rb_random_by_age_and_rating_get_entry_weight):
8765         * shell/rb-play-order-random-by-age.c:
8766         (rb_random_by_age_get_entry_weight):
8767         * shell/rb-play-order-random-by-rating.c:
8768         (rb_random_by_rating_get_entry_weight):
8769         * shell/rb-playlist-manager.c: (create_name_from_selection_data):
8770         * shell/rb-shell-player.c: (rb_shell_player_open_entry),
8771         (rb_shell_player_set_playing_entry),
8772         (rb_shell_player_sync_replaygain),
8773         (rb_shell_player_sync_with_source),
8774         (rb_shell_player_get_playing_song_duration), (info_available_cb):
8775         * sources/rb-playlist-source.c: (playlist_iter_func),
8776         (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
8777         (rb_playlist_source_entry_added_cb):
8778         * sources/rb-podcast-source.c:
8779         (rb_podcast_source_post_status_cell_data_func):
8780         * sources/rb-source.c: (rb_source_update_play_statistics):
8781         * sources/rb-sourcelist-model.c:
8782         (rb_sourcelist_model_drag_data_get):
8783         * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
8784         (rb_static_playlist_source_add_entry),
8785         (rb_static_playlist_source_remove_entry):
8786         * widgets/rb-entry-view.c: (type_ahead_search_func),
8787         (rb_entry_view_playing_cell_data_func),
8788         (rb_entry_view_rating_cell_data_func),
8789         (rb_entry_view_pixbuf_clicked_cb):
8790         * widgets/rb-header.c: (rb_header_get_duration):
8791         * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
8792         (rb_song_info_populate_dialog),
8793         (rb_song_info_update_playback_error),
8794         (rb_song_info_update_bitrate), (rb_song_info_update_duration),
8795         (rb_song_info_update_location), (rb_song_info_update_play_count),
8796         (rb_song_info_update_last_played), (rb_song_info_update_rating),
8797         (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
8798         (rb_song_info_sync_entry_single): fix the huge number of times that
8799         the internals got accessed directly.
8801 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8803         * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
8804         trash' are grouped together.
8805         * shell/main.c: (main): Pass no-registration flag in to RBShell
8806         constructor, rather than mysteriously always passing TRUE.
8807         * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
8808         Set dirty flag when entries are removed from the model, so the play
8809         queue is marked dirty appropriately.
8810         * AUTHORS: update my email address
8812 2006-02-13  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8814         Patch by: Baptiste Mille-Mathias  <bmm80@free.fr>
8816         * widgets/rb-druid.c: (path_dialog_response_cb):
8817         If the URI is local, don't display the 'file://' prefix.  
8818         Fixes #330919.
8820 2006-02-12  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8822         * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8823         Attach the notification to the tray icon widget, so libnotify
8824         positions it less badly.  Fixes #330876.
8826 2006-02-11  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8828         * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
8829         Reverse the selection list before returning it, so we get it in the
8830         right order.  Fixes #330283 and some other weirdness.
8832 2006-02-11  James Livingston  <jrl@ids.org.au>
8834         * shell/rb-shell.c: (rb_shell_constructor),
8835         (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
8836         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8837         make small-mode and fullscreen mutually exclusive, since they don't
8838         work together
8840         * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
8841         Mode.
8843 2006-02-10  James Livingston  <jrl@ids.org.au>
8845         * player/rb-player-gst.c: turn paranoia of when playing audio cds,
8846         since it can cause it to be slower than real-time. Should fix bug
8847         322270.
8849 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8851         * rhythmdb/rhythmdb-query-model.c:
8852         (rhythmdb_query_model_set_property):
8853         Think just a little bit harder about that last commit.
8855 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8857         * rhythmdb/rhythmdb-query-model.c:
8858         (rhythmdb_query_model_set_property):
8859         Get the check for hidden entries the right way around.
8860         Fixes #330527, #330514.
8862         (rhythmdb_query_model_set_sort_order):
8863         Ignore no-op sort order changes, so we don't get critical
8864         messages when selecting 'all' in auto playlist browsers.
8866 2006-02-10  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8868         Patch by: Christophe Fergeau  <teuf@gnome.org>
8870         * sources/rb-removable-media-source.c:
8871         (rb_removable_media_source_init),
8872         (rb_removable_media_source_constructor):
8873         Move icon setup code to the constructor, as the volume property
8874         haven't been set yet when _init is called.
8876 2006-02-09  William Jon McCann  <mccann@jhu.edu>
8878         * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
8879         Make the source pixbuf a dynamic property.
8881         * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize) 
8882         (rb_source_set_pixbuf, rb_source_set_property) 
8883         (rb_source_get_property): Add icon property.
8885         * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init) 
8886         (rb_auto_playlist_source_init):
8887         * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init) 
8888         (rb_static_playlist_source_init):
8889         * sources/rb-removable-media-source.c (rb_removable_media_source_class_init) 
8890         (rb_removable_media_source_init): 
8891         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
8892         (rb_podcast_source_init): 
8893         * sources/rb-library-source.c (rb_library_source_class_init) 
8894         (rb_library_source_set_property, rb_library_source_get_property): 
8895         * sources/rb-iradio-source.c (rb_iradio_source_class_init) 
8896         (rb_iradio_source_init): Remove impl_get_pixbuf and
8897         set icon property on source base class.
8899         * sources/rb-daap-source.c (rb_daap_get_icon): Get
8900         a different icon for when the share is password protected
8901         and locked.
8902         (rb_daap_source_new): Set icon property.
8903         (composite_icons): Composite an emblem on a pixbuf.
8904         (create_pixbufs): Load global pixbufs.
8905         (destroy_pixbufs): unref global pixbufs.
8906         (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
8907         (connection_auth_cb, connection_connected_cb) 
8908         (connection_disconnected_cb): Update icon when connection
8909         status changes.
8910         (rb_daap_source_activate): Connect signals.
8912         * daapsharing/rb-daap-share.c (name_collision_cb): Run
8913         dialog with parent.
8915         * daapsharing/rb-daap-marshal.list: Add new signal.
8917         * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run) 
8918         (rb_daap_collision_dialog_new_run): Set parent of dialog.
8920         * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
8921         Add authenticate, connected, and disconnected signals.
8922         (connection_get_password): emit authenticate signal instead
8923         of running dialog directly.
8924         (connection_connected, connection_disconnected): Emit signals.
8925         (handle_login): Emit connected signal.
8926         (handle_logout): Emit disconnected signal.
8927         (rb_daap_connection_do_something): Fix leak.
8929         Fixes #330291
8931 2006-02-09  James Livingston  <jrl@ids.org.au>
8933         * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
8934         entries from the base model if we don't have show-hidden set. Fixes
8935         bug 330514.
8937 2006-02-08  William Jon McCann  <mccann@jhu.edu>
8939         * daapsharing/rb-daap-share.c (message_get_session_id):
8940         Ugh. Use strtoul instead of atoi.
8941         (session_id_validate): Add debug statements.
8943 2006-02-08  William Jon McCann  <mccann@jhu.edu>
8945         * daapsharing/rb-daap-connection.c (http_response_handler):
8946         Report the actual uri from the message in debug statements.
8948 2006-02-08  William Jon McCann  <mccann@jhu.edu>
8950         * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
8951         Add context argument.
8952         (message_get_session_id): New function to parse session id from
8953         the message.
8954         (message_get_revision_number): Break out function to parse
8955         revision number from the message.
8956         (session_id_validate): New function to validate given session id
8957         is valid for given context (ie. client address).
8958         (session_id_generate): Generate a random session id.
8959         (session_id_create): Create a unique session id and store it.
8960         (session_id_remove): Remove a session id from the store.
8961         (login_cb): Create a session id instead of using a constant one.
8962         (logout_cb): Validate session id.
8963         (update_cb): Use new message_get_revision_number function.
8964         (databases_cb): Validate session id.
8965         (server_cb): Add server context to argument list for callbacks.  It
8966         is needed to look up the remote host.
8967         (db_entry_changed_cb): Use braces.
8968         (soup_auth_callback): Remove FIXME.
8969         (rb_daap_share_server_start): Create session id store.
8970         (rb_daap_share_server_stop): Destroy session id store.
8972         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
8973         Don't base64-encode password here since it needs to be
8974         combined with the username first.
8976         * daapsharing/rb-daap-connection.c (build_message):
8977         Add username to Authorization token.
8978         (handle_login, handle_song_listing) 
8979         (rb_daap_connection_do_something): Session id
8980         must be an unsigned int.
8982         Fixes #329814
8984 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8986         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
8987         Don't check if we've got a playing entry, ask the player object (duh).
8988         Might actually fix #329993.     
8990 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
8992         * sources/rb-static-playlist-source.c:
8993         (rb_static_playlist_source_add_list_uri):
8994         Canonicalise URIs before trying to add them to the playlist, and 
8995         don't try to add files to the database for which there is 
8996         already an entry.
8998 2006-02-08  Jonathan Matthew  <jonathan@kaolin.wh9.net>
9000         * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9001         Don't ask the entry view if we're playing, just check if we've got a
9002         playing entry.  Fixes #329993.
9004 2006-02-08  James Livingston  <jrl@ids.org.au>
9006         * rhythmdb/rhythmdb-query-model.c:
9007         (rhythmdb_query_model_set_property),
9008         (rhythmdb_query_model_finalize),
9009         (rhythmdb_query_model_base_complete): remove
9010         rhythmdb_query_model_base_entry_prop_changed, so that two signals
9011         don't get emitted for entry changes. Fixes bug 330301.
9013         * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9014         (rb_library_browser_init), (rb_library_browser_constructor),
9015         (rb_library_browser_new): do stuff in the constructor, not the init
9016         function, so that the db property gets set on RBPropertyViews
9017         correctly. Fixes a crash when dragging properties to a playlist.
9019 2006-02-07  William Jon McCann  <mccann@jhu.edu>
9021         * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9022         Actually stop soup server.  Fixes #329816.
9024 2006-02-07  James Livingston  <jrl@ids.org.au>
9026         * lib/rb-util.h:
9027         * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9028         (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9029         (collate_values_cb), (rb_collate_hash_table_keys),
9030         (rb_collate_hash_table_values): add functions to compare, copy and
9031         free string-lists. add functions to collate the keys or values of a
9032         hash table into a list.
9034         * rhythmdb/rhythmdb-property-model.c:
9035         (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9036         (_remove_entry_cb), (_add_entry_cb),
9037         (rhythmdb_property_model_set_property),
9038         (rhythmdb_property_model_get_property),
9039         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9040         (rhythmdb_property_model_row_inserted_cb),
9041         (rhythmdb_property_model_prop_changed_cb),
9042         (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9043         that are hidden, storing those that we have counted in a hash-table.
9045         * shell/Makefile.am: fix build order issue
9047         * shell/rb-shell-player.c: (rb_shell_player_set_property):
9048         * sources/rb-source.h:
9049         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9050         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9051         * sources/rb-podcast-source.c: (feed_select_change_cb): add
9052         browser-toggled method, rename _get_exta_views to _get_property_views,
9053         since several things depend on returning only that.
9055         * sources/rb-source.c: (rb_source_class_init),
9056         (rb_source_browser_toggled), (default_get_property_views),
9057         (rb_source_get_property_views), (rb_source_row_deleted_cb),
9058         (rb_source_gather_hash_keys),
9059         (rb_source_gather_selected_properties): above changes, and move some
9060         utility functions up from RBLibraryView
9062         * widgets/rb-property-view.c:
9063         (rb_property_view_selection_changed_cb): fix leak.
9065         * rhythmdb/rhythmdb-query-model.c:
9066         (rhythmdb_query_model_set_property),
9067         (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9068         (rhythmdb_query_model_set_sort_order),
9069         (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9070         query model being resorted.
9072         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9073         NULL query.
9075         * rhythmdb/rhythmdb.h:
9076         * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9077         (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9078         (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9079         two queries. Add a function to append "property={X,Y,Z,...}" to a
9080         query.
9082         * sources/rb-library-source.c: (rb_library_source_class_init),
9083         (rb_library_source_finalize), (rb_library_source_constructor),
9084         (rb_library_source_cmd_choose_genre),
9085         (rb_library_source_cmd_choose_artist),
9086         (rb_library_source_cmd_choose_album), (impl_search),
9087         (impl_get_property_views), (impl_reset_filters),
9088         (rb_library_source_preferences_sync),
9089         (rb_library_source_browser_views_activated_cb),
9090         (rb_library_source_state_prefs_sync),
9091         (construct_query_from_selection), (rb_library_source_do_query),
9092         (rb_library_source_browser_changed_cb):
9093         * widgets/Makefile.am:
9094         * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9095         browser" widgets, which contains several property views, based on the
9096         code from RBLibrarySource. Make RBLibrarySource use it.
9098         * sources/rb-auto-playlist-source.c:
9099         (rb_auto_playlist_source_class_init),
9100         (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9101         (rb_auto_playlist_source_constructor), (impl_reset_filters),
9102         (impl_get_property_views), (impl_browser_toggled),
9103         (construct_query_from_selection),
9104         (rb_auto_playlist_source_do_query),
9105         (rb_auto_playlist_source_set_query),
9106         (rb_auto_playlist_source_browser_changed_cb): Use the new
9107         library-browser widget to add browsers to automatic playlists.
9109 2006-02-07  James Livingston  <jrl@ids.org.au>
9111         * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9112         properly.
9113         * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9114         type of the source is taken into account. Fixes bug 329621.
9116 2006-02-07  James Livingston  <jrl@ids.org.au>
9118         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9119         (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9120         1.1, and perform URI canonicalistion when first upgrading. This should
9121         fix our remaining canonicalisation issues, such as bug 329988.
9123 2006-02-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
9125         * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9126         Track the playing entry when the entry view isn't in the playing
9127         state, so we don't have to get the state changes exactly right.
9128         Fixes #330135.
9130 2006-02-06  James Livingston  <jrl@ids.org.au>
9132         * shell/rb-shell-player.c: (open_location_thread),
9133         (rb_shell_player_open_location): fix several iradio issues: having to
9134         press play after double-clicking on a station, not working correctly
9135         without a http:// prefix, and ignoring totem-plparser results other
9136         than success or error (e.g. IGNORE).
9138 2006-02-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
9140         Addition of dbus methods for dealing with static playlists and the
9141         play queue.  Fixes #329958.
9143         * shell/Makefile.am:
9144         * shell/rb-playlist-manager.h:
9145         * shell/rb-playlist-manager.xml:
9146         * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9147         (rb_playlist_manager_get_playlists),
9148         (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9149         (rb_playlist_manager_create_static_playlist),
9150         (rb_playlist_manager_delete_playlist),
9151         (rb_playlist_manager_add_to_playlist),
9152         (rb_playlist_manager_remove_from_playlist),
9153         (rb_playlist_manager_export_playlist):
9154         Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9155         to create, delete, list, modify, export, and import  static playlists.
9156         
9157         * shell/main.c: (main): Register playlist manager object with dbus.
9159         * shell/rb-shell.h:
9160         * shell/rb-shell.xml:
9161         * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9162         (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9163         (rb_shell_remove_from_queue):  Provide dbus access to the playlist manager
9164         object, and implement the addToQueue and removeFromQueue methods.
9165         
9166         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9167         * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9168         formats.
9170 2006-02-05  James Livingston  <jrl@ids.org.au>
9172         * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9173         (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9174         (save_entry): allow storage of booleans in the on-disk db, and
9175         save/load the HIDDEN property.
9177         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9178         (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9179         to the state it was when RB shutdown. This makes RB appear to start
9180         faster, as tracks can appear before the stat is done. Remote files
9181         still start hidden. From bug 325215.
9183 2006-02-05  James Livingston  <jrl@ids.org.au>
9185         * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9186         * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9187         really cares about the difference from "entry-added", and it isn't
9188         emitted by the tree backend anyway.
9190         * rhythmdb/rhythmdb-query-model.c:
9191         (rhythmdb_query_model_constructor):
9192         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9193         remove the references to the entry-restored signal.
9195 2006-02-05  James Livingston  <jrl@ids.org.au>
9197         * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9198         issue.
9200 2006-02-05  James Livingston  <jrl@ids.org.au>
9202         * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9203         things are NULL before using g_object_unref. Fixes bug 327452.
9205         * player/rb-recorder-gst.c: (rb_recorder_construct):
9206         * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9207         rather than assertion.
9209         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9210         emit a warning, rather than asserting if an unknown playlist type is
9211         encountered.
9213 2006-02-05  James Livingston  <jrl@ids.org.au>
9215         * widgets/Makefile.am:
9216         * widgets/rb-simple-view.c:
9217         * widgets/rb-simple-view.h: Move the two features that this class
9218         provides into RBPropertyView, and remove this class. Closes bug
9219         327500.
9221         * podcast/rb-feed-podcast-properties-dialog.c:
9222         * podcast/rb-feed-podcast-properties-dialog.h:
9223         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9224         (rb_podcast_source_feeds_show_popup_cb):
9225         * sources/rb-podcast-source.h:
9226         * widgets/rb-property-view.c: (rb_property_view_class_init),
9227         (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9228         (rb_property_view_append_column_custom),
9229         (rb_property_view_button_press_cb):
9230         * widgets/rb-property-view.h: Updated for the above change.
9232 2006-02-04  James Livingston  <jrl@ids.org.au>
9234         * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9235         too close to Move to Trash and people aren't likely to use it often.
9237 2006-02-04  James Livingston  <jrl@ids.org.au>
9239         * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9241 2006-02-04  James Livingston  <jrl@ids.org.au>
9243         * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9244         passed a path instead of a URI.
9246         * sources/rb-generic-player-source.c: (default_get_mount_path):
9247         * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9248         the path. This fixes bug 329723.
9250 2006-02-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
9252         * daapsharing/rb-daap-structure.c:
9253         (rb_daap_content_code_string_as_int32):
9254         Use network byte order.
9256 2006-02-03  William Jon McCann  <mccann@jhu.edu>
9258         * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9259         Use a hash for source lookup.
9260         (mdns_service_added, mdns_service_removed): Handle
9261         service-added and service-removed signals from RBDaapMdnsBrowser.
9262         (remove_source): GDestroyNotify function for when sources
9263         are removed from the hash.
9264         (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9265         (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9266         (rb_daap_sources_shutdown): Update.
9267         (source_host_find): GHRFunc for finding a source by ip.
9268         (rb_daap_source_find_for_uri): Use the hash source lookup.
9270         * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9271         Namespace keys.
9272         (password_check_button_toggled_cb): Handle password enabled.
9273         (share_name_entry_focus_out_event_cb): Namespace keys.
9274         Handle changes more robustly.
9275         (share_password_entry_focus_out_event_cb): Handle password entry.
9276         (add_daap_preferences): Connect to password signals.
9278         * lib/rb-preferences.h: Add DAAP keys.
9280         * data/glade/daap-prefs.glade: Add password UI.
9282         * data/rhythmbox.schemas: Add password keys.
9284         * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9285         assert with warning.
9287         * daapsharing/rb-daap-sharing.c: Fix includes.  Move
9288         gconf keys to lib/rb-preferences.h.  Namespace
9289         the gconf keys.
9290         (create_share): Add password support.
9291         (enable_sharing_changed_cb): Namespaced keys.
9292         (require_password_changed_cb): Handle key change.
9293         (share_name_changed_cb): Namespaced keys.
9294         (share_password_changed_cb): Handle key change.
9295         (rb_daap_sharing_init): Namespaced keys.
9296         (rb_daap_sharing_shutdown): Ditto.
9298         * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9299         Add password property.
9300         (rb_daap_share_set_name): Break out prop set function.
9301         (published_cb): New RBDaapMdnsPublisher signal handler.
9302         (name_collision_cb): Ditto.
9303         (rb_daap_share_init): Create publisher object and
9304         connect to signals.
9305         (rb_daap_share_set_password, rb_daap_share_set_playlist_manager) 
9306         (rb_daap_share_set_property): Break out prop set functions.
9307         (rb_daap_share_dispose): Stop publishing.  Stop DAAP server.
9308         Unref publisher.
9309         (rb_daap_share_new): Add password argument.  Start
9310         publishing and DAAP server.
9311         (message_set_from_rb_daap_structure): Change print to debug.
9312         (server_info_cb): Set auth method to publish.
9313         (logout_cb): Handle DAAP client logout.
9314         (update_cb): Remove C++ comments.
9315         (databases_cb): Ditto.  Make message a warning.  Make print a debug.
9316         (server_cb): Add debug.
9317         (soup_auth_callback): Handle auth requests.
9318         (rb_daap_share_server_start): Split up functions for starting
9319         server and publishing.  Add auth handling to server.
9320         (rb_daap_share_server_stop): Split stop server and publish.
9321         No C++ comments.
9322         (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9323         Start and stop publishing.
9324         (rb_daap_share_restart): Restart server and publishing.
9325         (rb_daap_share_maybe_restart): Conditionally restart.
9327         * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run) 
9328         (rb_daap_collision_dialog_new_run): Don't use
9329         separators in dialogs.
9331         * daapsharing/rb-daap-connection.h: Add private
9332         data to class structure.
9334         * daapsharing/rb-daap-connection.c: Move
9335         some includes to top of file.  Make private
9336         data struct name consistent with others.
9337         (rb_daap_connection_class_init): Rename
9338         private.
9339         (rb_daap_connection_init): Get and store the pointer
9340         to the private data once instead of in every
9341         function.  Create a username value "Rhythmbox_VERSION".
9342         (connection_get_password): Don't get private.
9343         (build_message): Ditto.
9344         (http_response_handler): Don't init variables in
9345         declaration.  Add debug.  Spacing.
9346         (http_get, entry_set_string_prop, handle_server_info) 
9347         (handle_login, handle_update, handle_database_info) 
9348         (handle_song_listing, handle_playlists, handle_playlist_entries) 
9349         (rb_daap_connection_constructor, rb_daap_connection_logout) 
9350         (rb_daap_connection_state_done): Don't get private.
9351         (rb_daap_connection_get_headers): Ditto.  gchar yuck.
9352         spacing.  Correctly base64 encode the Authentication token.
9353         Add username to auth token.
9354         (rb_daap_connection_get_playlists): Don't get private.
9355         (rb_daap_connection_dispose): Ditto.  Free username.
9356         (rb_daap_connection_set_property) 
9357         (rb_daap_connection_get_property): Don't get private.
9359         * daapsharing/Makefile.am: Conditionally
9360         compile MDNS backends.  Add marshall stuff.
9362         * daapsharing/.cvsignore: Update.
9364         * configure.ac: Add conditional to see which
9365         MDNS backend we should use.
9367         * daapsharing/rb-daap-mdns.[ch]: Removed files.
9369         * daapsharing/rb-daap-marshal.list:
9370         * daapsharing/rb-daap-mdns-browser-avahi.c:
9371         * daapsharing/rb-daap-mdns-browser-howl.c:
9372         * daapsharing/rb-daap-mdns-browser.h:
9373         * daapsharing/rb-daap-mdns-publisher-avahi.c:
9374         * daapsharing/rb-daap-mdns-publisher-howl.c:
9375         * daapsharing/rb-daap-mdns-publisher.h:
9376         Split rb-daap-mdns.c into two classes.  One for
9377         publishing and one for browsing.  Split out
9378         the avahi and howl backends into different files.
9380         Fixes #322966
9381         
9382 2006-02-04  James Livingston  <jrl@ids.org.au>
9384         patch by: Jan Schmidt <thaytan@mad.scientist.com>
9386         * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
9387         crash if metadata reader gives us NULL for strings.
9389 2006-02-03  James Livingston  <jrl@ids.org.au>
9391         * shell/rb-shell-player.c: (open_location_thread),
9392         (rb_shell_player_open_location):
9393         retrieve iradio playlists files in a thread, so that with GStreamer
9394         0.10 the UI doesn't block while connecting to stations. The streamer
9395         connection is synchronous with 0.8, so that will still block (a bit).
9396         Fixed bug 128106.
9398         (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
9399         because _open_entry does that automatically when it is ready to.
9401 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9403         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9404         (rb_podcast_source_post_status_cell_data_func):
9405         Leave the podcast status column blank for episodes that have not been
9406         downloaded.
9408 2006-02-03  James Livingston  <jrl@ids.org.au>
9410         Add support for source-specific toolbar items, and make the Burn
9411         Playlist item only available for playlists. Also add Update All
9412         (podcast), Eject and Rip (audio cds). Fixes bug 329041.
9414         * data/ui/rhythmbox-ui.xml:
9415         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9416         (impl_get_ui_actions): make the Burn CD toolbar item only for
9417         playlists
9419         * lib/rb-stock-icons.c: (rb_stock_icons_init):
9420         * lib/rb-stock-icons.h: load the Eject icon as stock.
9422         * shell/rb-removable-media-manager.c: use the eject icon for the eject
9423         action
9425         * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
9426         (rb_shell_select_source):
9427         * sources/rb-source.c: (rb_source_class_init),
9428         (rb_source_disconnect), (default_get_ui_actions),
9429         (rb_source_get_ui_actions):
9430         * sources/rb-source.h: add support for source-specific toolbar items
9432         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
9433         Eject and Rip toolbar items
9435         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9436         (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
9437         item.
9439 2006-02-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
9441         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
9442         * shell/main.c: (main):
9443         * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
9444         Replace all g_critical calls with g_warning, since none of them are
9445         the sort of thing the process should die over.  Fixes #329398.
9447 2006-02-03  James Livingston  <jrl@ids.org.au>
9449         * configure.ac: mention gst-plugins-base in the error message for not
9450         finding GStreamer 0.10, since not having that will cause it to fail.
9452 2006-02-03  James Livingston  <jrl@ids.org.au>
9454         * configure.ac: fix typo that means you get the wrong error message if
9455         you explicity request a particular playback engine, and it can't be
9456         found.
9458 2006-02-03  James Livingston  <jrl@ids.org.au>
9460         * data/glade/library-prefs.glade: allow the watched library location
9461         to be a non-local place.
9463 ============ Version 0.9.3
9466 2006-02-02  James Livingston  <jrl@ids.org.au>
9468         * NEWS: update NEWS
9469         * configure.ac: bump version to 0.9.3
9471         * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
9472         <caillon@redhat.com>, fixed bug 329517. 
9474 2006-02-02  Jonathan Matthew  <jonathan@kaolin.hn.org>
9476         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9478         * widgets/rb-song-info.c: (rb_song_info_constructor):
9479         Make year and disc number fields non-editable if tag editing
9480         is disabled.  Fixes #329463.
9482 2006-02-01  James Livingston  <jrl@ids.org.au>
9484         * rhythmdb/rhythmdb-property-model.c:
9485         (rhythmdb_property_model_row_inserted_cb),
9486         (rhythmdb_property_model_prop_changed_cb),
9487         (rhythmdb_property_model_entry_removed_cb): handle hidden entries
9488         correctly. Fixes bug 327061.
9490         * rhythmdb/rhythmdb-query-model.c:
9491         (rhythmdb_query_model_entry_changed_cb): emit change notification of
9492         the HIDDEN property when an entry is removed for being hidden.
9494         * rhythmdb/rhythmdb-query-model.h:
9495         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9496         * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
9497         models's "connected" property. Whatever it was needed for seems to
9498         have gone.
9500 2006-02-01  James Livingston  <jrl@ids.org.au>
9502         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9504         * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
9505         (rb_shell_player_playing_changed_cb): block the signal to prevent
9506         re-entrancy. Fixes bug 329329 and fixes the first click of the play
9507         button pausing.
9509 2006-02-01  James Livingston  <jrl@ids.org.au>
9511         * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
9512         /should/ now work, if the neccessary plugins get ported.
9514 2006-01-30  James Livingston  <jrl@ids.org.au>
9516         * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
9517         string properties to "Unknown" is the string is empty. Kind of fixes
9518         bug 327495.
9520         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
9521         gettext calls once, rather than once per time the function is used.
9522         This stops us making tens of thousands of gettext calls on startup,
9523         which reduces the cpu-time of startup by 10-20%
9525 2006-01-29  James Livingston  <jrl@ids.org.au>
9527         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
9528         (rhythmdb_add_uri):
9529         * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
9530         for files containing known video streams.
9533 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9535         * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
9536         required.
9538 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9540         * INSTALL.quick: More random updates
9542         * rhythmdb/rhythmdb-query-model.c:
9543         (rhythmdb_query_model_class_init),
9544         (rhythmdb_query_model_set_property),
9545         (rhythmdb_query_model_get_property),
9546         (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
9547         Remove user sort data handling, take a property ID and a reverse
9548         flag instead.
9549         (rhythmdb_query_model_insert_into_main_list),
9550         (rhythmdb_query_model_insert_into_limited_list),
9551         (rhythmdb_query_model_do_reorder),
9552         (_reverse_sorting_func):
9553         Handle reverse sorting by calling _reverse_sorting_func, which
9554         calls the real sort function and reverses the result.
9555         (rhythmdb_query_model_set_sort_order):
9556         Allow this to be called to set the initial sort order for limited
9557         queries, and handle reverse sorting when reordering.
9558         (rhythmdb_query_model_location_sort_func),
9559         (rhythmdb_query_model_album_sort_func),
9560         (rhythmdb_query_model_artist_sort_func),
9561         (rhythmdb_query_model_genre_sort_func),
9562         (rhythmdb_query_model_track_sort_func),
9563         (rhythmdb_query_model_double_ceiling_sort_func),
9564         (rhythmdb_query_model_ulong_sort_func),
9565         (rhythmdb_query_model_date_sort_func),
9566         (rhythmdb_query_model_string_sort_func):
9567         Sort functions moved from rb-entry-view.c.
9568         * rhythmdb/rhythmdb-query-model.h:
9569         Add the sort functions, and update the changed functions.
9570         
9571         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
9572         Just call _resort_model when the query model is set, since it
9573         does all the same things.
9574         (rb_entry_view_append_column):
9575         Rework bits so the rating column doesn't have to be so much of a
9576         special case.
9577         (rb_entry_view_append_column_custom):
9578         Take a property ID to sort on, rather than arbitrary custom data.
9579         (rb_entry_view_resort_model):
9580         Query model does all the reverse sort handling now.
9581         * widgets/rb-entry-view.h: Update _append_column_custom.
9583         * sources/rb-play-queue-source.c:
9584         (rb_play_queue_source_constructor):
9585         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9586         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9587         (rb_podcast_source_post_date_cell_sort_func),
9588         (rb_podcast_source_post_status_cell_sort_func),
9589         (rb_podcast_source_post_feed_cell_sort_func):
9590         Updates required by all the other changes.
9592         * rhythmdb/rhythmdb-property-model.c:
9593         (rhythmdb_property_model_drag_data_get):
9594         Sort the query results on the selected property,
9595         so they arrive in the expected order.  All the other changes were made
9596         to make this possible.  Fixes bug #327494.
9598 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9599         
9600         * shell/rb-shell-clipboard.c:
9601         Use GTK_STOCK_REMOVE icon for the remove action in
9602         the play queue too.
9604 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9606         * sources/rb-play-queue-source.c:
9607         (rb_play_queue_source_constructor),
9608         (rb_play_queue_source_update_count):
9609         Don't make the 'queued songs' column clickable,
9610         and add the queued song count to the column title.
9612 2006-01-29  James Livingston  <jrl@ids.org.au>
9614         * configure.ac: remove "experimental" marking from DAAP, and enable by
9615         default if the dependencies are found.
9617 2006-01-29  James Livingston  <jrl@ids.org.au>
9619         * NEWS: update NEWS
9621 2006-01-29  James Livingston  <jrl@ids.org.au>
9623         patch by: William Jon McCann  <mccann@jhu.edu>
9625         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9626         (rb_podcast_source_feed_title_cell_data_func): Revert the change of
9627         property used for the feed list. Fixes problem with feeds with no
9628         episodes not showing up.
9630 2006-01-29  Jonathan Matthew  <jonathan@kaolin.hn.org>
9631         
9632         * shell/rb-play-order-random-by-age-and-rating.c:
9633         (rb_random_by_age_and_rating_get_entry_weight):
9634         Fix compile errors, bug #328978.
9636 2006-01-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
9638         * INSTALL.quick, README: Random updates
9639         * README.lirc: Add notes on controlling Rhythmbox with LIRC
9641 2006-01-28  James Livingston  <jrl@ids.org.au>
9643         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
9644         default rating back to 0 (from 2.5, which was needed for autorating).
9646         * shell/rb-play-order-random-by-age-and-rating.c:
9647         (rb_random_by_age_and_rating_get_entry_weight):
9648         * shell/rb-play-order-random-by-rating.c:
9649         (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
9650         2.5 for the purposes of weighting entries.
9652 2006-01-28  James Livingston  <jrl@ids.org.au>
9654         * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
9655         translator comments, to make it clearer what the "friendly time"
9656         formatting strings mean.
9658 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9660         * daapsharing/rb-daap-connection.c: (http_response_handler):
9661         Fix the sense of the overflow check so it'll accept valid input.
9663 2006-01-27  James Livingston  <jrl@ids.org.au>
9665         Patch from Alex Lancaster  <alexl@users.sourceforge.net>
9667         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
9668         escape paths when using rb_uri_handle_recursively. Closes bug 139646.
9670 2006-01-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
9672         Patch by: Alex Lancaster  <alexl@users.sourceforge.net>
9673         
9674         * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
9675         Don't include the artist field in the window title if it's blank.
9676         Fixes #325973.
9678 2006-01-26  William Jon McCann  <mccann@jhu.edu>
9680         * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
9681         Use stock delete icon for move to trash and stock remove
9682         for remove menu item.
9684 2006-01-26  Jonathan Matthew  <jonathan@kaolin.hn.org>
9686         * shell/rb-shell.c: (rb_shell_constructor),
9687         (idle_handle_load_complete):  Don't start the playlist save
9688         timeout until we've loaded the playlists, otherwise we'll
9689         write an empty playlist file if startup takes too long.
9691 2006-01-25  William Jon McCann  <mccann@jhu.edu>
9693         * shell/rb-shell.c: Make view toolbar toggle use
9694         shift+ctrl+t.  Fixes #327585.
9696 2006-01-25  James Livingston  <jrl@ids.org.au>
9698         patch by: Christope Fergeau  <teuf@gnome.org>
9700         * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
9701         (http_response_handler): fix a potential buffer overflow issue.
9703 2006-01-25  James Livingston  <jrl@ids.org.au>
9705         * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
9706         Year column wide enough to display "Unknown"
9708 2006-01-25  James Livingston  <jrl@ids.org.au>
9710         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9711         (rb_podcast_source_post_status_cell_data_func): make the episode
9712         status wording better. Part of bug 321607.
9714 2006-01-25  James Livingston  <jrl@ids.org.au>
9716         * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
9717         others with a separator.
9719         * shell/rb-shell-clipboard.c:  Rename "Delete" to "Remove" and use the
9720         stock Delete icon.
9722 2006-01-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
9724         * data/rhythmbox.desktop.in: Add GTK to categories.  Fixes #328047.
9726 2006-01-23  James Livingston  <jrl@ids.org.au>
9728         * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
9729         0.3.2. Fixed bug 328158.
9731 2006-01-23  James Livingston  <jrl@ids.org.au>
9733         * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
9734         (gulong_gst_date_transform), (rb_metadata_class_init):
9735         * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
9737 2006-01-23  Jonathan Matthew  <jonathan@kaolin.hn.org>
9739         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
9740         (rhythmdb_commit_internal), (rhythmdb_entry_insert),
9741         (record_entry_change): Protect added_entries and changed_entries with
9742         a mutex, so it doesn't crash on startup on SMT/SMP machines.
9744 2006-01-23  James Livingston  <jrl@ids.org.au>
9746         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
9747         the browser for audio CDs.
9749 2006-01-22  James Livingston  <jrl@ids.org.au>
9751         * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
9752         NEVER_FAIL as it causes the daemon-not-running error to never be
9753         reported, resulting in bug 319438 re-occurring.
9755 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9757         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
9758         Just call the podcast manager's update method.  Unbreaks the 'update
9759         all feeds' command.
9761 2006-01-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
9763         * sources/Makefile.am: Fix typo.  Fixes bug #327970.
9765 2006-01-21  Jonathan Matthew  <jonathan@kaolin.hn.org>
9767         * configure.ac: Don't disable DAAP with gstreamer 0.10
9769         * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
9770         (rb_daap_src_class_init), (rb_daap_src_init),
9771         (rb_daap_src_finalize), (rb_daap_src_set_property),
9772         (rb_daap_src_get_property), (rb_daap_src_write),
9773         (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
9774         (_split_uri), (rb_daap_src_open):
9775         * daapsharing/rb-daap-src.h:
9776         Mostly fix seeking, handle chunked transfer encoding, and port to
9777         gstreamer 0.10.
9778         
9779         * player/rb-player-gst.c:
9780         * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
9781         Remove rb_daap_src_initialize and rb_daap_src_shutdown.
9783         Fixes bugs #326738 and #318852, and brings #309609 one step closer to
9784         being fixed.
9786 2006-01-21  James Livingston  <jrl@ids.org.au>
9788         patch by: Alex Lancaster  <alexl@users.sourceforge.net> to add support
9789         for Year metadata in DAAP sources. Fixes bug 327700.
9791         * daapsharing/rb-daap-connection.c: (handle_song_listing):
9793 2006-01-20  William Jon McCann  <mccann@jhu.edu>
9795         * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
9796         enum values instead of magic numbers.
9798         * widgets/rb-property-view.c (rb_property_view_cell_data_func):
9799         Add number of songs that match each property title into
9800         the cell.  Also show the number of properties that match
9801         in the All entry.
9802         (rb_property_view_constructor): Use enum values instead of
9803         magic numbers.
9805         * sources/rb-podcast-source.c (rb_podcast_source_constructor):
9806         Query podcast posts instead of feeds for browser.  Use
9807         post SUBTITLE which is the location for the property view.
9808         (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
9809         (construct_query_from_selection) 
9810         (rb_podcast_source_cmd_delete_feed) 
9811         (rb_podcast_source_cmd_properties_feed) 
9812         (rb_podcast_source_cmd_update_feed): Use variable to make
9813         it clear what the selection data represents.
9814         (rb_podcast_source_feed_title_cell_data_func): Add number
9815         of posts that belong to each feed in the browser.
9817         * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
9818         (rhythmdb_property_model_delete_prop): Decrement the refcount
9819         for the All entry.
9820         (rhythmdb_property_model_get_column_type): Use column enum
9821         values instead of magic numbers.  Add NUMBER column.
9822         (rhythmdb_property_model_get_value): Use enum.
9823         Add NUMBER column that represents the refcount for
9824         the title of that property.
9825         (rhythmdb_property_model_perform_sync): Don't fake up
9826         a title for All here.
9828         Fixes #327372.
9829         
9830 2006-01-21  James Livingston  <jrl@ids.org.au>
9832         Make Rhythmbox start faster by not blocking the UI while database
9833         initialisation and loading occurs. Closes bug 323348.
9835         * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
9836         start 10 seconds later instead of immediately.
9837         
9838         (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
9839         safe to call from any thread.
9841         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
9842         (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
9843         so the UI doesn't block.
9845 2006-01-18  James Livingston  <jrl@ids.org.au>
9847         * sources/rb-static-playlist-source.c:
9848         (rb_static_playlist_source_do_query): fix dumb mistake I made that would
9849         cause crashes. Oops. fixes bug 327477.
9851 2006-01-17  William Jon McCann  <mccann@jhu.edu>
9853         * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
9854         Set GST element state to NULL before unreffing.
9855         Fixes #327422.
9857 2006-01-18  James Livingston  <jrl@ids.org.au>
9859         * sources/rb-static-playlist-source.c:
9860         (rb_static_playlist_source_do_query): don't filter on the SONG entry
9861         type, since the playlists can contain non-song entries. Fixes bug
9862         327448.
9864         * sources/rb-play-queue-source.c:
9865         (rb_play_queue_source_class_init): disable the search box for the
9866         queue.
9868 2006-01-18  James Livingston  <jrl@ids.org.au>
9870         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
9871         dragging of podcast episodes. Fixed bug 327450.
9873 2006-01-18  James Livingston  <jrl@ids.org.au>
9875         * rhythmdb/rhythmdb-query-model.c:
9876         (rhythmdb_query_model_drag_data_received): fix possible assertion when
9877         dragging to an emoty playlist.
9879 2006-01-18  Jonathan Matthew  <jonathan@kaolin.hn.org>
9881         * sources/rb-playlist-source-recorder.c:
9882         Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
9884 2006-01-17  James Livingston  <jrl@ids.org.au>
9886         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
9888         * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
9889         different number of tracks than exist on the cd, since that happens
9890         with audio+data hybrid CDs. Part of bug 325046.
9892 2006-01-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
9894         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9895         Remove useless call to gtk_tree_view_column_set_clickable().
9897         * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
9898         Don't store sort data for columns if the sort function is NULL,
9899         so only sortable columns will be in the column sort data map.
9900         (rb_entry_view_set_columns_clickable): Only make columns we can sort
9901         on clickable.
9902         (rb_entry_view_constructor):  The 'playing icon' column is never
9903         clickable, so don't connect a signal handler for it.
9905         Fixes bug 326811.
9907 2006-01-17  James Livingston  <jrl@ids.org.au>
9909         * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
9910         are 0.8 only. Fix element detection.
9912         * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
9913         saving the new metadata failed
9915 2006-01-17  James Livingston  <jrl@ids.org.au>
9917         * shell/rb-shell-player.c: (do_next_idle),
9918         (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
9919         (eos_cb): release audio device when a playlist finishes. Fixes bug
9920         323679.
9922 2006-01-17  James Livingston  <jrl@ids.org.au>
9924         * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
9925         canonicalise the URIs when things are added via library watching.
9927 2006-01-16  William Jon McCann  <mccann@jhu.edu>
9929         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
9930         Off by one error in default speed index.
9932 2006-01-16  William Jon McCann  <mccann@jhu.edu>
9934         * sources/rb-playlist-source-recorder.c (get_write_speeds) 
9935         (update_speed_combobox, update_speed_combobox):
9936         Get a list of the actually supported write speeds from
9937         n-c-b >= 2.13.90.  Otherwise use fallback list.
9939 2006-01-17  James Livingston  <jrl@ids.org.au>
9941         * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
9942         (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
9943         don't get stuck on recursive symlinks. Fixed bug 125452.
9945 2006-01-17  James Livingston  <jrl@ids.org.au>
9947         Add support for mass-storage audio players. Players are detected via
9948         either the HAL "audio_player" capability, or a ".is_audio_player" file
9949         in the root of the volume. Closes bug 325602.
9951         * configure.ac: separate using HAL from ipod support.
9953         * lib/rb-file-helpers.c: (rb_uri_is_local):
9954         * lib/rb-file-helpers.h: add function to determine whether a URI is
9955         local.
9957         * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9958         (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
9959         (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
9960         (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
9961         (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
9962         * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
9963         directories can be scanned for files to add as  non-SONG entries.
9965         * shell/rb-removable-media-manager.c:
9966         (rb_removable_media_manager_mount_volume): add checking for
9967         mass-storage players.
9969         * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
9970         * sources/rb-ipod-source.c: (rb_ipod_source_new),
9971         (hal_udi_is_ipod):
9972         * sources/rb-removable-media-source.c:
9973         (rb_removable_media_source_class_init),
9974         (rb_removable_media_source_constructor): move some things up to the
9975         RBRemovableMediaSource, rather than making subclasses do it.
9977         * sources/Makefile.am:
9978         * sources/rb-generic-player-source.c:
9979         * sources/rb-generic-player-source.h: add mass-storage player source.
9981 2006-01-16  James Livingston  <jrl@ids.org.au>
9983         patch by: William Jon McCann  <mccann@jhu.edu>
9985         * rhythmdb/rhythmdb-query-model.c:
9986         (rhythmdb_query_model_base_row_deleted): fix build issue from last
9987         commit.
9989 2006-01-16  James Livingston  <jrl@ids.org.au>
9991         Patch to add support for "chained queries" and putting hidden tracks
9992         in query models. Use chained queries to add search box support to
9993         normal playlists, and to make hidden entries not get lost. Fixes bug
9994         319278.
9996         * rhythmdb/rhythmdb-query-model.h:
9997         * rhythmdb/rhythmdb-query-model.c:
9998         (rhythmdb_query_model_class_init),
9999         (rhythmdb_query_model_set_property),
10000         (rhythmdb_query_model_get_property):
10001         (rhythmdb_query_model_finalize): add "show-hidden" and
10002         "base-model" properties.
10004         (rhythmdb_query_model_set_connected),
10005         (rhythmdb_query_model_has_pending_changes),     
10006         (rhythmdb_query_model_entry_added_cb),
10007         (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10008         (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10009         (rhythmdb_query_model_remove_entry),
10010         (rhythmdb_query_model_drag_data_received),
10011         (rhythmdb_query_model_base_row_inserted),
10012         (rhythmdb_query_model_base_row_deleted),
10013         (rhythmdb_query_model_base_non_entry_dropped),
10014         (rhythmdb_query_model_base_complete),
10015         (rhythmdb_query_model_base_entry_prop_changed),
10016         (rhythmdb_query_model_base_rows_reordered),
10017         (rhythmdb_query_model_row_drop_possible): handle base-model by
10018         chaining events and operations where necessary. Make hidden entries
10019         not get added only if "show-hidden" is false.
10021         (rhythmdb_query_model_child_index_to_base_index),
10022         (rhythmdb_query_model_base_index_to_child_index),
10023         (rhythmdb_query_model_get_entry_index): utility functions for handling
10024         base-model entries.
10026         (rhythmdb_query_model_reapply_query): apply the current query, and
10027         remove entries that don't match it.
10029         * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10030         empty queries.
10032         * sources/rb-source.c: (rb_source_set_property): move the unref later
10033         to fix problem if it is the last reference.
10035         * sources/rb-static-playlist-source.c:
10036         (rb_static_playlist_source_class_init),
10037         (rb_static_playlist_source_init),
10038         (rb_static_playlist_source_finalize),
10039         (rb_static_playlist_source_constructor), (impl_reset_filters),
10040         (impl_search), (rb_static_playlist_source_do_query),
10041         (impl_save_contents_to_xml),
10042         (rb_static_playlist_source_add_location_internal): use a chained query
10043         model to filter out hidden entries and implement the search box.
10045 2006-01-15  James Livingston  <jrl@ids.org.au>
10047         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10048         the default playlist loading, which I broke earlier.
10050 2006-01-15  James Livingston  <jrl@ids.org.au>
10052         patch by: William Jon McCann  <mccann@jhu.edu>
10054         * sources/rb-playlist-source.c: (playlist_iter_func): use
10055         totem-plparser's new API version macros to check for API changes.
10056         Handle the recent API change.
10058 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10060         * sources/rb-library-source.c: (impl_get_config_widget):
10061         Ref the preferences object to match the unref in the
10062         finalizer.  Fixes some portion of #323505.
10064 2006-01-15  Jonathan Matthew  <jonathan@kaolin.hn.org>
10066         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10067         * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10068         Fix valgrind warnings about accessing uninitialised values.
10070 2006-01-14  William Jon McCann  <mccann@jhu.edu>
10072         * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10074 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10076         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10077         Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10078         Stops the 'now playing' icon from being displayed after the play
10079         order finishes.
10081 2006-01-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
10083         * podcast/rb-podcast-manager.c:
10084         (rb_podcast_manager_db_entry_deleted_cb):
10085         Don't try to delete files we never downloaded, and cancel downloads
10086         for deleted episodes.  Fixes bug #326862.
10087         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10088         Don't complain about NULL data items in the selection list.
10090 2006-01-14  James Livingston  <jrl@ids.org.au>
10092         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10093         Make the name ofthe queue non editable. Fixes bug 326918.
10095 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10097         * sources/rb-playlist-source-recorder.c (burn_cd) 
10098         (ask_rewrite_disc): Don't use our locally copied functions
10099         if we have at least 2.13.
10101 2006-01-13  William Jon McCann  <mccann@jhu.edu>
10103         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10104         Correct the argument type for the process_error signal.
10105         May fix bug #323154.
10107 2006-01-13  James Livingston  <jrl@ids.org.au>
10109         save the queue to disk when exiting, and reload on startup. Fixed bug
10110         326677 .
10112         * shell/rb-playlist-manager.c:
10113         (rb_playlist_manager_load_playlists),
10114         (rb_playlist_manager_save_playlists_async): don't disable saving of
10115         the queue
10117         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10118         add the queue source as a gobject property.
10120         * sources/rb-play-queue-source.c:
10121         (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10122         code to save the queue to xml
10124         * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10125         load the queue from xml.
10126         * sources/rb-playlist-xml.h:
10128         * sources/rb-static-playlist-source.c:
10129         (rb_static_playlist_source_load_from_xml),
10130         (rb_static_playlist_source_new_from_xml):
10131         * sources/rb-static-playlist-source.h: split the playlist xml loading
10132         from the static playlist creation function, so the queue can use it.
10134 2006-01-13  James Livingston  <jrl@ids.org.au>
10136         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10137         assertion that should be there. Fixes bug 325923.
10138         
10139         * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10140         return NULL if the entry already exists (e.g. as another type).
10141         * daapsharing/rb-daap-connection.c: (handle_song_listing):
10142         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10143         (rb_podcast_manager_insert_feed):
10144         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10145         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10146         * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10147         for the above function returning NULL.
10149 2006-01-12  James Livingston  <jrl@ids.org.au>
10151         * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10152         is enabled. Fixes bug 326673.
10153         
10154         * doc/reference/tmpl/eggtrayicon.sgml:
10155         * doc/reference/tmpl/rb-daap-src.sgml:
10156         * doc/reference/tmpl/rb-source.sgml:
10157         * doc/reference/tmpl/rb-statusbar.sgml:
10158         * doc/reference/tmpl/rb-tree-model-sort.sgml:
10159         * doc/reference/tmpl/rhythmbox-unused.sgml:
10160         * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10162 2006-01-11  James Livingston  <jrl@ids.org.au>
10164         * widgets/rb-song-info.c: (rb_song_info_constructor),
10165         (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10166         (rb_song_info_populate_dialog): fill in the fields if all tracks have
10167         the same value for properties. From bug 326054.
10169 2006-01-11  James Livingston  <jrl@ids.org.au>
10171         * sources/rb-source.h:
10172         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10173         (rb_shell_player_set_playing_source_internal), (eos_cb):
10174         add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10175         every entry.
10177         * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10178         source use this. Closes bug 322077.
10180 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10182         * widgets/eggtrayicon.c (egg_tray_icon_notify):
10183         In order for set_icon_data_from_pixbuf() to be
10184         effective, one must not set an icon in _new().
10186 2006-01-10  William Jon McCann  <mccann@jhu.edu>
10188         * widgets/eggtrayicon.c (egg_tray_icon_init) 
10189         (egg_tray_icon_unrealize, egg_tray_icon_cancel_message) 
10190         (egg_tray_icon_notify): Add support for libnotify 0.3.
10191         * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10192         * configure.ac: Determine the version of libnotify.
10193         Fixes #326333.
10195 2006-01-08  James Livingston  <jrl@ids.org.au>
10197         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10198         trying to share a track with unknown length.
10200 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10202         * shell/rb-shell-player.c: (rb_shell_player_init):
10203         Sync volume on startup so it doesn't default to 0.
10205 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10207         * shell/rb-shell-player.c: (rb_shell_player_class_init),
10208         (rb_shell_player_get_property), (rb_shell_player_open_location),
10209         (info_available_cb):  Add the iradio streamed song title as a
10210         property, and emit a signal when it changes.
10212         * shell/rb-shell.c: (rb_shell_constructor),
10213         (rb_shell_player_elapsed_changed_cb),
10214         (rb_shell_player_stream_song_changed_cb):
10215         Issue a notification when the iradio song title changes.
10216         Fixes #326166.
10218 2006-01-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
10220         * shell/rb-shell-player.c: (rb_shell_player_init),
10221         (rb_shell_player_finalize), (rb_shell_player_set_property),
10222         (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10223         (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10224         (rb_shell_player_set_volume_relative),
10225         (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10226         (rb_shell_player_get_mute):
10227         * shell/rb-shell-player.h:
10228         * shell/rb-shell-player.xml:
10229         Store volume as a property on RBShellPlayer, rather than in gconf.
10230         Add some methods to control volume via dbus.
10232         * shell/rb-shell.c: (rb_shell_constructor),
10233         (rb_shell_volume_widget_changed_cb),
10234         (rb_shell_player_volume_changed_cb):
10235         * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10236         Update volume using player properties rather than gconf, and sync the
10237         volume with the volume control button when something else changes it.
10238         Fixes #323840.
10240 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10242         * shell/rb-tray-icon.c (tray_popup_position_menu):
10243         Make tray menu align with edge of panel.
10245         patch from Jaap A. Haitsma <jaap@haitsma.org>
10246         Fixes #319913
10248 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10249         * shell/rb-shell.c (sourcelist_drag_received_cb): 
10250         * shell/rb-playlist-manager.[ch] (create_name_from_selection_data) 
10251         (rb_playlist_manager_new_playlist_from_selection_data):
10252         Make a reasonable default name for playlists created from
10253         dropped data.  Fixes #326116.
10255 2006-01-07  William Jon McCann  <mccann@jhu.edu>
10257         * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10258         Use new gconf key.
10259         (burn_cd): Always eject CD after burning.  Too many drives
10260         get confused if we don't.  Save the speed used if the burn
10261         was completed successfully.
10263         * data/rhythmbox.schemas: Use our own speed instead of from
10264         n-c-b. The situation is that the default_speed for n-c-b is most
10265         likely the maximum write speed.  This is fine for n-c-b because it
10266         has burn-proof turned on.  We can't turn it on for audio CDs
10267         because the results are poor in quality.  So we'll just pick a
10268         default that should work for everyone (4).
10270 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10271         
10272         * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10273         (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10275 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10277         * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10278         in my previous commit.  Fixes #326037.
10280 2006-01-06  Ryan P Skadberg  <skadz@stigmata.org>
10282         patch by: Jonathan Matthew
10284         * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10285         error on Fedora Rawhide.
10287 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10289         * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10290         Assume HTTP URLs ending with .xml or .rss are podcasts.
10291         (rb_shell_add_uri): Handle adding podcast feeds.
10293         * sources/rb-podcast-source.c: (rb_podcast_source_new):
10294         Register as the source for podcast feeds.
10296 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10298         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10299         * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10300         (rb_shell_preferences_append_view_page):
10301         * shell/rb-shell-preferences.h:
10302         Fix typo in function name.  Fixes #325992.
10304 2006-01-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
10306         * shell/rb-audioscrobbler.c:
10307         Add '+' to the list of characters to URI-encode, so it doesn't get
10308         interpreted as a space.
10310 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10312         * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10313         (rb_daap_connection_do_something):  Don't crash if the DAAP server
10314         goes away while we're still trying to log in.
10316 2006-01-06  James Livingston  <jrl@ids.org.au>
10318         * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10320 2006-01-06  James Livingston  <jrl@ids.org.au>
10322         Patch from: Alex Lancaster  <alexl@users.sourceforge.net> to add
10323         support for Year to automatic playlists. Closes bug 321341.
10325         * rhythmdb/rhythmdb-query-model.c:
10326         (rhythmdb_query_model_set_property):
10327         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10328         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10329         (rhythmdb_query_free), (rhythmdb_query_serialize),
10330         (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10331         (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10332         * rhythmdb/rhythmdb.h: Support special
10333         RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10334         year in date.
10336         * widgets/rb-query-creator-properties.c:
10337         (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10338         (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10340 2006-01-06  James Livingston  <jrl@ids.org.au>
10342         * configure.ac: make the playback backend selection work correctly
10344         * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10345         (rb_daap_src_class_init), (rb_daap_src_dispose),
10346         (rb_daap_src_change_state), (rb_daap_src_initialize):
10347         * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10348         doesn't work for this class. Fixes bug 325934
10350 2006-01-06  Jonathan Matthew  <jonathan@kaolin.hn.org>
10352         * configure.ac: Fix check for libnotify.
10354 2006-01-05  William Jon McCann  <mccann@jhu.edu>
10356         * sources/rb-playlist-source.c (xml_get_and_trim_names):
10357         Get name element for current lang and remove all name nodes
10358         from the XML tree.
10359         (get_playlist_name_from_xml): Try to get name element or
10360         fall back to name attribute.
10361         (rb_playlist_source_new_from_xml): Get name before turning over
10362         to sub-types for parsing so that we can remove name elements
10363         from the tree if necessary.
10365         * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
10366         Load default playlists file if per user playlists are not found.
10368         * data/playlists.xml.in: 
10369         * data/Makefile.am: 
10370         * data/.cvsignore: Add default set of playlists.
10371         Fixes #323004
10373 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10375         * shell/main.c: (main): Don't use the dbus interface to show the
10376         window if we're also going to use the bonobo interface.
10378 2006-01-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
10380         * shell/rb-history.c: (rb_history_set_playing):
10381         Allow setting the playing song to NULL.
10382         (rb_history_append), (rb_history_delete_link):
10383         Don't randomly change position when entries are added and removed,
10384         it confuses play orders.
10385         
10386         * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
10387         Random orders always have a next entry if the model is not empty.
10388         (rb_random_play_order_get_next), (rb_random_play_order_go_next):
10389         Go back to the start of the history if we're past its end.
10391         * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
10392         (rb_shuffle_play_order_go_next): Go back to the start of the history
10393         if we're past its end.
10394         (rb_shuffle_sync_history_with_query_model): Go back to the start of
10395         the history if the current entry is removed.
10397         * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
10398         (rb_play_order_entry_deleted_cb): Only update have next/previous for
10399         the play order when the query has finished. This wasted about 10% CPU
10400         while the query was running.
10402         Fixes #324641: assertion failures when the query model was changed
10403         such that the playing song was no longer present.
10405 2006-01-05  James Livingston  <jrl@ids.org.au>
10407         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10408         (rb_daap_src_dispose), (rb_daap_src_change_state):
10409         * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
10410         (rhythmdb_gda_finalize):
10411         * widgets/rb-cell-renderer-pixbuf.c:
10412         * widgets/rb-cell-renderer-rating.c:
10413         (rb_cell_renderer_rating_class_init),
10414         (rb_cell_renderer_rating_finalize):
10415         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
10416         * widgets/rb-load-failure-dialog.c:
10417         (rb_load_failure_dialog_class_init),
10418         (rb_load_failure_dialog_finalize):
10419         * widgets/rb-rating.c: (rb_rating_class_init),
10420         (rb_rating_finalize):
10421         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10422         (rb_search_entry_finalize): use G_DEFINE_TYPE
10424         * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
10426 2006-01-05  James Livingston  <jrl@ids.org.au>
10428         patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
10430         * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
10431         the tarball.
10433         * shell/rb-history.c: (rb_history_class_init),
10434         (rb_history_finalize):
10435         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
10436         (rb_playlist_manager_finalize):
10437         * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
10438         (rb_remote_init): use G_DEFINE_TYPE.
10440 2006-01-05  James Livingston  <jrl@ids.org.au>
10442         * configure.ac: don't try to use libnotify >= 0.3.0 because of API
10443         changes
10445 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10447         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10448         Disable burn action when source is not a playlist.
10449         Fixes #323578.
10451 2006-01-04  Jonathan Matthew  <jonathan@kaolin.hn.org>
10453         Optionally use libnotify to display song change and other
10454         notifications, and provide an option to disable notifications.
10455         Fixes #320355 and innumerable informal complaints.
10457         * widgets/eggtrayicon.c: (egg_tray_icon_init),
10458         (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
10459         (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
10460         (egg_tray_icon_notify):
10461         * widgets/eggtrayicon.h:
10462         * configure.ac:
10463         * shell/Makefile.am:
10464         Optionally use libnotify instead of eggnotificationbubble.
10466         * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
10467         (rb_tray_icon_constructor), 
10468         (rb_tray_icon_show_notifications_changed_cb),
10469         (rb_tray_icon_hide_notify_cb)
10470         (rb_tray_icon_cancel_notify), (rb_tray_icon_notify): 
10471         Add 'show notifications' action handling, use G_DEFINE_TYPE, move
10472         EggNotificationBubble pointer to eggtrayicon.
10474         * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
10475         * lib/rb-preferences.h: Add #define for /ui/show_notifications key
10476         * data/rhythmbox.schemas: Add schema for /ui/show_notification key
10478 2006-01-04  William Jon McCann  <mccann@jhu.edu>
10480         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10481         Request a minimum size for the progress bar so that
10482         the window doesn't shrink too small.
10484 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10486         * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
10487         (add_db_entry), (db_entry_deleted_cb):
10488         Don't track the number of songs currently present, track the next ID
10489         to assign.  Fixes potential ID conflict problems.
10490         
10491         (db_entry_changed_cb), (rb_daap_share_start_publish),
10492         (rb_daap_share_stop_publish):
10493         Watch for db entry changes, and when songs become non-hidden after
10494         a successful stat, add them to the mapping tables.   Fixes #325178,
10495         making the DAAP server usable again.
10497 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10498         
10499         * shell/rb-statusbar.c: (rb_statusbar_class_init),
10500         (rb_statusbar_construct), (rb_statusbar_init),
10501         (rb_statusbar_finalize), (rb_statusbar_set_property),
10502         (rb_statusbar_get_property), (rb_statusbar_new),
10503         (rb_statusbar_sync_with_source):
10504         * shell/rb-statusbar.h:
10505         Remove visibility management code, stop watching for play order
10506         changes (status bar doesn't show play order any more), remove unused
10507         'player' property, and some other minor cleanup.
10508         
10509         * shell/rb-shell.c: (rb_shell_constructor),
10510         (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
10511         (rb_shell_sync_statusbar_visibility):
10512         Manage status bar visibility here rather than in the status bar
10513         itself, so we can take small mode into account.  Fixes #323589.
10515 2006-01-03  Jonathan Matthew  <jonathan@kaolin.hn.org>
10517         * widgets/eggnotificationbubble.c: (draw_bubble):
10518         Move the bubble off the visible screen while setting up bevels.  
10519         Fixes #316810.
10521 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10523         * shell/rb-shell-player.c: (rb_shell_player_init),
10524         (rb_shell_player_finalize): 
10525         Remove unused structure members.
10526         
10527         (do_next_idle), (rb_shell_player_error):
10528         Only queue one call to do_next_idle, so we don't skip tracks if we get
10529         two errors for the same song.  Fixes #325216.
10531 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10533         * data/glade/podcast-feed-properties.glade,
10534          podcast/rb-feed-podcast-properties-dialog.c:
10535         (rb_feed_podcast_properties_dialog_init),
10536         (rb_feed_podcast_properties_dialog_update):
10537         Add 'last episode' field to the podcast feed properties dialog.
10539         * podcast/rb-feed-podcast-properties-dialog.c:
10540         (rb_feed_podcast_properties_dialog_update_last_update),
10541         (rb_feed_podcast_properties_dialog_update_last_episode),
10542          podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10543         Use last-seen property for the time at which we last updated the feed,
10544         and post-time for the time the last episode was published.
10546         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
10547         Handle upgrades from 0.9.2; if no post-time was found for a podcast
10548         feed, use last-seen (which in 0.9.2 was the last post time).
10550         Fixes #323894.
10552 2006-01-01  James Livingston  <jrl@ids.org.au>
10554         patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
10556         * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
10557         year from the ipod database.
10559 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10561         * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
10562         Only set the pipeline back to NULL state for really uninteresting
10563         files.  This was causing deadlocks with various video files.
10564         Fixes #324912.
10566 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10568         * data/glade/song-info-multiple.glade:
10569         Add disc number label and field.
10570         * widgets/rb-song-info.c: (rb_song_info_construct_single),
10571         (rb_song_info_constructor): 
10572         Handle widgets for disc number.
10573         (rb_song_info_sync_entries_multiple):
10574         Set disc number property on selected entries.
10575         Fixes #324777.
10577 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10579         * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
10580         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
10581         Activate the default widget when enter is pressed in these dialogs.
10582         Fixes #322887.
10584 2006-01-01  Jonathan Matthew  <jonathan@kaolin.hn.org>
10586         * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
10587         Use rb_shell_player_get_playing_entry, so we get the right entry
10588         when playing from the queue.  Fixes #325379.
10590 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10592         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10593         Include podcast posts with no publication date.  Typically
10594         seen in static collections rather than feeds.
10596 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10598         * shell/main.c: (main): Don't attempt to handle
10599         bonobo-only arguments if we couldn't get a bonobo
10600         client proxy.
10602 2005-12-31  Jonathan Matthew  <jonathan@kaolin.hn.org>
10604         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
10605         (rb_daap_mdns_publish_cancel):  Clear our_service_name so we don't
10606         abort if daap sharing is disabled and then re-enabled.
10608 2005-12-29  William Jon McCann  <mccann@jhu.edu>
10610         * podcast/rb-podcast-parse.c (rb_insert_item):
10611         Add debugging.
10612         (rb_podcast_parser_start_element): Support itunes:image.
10613         Add debugging.  Don't abuse the break statement.  Warn
10614         if state is unknown.
10615         (rb_podcast_parser_end_element): Add debugging.  Warn
10616         if state is unknown.
10617         (rb_podcast_parser_characters): Warn if state is unknown.
10619         Fixes parsing of feeds that use the itunes:image element.
10620         Fixes #324632
10622 2005-12-28  Jonathan Matthew  <jonathan@kaolin.hn.org>
10624         * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
10625         (stations_view_drag_data_received_cb):
10626         Remove calls to rhythmdb_entry_lookup_by_location, as
10627         rb_iradio_source_add_station does that anyway.
10628         
10629         (rb_iradio_source_add_from_playlist):
10630         If the URL doesn't point to a playlist, add it as the stream
10631         URL instead.
10633 2005-12-27  Jonathan Matthew  <jonathan@kaolin.hn.org>
10635         * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
10636         just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
10637         so we don't get an assertion failure.
10638         Fixes #325025.
10640 2005-12-24  Jonathan Matthew  <jonathan@kaolin.hn.org>
10642         * shell/main.c: (load_uri_args): don't compile this in if
10643         neither bonobo nor dbus are enabled.  Fixes #324890.
10645 2005-12-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
10647         * sources/rb-audiocd-source.c:
10648         (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
10649         so it closes the device.
10651 2005-12-20  James Livingston  <jrl@ids.org.au>
10653         * metadata/rb-metadata-gst.c: make the state changes time-out again,
10654         so that it doesn't spend forever getting stuck on the one file. Don't
10655         report errors for failing to change state on known non-audio files.
10657         * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
10658         audio sink creation if we can't create the gconfaudiosink. This lets
10659         it work with only gst-plugins-base on 0.10.
10661 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10663         * rhythmdb/rhythmdb-query-model.c:
10664         (rhythmdb_query_model_set_sort_order):
10665         Fix a tiny memory leak in the previous commit.
10667 2005-12-20  Jonathan Matthew  <jonathan@kaolin.hn.org>
10669         * rhythmdb/rhythmdb-query-model.c:
10670         (rhythmdb_query_model_set_sort_order):
10671         Don't try to emit reorders for empty query models, since it doesn't
10672         achieve anything and it results in a few warnings.
10674 2005-12-19  William Jon McCann  <mccann@jhu.edu>
10676         * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10677         Make burn dialog non-resizable so that the expander can shrink.
10678         Fixes #308951.
10680 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10682         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
10683         add entries without a location, rather than those with one.
10685 2005-12-19  James Livingston  <jrl@ids.org.au>
10687         * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
10688         the error isn't set.
10690 2005-12-19  James Livingston  <jrl@ids.org.au>
10691         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
10692         add entries without a location. Fixes bug 324290.
10694         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
10695         without a location.
10697         * shell/main.c: (main): don't crash if dbus initialisation fails
10698         without setting an error
10700 2005-12-19  Jonathan Matthew  <jonathan@kaolin.hn.org>
10702         * sources/rb-library-source.c: Remove unused structure members
10703         (rb_library_source_do_query): Actually use the cached 'all' query.
10704         Fixes #324025.
10705         
10706 2005-12-16  Jonathan Matthew  <jonathan@kaolin.hn.org>
10708         * sources/rb-audiocd-source.c 
10709         (rb_audiocd_get_cd_info): tab
10710         (rb_audiocd_scan_songs): Return boolean success/failure,
10711         fix error messages a bit.
10712         (metadata_cb): Don't crash if we have no tracks
10713         (rb_audiocd_load_songs): Don't try to read metadata if we can't read
10714         the CD.
10715         Fixes #324222.
10717 2005-12-15  William Jon McCann  <mccann@jhu.edu>
10719         * shell/rb-shell.c (rb_shell_sync_fullscreen) 
10720         (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
10721         key.
10723         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10724         Fixes #324157
10726 2005-12-14  William Jon McCann  <mccann@jhu.edu>
10728         * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize) 
10729         (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen) 
10730         (fullscreen_changed_cb): 
10731         * lib/rb-preferences.h: 
10732         * data/ui/rhythmbox-ui.xml: 
10733         * data/rhythmbox.schemas:
10734         Add fullscreen mode.
10736         Fixes #324075.
10738 2005-12-14  Ryan P Skadberg  <skadz@stigmata.org>
10740         * configure.ac: Removed DBUS_SERVICES_DIR from top-level
10741         configure.  It was not working with RPM.
10742         * data/Makefile.am: Switched dbus directory location to use
10743         datadir instead of variable that was not working.
10745 2005-12-13  James Livingston  <jrl@ids.org.au>
10747         patch by: Alex Lancaster <alexl@users.sourceforge.net>
10749         * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
10750         the podcast browser work again. Closes bug 323856.
10752 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10754         * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
10755         Remove C99ism.
10757         * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
10758         (rb_utf_friendly_time):
10759         * lib/rb-cut-and-paste-code.h:
10761         * podcast/rb-feed-podcast-properties-dialog.c:
10762         (rb_feed_podcast_properties_dialog_parse_time):
10763         * podcast/rb-podcast-properties-dialog.c:
10764         (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
10765         to display the date in a more user friendly way.
10766         For example, if the feed was updated yesterday it will say:
10767         Last updated: Yesterday 10:00 AM
10768         instead of printing the date.
10770 2005-12-12  William Jon McCann  <mccann@jhu.edu>
10772         * podcast/rb-podcast-parse.c (rb_set_channel_value) 
10773         (rb_set_item_value, rb_insert_item, rb_validate_channel_propert) 
10774         (rb_validate_item_propert, rb_podcast_parser_start_element) 
10775         (rb_podcast_parser_end_element, rb_podcast_parser_characters):
10776         Use RB style.  Check for NULL before strcmp.  No C++ comments.
10777         (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
10778         Don't set invalid mime type when mime type is NULL.  Fix leaks.
10779         (rb_podcast_parse_date): Add support for some real world
10780         date formats.
10781         (rb_podcast_parse_time, rb_podcast_parse_channel_free) 
10782         (rb_podcast_parse_item_free): Style and no need to check
10783         for NULL before g_free.
10785         May fix #323742
10787 2005-12-12  James Livingston  <jrl@ids.org.au>
10789         * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
10790         with gstreamer 0.10, which replaced audioscale.
10792         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
10793         function to free the SoupSession
10795         * shell/rb-source-header.c: (rb_source_header_set_property),
10796         (rb_source_header_disclosure_toggled_cb),
10797         (rb_source_header_view_browser_changed_cb),
10798         (rb_source_header_sync_control_state):
10799         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
10800         * sources/rb-library-source.c: (rb_library_source_class_init):
10801         * sources/rb-source.c: (rb_source_class_init),
10802         (rb_source_get_status), (default_get_browser_key),
10803         (rb_source_get_browser_key), (rb_source_can_browse),
10804         (rb_source_notify_status_changed),
10805         (rb_source_notify_filter_changed):
10806         * sources/rb-source.h: seperate the enabling of browsers from the use
10807         of a gconf key.
10809 2005-12-11  William Jon McCann  <mccann@jhu.edu>
10811         * data/glade/podcast-feed-properties.glade: 
10812         * data/glade/podcast-properties.glade: Use scrolled viewports
10813         for description text.  Fix regression of #320509.
10815 2005-12-11  James Livingston  <jrl@ids.org.au>
10817         * sources/rb-auto-playlist-source.c:
10818         (rb_auto_playlist_source_class_init), (impl_reset_filters),
10819         (impl_search), (rb_auto_playlist_source_do_query),
10820         (rb_auto_playlist_source_set_query),
10821         (rb_auto_playlist_source_get_query): add support for the search box
10822         to automatic playlists.
10824         * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
10825         memory leak.
10827 2005-12-11  James Livingston  <jrl@ids.org.au>
10829         * NEWS: update NEWS
10831 2005-12-11  James Livingston  <jrl@ids.org.au>
10833         * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
10834         (rhythmdb_load), (monitor_subdirectory),
10835         (rhythmdb_sync_library_location):  start the library sync and
10836         monitoring in an idle callback.
10838 2005-12-10  William Jon McCann  <mccann@jhu.edu>
10840         * sources/rb-podcast-source.c (rb_podcast_source_class_init) 
10841         (rb_podcast_source_constructor): Remove unused pixbuf column.
10842         (rb_podcast_source_set_property, rb_podcast_source_get_property):
10843         Use consistent style.
10845         Fixes #322961.
10847 2005-12-11  James Livingston  <jrl@ids.org.au>
10849         * rhythmdb/rhythmdb-property-model.c:
10850         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
10851         (rhythmdb_property_model_insert),
10852         (rhythmdb_property_model_delete_prop):
10853         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
10854         (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
10855         (destroy_tree_property):
10856         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10857         (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
10858         GMemChunks, they are crap and deprecated. Improves startup-time and
10859         memory usage slightly.
10861 2005-12-10  William Jon McCann  <mccann@jhu.edu>
10863         * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
10864         Added license and website info.
10866         * MAINTAINERS.old: Add Colin.
10867         * MAINTAINERS: Add James.
10868         * AUTHORS: Put back in order.  Add extra space between name and email
10869         to make it easier to read.  Add James and jonathan.
10871         * widgets/rb-song-info.c (rb_song_info_init) 
10872         (rb_song_info_constructor): Make sure close button is primary/rightmost.
10874 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
10876         Play queue implementation. Closes bug 107787.
10878         * data/rhythmbox.schemas: add items for whether the queue should be
10879         displayed as a sidebar, and the height of the sourcelist if it is.
10881         * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
10882         playlist, and podcast popups; add 'view queue as sidebar' menu item,
10883         add popups for queue as source and as sidebar.  We need a separate
10884         popup for the sidebar view because otherwise it's hard to tell which
10885         of the visible entry views the action came from.
10887         * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
10889         * po/POTFILES.in: Add new file
10891         * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
10892         Add helper function for deciding if a podcast episode is available for
10893         playback.
10895         * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
10896         reorder entries in the query model.
10897         (idle_process_update): Handle new update type used to insert entries
10898         at a particular position in the query model.
10899         (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
10900         parameter to specify the position (-1 meaning 'at the end').
10901         (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
10902         parameter.
10903         (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
10904         bad entry removal updates for entries that aren't in the model.
10905         (rhythmdb_query_model_emit_reorder): Add helper function for
10906         reordering rows.
10907         (rhythmdb_query_model_move_entry): New method for moving entries
10908         around in the model
10909         (rhythmdb_query_model_entry_added_cb),
10910         (rhythmdb_query_model_update_limited_entries),
10911         (rhythmdb_query_model_do_reorder),
10912         (rhythmdb_query_model_do_insert): Pass through the index parameter,
10913         use rhythmdb_query_model_emit_reorder where appropriate.
10915         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10916         Don't allow the queue to be deleted.
10917         (handle_playlist_entry_cb): Update for method signature change
10918         (rb_playlist_manager_save_playlists_async),
10919         (rb_playlist_manager_get_playlists): Don't save the play queue,
10920         don't report it as a playlist.
10922         * shell/rb-play-order.c: Include queue play order in the list of
10923         available orders.
10925         * shell/rb-shell.c
10926         (rb_shell_class_init), (rb_shell_get_property): Add new property 
10927         for access to the clipboard object.
10928         (rb_shell_constructor): Handle playing-from-queue signal to update the
10929         sourcelist display; add queue sidebar in to UI, listen for queue
10930         sidebar pane changes, and read initial settings from gconf.
10931         (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb): 
10932         Only tell the sourcelist the source has changed if the new source is 
10933         not the queue, as we update the sourcelist differently in that case.
10934         (rb_shell_set_window_title): Only use the cached window title if the
10935         playing state was the same when it was created.
10936         (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
10937         (rb_shell_sync_pane_visibility): Only hide the side pane if the
10938         sourcelist is hidden and the queue is shown as a source.
10939         (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
10940         mode, since it doesn't make any sense.
10941         (sourcelist_visibility_changed_cb): Update the visibility of the pane
10942         too.
10943         (rb_shell_sync_paned): Update the queue sidebar pane separator too.
10944         (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
10945         (rb_shell_jump_to_entry_with_source): Handle jump to entry when
10946         playing from queue shown as sidebar.
10948         * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
10949         MusicProperties action here from rb-shell-player.c, since it acts like
10950         cut/copy/paste etc.
10951         (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
10952         (rb_shell_clipboard_get_property): new property for queue source.
10953         Watch for selection changes in the sidebar entry view as well as the
10954         normal one.
10955         (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
10956         actions and MusicProperties.
10957         (rb_shell_clipboard_cmd_queue_delete),
10958         (rb_shell_clipboard_cmd_add_song_to_queue),
10959         (rb_shell_clipboard_cmd_song_info),
10960         (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
10962         * shell/rb-shell-player.{c,h}: Track the source the current playing entry
10963         actually came from (could be the playing source, or the queue), add a 
10964         new play order object for the queue, add a property for the queue
10965         source, add a signal for when we switch between playing from the
10966         source and from the queue.
10967         (rb_shell_player_set_property): Handle playing directly from the
10968         queue so we stop once the queue is empty.  Create queue play order
10969         when we get the queue source.
10970         (rb_shell_player_get_playing_source): Return the source we're actually
10971         playing from.
10972         (rb_shell_player_get_playing_entry): Get playing entry from queue if
10973         that's where it is.
10974         (rb_shell_player_set_playing_entry): Update the queue play order if 
10975         that's where we're playing from.
10976         (rb_shell_player_play_order_update_cb): Take has next/previous for the
10977         queue into consideration too.
10978         (swap_playing_source): Helper function for switching the playing
10979         source.
10980         (rb_shell_player_do_previous): Check the queue, even though there's
10981         never a previous entry in it (yet), swap playing source if it changed.
10982         (rb_shell_player_do_next): Check the queue for entries to play before
10983         the normal play order, and swap playing source if it changed.
10984         (rb_shell_player_do_previous_or_seek): Check the queue for previous
10985         entries to go to as well.
10986         (rb_shell_player_playpause): Check the queue before the selection and
10987         the play order, and swap playing source if it changed.
10988         (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
10989         (rb_shell_player_entry_activated_cb): Use
10990         rb_podcast_manager_entry_downloaded, do some tapdancing to make
10991         activating queue entries work properly (move the activated entry to
10992         the start of the queue and then play it); if we were playing from the
10993         queue, clear its playing entry so it'll start again from the start
10994         after the activated entry.
10995         (rb_shell_player_sync_buttons): MusicProperties action handler moved
10996         to rb-shell-clipboard.c
10997         (actually_set_playing_source): Add helper for updating the playing
10998         source.
10999         (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11000         signal if we stop or start doing so; use actually_set_playing_source; 
11001         emit playing-source-changed if we actually did change source.
11003         * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11004         rb_static_playlist_source_add_location.
11006         * sources/rb-library-source.c (rb_library_source_class_init): Allow
11007         enqueueing of songs from the library.
11009         * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11010         enqueueing of sonsg from playlists.
11011         (rb_playlist_source_entry_added_cb): Add extra parameter for
11012         rhythmdb_query_model_add_entry.
11013         
11014         * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11015         Implement (can_)add_to_queue for this class.
11016         (rb_podcast_source_entry_activated): Use
11017         rb_podcast_manager_entry_downloaded.
11018         (impl_can_add_to_queue): Return TRUE if at least one entry that has
11019         been downloaded is selected.
11020         (impl_add_to_queue): Only add downloaded entries to the queue.
11022         * sources/rb-source.{c,h}:
11023         (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual 
11024         methods.
11025         (rb_source_class_init): Don't allow enqueueing by default; implement 
11026         add_to_queue though.
11027         (default_add_to_queue): Add all selected entries to the queue.
11028         
11029         * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11030         would be playing if there wasn't anything in the queue).
11031         (set_source_playing): Helper function for manipulating tree store.
11032         (rb_sourcelist_set_playing_source): Use set_source_playing
11033         (rb_sourcelist_preempt_playing_source): Update preempted source
11034         pointer, manipulate source states.
11036         * sources/rb-static-playlist-source.{c,h}:
11037         (rb_static_playlist_source_add_location_internal),
11038         (rb_static_playlist_source_add_location),
11039         (rb_static_playlist_source_add_entry): Add index parameter for
11040         specifying where in the playlist the new entry goes.
11041         (rb_static_playlist_source_new_from_xml), (impl_paste),
11042         (rb_static_playlist_source_add_list_uri),
11043         (rb_static_playlist_source_add_location_swapped),
11044         (rb_static_playlist_source_add_locations),
11045         (rb_static_playlist_source_non_entry_dropped),
11046         (rb_static_playlist_source_row_inserted):
11047         Handle new index parameter everywhere it appears
11048         (rb_static_playlist_source_move_entry): New method for moving entries
11049         around in the playlist.
11051         * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11052         warnings when trying to scroll entry views that have never been
11053         displayed.
11055         * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11056         play order that removes the old entry when switching to a new one.
11058         * sources/rb-play-queue-source.{c,h}: New files, implementing a
11059         static playlist subclass that has a second entry view for the sidebar
11060         view using alternate formatting, and that displays the number of
11061         entries it contains in its source list entry.
11063 2005-12-10  James Livingston  <jrl@ids.org.au>
11065         * rhythmdb/rhythmdb-query-model.c:
11066         (rhythmdb_query_model_add_entry),
11067         (rhythmdb_query_model_drag_data_received):
11068         * sources/rb-static-playlist-source.c:
11069         (rb_static_playlist_source_non_entry_dropped): when things are
11070         dropped, ignore any blank lines in the list of uris. Make the source
11071         responsible for adding new items to the db.
11073         * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11074         empty string.
11076 2005-12-10  James Livingston  <jrl@ids.org.au>
11078         * shell/rb-shell-player.c: (rb_shell_player_set_property),
11079         (rb_shell_player_sync_buttons),
11080         (rb_shell_player_selection_changed_cb): watch for the
11081         "selection-changed" signal, so that the Song Properties get enabled.
11082         Closes bug 323694.
11084 2005-12-10  James Livingston  <jrl@ids.org.au>
11086         * data/rhythmbox.schemas: fix the gconf schema
11088 2005-12-10  James Livingston  <jrl@ids.org.au>
11090         * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11091         the decoded-pad callback with gstreamer 0.8, it causes problems.
11093 2005-12-10  Jonathan Matthew  <jonathan@kaolin.hn.org>
11095         Remove more junk from RBEntryView. Closes bug 323640.
11097         * widgets/rb-entry-view.{c,h}:
11098         Remove unused private structure members, replace 'playing' boolean
11099         with an enum (so we know if we're paused too), and store a pointer to
11100         the RBShellPlayer too.  
11101         (rb_entry_view_class_init), (rb_entry_view_set_property),
11102         (rb_entry_view_get_property):
11103         Remove 'entry-selected' and 'changed' signals and
11104         'playing-entry' property, add 'selection-changed' signal and
11105         'shell-player' and 'playing-state' properties.
11106         (rb_entry_view_new): Take the shell player object reference
11107         (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11108         (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11109         No longer needed, shell player is the place to get this information.
11110         (rb_entry_view_busy), (rb_entry_view_get_duration),
11111         (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry), 
11112         (rb_entry_view_get_next_from_entry),
11113         (rb_entry_view_get_previous_from_entry),
11114         (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11115         (rb_entry_view_get_num_entries):
11116         Removed, callers should go to the query model directly.
11117         (rb_entry_view_playing_song_changed): Update active query model, emit
11118         row changed signals to update pixbufs, and scroll to the playing song
11119         when the playing song changes, based on a signal from the shell
11120         player.
11121         (queue_changed_sig), (rb_entry_view_row_changed_cb),
11122         (emit_entry_changed): Evil, removed.
11123         (rb_entry_view_selection_changed_cb): Remove old signals, add new
11124         selection-changed signal.
11125         (rb_entry_view_select_none), (rb_entry_view_select_entry):
11126         Remove selection lock.  It didn't work anyway.
11127         (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11128         (rb_entry_view_emit_row_changed): Simple helper function to emit
11129         row-changed signals.
11131         * widgets/Makefile.am: Entry view needs headers from the shell/
11132         directory.
11133         * widgets/rb-song-info.{c,h}: Use the query model for everything except
11135         scrolling the entry view to show the entry being displayed.
11136         (rb_song_info_class_init), (rb_song_info_get_property): Add new 
11137         'source' property so we can watch for query model changes.
11138         (rb_song_info_finalize): Unref objects, disconnect signal handlers
11139         (rb_song_info_set_property): Watch for query model changes, don't
11140         watch for entry view changes.
11141         (rb_song_info_new): Take source as a parameter, use the source's entry
11142         view unless one was specifically supplied.
11143         (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11144         Use query model rather than entry view to move between songs.
11145         (rb_song_info_update_buttons): Use query model.
11146         (rb_song_info_query_model_changed_cb): Handle query model changes.
11148         * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11149         Only one copy of the code to enable/disable the CD burning action
11150         (rb_playlist_manager_playlist_entries_changed):
11151         Use the query model to get the number of entries, not the entry view.
11153         * shell/rb-play-order-random-by-age-and-rating.c,
11154         shell/rb-play-order-random-by-age.c,
11155         shell/rb-play-order-random-by-rating.c,
11156         shell/rb-play-order-random-equal-weights.c:
11157         Use G_DEFINE_TYPE
11159         * shell/rb-shell-player.{c,h}:
11160         Remove a few unused entries from the structure.
11161         (rb_shell_player_set_property):
11162         Don't use the 'changed' signal on the entry view (it's evil)
11163         (rb_shell_player_have_first): No longer needed
11164         (rb_shell_player_play): Just tell the entry view it's playing
11165         (rb_shell_player_playpause): Tell the entry view it's paused
11166         when pausing.
11167         (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11168         (rb_shell_player_property_row_activated_cb):
11169         Get the entry to play using the query model, not the entry view.
11170         (rb_shell_player_sync_buttons): Update entry view state while we're
11171         here.
11172         (rb_shell_player_set_playing_source_internal): Update entry view state
11173         (rb_shell_player_get_playing): Ask the entry view, not the player.
11174         This now returns TRUE when paused.  This makes rb_shell_set_elapsed 
11175         and rb_shell_set_window_title work properly, so you get "(Paused)" in
11176         the window title and tray icon tooltip.
11177         (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11179         * sources/rb-iradio-source.c, sources/rb-library-source.c,
11180         sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11181         (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11182         view constructor, pass the source in to the song info widget
11183         constructor.
11185         * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11186         Use 'selection-changed' instead of 'changed', since that's what the
11187         clipboard cares about.
11188         (rb_shell_clipboard_set_source): Don't die if source == NULL
11190 2005-12-10  James Livingston  <jrl@ids.org.au>
11192         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11193         * sources/rb-playlist-source-recorder.c:
11194         (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11195         stuff not use the deprecated API when compiled against 2.13
11197 2005-12-10  James Livingston  <jrl@ids.org.au>
11199         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11201         * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11202         problem where the genre tag was getting set to the artist. Closes bug
11203         323642.
11205 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11207         * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11208         Return NULL if can't get first iter.
11210         Fixes #323663
11212 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11214         * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11215         updated rb_station_properties_dialog_new API.
11216         (rb_iradio_source_add_from_playlist): New public function.
11217         (rb_iradio_source_first_time_changed): Use add_from_playlist.
11219         * shell/rb-shell.c (new_station_location_added): Handle
11220         iradio location added signal.
11221         (rb_shell_cmd_new_station): Use new iradio station dialog.
11223         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button.  Fix typo.
11224         (rb_station_properties_dialog_new): Don't squeeze new
11225         station functionality into this class.
11226         (rb_station_properties_dialog_response_cb): ditto.
11227         (rb_station_properties_dialog_update_title): Make
11228         consistent with other properties dialogs.
11229         (rb_station_properties_dialog_location_changed_cb): Do nothing.
11231         * iradio/rb-new-station-dialog.[ch]: 
11232         * iradio/Makefile.am: Add new station dialog.
11234         * data/glade/station-new.glade: New file based on
11235         new podcast feed dialog.
11236         * data/glade/station-properties.glade: Updated to
11237         be consistent with song properties dialog.
11239         Fixes #323306.
11241 2005-12-10  James Livingston  <jrl@ids.org.au>
11243         patch by: Ståle Lyngaas <staale@lyngaas.com>
11245         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11246         submit songs longer than 30 minutes. Fixes bug 323639.
11248 2005-12-09  William Jon McCann  <mccann@jhu.edu>
11250         * shell/rb-shell.c (idle_save_playlist_manager): Use new
11251         async save function.
11252         (rb_shell_finalize): Remove save timeout sources.  Reorder
11253         steps a bit to make saving db and playlists a bit more
11254         failsafe in case something goes wrong later.
11255         (rb_shell_constructor): Keep track of save timeout source.
11256         (add_to_library_response_cb): Keep track of db save timeout source.
11258         * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11259         g_atomic.
11260         (rb_playlist_manager_shutdown): New function to shutdown
11261         threads etc. before exit.
11262         (rb_playlist_manager_finalize): Moved handling outstanding
11263         threads stuff to shutdown since if there are outstanding threads
11264         they hold a ref and finalize is never called.
11265         (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11266         of signal which may be required for sync save.
11267         (rb_playlist_manager_save_playlists_async): Renamed old
11268         save_playlists to save_playlists_async.  Use g_atomic.
11269         (rb_playlist_manager_save_playlists): New function to
11270         perform sync saves (symmetric with RhythmDB API).
11271         (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11273         * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11274         Style consistency anality.
11275         (rhythmdb_finalize): Remove save timeout source.
11276         (rhythmdb_set_property, rhythmdb_get_property) 
11277         (rhythmdb_process_events): More anality and keep track of
11278         save timeout source.
11279         (action_thread_main): No need to call g_thread_exit.
11280         (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored) 
11281         (rhythmdb_query_parse_valist, rhythmdb_query_free) 
11282         (write_encoded_gvalue, read_encoded_property): La la la.
11284         Fixes #322940.
11286 2005-12-10  James Livingston  <jrl@ids.org.au>
11288         * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11289         non-audio files.
11291 2005-12-10  James Livingston  <jrl@ids.org.au>
11293         * Makefile.am:
11294         * configure.ac: remove the rpm spec files, so that automake works.
11295         oops
11297         * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11298         locking issue
11300 2005-12-09  James Livingston  <jrl@ids.org.au>
11302         * debian/: try to get cvs to actually remove the files
11304 2005-12-09  James Livingston  <jrl@ids.org.au>
11306         * rhythmbox.spec.in:
11307         * debian/: remove the distro package stuff, they are *really* old, and
11308         downstream manage it anyway.
11310 2005-12-09  Jonathan Matthew  <jonathan@kaolin.hn.org>
11312         Rework play orders to work off query models rather than 
11313         entry views, and track the playing entry themselves rather
11314         than relying on the entry view to do it.  This makes the entry
11315         view mostly just a widget. Closes bug 323612.
11317         * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11318         Use query model rather than entry view to get the number
11319         of entries in playlists.
11321         * rhythmdb/rhythmdb-query-model.{c.h}
11322         (rhythmdb_query_model_tree_path_to_entry),
11323         (rhythmdb_query_model_iter_to_entry),
11324         (rhythmdb_query_model_get_next_from_entry),
11325         (rhythmdb_query_model_get_previous_from_entry):
11326         New utility functions for iterating through query models.
11327         (rhythmdb_query_model_compute_status_normal):
11328         Have one copy of this code, not four.
11330         * shell/rb-play-order.{c,h}:
11331         Add signals for when next/previous availability changes, and
11332         when the playing entry is removed, and add a property for
11333         the current playing entry.  Add gtkdoc comments too.
11334         (rb_play_order_class_init): Add new property and signals.
11335         (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11336         (rb_play_orer_query_model_changed_cb),
11337         (rb_play_order_query_model_changed): 
11338         Use query model rather than entry view.
11339         (rb_play_order_set_property), (rb_play_order_get_property):
11340         Handle new playing-entry property.  Call playing_entry_changed virtual
11341         method so subclasses can do any processing required.
11342         (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11343         (rb_play_order_set_playing_entry):
11344         Just use the playing-entry property.
11345         (rb_play_order_get_query_model), (rb_play_order_model_not_empty): 
11346         Utility methods for subclasses.
11347         (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11348         Update next/previous availability, check if the playing entry
11349         was removed.
11350         (default_playing_entry_removed):
11351         Keep the current behaviour of just stopping playback when the 
11352         playing entry is deleted.
11353         (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11354         these for subclasses that don't have go_next/go_previous, but do
11355         have get_next/get_previous.
11356         (rb_play_order_update_have_next_previous): Emit signal if the
11357         availability of next/previous entries has changed.
11359         * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11360         shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11361         Use G_DEFINE_TYPE, replace entry view iterator with query model 
11362         methods.
11363         (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11364         on the last song in the shuffled order, go back to the start. This
11365         means if you press 'play' again you'll get the whole order again, not
11366         just one song.
11368         * shell/rb-shell-player.c:
11369         (rb_shell_player_get_playing_entry), (info_available_cb): Ask the 
11370         play order rather than the entry view.
11371         (rb_shell_player_set_property): Update the play order when the
11372         selected source changes and we aren't playing anything.
11373         (rb_shell_player_sync_play_order): Copy the playing entry across to
11374         the new play order so playback continues from the same song, and watch
11375         for updates to have_next/have_previous.
11376         (rb_shell_player_play_order_update_cb): Enable/disable the
11377         next/previous actions when next/previous entry availability changes.
11378         (rb_shell_player_jump_to_current): Just use the play order's idea of
11379         what's playing, not the entry view's; if not playing anything, clear
11380         the selection, so when a playlist ends and you hit play again, it'll
11381         start at the start rather than the end.
11382         (rb_shell_player_do_previous): restructure a bit.
11383         (rb_shell_player_do_next): restructure, jump to new playing entry in
11384         an idle handler instead of directly.
11385         (rb_shell_player_do_previous_or_seek): Only try to go to the previous
11386         song if there is one.
11387         (rb_shell_player_playpause): Jump to playing song, don't update the
11388         play order if we got the song from the selection.
11389         (rb_shell_player_playing_entry_deleted_cb): Not needed.
11390         (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
11391         looks after next/previous actions now.  Don't break if called while
11392         there is no selected source.
11393         (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
11394         (rb_shell_player_set_playing_source_internal),
11395         (rb_shell_player_error): No need to track the attempted playing entry
11396         any more, since the play order does that.
11398         * shell/rb-shell.c:
11399         (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
11400         rb_shell_player_get_playing_entry rather than going through the entry
11401         view.
11403         * shell/rb-statusbar.c (rb_statusbar_set_property),
11404         (rb_statusbar_source_status_changed_cb): Listen to the source rather 
11405         than the entry view for status bar text changes.
11406         (rb_statusbar_sync_status): Ask the query model directly
11408         * sources/rb-source.{c}: Add query model property.
11409         (default_get_status): Get status text from query model, should be
11410         suitable for most sources.
11411         (rb_source_set_property): Listen for changes to the query model 
11412         to update the status text.
11413         (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
11414         (idle_emit_status_changed): Emit status-changed signals when query
11415         model changes. 
11417         * sources/rb-library-source.c, sources/rb-podcast-source.c:
11418         (impl_get_status): Not needed, RBSource does this now
11419         (rb_library_source_do_query) (rb_podcast_source_do_query): 
11420         Update RBSource's query model reference.
11422         * sources/rb-playlist-source.c:
11423         Remove query-model property, since RBSource has one now
11424         (impl_get_status): Not needed, RBSource does this now
11425         (rb_playlist_source_row_deleted): Use query model iterator helper
11426         function.
11427         (rb_playlist_source_set_query_model): Update RBSource's query model
11428         reference too.
11430         * sources/rb-iradio-source.c:
11431         (impl_get_status): Ask the query model directly.
11432         (rb_iradio_source_do_query): Update RBSource's query model reference
11433         when we create a new query.
11435         * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
11436         Use query model rather than entry view.
11438         * widgets/rb-entry-view.{c,h}: 
11439         Remove playing_entry_deleted signal (now in play order).
11440         (entry_from_tree_path), (entry_from_tree_iter): Not needed
11441          as RhythmDBQueryModel has equivalent helper functions.
11442         (rb_entry_view_*): Use query model helpers instead of the above two
11443         functions.
11445 2005-12-09  James Livingston  <jrl@ids.org.au>
11447         * configure.ac:
11448         * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
11449         (rb_recorder_enabled):
11450         * shell/rb-removable-media-manager.c: (poll_tray_opened):
11451         * sources/rb-playlist-source-recorder.c:
11452         (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
11453         whether libnautilusburn has the _drive_unref function, and if so use
11454         it. Stops it complaining about deprecated API.
11456 2005-12-09  James Livingston  <jrl@ids.org.au>
11458         * configure.ac: drop the minimum gstreamer version back down, it
11459         accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
11461 2005-12-09  James Livingston  <jrl@ids.org.au>
11463         * widgets/rb-song-info.c: (rb_song_info_class_init),
11464         (rb_song_info_show), (rb_song_info_constructor),
11465         (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
11466         (rb_song_info_forward_clicked_cb): save metadata changes when the
11467         Next/Previous buttons are pressed (closes bug 320952). use
11468         G_DEFINE_TYPE.
11470 2005-12-09  James Livingston  <jrl@ids.org.au>
11472         Patch by: <jonathan@kaolin.hn.org>
11474         * sources/rb-iradio-source.c:
11475         (stations_view_drag_data_received_cb):
11476         * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
11477         of urls. Fixes bug 323610.
11479 2005-12-09  James Livingston  <jrl@ids.org.au>
11481          patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
11482          GStreamer 0.10. DAAP support for 0.10 isn't done yet.
11484         * configure.ac:
11485         * metadata/rb-metadata-gst.c:
11486         * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
11487         (rb_player_construct), (rb_player_new):
11488         * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
11489         (rb_recorder_gst_signal_error), (pipe_message),
11490         (rb_recorder_new_pad_cb), (rb_recorder_construct),
11491         (rb_recorder_new):
11492         * shell/main.c: (main):
11493         * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
11494         (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
11496 2005-12-07  Jonathan Matthew  <jonathan@kaolin.hn.org>
11498         * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
11500         * shell/rb-playlist-manager.c:
11501           (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
11502           (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
11503           (rb_playlist_manager_set_automatic_playlist),
11504           (rb_playlist_manager_cmd_new_automatic_playlist),
11505           (rb_playlist_manager_cmd_edit_automatic_playlist):
11506            Use new playlist subclasses.
11507           (rb_playlist_manager_save_playlists): Only read the dirty flag
11508            for local playlists, minor pointless reformatting
11510         * sources/Makefile.am: add new files
11512         * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
11513           split lots of stuff out into two
11514           new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
11515           make RBPlaylistSource abstract, add virtual methods for showing a
11516           popup for the entry view and saving the playlist to XML.
11517           Other stuff is subclass-specific, or already virtual in RBSource.
11519         * sources/rb-playlist-xml: Define playlist XML tags and attributes
11520           in one place, since they're used across three source files now
11522         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
11523           Use new static playlist class
11525         * sources/rb-ipod-source.c: (add_rb_playlist):
11526           Use new static playlist class
11528         * sources/rb-static-playlist-source.{c,h},
11529         source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
11530         files.
11532         * po/POTFILES.in: add new files
11534 2005-12-07  James Livingston  <jrl@ids.org.au>
11536         * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
11537         (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
11538         metadata loads not attempt to write changes to disk.
11540 2005-12-07  James Livingston  <jrl@ids.org.au>
11542         patch by: Alex Lancaster <alexl@users.sourceforge.net>
11544         * data/glade/song-info-multiple.glade:
11545         * widgets/rb-song-info.c: (rb_song_info_constructor),
11546         (rb_song_info_sync_entries_multiple): allow the year to be changed on
11547         multiple songs at once.
11549 2005-12-06  James Livingston  <jrl@ids.org.au>
11551         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11552         (rhythmdb_entry_set_visibility): emit signal when visibility changes.
11554 2005-12-06  James Livingston  <jrl@ids.org.au>
11556         * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
11557         names rather than adding a horizontal scroll bar.
11559 2005-12-06  James Livingston  <jrl@ids.org.au>
11561         * rhythmdb/rhythmdb-query-model.c:
11562         (rhythmdb_query_model_update_limited_entries),
11563         (rhythmdb_query_model_drag_data_received): remove some pointless debug
11564         messages
11566         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
11567         (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
11568         always hide rather than remove DB entries, which will make RB not lose
11569         information when tag editing happens or people move files to trash and
11570         then change their mind. Also fix some races where the monitoring code
11571         would notice the temporary files generated by saving metadata.
11573 2005-12-05  William Jon McCann  <mccann@jhu.edu>
11575         * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
11576         Hide internals and add tooltips.
11577         (rb_song_display_box_size_allocate): Hide internals.
11578         (sanitize_string, info_url): Copied from rb-header.
11579         (rb_song_display_box_sync): New public function.
11581         * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
11582         (rb_header_init): Use a separate row for the seek bar.
11583         (rb_header_finalize): Don't unref widgets.
11584         (rb_header_sync): Use rb_song_display_box_sync.
11585         (rb_header_set_urldata)
11586         (rb_header_set_show_artist_album): Hide instead of remove widgets.
11587         (rb_header_set_show_position_slider): Set visibility of seek bar.
11588         (rb_header_set_show_timeline): Set sensitivity of seek bar.
11589         (rb_header_get_elapsed_string): Don't shift when you first start playback.
11591         * shell/rb-statusbar.c (rb_statusbar_init)
11592         (rb_statusbar_sync_state): Remove shuffle and repeat controls.
11594         * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
11595         (rb_shell_constructor): Remove hseparator.  Monitor
11596         toolbar visibility settings.  Add toolbar.  Add
11597         volume button to toolbar.  Add tooltips for volume button.
11598         (rb_shell_view_toolbar_changed_cb) 
11599         (rb_shell_sync_toolbar_visibility)
11600         (toolbar_visibility_changed_cb): Set visibility of
11601         toolbar.
11602         (rb_shell_sync_smalldisplay): Set the toolbar style to
11603         icons only when in small display mode.
11604         (rb_shell_volume_widget_changed_cb): Save volume setting.
11606         * shell/rb-shell-player.c (rb_shell_player_constructor):
11607         Remove pause and stop actions.  Make play action "important"
11608         so that text is visible in horizontal toolbar position.
11609         Remove control buttons.
11610         (rb_shell_player_init) 
11611         (rb_shell_player_sync_song_position_slider_visibility):
11612         Set visbibility of seek bar.
11613         (rb_shell_player_cmd_play, rb_shell_player_playpause):
11614         Make play action a toggle.
11615         (rb_shell_player_sync_volume): Volume control moved
11616         to player.
11617         (gconf_song_position_slider_visibility_changed):
11618         Set visbibility of seek bar.
11619         (rb_shell_player_sync_buttons):
11620         Set sensitivity of actions instead of buttons.
11621         (rb_shell_player_playing_changed_cb): Add callback
11622         for player notify::playing changes.
11624         * lib/rb-preferences.h: Add hide toolbar and seek
11625         bar key names.
11627         * data/ui/rhythmbox-ui.xml: Add hide toolbar and
11628         seek bar menu items.  Remove pause and stop actions
11629         from the control menu.  Add a toolbar.
11631         * data/rhythmbox.schemas: Add toolbar_hidden
11632         song_position_slider_hidden keys.
11634         Patch by: James Livingston  <jrl@ids.org.au>
11635                   William Jon McCann  <mccann@jhu.edu>
11636         Fixes #316238.
11638 2005-12-05  James Livingston  <jrl@ids.org.au>
11640         * data/glade/library-prefs.glade:
11641         * data/rhythmbox.schemas:
11642         * lib/rb-preferences.h:
11643         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
11644         (rhythmdb_sync_library_location):
11645         * sources/rb-library-source.c: (rb_library_source_class_init),
11646         (rb_library_source_finalize), (rb_library_source_constructor),
11647         (impl_get_config_widget), (rb_library_source_preferences_sync),
11648         (rb_library_source_watch_toggled_cb): allow people to disable library
11649         monitoring, because with nothing set the file chooser button selects
11650         the Home folder (and hence that will get monitored).
11652 2005-12-04  Ryan P Skadberg  <skadz@stigmata.org>
11654         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
11655         attempt to fix problem with RSS parsing showing invalid feed types.
11656         Fixes bug 323153
11658 2005-12-04  James Livingston  <jrl@ids.org.au>
11660         * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11661         (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
11662         importing a remote directory not block the UI.
11664 2005-12-03  Dennis Cranston  <dennis_cranston@yahoo.com>
11666         * data/glade/podcast-feed-properties.glade:
11667         * data/glade/podcast-properties.glade:  HIG fix, closes bug 323131.
11669 2005-12-04  James Livingston  <jrl@ids.org.au>
11671         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11673         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
11674         to && to fix a mistake in the earlier podcast patch.
11676 2005-12-03  James Livingston  <jrl@ids.org.au>
11678         * data/glade/podcast-new.glade:
11679         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11680         (rb_new_podcast_dialog_text_changed): remove some unused stuff.
11682         * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
11683         GValue, which stops occasional errors.
11685         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11686         compile issue.
11688 2005-12-03  James Livingston  <jrl@ids.org.au>
11690         patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11692         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
11693         crasher with some podcasts feeds.
11695 2005-12-03  James Livingston  <jrl@ids.org.au>
11697         * data/rhythmbox.schemas: fix the gconf schema
11699 2005-12-03  James Livingston  <jrl@ids.org.au>
11701         patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
11702         add a selection timeout to the sourcelist. This lets you hold a track
11703         over the playlist source, and then have the view switch so you can
11704         insert the track in the middle of the playlist. Closes bug 323044.
11706         * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
11707         (select_on_drag_timeout), (remove_select_on_drag_timeout),
11708         (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
11709         (rb_tree_dnd_add_drag_dest_support):
11710         * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
11711         timeout.
11713         * sources/rb-sourcelist-model.c:
11714         (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
11715         the source list.
11717 2005-12-02  Bastien Nocera  <hadess@hadess.net>
11719         * data/glade/audioscrobbler-prefs.glade: add a space before the web
11720         links, so that the text doesn't touch the button
11722 2005-12-02  James Livingston  <jrl@ids.org.au>
11724         Add full support for gnome-vfs remote files. Closes bug 140355.
11726         * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
11727         (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
11728         for authentication information from the user doesn't block the UI.
11730         (rhythmdb_entry_set_visibility): don't emit the signal twice.
11732         * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
11733         (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
11734         (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
11735         (rhythmdb_process_stat_event), (emit_load_error_idle),
11736         (rhythmdb_process_metadata_load),
11737         (rhythmdb_process_queued_entry_set_event),
11738         (rhythmdb_process_file_created_or_modified),
11739         (rhythmdb_process_file_deleted), (rhythmdb_process_events),
11740         (queue_stat_uri), (add_thread_main),
11741         (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
11742         (rhythmdb_load), (rhythmdb_save_thread_main),
11743         (threadsafe_entry_set), (rhythmdb_query_internal),
11744         (query_thread_main), (rhythmdb_do_full_query_async_parsed),
11745         (rhythmdb_do_full_query_internal),
11746         (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
11747         (rhythmdb_volume_unmounted_cb),
11748         (rhythmdb_check_changed_file): trivial changes to support the
11749         asynchronous stats.
11751         * shell/main.c: (main): activate the authentication manager.
11753         * shell/rb-playlist-manager.c:
11754         (rb_playlist_manager_cmd_load_playlist),
11755         (rb_playlist_manager_cmd_save_playlist):
11756         * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
11757         (rb_shell_cmd_add_file_to_library):
11758         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
11759         * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
11760         remote files.
11762 2005-12-02  James Livingston  <jrl@ids.org.au>
11764         * shell/rb-playlist-manager.c: makes playlist menu items use the
11765         elipses correctly. Fixes bug 322283.
11767 2005-12-02  James Livingston  <jrl@ids.org.au>
11769         * shell/rb-playlist-manager.c:
11770         (rb_playlist_manager_load_playlists): fix silly mistake
11772 2005-12-02  James Livingston  <jrl@ids.org.au>
11774         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
11775         print out metadata-write unless --debug was passed.
11777         * rhythmdb/rhythmdb.c: (rhythmdb_load):
11778         * shell/rb-playlist-manager.c:
11779         (rb_playlist_manager_load_playlists): block writes to disk if they are
11780         still being loaded.
11782 2005-12-02  James Livingston  <jrl@ids.org.au>
11784         * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
11785         ctrl-T, because Ctrl-D is used by "small mode"
11787 2005-12-02  James Livingston  <jrl@ids.org.au>
11789         * shell/rb-shell-preferences.c:
11790         (rb_shell_preferences_append_view_page):
11791         * sources/rb-library-source.c: (impl_get_config_widget):
11792         * sources/rb-podcast-source.c: (impl_get_config_widget):
11793         * sources/rb-source.c: (rb_source_get_config_widget):
11794         * sources/rb-source.h: Make the preference actually work.
11796         * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
11797         if Rhythmbox is being run for the first time.
11799 2005-12-02  James Livingston  <jrl@ids.org.au>
11801         Add support for Rhythmbox to watch your library, and automatically add
11802         new tracks. Fixes bug 160159.
11804         * data/glade/library-prefs.glade: add "library location" preference
11805         * data/rhythmbox.schemas: add gconf key for the library location
11807         * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
11808         (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
11809         (rhythmdb_finalize), (rhythmdb_directory_change_cb),
11810         (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
11811         (rhythmdb_process_metadata_load), (rhythmdb_process_events),
11812         (rhythmdb_load_thread_main), (rhythmdb_load),
11813         (monitor_subdirectory), (monitor_library_directory),
11814         (monitor_entry_file), (rhythmdb_sync_library_location),
11815         (library_location_changed_cb), (rhythmdb_check_changed_file),
11816         (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
11817         specifiec in the gconf key for new additions. Also fix monitoring code
11818         so that it works properly, and notices deletions.
11820         * lib/rb-preferences.h:
11821         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
11822         (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
11823         * shell/rb-audioscrobbler.h:
11824         * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
11825         (rb_shell_preferences_append_view_page),
11826         (rb_shell_preferences_new):
11827         * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
11828         it's preferences pane, so that we don't need #ifdef's through
11829         rb-shell-preferences.
11831         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
11832         (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
11833         "preferences" property, so that sources can acccess it. This is needed
11834         because the library location pref needs to take effect when the window
11835         is closed.
11837         * sources/rb-library-source.c:
11838         (rb_library_source_library_location_changed),
11839         (rb_library_source_dispose), (rb_library_source_finalize),
11840         (rb_library_source_constructor), (impl_get_config_widget),
11841         (rb_library_source_preferences_sync),
11842         (rb_library_source_process_library_location_change),
11843         (rb_library_source_prefs_update),
11844         (rb_library_source_process_library_handle_selection),
11845         (rb_library_source_library_location_cb): set up and control the
11846         "library location" preference.
11848         * sources/rb-audiocd-source.c:(rb_source_class_init):
11849         * sources/rb-source.c: (rb_source_class_init): remove some pointless
11850         code.
11852 2005-12-01  William Jon McCann  <mccann@jhu.edu>
11854         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init) 
11855         (rb_feed_podcast_properties_dialog_update_title): 
11856         * data/glade/podcast-feed-properties.glade:
11857         Make the feed properties dialog consistent with the podcast
11858         properties dialog.
11860 2005-12-01  William Jon McCann  <mccann@jhu.edu>
11862         * metadata/.cvsignore: 
11863         * po/.cvsignore: 
11864         * podcast/.cvsignore: Updated.
11866         * shell/main.c (main): Support DBus 0.6 flags.
11868 2005-11-30  Bastien Nocera  <hadess@hadess.net>
11870         * data/ui/rhythmbox-ui.xml:
11871         * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
11872         (rhythmbd_entry_move_to_trash_set_error),
11873         (rhythmdb_entry_move_to_trash):
11874         * rhythmdb/rhythmdb.h:
11875         * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
11876         (rb_shell_clipboard_cmd_delete),
11877         (rb_shell_clipboard_cmd_move_to_trash):
11878         * sources/rb-library-source.c: (rb_library_source_class_init),
11879         (impl_delete), (impl_move_to_trash):
11880         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
11881         (impl_delete), (impl_move_to_trash):
11882         * sources/rb-removable-media-source.c:
11883         (rb_removable_media_source_class_init):
11884         * sources/rb-source.c: (rb_source_class_init),
11885         (rb_source_can_move_to_trash), (rb_source_delete),
11886         (rb_source_move_to_trash):
11887         * sources/rb-source.h:
11888         Add move_to_trash member for the sources, implement move to trash for
11889         the library and playlists
11890         Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
11891         local files to the trash, and deleting them from the database
11892         (Closes: #315389)
11894 2005-11-30  William Jon McCann  <mccann@jhu.edu>
11896         * shell/rb-tray-icon.c (rb_tray_icon_class_init) 
11897         (rb_tray_icon_init, rb_tray_icon_finalize): 
11898         * shell/rb-statusbar.c (rb_statusbar_class_init) 
11899         (rb_statusbar_init, rb_statusbar_finalize): 
11900         * shell/rb-source-header.c (rb_source_header_class_init) 
11901         (rb_source_header_init, rb_source_header_finalize): 
11902         * shell/rb-shell.c (rb_shell_class_init, rb_shell_init) 
11903         (rb_shell_finalize): 
11904         * shell/rb-shell-preferences.c (rb_shell_preferences_class_init) 
11905         (rb_shell_preferences_init, rb_shell_preferences_finalize): 
11906         * shell/rb-shell-player.c (rb_shell_player_class_init) 
11907         (rb_shell_player_init, rb_shell_player_finalize): 
11908         * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init) 
11909         (rb_shell_clipboard_init, rb_shell_clipboard_finalize): 
11910         * shell/rb-playlist-manager.c (rb_playlist_manager_class_init) 
11911         (rb_playlist_manager_init, rb_playlist_manager_finalize): 
11912         * shell/rb-play-order.c (rb_play_order_class_init) 
11913         (rb_play_order_init, rb_play_order_finalize): 
11914         * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init) 
11915         (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize): 
11916         * shell/rb-play-order-random.c (rb_random_play_order_class_init) 
11917         (rb_random_play_order_init, rb_random_play_order_finalize): 
11918         * shell/rb-history.c (rb_history_class_init, rb_history_init) 
11919         (rb_history_finalize): 
11920         * shell/rb-commander.c (rb_commander_class_init) 
11921         (rb_commander_init, rb_commander_finalize): 
11922         * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init) 
11923         (rb_audioscrobbler_init, rb_audioscrobbler_finalize): 
11924         * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init) 
11925         (rb_remote_bonobo_init, rb_remote_bonobo_finalize): 
11926         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init) 
11927         (rb_podcast_properties_dialog_init) 
11928         (rb_podcast_properties_dialog_finalize): 
11929         * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init) 
11930         (rb_podcast_manager_init, rb_podcast_manager_finalize): 
11931         * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init) 
11932         (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize): 
11933         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init) 
11934         (rb_feed_podcast_properties_dialog_init) 
11935         (rb_feed_podcast_properties_dialog_finalize): 
11936         * metadata/rb-metadata-gst.c (rb_metadata_class_init) 
11937         (rb_metadata_init, rb_metadata_finalize): 
11938         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init) 
11939         (rb_station_properties_dialog_init) 
11940         (rb_station_properties_dialog_finalize): 
11941         * daapsharing/rb-daap-share.c (rb_daap_share_class_init) 
11942         (rb_daap_share_init, rb_daap_share_dispose): 
11944         Use g_type_class_add_private in all classes. Closes bug 313688.
11945         
11946 2005-11-30  James Livingston  <jrl@ids.org.au>
11948         patch by: William Jon McCann <mccann@jhu.edu> to use
11949         g_type_class_add_private in all classes. Closes bug 313688.
11951         * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
11952         (rb_thread_finalize):
11953         * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
11954         (rb_player_finalize):
11955         * rhythmdb/rhythmdb-property-model.c:
11956         (rhythmdb_property_model_class_init),
11957         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
11958         * rhythmdb/rhythmdb-query-model.c:
11959         (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
11960         (rhythmdb_query_model_finalize):
11961         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
11962         (rhythmdb_tree_init), (rhythmdb_tree_finalize):
11963         * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
11964         (rhythmdb_finalize):
11965         * sources/rb-daap-source.c: (rb_daap_source_class_init),
11966         (rb_daap_source_init), (rb_daap_source_dispose):
11967         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
11968         (rb_iradio_source_init), (rb_iradio_source_finalize):
11969         * sources/rb-library-source.c: (rb_library_source_class_init),
11970         (rb_library_source_init), (rb_library_source_finalize):
11971         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
11972         (rb_playlist_source_init), (rb_playlist_source_dispose):
11973         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
11974         (rb_podcast_source_init), (rb_podcast_source_finalize):
11975         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
11976         (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
11977         * sources/rb-sourcelist-model.h:
11978         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
11979         (rb_sourcelist_init), (rb_sourcelist_finalize):
11980         * sources/rb-sourcelist.h:
11981         * widgets/disclosure-widget.c: (finalize), (class_init), (init):
11982         * widgets/rb-cell-renderer-rating.c:
11983         (rb_cell_renderer_rating_init),
11984         (rb_cell_renderer_rating_class_init),
11985         (rb_cell_renderer_rating_finalize):
11986         * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
11987         (rb_druid_finalize):
11988         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
11989         (rb_entry_view_init), (rb_entry_view_finalize):
11990         * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
11991         (rb_header_finalize):
11992         * widgets/rb-load-failure-dialog.c:
11993         (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
11994         (rb_load_failure_dialog_finalize):
11995         * widgets/rb-property-view.c: (rb_property_view_class_init),
11996         (rb_property_view_init), (rb_property_view_finalize):
11997         * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
11998         (rb_rating_finalize):
11999         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12000         (rb_search_entry_init), (rb_search_entry_finalize):
12001         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12002         (rb_simple_view_init), (rb_simple_view_finalize):
12003         * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12004         (rb_song_display_box_init), (rb_song_display_box_finalize):
12005         * widgets/rb-song-info.c: (rb_song_info_class_init),
12006         (rb_song_info_init), (rb_song_info_finalize):
12007         * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12008         (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12010 2005-11-30  James Livingston  <jrl@ids.org.au>
12012         * iradio/rb-station-properties-dialog.c:
12013         (rb_station_properties_dialog_init),
12014         (rb_station_properties_dialog_new):
12015         * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12016         * lib/rb-glade-helpers.h:
12017         * podcast/rb-feed-podcast-properties-dialog.c:
12018         (rb_feed_podcast_properties_dialog_init),
12019         (rb_feed_podcast_properties_dialog_new):
12020         * podcast/rb-podcast-properties-dialog.c:
12021         (rb_podcast_properties_dialog_init),
12022         (rb_podcast_properties_dialog_new):
12023         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12024         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12025         * sources/rb-library-source.c: (impl_get_config_widget):
12026         * sources/rb-playlist-source-recorder.c:
12027         (rb_playlist_source_recorder_init):
12028         * widgets/rb-song-info.c: (rb_song_info_construct_single),
12029         (rb_song_info_constructor): create a single rb_glade_boldify_label()
12030         in rb-glade-helpers, rather than having eight implementation
12031         throughout the code.
12033 2005-11-30  James Livingston  <jrl@ids.org.au>
12035         * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12036         * lib/rb-util.h:
12037         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12038         move the duration->string function into rb-utils, as it gets used in a
12039         few places.
12041         patch by: William Jon McCann <mccann@jhu.edu>
12043         * data/glade/podcast-properties.glade:
12044         * podcast/rb-podcast-properties-dialog.c:
12045         (rb_podcast_properties_dialog_init),
12046         (rb_podcast_properties_dialog_update),
12047         (rb_podcast_properties_dialog_update_title),
12048         (rb_podcast_properties_dialog_update_feed),
12049         (rb_podcast_properties_dialog_update_duration),
12050         (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12051         info dialog look more like the song info dialog. Use the same "Feed"
12052         value that is displayed in the treeview (ie. the album field), displays
12053         the duration, uses units in the bitrate field, and sort the fields in
12054         the same order.
12056 2005-11-29  James Livingston  <jrl@ids.org.au>
12058         * rhythmdb/rhythmdb-marshal.list:
12059         * rhythmdb/rhythmdb.h:
12060         * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12061         (emit_load_error_idle), (rhythmdb_process_metadata_load),
12062         (entry_to_rb_metadata), (emit_save_error_idle),
12063         (action_thread_main): emit error signal when metadata write fails.
12065         * shell/rb-shell.c: (rb_shell_constructor),
12066         (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12067         "metadata save" error and display it to the user.
12069 2005-11-29  James Livingston  <jrl@ids.org.au>
12071         * data/ui/rhythmbox-ui.xml:
12072         * sources/rb-podcast-source.c:
12073         (rb_podcast_source_songs_show_popup_cb),
12074         (rb_podcast_source_cmd_download_post),
12075         (rb_podcast_source_cmd_cancel_download): split download and cancel
12076         download commands. Replace usage of "Post" with "Esisode". Fixes bug
12077         321653.
12079 2005-11-18  William Jon McCann  <mccann@jhu.edu>
12081         * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12082         title on alert dialogs per the HIG.
12084         * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12085         the term Burn.
12086         (free_song_list): Routine to free song list.
12087         (rb_playlist_source_recorder_finalize): Use free_song_list.
12088         (rb_playlist_source_recorder_add_from_model): Return FALSE
12089         if unable to add all songs.  Check that duration of all
12090         songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12091         Fixes #321753.
12093         * sources/rb-playlist-source-recorder.c (check_media_length)
12094         (rb_playlist_source_recorder_start): Only check the duration
12095         and current media if the playlist length is longer than a
12096         standard CD (74 min).  Otherwise, just let the Recorder do the
12097         check.
12098         * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12099         drive at init.
12100         (rb_recorder_set_device): Don't leak drives.
12101         (rb_recorder_get_media_length): Use drive that was already set.
12102         (rb_recorder_burn): Let the recorder handle checking media type/size.
12103         Fixes bug 321754.
12105 2005-11-29  James Livingston  <jrl@ids.org.au>
12107         * rhythmdb/rhythmdb-query-model.c:
12108         (rhythmdb_query_model_set_sort_order):
12109         * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12110         emitting the tree-model "resorted" signal.
12112         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12113         (rb_entry_view_finalize), (rb_entry_view_set_property),
12114         (rb_entry_view_constructor), (rb_entry_view_resort_model):
12115         * widgets/rb-entry-view.h: add a function to resort the entry view,
12116         using the above function.
12118         * sources/rb-iradio-source.c:
12119         (rb_iradio_source_songs_view_sort_order_changed_cb):
12120         * sources/rb-library-source.c: (rb_library_source_finalize),
12121         (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12122         * sources/rb-playlist-source.c:
12123         (rb_playlist_source_songs_sort_order_changed_cb):
12124         * sources/rb-podcast-source.c:
12125         (rb_podcast_source_posts_view_sort_order_changed_cb),
12126         (rb_podcast_source_do_query): use the above function instead of
12127         re-creating the query model. This makes changing the sorting an order
12128         of magnitude faster, as it uses a single resorted signal rather than
12129         deleting and re-adding everything (which emits 2N signals). Closes bug
12130         315389.
12132 2005-11-29  James Livingston  <jrl@ids.org.au>
12134         patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12135         autosizing, which results in large speedups. Closes bug 312122.
12137         * po/ja.po: change the date format, so that it is a constant width
12139         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12140         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12141         * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12142         (rb_entry_view_constructor): make columns use fixed widths,
12143         disable column autosizing, and enable fixed-height mode.
12145         * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12146         (rb_entry_view_get_time_date_column_sample):
12147         * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12148         and get the canonical date format for the locale.
12150 ============ Version 0.9.2
12152 2005-11-28  James Livingston  <jrl@ids.org.au>
12154         * configure.ac: bump version to 0.9.2
12155         * NEWS: update with changes for 0.9.2
12157 2005-11-28  James Livingston  <jrl@ids.org.au>
12159         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12161         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12162         Disable saving, renaming and delting for DAAP playlists.
12163         Fixes bug 322627.
12165 2005-11-28  James Livingston  <jrl@ids.org.au>
12167         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12168         gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12169         prevent bug 322619.
12171         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12172         * sources/rb-removable-media-source.c:
12173         (rb_removable_media_source_class_init): fix ipod browser visibility
12174         problem.
12176 2005-11-28  James Livingston  <jrl@ids.org.au>
12178         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12179         Avahi 0.6 support actually work. Fixes bug 322519.
12181 2005-11-26  Ryan P Skadberg  <skadz@stigmata.org>
12183         * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12184         avahi is specified in --with-mdns
12186 2005-11-27  James Livingston  <jrl@ids.org.au>
12188         patch by: Bastien Nocera <hadess@hadess.net>
12190         * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12191         not the private one. Fixes bug 322485.
12193 2005-11-26  James Livingston  <jrl@ids.org.au>
12195         patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12196         Avahi 0.6, as well as 0.5.
12198         * configure.ac:
12199         * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12200         (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12201         (add_service):
12203 2005-11-25  James Livingston  <jrl@ids.org.au>
12205         * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12206         321926.
12208 2005-11-25  James Livingston  <jrl@ids.org.au>
12210         * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12211         correct type for checking the date against 0. Stops a warning when
12212         saving metadata.
12214 2005-11-25  James Livingston  <jrl@ids.org.au>
12216         * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12217         adjustment to be inside the element's limits. Without this songs that
12218         have large ReplayGain values will recieve no increase because they are
12219         outside the acceptable range, causing them to remain quiet.
12221 2005-11-25  James Livingston  <jrl@ids.org.au>
12223         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12224         * sources/rb-daap-source.c: (rb_daap_source_class_init):
12225         * sources/rb-ipod-source.c:
12226         * sources/rb-source.h:
12227         * sources/rb-library-source.h:
12228         * sources/rb-library-source.c: (rb_library_source_class_init),
12229         (rb_library_source_constructor),
12230         (rb_library_source_has_first_added_column),
12231         (rb_library_source_has_drop_support):
12232         * sources/rb-removable-media-source.c:
12233         (rb_removable_media_source_class_init): Make library-derived sources
12234         not show the Date Added column, as it doesn't make sense. Fixes bug
12235         322269.
12236         Move some of the feature funcs from the ipod and audio cd sources up to
12237         the removable media source.
12239 2005-11-24  James Livingston  <jrl@ids.org.au>
12241         * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12242         errors. oops.
12244 2005-11-24  James Livingston  <jrl@ids.org.au>
12246         * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12247         (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12248         (rb_iradio_source_constructor): Chain up dispose method and use
12249         G_DEFINE_TYPE
12251 2005-11-24  James Livingston  <jrl@ids.org.au>
12253         * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12254         mistake in the last commit that can cause crashes.
12256 2005-11-24  James Livingston  <jrl@ids.org.au>
12258         * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12259         instead of g_printerr.
12261         * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12262         rb_debug instead of g_warning. The message happens every time for
12263         removable media/daap shares, so it's not unusual.
12265 2005-11-24  James Livingston  <jrl@ids.org.au>
12267         patch by: Tom Parker <palfrey@tevp.net>
12269         * configure.ac: fix libsoup test for enabling daap
12271 2005-11-23  James Livingston  <jrl@ids.org.au>
12273         * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12274         (rb_query_creator_init), (rb_query_creator_constructor),
12275         (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12276         empty row to queries with no criteria. Fixes bug 322078. use
12277         G_DEFINE_TYPE.
12279 2005-11-23  James Livingston  <jrl@ids.org.au>
12281         patch by:  <baptiste.millemathias@gmail.com>
12283         * help/C/quick-reference.xml: update the quick reference to have the
12284         correct key bindings.
12286 2005-11-22  James Livingston  <jrl@ids.org.au>
12288         * sources/rb-library-source.c: (genres_selection_reset_cb),
12289         (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12290         reset the query when all browser selections are removed.
12292 2005-11-22  Jonathan Matthew  <jonathan@kaolin.hn.org>
12294         * podcast/rb-podcast-manager.c:
12295         (rb_podcast_manager_db_entry_deleted_cb):
12296         Use a custom loop to remove podcast posts, rather than
12297         gtk_tree_model_foreach(), as deleting the entries within
12298         that loop causes the iterator to return the first entry
12299         twice.  Instead, we need to find the next entry before
12300         removing the current one. Fixes bug 321956.
12301         (rb_podcast_manager_entry_remove_cb): No longer needed.
12303 2005-11-22  James Livingston  <jrl@ids.org.au>
12305         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12306         (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12307         up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12309 2005-11-22  James Livingston  <jrl@ids.org.au>
12311         * sources/rb-podcast-source.c:
12312         (rb_podcast_source_post_date_cell_sort_func),
12313         (rb_podcast_source_post_status_cell_sort_func),
12314         (rb_podcast_source_post_feed_cell_sort_func):
12315         * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12316         (rb_entry_view_album_sort_func),
12317         (rb_entry_view_double_ceiling_sort_func),
12318         (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12319         the entry's location as a last resort when sorting, so the sort order
12320         is stable. This will stop entries moving around when two entries have
12321         the same sorting, and one of them gets played.
12323 2005-11-22  James Livingston  <jrl@ids.org.au>
12325         * daapsharing/rb-daap-connection.c:
12326         (rb_daap_connection_class_init), (rb_daap_connection_init),
12327         (connection_get_password), (build_message),
12328         (http_response_handler), (http_get), (handle_server_info),
12329         (handle_login), (handle_update), (handle_database_info),
12330         (handle_song_listing), (handle_playlists),
12331         (handle_playlist_entries), (rb_daap_connection_new),
12332         (rb_daap_connection_constructor), (rb_daap_connection_logout),
12333         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12334         (rb_daap_connection_get_headers),
12335         (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12336         (rb_daap_connection_set_property),
12337         (rb_daap_connection_get_property):
12338         * daapsharing/rb-daap-connection.h:
12339         * sources/rb-daap-source.c: (rb_daap_source_dispose),
12340         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12341         (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12342         of destroying the object when it is going to be used by a callback and
12343         fixes a double-free. Fixes bugs 321930 and 322007.
12345 2005-11-22  James Livingston  <jrl@ids.org.au>
12347         * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12348         (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12349         notification if there aren't any. Fixes bug 321968.
12351 2005-11-22  James Livingston  <jrl@ids.org.au>
12353         * rhythmdb/rhythmdb-property-model.c:
12354         (rhythmdb_property_model_set_property),
12355         (rhythmdb_property_model_finalize),
12356         (rhythmdb_property_model_compare),
12357         (rhythmdb_property_model_insert),
12358         (rhythmdb_property_model_delete_prop): Fix property model sorting
12359         where the display and sort keys are different. Fixes bug 321980.
12361 2005-11-22  James Livingston  <jrl@ids.org.au>
12363         * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12364         when import as a file or passed on the command line, and load them as
12365         playlists.
12367 2005-11-22  James Livingston  <jrl@ids.org.au>
12369         patch by: Jonathan Matthew  <jonathan@kaolin.hn.org>
12371         * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
12372         (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
12373         a broken daap server. Fixes bug 321919.
12375 2005-11-22  James Livingston  <jrl@ids.org.au>
12377         * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
12378         drag-and-drop for both the episodes and feeds list.
12379         
12380         (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
12381         consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
12382         From Jonathan Matthew  <jonathan@kaolin.hn.org>.
12384         * widgets/rb-property-view.c: (rb_property_view_class_init),
12385         (rb_property_view_set_property), (rb_property_view_get_property),
12386         (rb_property_view_new), (rb_property_view_constructor):
12387         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12388         (rb_simple_view_new), (rb_simple_view_constructor):
12389         * widgets/rb-simple-view.h: add a "draggable" property to property
12390         views and set it to false for the feed list. Fixes bug 321284.
12392 2005-11-22  James Livingston  <jrl@ids.org.au>
12394         Patch from Jonathan Matthew  <jonathan@kaolin.hn.org>
12396         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12397         * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12398         * sources/rb-ipod-source.c: (add_rb_playlist):
12399         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12400         (rb_playlist_source_set_property),
12401         (rb_playlist_source_get_property), (rb_playlist_source_new),
12402         (impl_receive_drag), (rb_playlist_source_add_location),
12403         (rb_playlist_source_new_from_xml):
12404         * sources/rb-playlist-source.h: give playlists and (optional)
12405         entry-type, and reject entries that don't match. Fixes bug 322006.
12407 2005-11-21  James Livingston  <jrl@ids.org.au>
12409         * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
12410         (rb_source_header_finalize): remove the weak references when the
12411         source header is finalised. Stops the callbacks being called after the
12412         object is destroyed.
12414 2005-11-21  James Livingston  <jrl@ids.org.au>
12416         * shell/main.c: (main): don't try to acquite bonobo/dbus when
12417         --no-registration was passed. It causes warnings that make it
12418         impossible to run with --no-registration --g-fatal-warnings
12420 2005-11-21  James Livingston  <jrl@ids.org.au>
12422         * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
12423         of strings when they are still in use. Fixes bug 321547.
12425         (rb_daap_connection_destroy): fix memory leak
12427 2005-11-21  James Livingston  <jrl@ids.org.au>
12429         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12430         (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
12431         (rb_daap_mdns_resolve_cancel), (publish_cb),
12432         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
12433         support.
12435 2005-11-21  James Livingston  <jrl@ids.org.au>
12437         * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
12438         sorting by genre
12440 2005-11-20  James Livingston  <jrl@ids.org.au>
12442         * podcast/rb-podcast-manager.c:
12443         (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
12444         that we don't leak thread structures. Fixes bug 321636, and probably
12445         321775.
12447 2005-11-20  James Livingston  <jrl@ids.org.au>
12449         * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
12450         (lookup_cd):
12451         * podcast/rb-podcast-manager.c: (start_job),
12452         (rb_podcast_manager_db_entry_deleted_cb),
12453         (rb_podcast_manager_entry_remove_cb):
12454         * podcast/rb-podcast-parse.c: (rb_insert_item),
12455         (rb_podcast_parse_load_feed):
12456         * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
12457         * shell/rb-removable-media-manager.c:
12458         (rb_removable_media_manager_append_media_source):
12459         * shell/rb-shell.c: (add_to_library_response_cb):
12460         * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
12461         * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
12462         * sources/rb-iradio-source.c:
12463         (stations_view_drag_data_received_cb):
12464         * sources/rb-library-source.c: (string_list_equal),
12465         (impl_get_extra_views), (impl_receive_drag):
12466         * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
12467         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
12468         (impl_receive_drag):
12469         * widgets/rb-entry-view.c: (rb_entry_view_finalize),
12470         (rb_entry_view_append_column_custom), (harvest_entries):
12471         * widgets/rb-property-view.c:
12472         (rb_property_view_selection_changed_cb):
12473         * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
12474         switch from using g_list_append to g_list_prepend. This changes
12475         operations from O(n^2) to O(n), which in cases like deleting a lot of
12476         tracks can give huge improvements in speed. Closes bug 321696.
12478 2005-11-20  James Livingston  <jrl@ids.org.au>
12480         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12481         (rb_sourcelist_update_expander_visibility): fix indenting of child
12482         sources.
12484 2005-11-20  James Livingston  <jrl@ids.org.au>
12486         * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12487         (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
12488         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12489         (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
12490         (add_service), (entry_group_cb): dynamically allocate memory, rather
12491         than using static variables.
12493         * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
12494         re-enable the daap share if the name hasn't changed.
12495         * shell/rb-shell-preferences.c:
12496         (share_name_entry_focus_out_event_cb): don't ask the daap share to
12497         change it's name when the checkbox is disabled. Fixed bug 321748.
12499 2005-11-18  James Livingston  <jrl@ids.org.au>
12501         * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
12502         as hidden if it is on the current workspace.
12504 2005-11-17  William Jon McCann  <mccann@jhu.edu>
12506         * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func): 
12507         * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date) 
12508         (rb_podcast_properties_dialog_parse_time): 
12509         * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update) 
12510         (rb_feed_podcast_properties_dialog_parse_time):
12511         Rework the way the last mod time strings are created.  It was using
12512         thread unsafe functions, not creating value UTF, and not not checking
12513         the value of the result before modifying it.  This new method fixes
12514         these problems.
12516 2005-11-18  James Livingston  <jrl@ids.org.au>
12518         Don't reset the search box when viewing a different source, because it
12519         will change what is being played. Closes 321593.
12521         * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
12522         the search box
12524         * shell/rb-source-header.c: (rb_source_header_class_init),
12525         (rb_source_header_init), (rb_source_header_finalize): use
12526         G_DEFINE_TYPE.
12528         (rb_source_header_set_property),
12529         (rb_source_header_source_weak_destroy_cb),
12530         (rb_source_header_search_cb): store the search text when leaving a
12531         source and put it in the search box when viewing it again.
12533 2005-11-18  James Livingston  <jrl@ids.org.au>
12535         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12536         (save_entry):
12537         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
12538         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
12539         * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
12540         time stamp.
12542         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
12543         last-seen as the timestamp of the last update of the feed. Don't
12544         re-add episodes that have been deleted. Closes 319759.
12546 2005-11-18  James Livingston  <jrl@ids.org.au>
12548         * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
12549         that don't have the day name at the start. Closes 321645.
12551 2005-11-18  James Livingston  <jrl@ids.org.au>
12553         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
12554         (rb_podcast_manager_copy_post),
12555         (rb_podcast_manager_get_podcast_dir):
12556         * podcast/rb-podcast-manager.h:
12557         * sources/rb-podcast-source.c: (impl_get_config_widget),
12558         (rb_podcast_source_btn_file_change_cb): fix problem of podcast
12559         download location switching to / if the prefs were opened before
12560         downloading an episode. Closes 321611.
12562 2005-11-18  James Livingston  <jrl@ids.org.au>
12564         * data/glade/podcast-new.glade:
12565         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12566         (rb_new_podcast_dialog_set_property),
12567         (rb_new_podcast_dialog_get_property),
12568         (rb_new_podcast_dialog_response_cb),
12569         (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
12570         for entering new podcast urls in. Closes bug 321610.
12572 2005-11-18  James Livingston  <jrl@ids.org.au>
12574         * sources/rb-podcast-source.c: (construct_query_from_selection),
12575         (rb_podcast_source_do_query): allow podcast list to be re-sorted
12576         without restarting RB. Closes bug 321612.
12578 2005-11-18  James Livingston  <jrl@ids.org.au>
12580         * widgets/rb-entry-view.c: (set_column_visibility),
12581         (rb_entry_view_sync_columns_visible): when changing visibility of one
12582         column, don't hide and re-show all the others. Makes a show/hide
12583         column operation a lot faster.
12585 2005-11-17  Jonathan Matthew  <jonathan@kaolin.hn.org>
12587         Closes bug 321702.
12589         * iradio/rb-station-properties-dialog.c
12590          (rb_station_properties_dialog_update_bitrate):
12591         Mark the bitrate value as being kbps, using the same
12592         translatable format string as rb-song-info.c
12594         * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
12595          as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
12597         * shell/rb-shell-player.c (info_available_cb):
12598          Use RB_METADATA_FIELD_BITRATE to update the iradio
12599          station's bitrate value.
12601 2005-11-17  James Livingston  <jrl@ids.org.au>
12603         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
12605         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
12606         free a NULL date.
12608 2005-11-17  James Livingston  <jrl@ids.org.au>
12610         Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
12612         * lib/rb-stock-icons.c: emit a single warning rather than multiple
12613         assertions. Lookup the icon size correctly.
12615 2005-11-16  William Jon McCann  <mccann@jhu.edu>
12617         * daapsharing/rb-daap-mdns.c (get_sw_discovery) 
12618         (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
12619         Fix build errors.
12621 2005-11-16  James Livingston  <jrl@ids.org.au>
12623         * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
12624         (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
12625         (rb_shell_preferences_sync_column_button): block the toggle signal of
12626         the column checkboxes while setting their initial state. This stops
12627         the visibility being re-set, which causes a lot of time being spent
12628         measuring the columns aagin when opening the prefs window.
12630         Use G_DEFINE_TYPE.
12632 2005-11-16  James Livingston  <jrl@ids.org.au>
12634         * sources/rb-sourcelist.c: (rb_sourcelist_init),
12635         (rb_sourcelist_edit_source_name): don't assume that the editable
12636         source name is in the first column, because it isn't. Fixes bug
12637         320137.
12639 2005-11-16  James Livingston  <jrl@ids.org.au>
12641         * daapsharing/rb-daap-mdns.h:
12642         * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
12643         (get_sw_discovery), (get_avahi_client): use GErrors, so that other
12644         parts can know why operations failed. Avahi can report that the daemon
12645         was not running. Howl doesn't do this (yet).
12646         
12647         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
12648         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12649         (browse_cb): don't display mdns errors to the user, if it wa because
12650         the daemon was not running.
12652 2005-11-16  James Livingston  <jrl@ids.org.au>
12654         * rhythmdb/rhythmdb-property-model.c:
12655         (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
12656         (rhythmdb_property_model_compare),
12657         (rhythmdb_property_model_insert),
12658         (rhythmdb_property_model_insert_prop),
12659         (rhythmdb_property_model_delete),
12660         (rhythmdb_property_model_delete_prop),
12661         (rhythmdb_property_model_get_value): use RBRefStrings rather than
12662         copying the string and re-creating the sort key. Saves a little bit of
12663         memory and time.
12665         (rhythmdb_property_model_perform_sync),
12666         (rhythmdb_property_model_sync): perform the count sync in an idle
12667         callback, so that it doesn't have to be re-run once per value when
12668         loading.
12670 2005-11-16  James Livingston  <jrl@ids.org.au>
12672         * rhythmdb/rhythmdb-query-model.c:
12673         (rhythmdb_query_model_entry_deleted_cb),
12674         (rhythmdb_query_model_remove_entry): remove deleted entries from the
12675         limited list. Stops problems if they are deleted, and then things on
12676         the main list are
12678 2005-11-16  James Livingston  <jrl@ids.org.au>
12680         * NEWS: update NEWS
12682         * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
12683         button's minimise-to-tray action
12685 2005-11-16  James Livingston  <jrl@ids.org.au>
12687         * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
12688         leak. Disable adding newly created files for now, because it doesn't
12689         work properly.
12691         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12692         (rb_sourcelist_model_finalize):
12693         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12694         (rb_sourcelist_finalize): use G_DEFINE_TYPE,
12696 2005-11-16  James Livingston  <jrl@ids.org.au>
12698         * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
12699         problem where a GError* wasn't being set to NULL. Actually check the
12700         result.
12702 2005-11-16  James Livingston  <jrl@ids.org.au>
12704         * doc/reference/tmpl/rb-entry-view.sgml:
12705         * doc/reference/tmpl/rhythmbox-unused.sgml:
12706         * doc/reference/tmpl/rhythmdb-query-model.sgml:
12707         * doc/reference/tmpl/rhythmdb.sgml:
12708         * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
12709         docs, including the patch that was on bug 
12711         * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
12712         API, because it should only be used by RhythmDB itself.
12714 2005-11-16  James Livingston  <jrl@ids.org.au>
12716         * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
12717         pausing by middle clicking on the tray icon.
12719 2005-11-15  James Livingston  <jrl@ids.org.au>
12721         * configure.ac: enable audioscrobbler support by default, if libsoup
12722         is present.
12724 2005-11-15  James Livingston  <jrl@ids.org.au>
12726         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12727         Closes bug 321157.
12729         * configure.ac:
12730         * daapsharing/rb-daap-connection.c: (build_message),
12731         (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
12732         support gzip encoded daap connections.
12734         (handle_song_listing): fix leak
12736 2005-11-15  James Livingston  <jrl@ids.org.au>
12738         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
12739         * sources/rb-podcast-source.c:
12740         (rb_podcast_source_post_date_cell_data_func): make the date format
12741         translatable again, so that translators can choose the best format for
12742         their locale (%x is huge in some locales)
12744 2005-11-15  James Livingston  <jrl@ids.org.au>
12746         * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
12747         (end_job): mark podcast episodes as failed, if the metadata load
12748         fails. This will prevent people playing non-audio enclosures, helping
12749         stop bug 320366.
12751 2005-11-14  James Livingston  <jrl@ids.org.au>
12753         * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
12754         video sink to fakesink. This will stop problems (potentially crashers)
12755         that will occur if the file contains a video stream.
12757         * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
12758         rather than using magic numbers everywhere.
12760         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
12761         * sources/rb-podcast-source.c:
12762         (rb_podcast_source_songs_show_popup_cb),
12763         (rb_podcast_source_cmd_download_post),
12764         (rb_podcast_source_post_status_cell_data_func),
12765         (rb_podcast_source_entry_activated_cb): use the above constants.
12767         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
12768         (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
12769         (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
12770         (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
12771         (cancel_job), (download_progress_cb),
12772         (rb_podcast_manager_cancel_download),
12773         (rb_podcast_manager_insert_feed): use the constants, and fix a
12774         trhead-safety issue.
12776 2005-11-14  Bastien Nocera  <hadess@hadess.net>
12778         * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from 
12779         Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
12780         entry-changed events after stats on startup, fixes entry deleted from
12781         filtered views not disappearing
12783 2005-11-14  Jonathan Matthew  <jonathan@kaolin.hn.org>
12785         Fix rhythmdb query model refcount and polling problems. Closes bug
12786         321410.
12788         * rhythmdb/rhythmdb-property-model.c:
12789         (rhythmdb_property_model_finalize):
12790          Unref the query model if we have one.
12792         * rhythmdb/rhythmdb-query-model.h:
12793          Remove poll and cancel methods.  Query cancellation
12794          never did anything anyway.
12796         * rhythmdb/rhythmdb-query-model.c:
12797         (rhythmdb_query_model_init): Remove GAsyncQueues.
12798          Replace the GAsyncQueue-based update processing
12799          with a simpler g_idle_add approach; still has the
12800          same queueing properties, but now we don't poll the
12801          model forever and updates are processed immediately.
12803         (_unref_entry), (rhythmdb_query_model_finalize):
12804          Unref DB entries when finalized
12806         (rhythmdb_query_model_has_pending_changes):
12807          Use our own counter to decide if there are updates pending
12809         (rhythmdb_query_model_process_update), (idle_process_update):
12810          Process updates using g_idle_add, or directly if possible
12812         (rhythmdb_query_model_signal_complete),
12813         (rhythmdb_query_model_add_entries):
12814          Change to new update processing method
12816         (idle_poll_model), (rhythmdb_query_model_poll):
12817          Remove GAsyncQueue-based update processing.
12819         * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
12820          No need to poll the model any more - updates are processed
12821          directly for synchronous queries.
12823         * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
12824          Property model needs to be unref'd here
12826         * sources/rb-library-source.c: (rb_library_source_do_query):
12827          Don't try to cancel the active query (it never worked anyway),
12828          remove obsolete poll call, unref property models as required,
12829          and don't unref the cached 'all' query, since hold on to it.
12830          We unref it when the sort order changes, which forces the query
12831          to be rerun.
12833         * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12834          Unref the property model as required
12836         (rb_podcast_source_do_query):
12837          Treat any query with no selected feeds and no search text as
12838          an 'all' query.  Unref query models except for the cached
12839          'all' query, since we hold on to that.
12841         (rb_podcast_source_cmd_update_all):
12842          Unref the property model as required.
12844         * widgets/rb-entry-view.c: (rb_entry_view_set_property):
12845          Don't try to cancel the query (it never worked anyway)
12847         (rb_entry_view_poll_model):
12848          No need for this any more.
12850         * widgets/rb-entry-view.h:
12851          Remove obsolete function rb_entry_view_poll_model
12853         * widgets/rb-property-view.c: (rb_property_view_set_property):
12854          Ref and unref the property model as required.
12856 2005-11-14  James Livingston  <jrl@ids.org.au>
12858         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12860         * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
12861         for error. Closes bug 321416.
12863 2005-11-14  James Livingston  <jrl@ids.org.au>
12865         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12867         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
12868         a crasher if a feed's last-post value isn't set. Closes bug 321353.
12870 2005-11-14  James Livingston  <jrl@ids.org.au>
12872         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
12873         * shell/rb-removable-media-manager.c:
12874         (rb_removable_media_manager_set_uimanager):
12875         * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
12876         translation domain for GTK action groups.
12878 2005-11-12  James Livingston  <jrl@ids.org.au>
12880         * po/POTFILES.in: remove the old station-new files
12882 2005-11-12  James Livingston  <jrl@ids.org.au>
12884         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
12885         (rhythmdb_tree_parser_end_element), (save_entry_ulong),
12886         (save_entry): cause Rhythmbox to re-read the metadata from a file,
12887         when upgrading from a pre-Date-supporting version to a version that
12888         supports Date metadata. Closes bug 320760.
12890 2005-11-12  James Livingston  <jrl@ids.org.au>
12892         Add "update all podcast feeds" command. Closes bug 319954.
12894         * data/ui/rhythmbox-ui.xml: add to source context menu.
12896         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
12897         (register_action_group), (rb_podcast_source_cmd_download_post),
12898         (rb_podcast_source_cmd_delete_feed),
12899         (rb_podcast_source_cmd_properties_feed),
12900         (rb_podcast_source_cmd_update_feed): pass the source to the actions,
12901         rather than the shell.
12903         (rb_podcast_source_update_feed_func),
12904         (rb_podcast_source_cmd_update_all): update every feed.
12906 2005-11-11  James Livingston  <jrl@ids.org.au>
12908         * shell/rb-shell-player.c: (rb_shell_player_class_init),
12909         (rb_shell_player_constructor), (rb_shell_player_finalize):
12910         * shell/rb-shell.c: fix some conflicting keybindings, and mak some
12911         others follow the HIG recommentations.
12913 2005-11-11  James Livingston  <jrl@ids.org.au>
12915         * podcast/rb-podcast-manager.c:
12916         (rb_podcast_manager_subscribe_feed): check that the url is valid,
12917         before trying to use it.
12919 2005-11-11  James Livingston  <jrl@ids.org.au>
12921         * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
12922         (rb_entry_view_append_column): When sorting by year, sort by album
12923         within a particular year.
12925 2005-11-11  James Livingston  <jrl@ids.org.au>
12927         * NEWS: updates
12929 2005-11-10  Charles Schmidt   <cschmidt2@emich.edu>
12930         * daapsharing/rb-daap-connection.c: (build_message): Fixed the
12931         spelling of "Language."
12933 2005-11-11  James Livingston  <jrl@ids.org.au>
12935         * rhythmdb/rhythmdb-property-model.c:
12936         (rhythmdb_property_model_row_inserted_cb),
12937         (rhythmdb_property_model_prop_changed_cb),
12938         (rhythmdb_property_model_entry_removed_cb),
12939         (rhythmdb_property_model_insert_prop),
12940         (rhythmdb_property_model_sync): display the count after the "All"
12941         entry of a property model.
12943         * widgets/rb-property-view.c: (rb_property_view_class_init),
12944         (rb_property_view_finalize), (rb_property_view_constructor): use
12945         G_DEFINE_TYPE
12947 2005-11-10  James Livingston  <jrl@ids.org.au>
12949         * rhythmdb/rhythmdb-query-model.c:
12950         (rhythmdb_query_model_remove_entry):
12951         * rhythmdb/rhythmdb-query-model.h: make
12952         rhythmdb_query_model_remove_entry return whether the entry was in the
12953         model.
12955         * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12956         don't add non-SONG entries, as it doesn't really work and can cause
12957         crashes.
12959         (rb_playlist_source_remove_location): assert if the playlist and model
12960         differ on whether the entry is in the playlist
12962 2005-11-10  James Livingston  <jrl@ids.org.au>
12964         * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
12965         (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
12966         (rb_podcast_manager_thread_parse_feed),
12967         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
12968         (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
12969         emulating one with a list and mutex. Fixes a couple of threading
12970         issues.
12971         
12972         (rb_podcast_manager_insert_feed): fix some problems with ignoring
12973         updated feeds.
12974         
12975         (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
12976         (rb_podcast_manager_copy_post), (end_job), (cancel_job),
12977         (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
12978         * podcast/rb-podcast-parse.c: (rb_insert_item),
12979         (rb_podcast_parse_channel_free):
12980         * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
12981         fix some typos, and make a bit of code clearer.
12983 2005-11-10  Dennis Cranston  <dennis_cranston@yahoo.com>
12985         Make the "delete podcast" dialog better. Closes bug 320899.
12987         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
12988         Add PROP_WINDOW for rb_shell_get_property so we can access the
12989         GtkWindow widget of the main window. 
12990         * sources/rb-podcast-source.c: (impl_delete):  Set parent window &
12991         fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the 
12992         podcast feed delete dialog less confusing as well.
12994 2005-11-09  James Livingston  <jrl@ids.org.au>
12996         * shell/rb-removable-media-manager.c:
12997         (rb_removable_media_manager_mount_volume),
12998         (rb_removable_media_manager_scan): Fix a crasher where we were getting
12999         NULL for a cd volume.
13001 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13003         * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13004         method return a gboolean indicating whether the changes
13005         to the entry have already been applied.
13007         * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13008         only modify the entry if impl_entry_set returns FALSE.
13010         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13011         When setting the location of an entry, update the
13012         hash table mapping locations to entries.
13014 2005-11-08  Jonathan Matthew  <jonathan@kaolin.hn.org>
13016         * data/glade/Makefile.am:
13017         * iradio/Makefile.am:
13018           Remove 'new station' dialog.
13020         * iradio/rb-station-properties-dialog.h:
13021         * sources/rb-iradio-source.c: (impl_song_properties):
13022         * shell/rb-shell.c: (rb_shell_cmd_new_station):
13023          Add 'new station' mode parameter to
13024          rb_station_properties_dialog_new.
13026         * (rb_station_properties_dialog_response_cb),
13027         (rb_station_properties_dialog_create_station):
13028          When in 'new station' mode, create the station
13029          when OK button is pressed.
13031         * iradio/rb-station-properties-dialog.c:
13032         (rb_station_properties_dialog_location_changed_cb):
13033          Only enable OK button if a location is specified
13034         (rb_station_properties_dialog_init),
13035         (rb_station_properties_dialog_new),
13036         (rb_station_properties_dialog_update),
13037         (rb_station_properties_dialog_update_title),
13038         (rb_station_properties_dialog_rated_cb),
13039         (rb_station_properties_dialog_update_play_count),
13040         (rb_station_properties_dialog_update_bitrate),
13041         (rb_station_properties_dialog_update_last_played),
13042         (rb_station_properties_dialog_update_rating),
13043         (rb_station_properties_dialog_update_playback_error),
13044         (rb_station_properties_dialog_show):
13045          Handle 'new station' mode, where there's no current
13046          station to edit.
13048 2005-11-08  James Livingston  <jrl@ids.org.au>
13050         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13051         keybinding for track columns consistent between library and playlist
13052         sources.
13054 2005-11-07  James Livingston  <jrl@ids.org.au>
13056         * data/ui/rhythmbox-ui.xml:
13057         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13058         "Edit" item to playlist menu. Closes bug 311470.
13060 2005-11-07  James Livingston  <jrl@ids.org.au>
13062         patch by: Jaap A. Haitsma <jaap@haitsma.org>
13064         * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13065         confirmation to save dialogs, with gtk 2.8 or higher.
13067 2005-11-07 James Livingston  <jrl@ids.org.au>
13068         * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13069         requirement to a general on, because people are going to have it for
13070         the other dependencies.
13072 2005-11-06  Dennis Cranston  <dennis_cranston@yahoo.com>
13074         * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13075         delete dialog less confusing.  Use HIG recommended button order.
13076         Closes bug 320840.
13078 2005-11-06  James Livingston  <jrl@ids.org.au>
13080         * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13081         drag-and-drop error.
13082         
13083         * sources/rb-library-source.c: (rb_library_source_constructor): only
13084         add drag-and-drop for the Library itself, subclasses can add support
13085         themselves if they want it.
13087         * sources/rb-removable-media-source.c:
13088         (rb_removable_media_source_class_init): by default removable media
13089         sources do not support dnd
13091 2005-11-05  Jonathan Matthew  <jonathan@kaolin.hn.org>
13093         * data/glade/station-properties.glade:
13094          Add box containing error icon and error message label
13095         * iradio/rb-station-properties-dialog.c:
13096         (rb_station_properties_dialog_class_init),
13097         (rb_station_properties_dialog_finalize):
13098          Change this class to use G_DEFINE_TYPE
13099         (rb_station_properties_dialog_init),
13100         (rb_station_properties_dialog_update),
13101         (rb_station_properties_dialog_update_playback_error):
13102          Display error icon and message when there is one, and hide the error
13103          box otherwise.
13104         (rb_station_properties_dialog_show): Hack widget show
13105          method to update the visibility of the error info box when showing
13106          the widget.  Otherwise the icon is displayed all the time (same thing
13107          is done in rb-song-info). Closes bug 320749.
13109 2005-11-04  Dennis Cranston  <dennis_cranston@yahoo.com>
13111         * podcast/rb-podcast-parse.c: (rb_podcast_parse_time):  Fix the 
13112         parsing of the duration of podcast episodes from the feed. Closes bug
13113         320748.
13115 2005-11-05  James Livingston  <jrl@ids.org.au>
13117         patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13118         release date metadata ("Year"). Closes bug 166093.
13120         * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13121         * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13122         (rb_metadata_gst_add_tag_data):
13123         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13124         (save_entry):
13125         * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13126         (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13127         (set_props_from_metadata), (rhythmdb_entry_set_internal),
13128         (rhythmdb_prop_get_type):
13129         * rhythmdb/rhythmdb.h: add support for "date" property
13130         
13131         * data/glade/general-prefs.glade:
13132         * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13133         * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13134         (rb_entry_view_append_column):
13135         * widgets/rb-entry-view.h:
13136         * sources/rb-library-source.c: (rb_library_source_constructor):
13137         * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13138         "Year" colums
13140         * data/glade/song-info.glade:
13141         * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13142         (rb_song_info_construct_single), (rb_song_info_constructor),
13143         (rb_song_info_populate_dialog), (rb_song_info_update_year),
13144         (rb_song_info_sync_entry_single): Add "Year" to song info window
13146         * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13147         sorted by year.
13149 2005-11-05  James Livingston  <jrl@ids.org.au>
13151         * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13152         description if it's very long.
13154 2005-11-05  James Livingston  <jrl@ids.org.au>
13156         pathc by: Artem Baguinski <femistofel@gmail.com>
13158         * help/C/Makefile.am:
13159         * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13160         Closes bug 320613.
13162 2005-11-05  James Livingston  <jrl@ids.org.au>
13164         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13166         * daapsharing/rb-daap-share.c: (write_next_chunk),
13167         (message_finished), (databases_cb): Use chunked file loading and
13168         sending in the DAAP server. This should reduce the amount of memory
13169         required to send files to the client.
13171 2005-11-05  James Livingston  <jrl@ids.org.au>
13173         * configure.ac: make the nautilus_burn_drive_door_is_open detection
13174         work better on some systems. Closes 320622.
13176 2005-11-05  James Livingston  <jrl@ids.org.au>
13178         * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13179         homepage, so that users can find out what AudioScrobbler is. Add
13180         access keys.
13182         * data/glade/daap-prefs.glade:
13183         * data/glade/general-prefs.glade:
13184         * data/glade/library-prefs.glade: make the indent be more consistent
13186         * data/glade/podcast-prefs.glade: 
13187         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13188         (impl_get_config_widget): move thing out of code into glade, where
13189         they belong
13191 2005-11-05  James Livingston  <jrl@ids.org.au>
13193         * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13194         related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13196 2005-11-04  James Livingston  <jrl@ids.org.au>
13198         * configure.ac: don't print DAAP configure info twice
13200 2005-11-04  James Livingston  <jrl@ids.org.au>
13202         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13203         * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13204         (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13205         #ifdefs, since we removed the symbol. Oops
13207 2005-11-04  James Livingston  <jrl@ids.org.au>
13209         * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13210         after the connect line, not before. Oops.
13212 2005-11-04  James Livingston  <jrl@ids.org.au>
13214         * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13215         fix some warnings
13217 2005-11-03  James Livingston  <jrl@ids.org.au>
13219         * NEWS: update the news file
13221         * data/glade/general-prefs.glade: make the prefs refer to "time" not
13222         "duration" column.
13224         * data/ui/rhythmbox-ui.xml:
13225         * shell/rb-playlist-manager.c:
13226         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13227         (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13228         and "delete" for feeds.
13230 2005-11-03  James Livingston  <jrl@ids.org.au>
13232         * sources/rb-podcast-source.c: (impl_delete),
13233         (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13234         feed. Closes 319760.
13236 2005-11-03  James Livingston  <jrl@ids.org.au>
13238         Don't start playing from the remote site when a un-downloaded podcast
13239         is activated. Closes 319983.
13240         
13242         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13243         (write_job_data), (download_progress_cb): write the local location as
13244         soon as any data is recieved
13246         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13247         the mountpoint to NULL for podcast episodes that haven't yet been
13248         downloaded.
13249         
13250         * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13251         start playing a podcast if it hasn't been downloaded.
13252         
13253         * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13254         (rb_podcast_source_entry_activated_cb): begin downloading when the
13255         podcast is activated.
13257 2005-11-03  Dennis Cranston  <dennis_cranston@yahoo.com>
13259         * data/glade/general-prefs.glade:  Fix capitalization.
13260         * shell/rb-removable-media-manager.c:  Add a mnemonic.
13261         * sources/rb-podcast-source.c:
13262         (rb_podcast_source_songs_show_popup_cb),
13263         (rb_podcast_source_feeds_show_popup_cb):  Add mnemonics.
13265 2005-11-03  James Livingston  <jrl@ids.org.au>
13267         patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13269         * shell/rb-removable-media-manager.c:
13270         (rb_removable_media_manager_mount_volume): don't check network or
13271         autofs mounts, as they're not going to be removable media. Stops
13272         sending lots of warnings to syslog. Closes 320571.
13274         * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13275         DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13276         320570.
13278 2005-11-03  James Livingston  <jrl@ids.org.au>
13280         Add support for playing audio CDs. Metadata lookup is done using
13281         SoundJuicer's MusicBrainz lookup code, which can be switched to using
13282         the library when it gets broken out of S-J.
13283         
13284         Add a "rescan media" menu item, and commands for ejecting removable
13285         media.
13287         Move nautilus-cd-burner from optional to required depenency.
13289         * configure.ac:
13290         * data/ui/rhythmbox-ui.xml:
13291         * metadata/Makefile.am:
13292         + metadata/sj-error.c:
13293         + metadata/sj-error.h:
13294         + metadata/sj-metadata-marshal.list:
13295         + metadata/sj-metadata-musicbrainz.c:
13296         + metadata/sj-metadata-musicbrainz.h:
13297         + metadata/sj-metadata.c:
13298         + metadata/sj-metadata.h:
13299         + metadata/sj-structures.c:
13300         + metadata/sj-structures.h:
13301         * player/Makefile.am:
13302         * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13303         * po/POTFILES.in:
13304         * shell/Makefile.am:
13305         * shell/rb-removable-media-manager.c:
13306         (rb_removable_media_manager_dispose), (poll_tray_opened),
13307         (end_cd_drive_monitor), (begin_cd_drive_monitor),
13308         (rb_removable_media_manager_load_media),
13309         (rb_removable_media_manager_mount_volume),
13310         (rb_removable_media_manager_cmd_eject_medium),
13311         (rb_removable_media_manager_cmd_scan_media),
13312         (rb_removable_media_manager_check_volume),
13313         (rb_removable_media_manager_unmount_volume_swap),
13314         (rb_removable_media_manager_scan):
13315         * sources/Makefile.am:
13316         + sources/rb-audiocd-source.c:
13317         + sources/rb-audiocd-source.h:
13318         * tests/Makefile.am:
13320 2005-11-02  James Livingston  <jrl@ids.org.au>
13322         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13324         * sources/rb-iradio-source.c:
13325         (stations_view_drag_data_received_cb):
13326         * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13327         don't crash when the second uri is missing frm the drop, which
13328         browsers sometimes do.
13330 2005-11-01  James Livingston  <jrl@ids.org.au>
13332         * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13333         (rb_podcast_manager_insert_feed):
13334         * podcast/rb-podcast-manager.h:
13335         * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13336         (rb_set_item_value), (rb_validate_item_propert),
13337         (rb_podcast_parse_date), (rb_podcast_parse_time):
13338         * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13339         from the feed.
13341 2005-10-31  James Livingston  <jrl@ids.org.au>
13343         * ChangeLog:
13344         * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13345         huge
13347 2005-10-31  James Livingston  <jrl@ids.org.au>
13349         * sources/rb-podcast-source.c:
13350         (rb_podcast_source_post_date_cell_data_func): generate the date string
13351         in a way that is correct in all locales.
13352         
13353         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13354         (rhythmdb_entry_sync_mirrored): make the last played/date added
13355         columns use the same format.
13357 2005-10-30  James Livingston  <jrl@ids.org.au>
13360         * podcast/rb-podcast-manager.c:
13361         (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13362         
13363         * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13364         iradio errors better.
13366 2005-10-30  James Livingston  <jrl@ids.org.au>
13368         patch by: Artem Baguinski <femistofel@gmail.com>
13370         * metadata/rb-metadata-gst.c: (rb_metadata_init):
13372 2005-10-30  James Livingston  <jrl@ids.org.au>
13374         * podcast/rb-podcast-manager.c:
13375         (rb_podcast_manager_subscribe_feed),
13376         (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
13377         already been added, usually as a radio station. Closes 319434.
13379 2005-10-29  Dennis Cranston  <dennis_cranston@yahoo.com>
13381         * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
13382         mnemonics & resize issues)
13383         * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
13384         & mnemonics)
13385         * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
13386         widget for the "download location" label.
13388         Closes bug 320184.
13390 2005-10-29  James Livingston  <jrl@ids.org.au>
13392         Allow the search box to match words from multiple properties. Closes
13393         bug 139196. Thanks to the person from IRC who did a lot of the initial
13394         work.
13397         * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
13398         * lib/rb-util.h: Add functions to split a string into words, and one
13399         to perform "search folding" which is currently like casefolding but
13400         also strips punctuation
13401         
13402         * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
13403         (rhythmdb_query_preprocess):
13404         * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
13405         against title, artist, album and genre (for the search box)
13406         
13407         * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
13408         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13409         (save_entry), (search_match_properties),
13410         (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
13411         splitting into words and matching across multiple properties.
13412         
13413         * sources/rb-library-source.c: (construct_query_from_selection): use
13414         the new SEARCH_MATCH property for the search box
13415         
13416         * widgets/rb-entry-view.c: (type_ahead_search_func):
13418 2005-10-29  James Livingston  <jrl@ids.org.au>
13420         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13421         * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
13422         
13423         * shell/rb-playlist-manager.c:
13424         * shell/rb-shell.c: use the above stock ids, so that the icons get set
13425         correctly.
13426         
13427         * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
13428         initial state of the shuffle/repeat menu items correctly. Patch from
13429         Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
13431 2005-10-29  James Livingston  <jrl@ids.org.au>
13433         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
13434         double-free.
13435         
13436         * widgets/rb-cell-renderer-pixbuf.c:
13437         (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
13438         icon go black when row is not selected
13439         
13440         * doc/reference/tmpl/rb-daap-connection.sgml:
13441         * doc/reference/tmpl/rhythmdb.sgml: doc updates
13443 2005-10-29  James Livingston  <jrl@ids.org.au>
13445         * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
13446         silly mistake, where it could think partial downloads has been
13447         completed.
13449 2005-10-29  James Livingston  <jrl@ids.org.au>
13451         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13453         * data/glade/song-info.glade:
13454         * widgets/rb-song-info.c: (rb_song_info_construct_single),
13455         (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
13456         (rb_song_info_sync_entry_single): show the disc number in the song
13457         info window. From bug 311199.
13459 2005-10-29  James Livingston  <jrl@ids.org.au>
13461         * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
13462         (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
13463         regularly. Closes 155306.
13465 2005-10-29  James Livingston  <jrl@ids.org.au>
13467         * podcast/rb-podcast-manager.c:
13468         (rb_podcast_manager_download_entry),
13469         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13470         (rb_podcast_manager_insert_feed):
13471         * podcast/rb-podcast-manager.h:
13472         * podcast/rb-podcast-parse.c: (rb_set_item_value),
13473         (rb_podcast_parser_start_element):
13474         * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
13475         don't download them again. However, it can't resume
13476         partially-downloaded ones.
13478 2005-10-28  James Livingston  <jrl@ids.org.au>
13480         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13481         (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
13482         work. Don't attempt to write duration as a tag.
13484         Thanks to Artem Baguinski <femistofel@gmail.com>
13486 2005-10-28  James Livingston  <jrl@ids.org.au>
13488         * shell/rb-source-header.c: (rb_source_header_sync_control_state):
13489         don't disable the status-bar menu item when the current source doesn't
13490         use the search box.
13492 2005-10-28  James Livingston  <jrl@ids.org.au>
13494         * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
13495         crash if the file has unknown length
13497 2005-10-27  James Livingston  <jrl@ids.org.au>
13499         * daapsharing/rb-daap-connection.c:
13500         (rb_daap_connection_state_done): don't assert when a daap server
13501         doesn't have any playlists
13503 2005-10-27  James Livingston  <jrl@ids.org.au>
13505         * sources/rb-sourcelist-model.c:
13506         (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
13507         source for the sourcelist. Closes bug 319817.
13509 2005-10-26  Ryan P Skadberg  <skadz@stigmata.org>
13511         Patch by: Renato Araujo <renatox@gmail.com>
13513         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13514           Fix for a crasher caused by previous patch.
13516 2005-10-26  James Livingston  <jrl@ids.org.au>
13518         * data/glade/podcast-prefs.glade:
13519         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
13520         * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
13521         * sources/rb-podcast-source.c: (rb_podcast_source_new):
13522         * podcast/rb-podcast-manager.c:
13523         (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13524         (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
13525         * shell/rb-shell.c: Change some strings to make them more consistent.
13526         "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
13527         makes it clearer which is which. "Episode" may not be the best term,
13528         but it seems to be widely used.
13529         
13530         Also fix some strings that weren't marked as translatable.
13531         
13532         * podcast/rb-feed-podcast-properties-dialog.c:
13533         (rb_feed_podcast_properties_dialog_class_init),
13534         (rb_feed_podcast_properties_dialog_finalize):
13535         * podcast/rb-new-podcast-dialog.c:
13536         (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
13537         * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13538         (rb_simple_view_finalize), (rb_simple_view_constructor):
13539         * podcast/rb-podcast-properties-dialog.c:
13540         (rb_podcast_properties_dialog_class_init),
13541         (rb_podcast_properties_dialog_finalize):
13542         * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
13543         (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
13544         * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13545         (rb_podcast_source_finalize), (rb_podcast_source_constructor):
13546         use G_DEFINE_TYPE, instead of doing it manually.
13548 2005-10-26  James Livingston  <jrl@ids.org.au>
13550         Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
13551         <jrl@ids.org.au>
13553         * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13554         (rb_metadata_init): Check that the necessary plugins are present to do
13555         id3 editing.
13556         (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
13557         corrupted before replacing the original.
13559 2005-10-25  Jonathan Matthew  <jonathan@kaolin.hn.org>
13561         reviewed by: James Livingston <jrl@ids.org.au>
13563         Assign sequential IDs to playlists for DAAP rather than using the
13564         address of the playlist object.  Less flaky, and should work on 64bit
13565         platforms. Closes bug 319304.
13567         * daapsharing/rb-daap-share.c: 
13568         (rb_daap_share_set_property): watch for playlist creation
13569         (_find_by_id), (_find_by_source): playlist list search functions
13570         (rb_daap_share_playlist_created),
13571         (rb_daap_share_process_playlist),
13572         (rb_daap_share_playlist_destroyed):
13573          update playlist list as it changes, use weak refs on 
13574          playlists to get notified on destroy.
13575         (rb_daap_share_forget_playlist), (rb_daap_share_dispose): 
13576          destroy playlist list on shutdown
13577         (add_playlist_to_mlcl): use playlist ID rather than pointer in
13578          DAAP response
13579         (databases_cb): search for playlist ID in list rather than just
13580          converting it to a pointer; return HTTP 404 if playlist not 
13581          found.
13582         (rb_daap_share_start_publish): playlist IDs start at 2, since 1
13583          is already used for the main library
13585 2005-10-26  James Livingston  <jrl@ids.org.au>
13587         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13589         * daapsharing/rb-daap-connection.c: (build_message),
13590         (http_response_handler), (http_get), (handle_server_info),
13591         (handle_login), (handle_update), (handle_database_info),
13592         (handle_song_listing), (handle_playlists),
13593         (handle_playlist_entries), (handle_logout),
13594         (rb_daap_connection_new), (rb_daap_connection_logout),
13595         (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13596         (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
13597         * daapsharing/rb-daap-connection.h:
13598         * sources/rb-daap-source.c: (rb_daap_source_activate),
13599         (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13600         (rb_daap_source_disconnect): Make connecting to DAAP sources
13601         asynchronous, so that non-responsive servers don't hang the UI. Closes
13602         316225.
13604 2005-10-26  James Livingston  <jrl@ids.org.au>
13606         patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13608         * rhythmdb/rhythmdb-query-model.c:
13609         (rhythmdb_query_model_do_reorder): generate the row re-order map
13610         correctly.
13611         
13612         * widgets/rb-entry-view.c: (rb_entry_view_set_property),
13613         (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
13614         Update selection when rows get re-ordered. Closes 319718.
13616 2005-10-26  James Livingston  <jrl@ids.org.au>
13618         patch from Jonathan Matthew <jonathan@kaolin.hn.org> 
13620         * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
13621         actually set the db pointer in play orders. Closes 319818.
13623 2005-10-25  Ryan P Skadberg  <skadz@stigmata.org>
13625         Patch by: Renato Araujo <renatox@gmail.com>
13627         * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13628         (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
13629         (rb_podcast_manager_update_synctime),
13630         (rb_podcast_manager_config_changed),
13631         (rb_podcast_manager_insert_feed):
13632         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13633         (save_entry):
13634         * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13635         (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13636         * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
13638 2005-10-25  James Livingston  <jrl@ids.org.au>
13640         * daapsharing/rb-daap-share.c: (db_entry_added_cb),
13641         (db_entry_deleted_cb): don't share tracks that are hidden because the
13642         file is missing.
13644 2005-10-22  James Livingston  <jrl@ids.org.au>
13646         * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
13647         crash if an entry couldn't be playerd, without streamer setting an
13648         error.
13650         
13651         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13653         * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13654         (rb_new_podcast_dialog_text_changed): enable the add button when a url
13655         is pasted into the dialog.
13656         
13657         * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13658         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13659         (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
13660         (rb_podcast_parse_channel_free):
13661         * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
13662         feeds
13664 2005-10-22  James Livingston  <jrl@ids.org.au>
13666         * sources/rb-iradio-source.c:
13667         (rb_iradio_source_first_time_changed): Make merging the default
13668         stations actually work.
13669         
13670         * sources/rb-podcast-source.c:
13671         (rb_podcast_source_post_status_cell_data_func): fix problem where some
13672         people weren't seing the percentages in the stats column.
13674 2005-10-21  James Livingston  <jrl@ids.org.au>
13676         Patch from Caio Marcelo <cmarcelo@gmail.com>
13678         * shell/rb-shell.c: (rb_shell_window_state_cb),
13679         (rb_shell_get_visibility), (idle_hide_mainwindow),
13680         (rb_shell_set_visibility): Make the "show window" item in the tray
13681         icon menu show the toggle state correctly. Use a better policy on
13682         deciding whether the window is "visible" or not. Closes bug 308053.
13684 2005-10-21  James Livingston  <jrl@ids.org.au>
13686         * doc/reference/tmpl/rb-shell-preferences.sgml:
13687         * shell/Makefile.am: fix building with gtk-doc
13689         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
13690         don't submit podcasts to audioscrobbler
13691         
13692         
13693         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13694         
13695         * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13696         (rb_set_item_value): strip spaces surrounding podcast urls
13697         
13699         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
13700         
13701         * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
13703 2005-10-20  Ryan P Skadberg  <skadz@stigmata.org>
13705         Patch from Ruben Vermeersch <ruben@lambda1.be> to add
13706          Audioscrobbler/Last.fm support
13708         * configure.ac:
13709         * data/glade/Makefile.am:
13710         * data/glade/audioscrobbler-prefs.glade:
13711         * data/rhythmbox.schemas:
13712         * lib/Makefile.am:
13713         * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
13714         * lib/md5.h:
13715         * lib/rb-preferences.h:
13716         * po/POTFILES.in:
13717         * shell/Makefile.am:
13718         * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
13719         (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
13720         (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
13721         (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
13722         (rb_audioscrobbler_timeout_cb), (mkmd5),
13723         (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
13724         (rb_audioscrobbler_do_handshake),
13725         (rb_audioscrobbler_do_handshake_cb),
13726         (rb_audioscrobbler_submit_queue),
13727         (rb_audioscrobbler_submit_queue_cb),
13728         (rb_audioscrobbler_import_settings),
13729         (rb_audioscrobbler_preferences_sync),
13730         (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
13731         (rb_audioscrobbler_gconf_changed_cb),
13732         (rb_audioscrobbler_song_changed_cb),
13733         (rb_audioscrobbler_username_entry_changed_cb),
13734         (rb_audioscrobbler_username_entry_activate_cb),
13735         (rb_audioscrobbler_password_entry_changed_cb),
13736         (rb_audioscrobbler_password_entry_activate_cb),
13737         (rb_audioscrobbler_enabled_check_changed_cb),
13738         (audioscrobbler_entry_init), (audioscrobbler_entry_free),
13739         (rb_audioscrobbler_load_entry_from_string),
13740         (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
13741         (rb_audioscrobbler_print_queue),
13742         (rb_audioscrobbler_free_queue_entries):
13743         * shell/rb-audioscrobbler.h:
13744         * shell/rb-shell-preferences.c:
13745         (rb_shell_preferences_append_audioscrobbler_config):
13746         * shell/rb-shell-preferences.h:
13747         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
13748         (rb_shell_select_source), (rb_shell_cmd_preferences):
13749         * sources/Makefile.am:
13751 2005-10-21  James Livingston  <jrl@ids.org.au>
13753         Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
13755         * Makefile.am:
13756         * NEWS:
13757         * configure.ac:
13758         * data/art/Makefile.am:
13759         * data/glade/Makefile.am:
13760         * data/rhythmbox.schemas:
13761         * data/ui/rhythmbox-ui.xml:
13762         * doc/reference/Makefile.am:
13763         * doc/reference/tmpl/rhythmdb.sgml:
13764         * lib/rb-stock-icons.c: (rb_stock_icons_init):
13765         * lib/rb-stock-icons.h:
13766         * po/POTFILES.in:
13767         * podcast/Makefile.am:
13768         + podcast/rb-feed-podcast-properties-dialog.c:
13769         + podcast/rb-feed-podcast-properties-dialog.h:
13770         + podcast/rb-new-podcast-dialog.c:
13771         + podcast/rb-new-podcast-dialog.h:
13772         + podcast/rb-podcast-manager.c:
13773         + podcast/rb-podcast-manager.h:
13774         + podcast/rb-podcast-marshal.list:
13775         + podcast/rb-podcast-parse.c:
13776         + podcast/rb-podcast-parse.h:
13777         + podcast/rb-podcast-properties-dialog.c:
13778         + podcast/rb-podcast-properties-dialog.h:
13779         * rhythmdb/rhythmdb-property-model.c:
13780         (rhythmdb_property_model_set_property),
13781         (rhythmdb_property_model_enable_drag):
13782         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13783         (rhythmdb_tree_parser_end_element), (save_entry),
13784         (rhythmdb_tree_save):
13785         * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13786         (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
13787         (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
13788         (rhythmdb_entry_podcast_feed_get_type):
13789         * rhythmdb/rhythmdb.h:
13790         * shell/Makefile.am:
13791         * shell/rb-shell-player.c: (rb_shell_player_open_entry):
13792         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
13793         (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
13794         (rb_shell_quit):
13795         * sources/Makefile.am:
13796         + sources/rb-podcast-source.c:
13797         + sources/rb-podcast-source.h:
13798         * widgets/Makefile.am:
13799         * widgets/rb-property-view.c: (rb_property_view_class_init),
13800         (rb_property_view_constructor),
13801         (rb_property_view_selection_changed_cb),
13802         (rb_property_view_get_treeview):
13803         * widgets/rb-property-view.h:
13804         + widgets/rb-simple-view.c:
13805         + widgets/rb-simple-view.h:
13807 2005-10-20  James Livingston  <jrl@ids.org.au>
13809         * NEWS: update with changes since 0.9.1
13811         * configure.ac: check whether collate_key_for_filename is available
13812         * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
13813         * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
13814         it if it isn't available in glib (i.e. building against 2.6)
13815         * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
13816         collation to get "natural sorting". Closes bug 158599.
13818 2005-10-20  James Livingston  <jrl@ids.org.au>
13820         Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
13822         * doc/reference/tmpl/rb-shell-player.sgml:
13823         * shell/rb-shell-player.c: (rb_shell_player_class_init),
13824         (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
13825         (rb_shell_player_get_playing),
13826         (rb_shell_player_get_playing_time_string),
13827         (rb_shell_player_get_playing_time),
13828         (rb_shell_player_set_playing_time), (tick_cb),
13829         (rb_shell_player_get_playing_path), (filter_mmkeys):
13830         * shell/rb-shell-player.h:
13831         * shell/rb-shell-player.xml:
13832         * shell/rb-shell.c: (rb_shell_constructor),
13833         (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
13834         (rb_shell_set_window_title), (rb_shell_playing_impl),
13835         (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
13836         Merge the duration_changed and elapsed_changed DBUS signals into one
13837         elapsed_changed signal. Check that the output argument isn't NULL
13838         before trying to put things in it.
13840 2005-10-20  James Livingston  <jrl@ids.org.au>
13842         * rhythmdb/rhythmdb-query-model.c:
13843         (rhythmdb_query_model_entry_added_cb),
13844         (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
13845         problem where hidden entries could be shown in playlists.
13846         
13847         * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
13848         issues when switching in and out of small mode.
13850 2005-10-19  James Livingston  <jrl@ids.org.au>
13852         * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
13853         (rb_shell_constructor), (rb_shell_window_state_cb),
13854         (rb_shell_set_visibility), (rb_shell_window_configure_cb),
13855         (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
13856         (rb_shell_view_smalldisplay_changed_cb),
13857         (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
13858         (rb_shell_sync_paned): remove gconf window-state races, prevent
13859         changing small mode too often, fix window event races. Closes 122806.
13861         
13862         Patch from Caio Marcelo <cmarcelo@gmail.com>
13864         * data/rhythmbox.schemas:
13865         * shell/rb-shell.c: (rb_shell_window_state_cb),
13866         (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
13867         Remember the position of the window. Closes 315289.
13869 2005-10-19  James Livingston  <jrl@ids.org.au>
13871         Patch from Christophe Fergeau  <teuf@gnome.org>
13873         * configure.ac: determine whether libgpod is present when neither
13874         --with-ipod nor --without-ipod is passed
13876 2005-10-19  James Livingston  <jrl@ids.org.au>
13878         Patch from Caio Marcelo <cmarcelo@gmail.com>
13880         * shell/rb-shell-player.c: (do_next_idle),
13881         (rb_shell_player_do_previous), (rb_shell_player_do_next),
13882         (rb_shell_player_do_previous_or_seek),
13883         (rb_shell_player_previous_button_cb),
13884         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
13885         (rb_shell_player_cmd_next), (eos_cb):
13886         * widgets/rb-header.c: (rb_header_sync): Stop playback when the
13887         end of the playlist is reached.
13889 2005-10-19  Christopher Aillon  <caillon@redhat.com>
13891         * lib/rb-thread.c: fix a few GSource leaks
13893 2005-10-19  James Livingston  <jrl@ids.org.au>
13895         * doc/reference/tmpl/bacon-volume.sgml:
13896         * doc/reference/tmpl/disclosure-widget.sgml:
13897         * doc/reference/tmpl/eel-gconf-extensions.sgml:
13898         * doc/reference/tmpl/eggnotificationbubble.sgml:
13899         * doc/reference/tmpl/eggtrayicon.sgml:
13900         * doc/reference/tmpl/gsequence.sgml:
13901         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
13902         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
13903         * doc/reference/tmpl/rb-daap-connection.sgml:
13904         * doc/reference/tmpl/rb-daap-dialog.sgml:
13905         * doc/reference/tmpl/rb-daap-mdns.sgml:
13906         * doc/reference/tmpl/rb-daap-share.sgml:
13907         * doc/reference/tmpl/rb-daap-sharing.sgml:
13908         * doc/reference/tmpl/rb-daap-source.sgml:
13909         * doc/reference/tmpl/rb-daap-src.sgml:
13910         * doc/reference/tmpl/rb-daap-structure.sgml:
13911         * doc/reference/tmpl/rb-debug.sgml:
13912         * doc/reference/tmpl/rb-dialog.sgml:
13913         * doc/reference/tmpl/rb-druid.sgml:
13914         * doc/reference/tmpl/rb-entry-view.sgml:
13915         * doc/reference/tmpl/rb-enums.sgml:
13916         * doc/reference/tmpl/rb-file-helpers.sgml:
13917         * doc/reference/tmpl/rb-glade-helpers.sgml:
13918         * doc/reference/tmpl/rb-header.sgml:
13919         * doc/reference/tmpl/rb-history.sgml:
13920         * doc/reference/tmpl/rb-ipod-source.sgml:
13921         * doc/reference/tmpl/rb-iradio-source.sgml:
13922         * doc/reference/tmpl/rb-library-source.sgml:
13923         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
13924         * doc/reference/tmpl/rb-metadata.sgml:
13925         * doc/reference/tmpl/rb-new-station-dialog.sgml:
13926         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
13927         * doc/reference/tmpl/rb-play-order-linear.sgml:
13928         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
13929         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
13930         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
13931         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
13932         * doc/reference/tmpl/rb-play-order-random.sgml:
13933         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
13934         * doc/reference/tmpl/rb-play-order.sgml:
13935         * doc/reference/tmpl/rb-player.sgml:
13936         * doc/reference/tmpl/rb-playlist-manager.sgml:
13937         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
13938         * doc/reference/tmpl/rb-playlist-source.sgml:
13939         * doc/reference/tmpl/rb-preferences.sgml:
13940         * doc/reference/tmpl/rb-property-view.sgml:
13941         * doc/reference/tmpl/rb-query-creator-private.sgml:
13942         * doc/reference/tmpl/rb-query-creator.sgml:
13943         * doc/reference/tmpl/rb-rating-helper.sgml:
13944         * doc/reference/tmpl/rb-rating.sgml:
13945         * doc/reference/tmpl/rb-recorder.sgml:
13946         * doc/reference/tmpl/rb-refstring.sgml:
13947         * doc/reference/tmpl/rb-removable-media-manager.sgml:
13948         * doc/reference/tmpl/rb-removable-media-source.sgml:
13949         * doc/reference/tmpl/rb-search-entry.sgml:
13950         * doc/reference/tmpl/rb-shell-clipboard.sgml:
13951         * doc/reference/tmpl/rb-shell-glue.sgml:
13952         * doc/reference/tmpl/rb-shell-player-glue.sgml:
13953         * doc/reference/tmpl/rb-shell-player.sgml:
13954         * doc/reference/tmpl/rb-shell-preferences.sgml:
13955         * doc/reference/tmpl/rb-shell.sgml:
13956         * doc/reference/tmpl/rb-song-display-box.sgml:
13957         * doc/reference/tmpl/rb-song-info.sgml:
13958         * doc/reference/tmpl/rb-source-header.sgml:
13959         * doc/reference/tmpl/rb-source.sgml:
13960         * doc/reference/tmpl/rb-sourcelist-model.sgml:
13961         * doc/reference/tmpl/rb-sourcelist.sgml:
13962         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
13963         * doc/reference/tmpl/rb-statusbar.sgml:
13964         * doc/reference/tmpl/rb-stock-icons.sgml:
13965         * doc/reference/tmpl/rb-string-helpers.sgml:
13966         * doc/reference/tmpl/rb-thread.sgml:
13967         * doc/reference/tmpl/rb-tray-icon.sgml:
13968         * doc/reference/tmpl/rb-tree-dnd.sgml:
13969         * doc/reference/tmpl/rb-tree-model-sort.sgml:
13970         * doc/reference/tmpl/rb-util.sgml:
13971         * doc/reference/tmpl/rhythmbox-unused.sgml:
13972         * doc/reference/tmpl/rhythmdb-property-model.sgml:
13973         * doc/reference/tmpl/rhythmdb-query-model.sgml:
13974         * doc/reference/tmpl/rhythmdb-tree.sgml:
13975         * doc/reference/tmpl/rhythmdb.sgml: update for changes
13976         
13977         * doc/reference/Makefile.am: make docs build with changed ipod support
13978         
13979         * po/POTFILES.in: remove sources/itunesdb
13981 2005-10-18  Christophe Fergeau  <teuf@gnome.org>
13983         * sources/itunesdb.c:
13984         * sources/itunesdb.h: removed now useless files
13986 2005-10-03  Christophe Fergeau  <teuf@gnome.org>
13988         * configure.ac:
13989         * shell/Makefile.am:
13990         * sources/Makefile.am:
13991         * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
13992         code
13993         [1]: http://www.gtkpod.org/libgpod.html
13996 2005-10-18  James Livingston  <jrl@ids.org.au>
13998         patch from Funda Wang <fundawang@linux.net.cn>
14000         * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14001         the notification bubble string translatable.
14003 ============ Version 0.9.1
14005 2005-10-16  James Livingston  <jrl@ids.org.au>
14007         * configure.ac: bump version to 0.9.1
14008         * NEWS: update translation credits
14010 2005-10-16  James Livingston  <jrl@ids.org.au>
14012         * rhythmdb/rhythmdb-query-model.c:
14013         (rhythmdb_query_model_class_init),
14014         (rhythmdb_query_model_drag_data_received): 
14015         * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14016         notified when things are dropped into the entry view.
14017         
14018         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14019         (rb_playlist_source_add_location_swapped),
14020         (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14021         (rb_playlist_source_non_entry_dropped),
14022         (rb_playlist_source_row_inserted): Use the new signal so that dropping
14023         things onto a playlist's entry view work correctly, and doesn't cause
14024         crashes. Allow folders to be dropped as well. (Closes 318308)
14026 2005-10-16  James Livingston  <jrl@ids.org.au>
14028         * NEWS: Update some more
14030         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14031         (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14032         with the paned size, so that it doesn't move when the window is
14033         maximised/restored. Closes bug 315852.
14035         * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14036         display the playcount column, as it's useless (it never get changed).
14038 2005-10-14  James Livingston  <jrl@ids.org.au>
14040         * Makefile.am:
14041         * data/Makefile.am:
14042         * doc/reference/Makefile.am: get "make distcheck" to pass again
14044 2005-10-11  James Livingston  <jrl@ids.org.au>
14046         * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14047         destroy the connection when retrieving the playlists fails, because
14048         tracks have already been added. Closes 318380.
14050 2005-10-11  James Livingston  <jrl@ids.org.au>
14052         * sources/rb-sourcelist.c: (rb_sourcelist_append),
14053         (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14054         (source_name_edited_cb): Ask for the columns to be resized when a
14055         source is added, deleted or changes name.
14057 2005-10-11  James Livingston  <jrl@ids.org.au>
14059         * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14060         create a thread when processing a directory. This stops up created one
14061         thread for each file in a playlist we're trying to load. Closes
14062         317850.
14064         * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14065         typo that made sort-by-artist not work correctly.
14067 2005-10-11  James Livingston  <jrl@ids.org.au>
14069         * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14070         support is enabled
14072 2005-10-11  James Livingston  <jrl@ids.org.au>
14074         * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14075         * lib/rb-file-helpers.h: add a function to turn uris into our
14076         canonical path-escaped form
14077         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14078         above function when import playlists. This will fix the problem of
14079         duplicate entries due to different representations of the uri (bug
14080         158211).
14082 2005-10-11  James Livingston  <jrl@ids.org.au>
14084         * shell/rb-shell.c: (rb_shell_get_visibility),
14085         (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14086         (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14087         window hiding so that Alt-F4 works again.
14089         * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14090         (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14091         (rb_entry_view_string_sort_func): Stop some crashes where a string
14092         property was set to NULL.
14094 2005-10-10  James Livingston  <jrl@ids.org.au>
14096         * doc/reference/rhythmbox.types: fix gtk-doc generation
14098 2005-10-09  James Livingston  <jrl@ids.org.au>
14100         * sources/rb-sourcelist.c: (rb_sourcelist_init):
14101         * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14102         accelerators, so that we don't have as many conflicting keys.
14104 2005-10-08  James Livingston  <jrl@ids.org.au>
14106         * data/iradio-initial.pls: Update the list of radio stations. Thanks
14107         to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14108         bug 129285.
14110 2005-10-07  James Livingston  <jrl@ids.org.au>
14112         * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14113         local path names in the same way as every other URI. This should stop
14114         duplicates occurring due to different escapings. Closes bug 158211.
14116 2005-10-06  James Livingston  <jrl@ids.org.au>
14118         * NEWS: more updates
14119         
14120         patch from Jaap Haitsma <jaap@haitsma.org>:
14122         * configure.ac:
14123         * data/Makefile.am:
14124         * data/art/Makefile.am:
14125         - data/art/rhythmbox-paused.png:
14126         - data/art/rhythmbox-playback-error.png:
14127         - data/art/rhythmbox-playing.png:
14128         - data/art-clearlooks/:
14129         * lib/rb-file-helpers.c: (rb_file):
14130         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14131         * lib/rb-stock-icons.h:
14132         * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14133         * widgets/rb-cell-renderer-pixbuf.c:
14134         (rb_cell_renderer_pixbuf_render):
14135         * widgets/rb-entry-view.c: (rb_entry_view_init),
14136         (rb_entry_view_set_playing):
14137         * widgets/rb-rating-helper.c: (rb_rating_render_stars):  use more
14138         stock icons instead of custom art. Drop remanents of art-clearlooks.
14140 2005-10-04  Pawan Chitrakar  <pchitrakar@gmail.com>
14142         * configure.ac: Added ne in ALL_LINGUAS
14144 2005-10-02  James Livingston  <jrl@ids.org.au>
14146         * data/glade/Makefile.am: actually install the daap prefs glade file
14148 2005-09-30  James Livingston  <jrl@ids.org.au>
14150         * po/POTFILES.in: mremove rb-string-helper.c from the list of
14151         translatable files, so that make check works and we don't annoy the
14152         translators.
14153         
14154         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14155         sanity checking, in case a db entry is missing some properties.
14157 2005-09-29  James Livingston  <jrl@ids.org.au>
14159         - lib/rb-string-helpers.c:
14160         - lib/rb-string-helpers.h:
14161         * lib/Makefile.am:
14162         * rhythmdb/rhythmdb-tree.c:
14163         * rhythmdb/rhythmdb.c:
14164         * shell/main.c: (main):
14165         * shell/rb-shell.c:
14166         * widgets/rb-entry-view.c:
14167         * widgets/rb-property-view.c: remove rb-string-helpers, as they
14168         utility functions haven't been used in a while.
14170 2005-09-27  James Livingston  <jrl@ids.org.au>
14172         * data/art-clearlooks/Makefile.am:
14173         - data/art-clearlooks/rhythmbox-album.png:
14174         - data/art-clearlooks/rhythmbox-audiocd.png:
14175         - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14176         - data/art-clearlooks/rhythmbox-dnd.png:
14177         - data/art-clearlooks/rhythmbox-ipod.png:
14178         - data/art-clearlooks/rhythmbox-iradio.png:
14179         - data/art-clearlooks/rhythmbox-library.png:
14180         - data/art-clearlooks/rhythmbox-next.png:
14181         - data/art-clearlooks/rhythmbox-pause.png:
14182         - data/art-clearlooks/rhythmbox-play.png:
14183         - data/art-clearlooks/rhythmbox-playlist-menu.png:
14184         - data/art-clearlooks/rhythmbox-playlist.png:
14185         - data/art-clearlooks/rhythmbox-previous.png:
14186         - data/art-clearlooks/rhythmbox-repeat.png:
14187         - data/art-clearlooks/rhythmbox-rewind.png:
14188         - data/art-clearlooks/rhythmbox-shuffle.png:
14189         - data/art-clearlooks/rhythmbox-stop.png:
14190         - data/art-clearlooks/rhythmbox-visuals.png:
14191         - data/art-clearlooks/rhythmbox-volume-max.png:
14192         - data/art-clearlooks/rhythmbox-volume-medium.png:
14193         - data/art-clearlooks/rhythmbox-volume-min.png:
14194         - data/art-clearlooks/rhythmbox-volume-mute.png:
14195         - data/art-clearlooks/rhythmbox-volume-zero.png:
14196         * data/art/Makefile.am:
14197         - data/art/rhythmbox-album.png:
14198         - data/art/rhythmbox-audiocd.png:
14199         - data/art/rhythmbox-automatic-playlist.png:
14200         - data/art/rhythmbox-dnd.png:
14201         - data/art/rhythmbox-ipod.png:
14202         - data/art/rhythmbox-iradio.png:
14203         - data/art/rhythmbox-library.png:
14204         - data/art/rhythmbox-next.png:
14205         - data/art/rhythmbox-pause.png:
14206         - data/art/rhythmbox-play.png:
14207         - data/art/rhythmbox-playlist-menu.png:
14208         - data/art/rhythmbox-playlist.png:
14209         - data/art/rhythmbox-previous.png:
14210         - data/art/rhythmbox-repeat.png:
14211         - data/art/rhythmbox-rewind.png:
14212         - data/art/rhythmbox-shuffle.png:
14213         - data/art/rhythmbox-stop.png:
14214         - data/art/rhythmbox-visuals.png:
14215         - data/art/rhythmbox-volume-max.png:
14216         - data/art/rhythmbox-volume-medium.png:
14217         - data/art/rhythmbox-volume-min.png:
14218         - data/art/rhythmbox-volume-mute.png:
14219         - data/art/rhythmbox-volume-zero.png:
14220         * lib/rb-stock-icons.c: (rb_stock_icons_init):
14221         * lib/rb-stock-icons.h:
14222         * shell/rb-playlist-manager.c:
14223         * shell/rb-shell-player.c:
14224         * sources/rb-daap-source.c: (rb_daap_get_icon):
14225         * sources/rb-ipod-source.c:
14226         * sources/rb-iradio-source.c: (rb_iradio_source_init):
14227         * sources/rb-library-source.c: (rb_library_source_new):
14228         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14229         * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14230         that hasn't been used in a LONG time, and also remove art that are
14231         now stock icons.
14233 2005-09-27  James Livingston  <jrl@ids.org.au>
14235         * README: point to the gnome.org web sites, and update the example
14236         gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14237         
14238         * rhythmdb/rhythmdb-query-model.c:
14239         (rhythmdb_query_model_set_property),
14240         (rhythmdb_query_model_get_property),
14241         (rhythmdb_query_model_finalize):
14242         * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14243         (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14244         * rhythmdb/rhythmdb.h:
14245         * sources/rb-iradio-source.c: (impl_search):
14246         * sources/rb-library-source.c: (impl_search): Add query
14247         "preprocessing", which performs operations such as casefolding any
14248         strings that will be compared to any of the *_FOLDED properties.
14249         Closes bug 316039
14251 2005-09-27  James Livingston  <jrl@ids.org.au>
14253         * data/glade/daap-prefs.glade:
14254         * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14255         file for the daap preferences pane
14256         
14257         * sources/rb-sourcelist.c: (rb_sourcelist_init),
14258         (rb_sourcelist_append), (rb_sourcelist_remove),
14259         (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14260         don't display the column for source expanders unless there is an
14261         expandable source.
14263 2005-09-24  Raphael Slinckx  <rslinckx@cvs.gnome.org>
14265         * .cvsignore:
14266         * Makefile.am:
14267         * configure.ac:
14268         * doc/.cvsignore:
14269         * doc/Makefile.am:
14270         * doc/reference/.cvsignore:
14271         * doc/reference/Makefile.am:
14272         * doc/reference/rhythmbox-docs.sgml:
14273         * doc/reference/rhythmbox-sections.txt:
14274         * doc/reference/rhythmbox.types:
14275         * doc/reference/tmpl/bacon-volume.sgml:
14276         * doc/reference/tmpl/disclosure-widget.sgml:
14277         * doc/reference/tmpl/eel-gconf-extensions.sgml:
14278         * doc/reference/tmpl/eggnotificationbubble.sgml:
14279         * doc/reference/tmpl/eggtrayicon.sgml:
14280         * doc/reference/tmpl/gsequence.sgml:
14281         * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14282         * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14283         * doc/reference/tmpl/rb-daap-connection.sgml:
14284         * doc/reference/tmpl/rb-daap-dialog.sgml:
14285         * doc/reference/tmpl/rb-daap-mdns.sgml:
14286         * doc/reference/tmpl/rb-daap-share.sgml:
14287         * doc/reference/tmpl/rb-daap-sharing.sgml:
14288         * doc/reference/tmpl/rb-daap-source.sgml:
14289         * doc/reference/tmpl/rb-daap-src.sgml:
14290         * doc/reference/tmpl/rb-daap-structure.sgml:
14291         * doc/reference/tmpl/rb-debug.sgml:
14292         * doc/reference/tmpl/rb-dialog.sgml:
14293         * doc/reference/tmpl/rb-druid.sgml:
14294         * doc/reference/tmpl/rb-entry-view.sgml:
14295         * doc/reference/tmpl/rb-enums.sgml:
14296         * doc/reference/tmpl/rb-file-helpers.sgml:
14297         * doc/reference/tmpl/rb-glade-helpers.sgml:
14298         * doc/reference/tmpl/rb-header.sgml:
14299         * doc/reference/tmpl/rb-history.sgml:
14300         * doc/reference/tmpl/rb-ipod-source.sgml:
14301         * doc/reference/tmpl/rb-iradio-source.sgml:
14302         * doc/reference/tmpl/rb-library-source.sgml:
14303         * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14304         * doc/reference/tmpl/rb-metadata.sgml:
14305         * doc/reference/tmpl/rb-new-station-dialog.sgml:
14306         * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14307         * doc/reference/tmpl/rb-play-order-linear.sgml:
14308         * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14309         * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14310         * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14311         * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14312         * doc/reference/tmpl/rb-play-order-random.sgml:
14313         * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14314         * doc/reference/tmpl/rb-play-order.sgml:
14315         * doc/reference/tmpl/rb-player.sgml:
14316         * doc/reference/tmpl/rb-playlist-manager.sgml:
14317         * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14318         * doc/reference/tmpl/rb-playlist-source.sgml:
14319         * doc/reference/tmpl/rb-preferences.sgml:
14320         * doc/reference/tmpl/rb-property-view.sgml:
14321         * doc/reference/tmpl/rb-query-creator-private.sgml:
14322         * doc/reference/tmpl/rb-query-creator.sgml:
14323         * doc/reference/tmpl/rb-rating-helper.sgml:
14324         * doc/reference/tmpl/rb-rating.sgml:
14325         * doc/reference/tmpl/rb-recorder.sgml:
14326         * doc/reference/tmpl/rb-refstring.sgml:
14327         * doc/reference/tmpl/rb-removable-media-manager.sgml:
14328         * doc/reference/tmpl/rb-removable-media-source.sgml:
14329         * doc/reference/tmpl/rb-search-entry.sgml:
14330         * doc/reference/tmpl/rb-shell-clipboard.sgml:
14331         * doc/reference/tmpl/rb-shell-glue.sgml:
14332         * doc/reference/tmpl/rb-shell-player-glue.sgml:
14333         * doc/reference/tmpl/rb-shell-player.sgml:
14334         * doc/reference/tmpl/rb-shell-preferences.sgml:
14335         * doc/reference/tmpl/rb-shell.sgml:
14336         * doc/reference/tmpl/rb-song-display-box.sgml:
14337         * doc/reference/tmpl/rb-song-info.sgml:
14338         * doc/reference/tmpl/rb-source-header.sgml:
14339         * doc/reference/tmpl/rb-source.sgml:
14340         * doc/reference/tmpl/rb-sourcelist-model.sgml:
14341         * doc/reference/tmpl/rb-sourcelist.sgml:
14342         * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14343         * doc/reference/tmpl/rb-statusbar.sgml:
14344         * doc/reference/tmpl/rb-stock-icons.sgml:
14345         * doc/reference/tmpl/rb-string-helpers.sgml:
14346         * doc/reference/tmpl/rb-thread.sgml:
14347         * doc/reference/tmpl/rb-tray-icon.sgml:
14348         * doc/reference/tmpl/rb-tree-dnd.sgml:
14349         * doc/reference/tmpl/rb-tree-model-sort.sgml:
14350         * doc/reference/tmpl/rb-util.sgml:
14351         * doc/reference/tmpl/rhythmdb-property-model.sgml:
14352         * doc/reference/tmpl/rhythmdb-query-model.sgml:
14353         * doc/reference/tmpl/rhythmdb-tree.sgml:
14354         * doc/reference/tmpl/rhythmdb.sgml:
14355         * macros/.cvsignore:
14356         * shell/Makefile.am:
14357         * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14358         (rb_source_finalize), (rb_source_set_property),
14359         (rb_source_get_property), (default_get_pixbuf),
14360         (_rb_source_show_popup):
14361         * sources/rb-source.h:
14362         Add support for gtk-doc in rhythmbox.
14363         Convert RBSource to use newer glib functions, such as add_private.
14364         Gives RBSource a default get_pixbuf implementation.
14366 2005-09-25  James Livingston  <jrl@ids.org.au>
14368         * NEWS: Update with about a months worth of changes
14370         * data/glade/song-info-multiple.glade:
14371         * data/glade/song-info.glade:
14372         * data/rhythmbox.schemas:
14373         * lib/rb-preferences.h:
14374         * rhythmdb/rhythmdb.h:
14375         * shell/rb-shell-player.c:
14376         * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
14377         few remaining parts of autorating.
14379 2005-09-24  James Livingston  <jrl@ids.org.au>
14381         * shell/rb-shell.c: (rb_shell_constructor),
14382         (rb_shell_window_state_cb), (rb_shell_set_visibility),
14383         (rb_shell_window_configure_cb): store window state in the gconf keys,
14384         so that it gets used. Closes bugs 313893 and 137068.
14386 2005-09-20  James Livingston  <jrl@ids.org.au>
14388         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
14389         crash if the entry has a NULL string in a property
14390         
14391         * shell/rb-removable-media-manager.c:
14392         (rb_removable_media_manager_load_media): fix some memory leaks
14393         
14394         (rb_removable_media_manager_mount_volume),
14395         (rb_removable_media_manager_eject_medium_cb),
14396         (rb_removable_media_manager_cmd_eject_medium): use
14397         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14398         
14399         * sources/rb-removable-media-source.c:
14400         (rb_removable_media_source_set_property),
14401         (rb_removable_media_source_get_property): use
14402         gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14404 2005-09-18  James Livingston  <jrl@ids.org.au>
14406         Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
14407         column
14409         * data/glade/general-prefs.glade:
14410         * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
14411         (rb_shell_preferences_column_check_changed_cb),
14412         (rb_shell_preferences_sync): add checkbox to control visibility
14413         of the column
14414         
14415         
14416         * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14417         (save_entry):
14418         * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
14419         (rhythmdb_prop_get_type):
14420         * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
14421         was as "last played" is handled
14422         
14423         * sources/rb-library-source.c: (rb_library_source_constructor):
14424         * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14425         Make the column show in the library and playlists
14426         
14427         * widgets/rb-entry-view.c: (rb_entry_view_append_column):
14428         * widgets/rb-entry-view.h: add the column
14429         
14430         * widgets/rb-query-creator-properties.c: allow automatic playlists to
14431         be sorted by the column
14433 2005-09-16  James Livingston  <jrl@ids.org.au>
14435         * shell/rb-shell-player.c: (rb_shell_player_init),
14436         (rb_shell_player_do_previous_or_seek),
14437         (rb_shell_player_previous_button_cb),
14438         (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14439         (rb_shell_player_playpause_button_cb): Make the previous button act
14440         the same as the menu item. Fix an inversion of the "previous track or
14441         seek" logic.
14442         
14443         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14444         
14445         (rb_shell_player_playpause): make --play-pause stop source that can't
14446         be paused
14448 2005-09-15  James Livingston  <jrl@ids.org.au>
14450         * configure.ac: increase totem-plparser requirements to 1.1.5
14452         * shell/rb-playlist-manager.c: (playlist_load_start_cb),
14453         (playlist_load_end_cb), (rb_playlist_manager_parse_file):
14454         * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
14455         use the newer playlist APIs to save the name of the playlist, and use
14456         the name of a loaded playlist.
14458         Closes bug 309817.
14460 2005-09-15  James Livingston  <jrl@ids.org.au>
14462         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14464         * shell/Makefile.am: stop some linker warnings
14466         * shell/main.c: (main): make --no-registration work with dbus
14468 2005-09-15  James Livingston  <jrl@ids.org.au>
14470         * daapsharing/rb-daap-sharing.c: (create_share):
14471         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
14472         reference sinking and counting issues that I caused.
14474 2005-09-15  James Livingston  <jrl@ids.org.au>
14476         * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
14477         playing" icon in the "now playing" column header.
14479 2005-09-14  James Livingston  <jrl@ids.org.au>
14481         * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
14482         daap shares, when sharing is turned off.
14484 2005-09-12  Bastien Nocera  <hadess@hadess.net>
14486         * sources/rb-daap-source.c: (rb_daap_sources_init): Check
14487         the GConf value's default, especially for badly installed schema
14488         files
14490 2005-09-12  James Livingston  <jrl@ids.org.au>
14492         * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
14494         Patch from Paolo Borelli <pborelli@katamail.com>
14496         * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
14497         grip when maximised. Closes bug 316055.
14499 2005-09-11  James Livingston  <jrl@ids.org.au>
14501         Patch from William Jon McCann <mccann@jhu.edu>
14503         * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE.  Make a
14504         subclass of GtkStatusbar instead of GtkHBox.
14505         (rb_statusbar_construct): Don't set border width.
14506         (rb_statusbar_init): Use resize grip.  Don't use
14507         markup.
14508         (set_statusbar_tooltip, unset_statusbar_tooltip) 
14509         (rb_statusbar_connect_action_group, rb_statusbar_set_property):
14510         Connect tooltips for actions.
14511         (rb_statusbar_sync_status): Push new message to statusbar.
14512         (rb_statusbar_set_progress): Don't use markup.
14513         (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
14514         flag here since it prevents actually showing or hiding.
14515         (rb_statusbar_sync_with_source): Push new message to statusbar.
14517 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14519         * daapsharing/rb-daap-structure.c:
14520         (rb_daap_structure_parse_container_buffer: Forgot to remove comments
14521         around debugging definition.
14523 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14524         
14525         * daapsharing/rb-daap-structure.c:
14526         (rb_daap_structure_parse_container_buffer): Read the patch from daap 
14527         type = version.
14529         * daapsharing/rb-daap-mdns.c/h:
14530         (resolve_cb): Updated mDNS resolve callback to send service-name &
14531         name (read from Machine Name in the TXT data or equal to service-name
14532         if not in TXT).
14534         * daapsharing/rb-daap-source.c:
14535         (rb_daap_source_class_init), (rb_daap_source_set_property), 
14536         (rb_daap_source_get_property), (rb_daap_source_new),
14537         (find_source_by_service_name), (resolve_cb), (browse_cb), 
14538         (stop_resolver), (start_browsing), (stop_browsing), 
14539         (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
14540         and added 'host' and 'port' gobject properties.  Updated to use new
14541         mDNS resolve callback sending service-name & name arguments.
14543 2005-09-11  Charles Schmidt   <cschmidt2@emich.edu>
14545         * daapsharing/rb-daap-mdns.c:
14546         (howl_strerror): New function to report errors from Howl
14547         (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), 
14548         (get_sw_discovery), (get_avahi_client): Better error reporting from
14549         Howl & Avahi.
14551         * sources/rb-daap-source.:
14552         (start_browsing), (stop_browsing): Fixed a bug where browsing would
14553         not get started or stopped in some situations.
14554         
14555 2005-09-12  James Livingston  <jrl@ids.org.au>
14557         * shell/rb-removable-media-manager.c: add a missing include, that
14558         would stop compilation if ipod support wasn't turned on
14560 2005-09-11  James Livingston  <jrl@ids.org.au>
14562         * daapsharing/rb-daap-dialog.c: (encode_base64),
14563         (rb_daap_password_dialog_new_run),
14564         (rb_daap_collision_dialog_new_run): fix a translatable string, so that
14565         it is no broken in to two pieces, and remove a use of a goto
14566         
14567         * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
14568         (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
14569         (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
14570         (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
14571         (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
14572         memory leaks, and some code style things.
14573         
14574         * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
14575         (rb_daap_share_init), (rb_daap_share_set_property),
14576         (rb_daap_share_dispose), (rb_daap_share_new),
14577         (rb_daap_share_get_property): make the DB and the playlist manager
14578         gobject properties.
14579         
14580         (message_add_standard_headers),
14581         (message_set_from_rb_daap_structure), (server_info_cb),
14582         (content_codes_cb), (login_cb), (update_cb), (databases_cb),
14583         (server_cb), (add_db_entry), (db_entry_added_cb),
14584         (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
14585         (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
14586         style and use CONF_PREFIX in the gconf keys
14587         
14588         * daapsharing/rb-daap-sharing.c: (create_share),
14589         (enable_sharing_changed_cb), (share_name_changed_cb),
14590         (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
14591         * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
14592         (rb_daap_src_instance_init), (rb_daap_src_dispose),
14593         (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
14594         (rb_daap_src_get_property), (rb_daap_src_getcaps),
14595         (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
14596         (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
14597         (rb_daap_src_get_time): Deal with gconf callbacks where the key
14598         hasn't actually changed, fix some memory leaks, code style and release
14599         gconf notifications when the object is destroyed.
14600         
14601         * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
14602         (rb_daap_source_class_init), (rb_daap_source_init),
14603         (rb_daap_source_dispose), (rb_daap_source_set_property),
14604         (rb_daap_source_get_property), (rb_daap_source_new),
14605         (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
14606         (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
14607         (rb_daap_sources_init), (rb_daap_sources_shutdown),
14608         (rb_daap_source_activate), (rb_daap_source_disconnect),
14609         (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
14610         (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
14611         release gconf notifications, handle gconf callbacks where the key
14612         hasn't changed, make "real name" and "password protected" gobject
14613         properties, fix some code style and fix a memory leak.
14615 2005-09-11  James Livingston  <jrl@ids.org.au>
14617         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14619         * shell/rb-playlist-manager.c:
14620         (rb_playlist_manager_save_playlists),
14621         (rb_playlist_manager_get_playlists): don't unref the sourcelist model
14622         when we aren't supposed to. (Closes bug 315886)
14624 2005-09-11  James Livingston  <jrl@ids.org.au>
14626         * shell/rb-removable-media-manager.c:
14627         (rb_removable_media_manager_class_init),
14628         (rb_removable_media_manager_init),
14629         (rb_removable_media_manager_dispose),
14630         (rb_removable_media_manager_set_property),
14631         (rb_removable_media_manager_get_property),
14632         (rb_removable_media_manager_new),
14633         (rb_removable_media_manager_load_media),
14634         (rb_removable_media_manager_volume_mounted_cb),
14635         (rb_removable_media_manager_volume_unmounted_cb),
14636         (rb_removable_media_manager_mount_volume),
14637         (rb_removable_media_manager_unmount_volume),
14638         (rb_removable_media_manager_source_deleted_cb),
14639         (rb_removable_media_manager_append_media_source),
14640         (rb_removable_media_manager_set_uimanager),
14641         (rb_removable_media_manager_eject_medium_cb),
14642         (rb_removable_media_manager_cmd_eject_medium):
14643         * shell/rb-removable-media-manager.h:
14644         * sources/rb-removable-media-source.c:
14645         (rb_removable_media_source_class_init),
14646         (rb_removable_media_source_init),
14647         (rb_removable_media_source_dispose),
14648         (rb_removable_media_source_set_property),
14649         (rb_removable_media_source_get_property), (impl_get_pixbuf),
14650         (impl_delete_thyself):
14651         * sources/rb-removable-media-source.h: Add the four files that I
14652         somehow managed not to add to cvs in the last commit. Oops.
14654 2005-09-11  James Livingston  <jrl@ids.org.au>
14656         * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
14657         * sources/Makefile.am: Add rb-removable-media-source.{c,h} 
14658         
14659         * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14660         (rb_shell_medium_added_cb), (rb_shell_select_source): create the
14661         removable-media-manager on startup, and handle creation of sources.
14662         
14663         * sources/rb-ipod-source.h:
14664         * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
14665         (rb_ipod_source_init), (rb_ipod_source_constructor),
14666         (rb_ipod_source_dispose), (rb_ipod_source_new),
14667         (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
14668         the iPod source over to the removable media framework.
14669         
14670         * sources/rb-library-source.c: (paned_size_allocate_cb),
14671         (rb_library_source_get_paned_key): fix a potential bug is a
14672         library-derived source doesn't have a paned-key
14674 2005-09-11  Bastien Nocera  <hadess@hadess.net>
14676         * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
14677         mp3 when we can't get the suffix of a file (Closes: #315941)
14679 2005-09-10  James Livingston  <jrl@ids.org.au>
14681         * configure.ac: fix the mdns tests, so that it doesn't complain about
14682         not finding one, if daap support isn't being compiled in
14684 2005-09-10  Charles Schmidt   <cschmidt2@emich.edu>
14686         * configure.ac: Updated to require avahi >= 0.5.  Small fixes.
14688         * daapsharing/rb-daap-dialog.c:
14689         (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
14690         HIG compliancy & images.
14692         * daapsharing/rb-daap-mdns.c:
14693         (browse_cb), (resolve_cb): Better detection of local services.  
14694         Requries avahi 0.5.  Still doesn't work quite right with Howl, due to 
14695         Howl's limitations.  Fix the way collision handling is done under
14696         Avahi.
14698         * daapsharing/rb-daap-share.c:
14699         (publish_cb): Better name collision handling (at least for Avahi).
14701 2005-09-10  James Livingston  <jrl@ids.org.au>
14703         * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
14704         Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
14705         preferences more HIG compliant (Closes #315889)
14706         
14707         * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
14708         list of files to be translated
14710 2005-09-10  James Livingston  <jrl@ids.org.au>
14712         * configure.ac: fix it so that --enable-daap=no works
14713         * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
14714         uninstalled
14716 2005-09-10  James Livingston  <jrl@ids.org.au>
14718         Patch from Christophe Fergeau <teuf@gnome.org>
14720         * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
14721         the ipod code.
14723 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14724         * README.daap: Updating documentation
14726 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14727         * AUTHORS: Added myself.
14729         * daapsharing/rb-daap-connection.c:
14730         (connection_login), (rb_connection_new): Reorganized password
14731         handling.
14733         * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
14735         * shell/rb-shell.c:
14736         (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
14738         * sources/rb-daap-source.c:
14739         (rb_daap_source_activate): Better error handling when we are unable to
14740         connect.
14741         
14742 2005-09-09  Charles Schmidt   <cschmidt2@emich.edu>
14743         * README.daap: Fixed some terminology.
14745         * configure.ac: Better automatic detection of mDNS/DNS-SD library.
14746         New --with-mdns=auto|howl|avahi flag to specify.
14748         * daapsharing/rb-daap-dialog.c/h: New files to handle password &
14749         name collision dialogs.
14751         * daapsharing/rb-daap-connection.c:
14752         (connection_get_password), (build_message), (http_get)
14753         (connection_login): Ask for & use a password if the share demands it.
14755         * daapsharing/rb-daap-connection.h: Changed prototype of
14756         rb_daap_connection_new.
14757         
14758         * daapsharing/rb-daap-mdns.c: 
14759         (resolve_cb): Better detection of your own music share so it doesn't 
14760         appear in the sourcelist.
14762         * daapsharing/rb-daap-share.c:
14763         (rb_daap_share_start_publish): Attempt to start on port 3689, failing
14764         that start on any available port.
14766         * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
14768         * sources/rb-daap-source.c:
14769         (find_source_by_name), (rb_daap_source_new), (resolve_cb),
14770         (browse_cb): Handle passworded shares. Resolve the host immediately
14771         instead of when activated.
14772         (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
14773         (rb_daap_source_new): New GConf keys for UI state.
14774         (rb_daap_source_activate): Use RBPlaylistSource instead of
14775         RBDAAPPlaylistSource
14776         
14777         * sources/rb-daap-playlist-source.c/h: Removed
14779         * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
14780         if the playlist is local (i.e. not DAAP or iPod).
14781         
14782         * shell/rb-playlist-manager.c:
14783         (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
14784         wouldn't get saved if the last playlist hadn't changed.  Only save
14785         local playlists.
14786         
14787 2005-09-09  James Livingston  <jrl@ids.org.au>
14789         * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
14790         iPod preferences pane, as it already uses the browser views as the
14791         library.
14793 2005-09-09  James Livingston  <jrl@ids.org.au>
14795         * sources/rb-library-source.c: (rb_library_source_finalize),
14796         (rb_library_source_constructor): fix gconf monitoring of library
14797         preference keys.
14798         * sources/rb-library-source.h: remove declaration of function that
14799         does not exist
14801 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
14803         * player/rb-player-gst.c:
14804         (rb_player_set_time): Fix seeking in daap streams.
14806 2005-09-08  Charles Schmidt   <cschmidt2@emich.edu>
14808         * data/rhythmbox.schemas: Turn music share browsing on by default.
14810 2005-09-07  James Livingston  <jrl@ids.org.au>
14812         * configure.ac: include daapsharing/Makefile in AC_OUTPUT
14814 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
14815         * player/rb-player-gst.c: 
14816         (rb_player_get_time): Fix for extra << & == that accidentally made
14817         it in.
14819         * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
14820         
14821 2005-09-06   Charles Schmidt   <cschmidt2@emich.edu>
14822         * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
14823         it in last time.  Sorry.
14825 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
14826         
14827         * player/rb-player-gst.c:
14828         (rb_player_get_time): Fix a small crash appearing when
14829         the uri isn't set in the player, but rb_player_get_time() is
14830         still called.
14832         * configure.ac: Also check for libsoup 2.4, which is what ships with
14833         Gnome 2.12.
14835         * po/POTFILES.in: Added music sharing files that have translatable 
14836         strings.
14838         * README.daap: New file explaining "How Music Sharing Works"  
14840 2005-09-06  Bastien Nocera  <hadess@hadess.net>
14842         * daapsharing/.cvsignore: added
14844 2005-09-06  Charles Schmidt   <cschmidt2@emich.edu>
14846         * daapsharing/*: Music sharing library.
14847         
14848         * sources/rb-daap-source.c/h: Music share RBSource.
14849         * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
14851         * configure.ac: --enable-daap flag to turn on music sharing. Requires
14852         libsoup and a mutlicast DNS implementation (howl or avahi).
14854         * data/rhythmbox.schemas: New GConf keys for music sharing.
14856         * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
14857         source right click menu.
14859         * player/rb-player-gst.c: Changes to properly play & seek in remote
14860         music share files.
14862         * shell/rb-playlist-manager.c/h:
14863         (rb_playlist_manager_get_playlists): New function to get a GList * of
14864         the playlists.
14865         (rb_playlist_manager_save_playlists): Don't save music share playlists
14866         and fixed a GObject reference leak.
14868         * shell/rb-shell.c/h:
14869         (rb_shell_append_source): No longer a local function.  Now takes a
14870         parent RBSource * argument, NULL to append a toplevel source.
14871         (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
14872         source (useful for disconnecting from remote music share,
14873         specifically).
14874         (rb_shell_quit): Stop music sharing/browsing.
14875         (rb_shell_playlist_added_cb): Work with tree source structure.
14876         (rb_shell_get_property): "playlist-manager" property accessor.
14877         (rb_shell_class_init): New "playlist-manager" property.
14878         (rb_shell_construor): Append sources as toplevel sources.  Initialize
14879         daap sharing/browsing.
14880         (rb_shell_select_source): Notify source of activation/deactivation.
14882         * shell/rb-shell-prefernces.c: Music sharing preferences.
14884         * sources/rb-source.c/h: New activate, deactivate and disconnect
14885         class functions.  Activate & deactivate are notification style 
14886         functions that will tell a source when it is selected/unselected.
14887         Disconnect can be hooked up to a UI object to disconnect the source.
14889         * sources/rb-sourcelist-model.c:
14890         * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
14891         (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
14892         append a toplevel source.
14894 2005-09-05  James Livingston  <jrl@ids.org.au>
14896         * rhythmdb/rhythmdb-query-model.c:
14897         (rhythmdb_query_model_entry_changed_cb),
14898         (rhythmdb_query_model_do_reorder): Update the query model's totals if
14899         the duration of filesize of an entry changes.  Emit the row-changed
14900         signals that I forgot to put back in, when I was doing query sorting.
14902         * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
14903         out "0 minutes" or "0 bytes".
14905 2005-09-04  James Livingston  <jrl@ids.org.au>
14907         * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
14908         remove a leftover bit of the "internal-name" property of sources.
14910 2005-09-03  James Livingston  <jrl@ids.org.au>
14912         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
14913         extraneous debug message
14914         * sources/rb-library-source.c: (rb_library_source_do_query): fix a
14915         crasher would affect any library-derived sources (which was also a
14916         memory leak).
14918 2005-09-02  Colin Walters  <walters@verbum.org>
14920         * configure.ac: Fix sytnax error.
14922         * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
14923         code to disable minimization icons - need to figure out
14924         why it doesn't work...
14926 2005-09-01  Dennis Cranston  <dennis_cranston@yahoo.com>
14928         * data/glade/song-info-multiple.glade:
14929         * data/glade/song-info.glade:
14930         * widgets/rb-song-info.c: (rb_song_info_constructor):
14931         Add a mnemonic to the newly added "Automatically rate" label
14932         in the properties dialog and use a bold typeface like all the 
14933         other labels in the dialog. (Closes bug 315089)
14935 2005-09-03  James Livingston  <jrl@ids.org.au>
14937         * sources/rb-library-source.c: (rb_library_source_class_init),
14938         (rb_library_source_finalize), (rb_library_source_constructor),
14939         (rb_library_source_set_property), (rb_library_source_get_property),
14940         (impl_get_paned_key), (paned_size_allocate_cb),
14941         (rb_library_source_state_prefs_sync), (impl_show_popup),
14942         (rb_library_source_get_paned_key):
14943         * sources/rb-library-source.h: Allow sources derived from
14944         RBLibrarySource to use different gconf keys for sort order, browser
14945         visibility and browser pane position. Fix a crasher if a derived
14946         source overrides _get_pixbuf.
14948 2005-09-02  Colin Walters  <walters@verbum.org>
14950         * shell/rb-shell.c (rb_shell_set_visibility): Move
14951         hint setting which seems to avoid races more.
14952         
14953 2005-09-03  James Livingston  <jrl@ids.org.au>
14955         * shell/rb-shell.c: fix compilation with iPod support enabled
14956         
14957 2005-09-02  Colin Walters  <walters@verbum.org>
14959         * shell/rb-shell.c (struct RBShellPrivate): Add
14960         idle_hide_mainwindow_id.
14961         (rb_shell_constructor): Move taskbar skipping hint into
14962         rb_shell_set_visibility.
14963         (idle_hide_mainwindow): New function.
14964         (rb_shell_set_visibility): Taskbar hinting moved here; add evil
14965         racy hack to avoid rb appearing in taskbar when minimized.
14967 2005-09-01  Colin Walters  <walters@verbum.org>
14969         * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
14971         * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
14972         from gtkstatusicion.c.
14974         * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
14976         * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
14977         TrayShowWindow entry.
14978         (rb_tray_icon_class_init): Make GtkActionGroup readable only.
14979         (rb_tray_icon_constructor): Create action group here.
14980         (rb_tray_icon_finalize): Destroy action group.
14981         (rb_tray_icon_set_property): Don't take an action group.
14982         (rb_tray_icon_new): Ditto.
14983         (tray_popup_position_menu): Some mostly boilerplate code
14984         to position menu.
14985         (rb_tray_icon_button_press_event_cb): Position menu.
14986         (rb_tray_icon_get_geom): New function used for the shell
14987         to set minimization hints.
14989         * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
14991         * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
14992         (struct RBShellPrivate): Change visible to iconified.
14993         (set_icon_geometry): New function from Søren Sandmann to
14994         tell Metacity where to draw the minimization animiation.
14995         (rb_shell_window_state_cb): Update iconified.
14996         (rb_shell_get_visibility): New function to say whether
14997         or not we're currently visible.
14998         (rb_shell_set_visibility): Update to minimize to
14999         tray or present as appropriate.
15000         (rb_shell_window_delete_cb): On window close, just
15001         minimize to tray if we're deleted.
15002         (rb_shell_set_window_title): Kill old notification code.
15003         (rb_shell_toggle_visibility): Nwe function.
15004         (rb_shell_cmd_toggle_visibility): Call it.
15005         (rb_shell_constructor): Skip the taskbar.
15006         (tray_destroy_cb): Better debugging.
15007         
15008 2005-09-01  Colin Walters  <walters@verbum.org>
15010         * data/ui/rhythmbox-ui.xml: Add MusicClose.
15012         * configure.ac: Enable bonobo by default.
15013         
15014 2005-09-01  Colin Walters  <walters@verbum.org>
15016         * configure.ac: Default to old art.  Add macros subdir.
15018         * Makefile.am (SUBDIRS): Add macros.
15020         * macros/Makefile.am: New.
15021         
15022 2005-09-01  Colin Walters  <walters@verbum.org>
15024         * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15025         rb-shell-player.xml.
15027         * remote/dbus/rb-remote-dbus.h: Deleted.
15028         
15029         * remote/dbus/Makefile.am: Delete all the junk, just dist
15030         rb-print-playing.py and rb-set-rating.py.
15032         * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15034         * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15036 2005-09-02  James Livingston  <jrl@ids.org.au>
15038         - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15039         file from cvs
15041         * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15042         (rb_shell_constructor): Patches from Jonathan Matthew
15043         <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15044         a crash when using "browse this artist".
15046 2005-08-31  Colin Walters  <walters@verbum.org>
15048         * configure.ac: Add --with-old-art configure switch.  Also
15049         add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15050         but it doesn't work.
15052         * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15053         Don't use eel_create_colorized_pixbuf for new art.
15054         * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15056         * data/art-clearlooks: New artwork.
15057         
15058 2005-08-31  Colin Walters  <walters@verbum.org>
15060         * shell/main.c (main): Fix Bastien's commit to continue to focus
15061         the window with GTK+ 2.8 at least.
15062         
15063 2005-08-31  Colin Walters  <walters@verbum.org>
15065         * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15066         is already loaded.
15068         * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15070 2005-08-31  Bastien Nocera  <hadess@hadess.net>
15072         * README: remove mentions of the xine-lib backend
15073         * shell/main.c: (main): make it compilable with gtk+ < 2.8
15075 2005-08-30  Colin Walters  <walters@verbum.org>
15077         * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): 
15078         Make non-visible sources insensitive.
15079         
15080 2005-08-30  Colin Walters  <walters@verbum.org>
15082         * shell/rb-shell.c: Don't use GConf for selected source; it's
15083         confusing to have the selected source change after startup,
15084         and since we don't save other things it's not worth saving this.
15086         * sources/rb-playlist-source.c:
15087         * sources/rb-library-source.c:
15088         * sources/rb-iradio-source.c:
15089         * sources/rb-ipod-source.c: Delete internal-name property usage.
15090         * sources/rb-source.c: Delete internal-name property.
15092         * data/rhythmbox.schemas: Delete selected_source.
15093         
15094 2005-08-30  Colin Walters  <walters@verbum.org>
15096         * sources/rb-sourcelist.c: Make playing source bold instead of
15097         displaying a pixbuf; it's much less ugly.
15098         
15099 2005-08-30  Colin Walters  <walters@verbum.org>
15101         * sources/rb-source.c:
15102         * sources/rb-source.h: New virtual method try_playlist.
15104         * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15105         impl_try_playlist.
15106         (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15107         (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15108         (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15109         need to.
15110         (stations_view_drag_data_received_cb): Don't check for iradio uris;
15111         in theory we should though...
15113         * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15114         list in rb_shell_construct now.
15115         (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15116         RBiPodSource.
15117         (rb_shell_constructor): Create library, iradio, ipod here.
15118         (rb_shell_source_deleted_cb): Use source directly instead of
15119         indirecting through type.
15120         (rb_shell_sync_selected_source): Ditto.
15121         (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15122         from the type instead of special-casing.
15123         (rb_shell_guess_type_for_uri) 
15124         (rb_shell_add_uri)
15125         (handle_one_uri_with_possible_metadata): New functions.
15126         (rb_shell_load_uri): Refactor to allow loading playlists again,
15127         also use other URI infrastructure.
15129         * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15130         (rb_shell_player_error): Always set entry error on error, instead
15131         of depending on EOF behavior.
15133         * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15134         to just invoke rb_shell_add_uri.
15135         (rb_playlist_manager_parse_file): Return error instead of tossing
15136         up dialog box directly.
15137         (load_playlist_response_cb): Display error here.
15138         (add_uri_to_playlist): Delete.
15139         (handle_playlist_entry_into_playlist_cb): Renamed to
15140         handle_playlist_entry_cb.
15142         * shell/rb-playlist-manager.h: Add error, update prototype.
15144         * lib/rb-file-helpers.c:
15145         * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15147 2005-08-29  Colin Walters  <walters@verbum.org>
15149         * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15150         if entry already exists.  Use rhythmdb_entry_set_uninserted.
15152         * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15153         needlessly duping string, and use rhythmdb_entry_set_uninserted.
15154         (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15156         * shell/rb-shell.h (enum RBShellError): Add some more errors.
15157         Prototype rb_shell_set_song_property.
15159         * shell/rb-shell.xml: Export setSongProperty.
15161         * shell/rb-shell.c (rb_shell_set_song_property): New function.
15162         (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15163         rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15165         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15166         rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15167         want to notify of the change.
15168         (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15170         * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15171         logic error; idle functions would be enqueued for each set.
15172         (rhythmdb_entry_set): Fix assertion logic error.
15174         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15175         Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15176         Return if the entry already exists.
15177         
15178 2005-08-29  Colin Walters  <walters@verbum.org>
15180         * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15181         "inserted" member which we use to keep track of
15182         whether or not an entry is in the DB.  Prototype
15183         rhythmdb_entry_set_uninserted.
15185         * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15186         flag.
15187         (rhythmdb_entry_insert): Assert entry is not already inserted.
15188         (rhythmdb_process_metadata_load): Update to call _set_uninserted
15189         just after creating entry.
15190         (rhythmdb_entry_set): Document, and fail on uninserted entries.
15191         (rhythmdb_entry_set_nonotify): Ditto.
15192         (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15193         entries.
15194         (rhythmdb_entry_set_internal): Change notify flag to
15195         notify_if_inserted.  Also move notification after assertions.
15197         Update all existing callers of rhythmdb_entry_set_internal
15198         to give TRUE for notify_if_inserted; this should be what
15199         we want but may be an efficiency hit.
15200         
15201 2005-08-30  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15203         * shell/rb-shell-player.c: (rb_shell_player_init),
15204         (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15205         (rb_shell_player_set_playing_source_internal),
15206         (rb_shell_player_sync_with_selected_source): Notify the player when an
15207         entry has updated the title, album or artist field, and resync the big
15208         display.
15209         
15210         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15211         * sources/rb-library-source.c: (rb_library_source_class_init),
15212         (impl_get_config_widget):
15213         * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15214         * sources/rb-source.c:
15215         * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15216         get_album functions in rb-source and adapted other sources accordingly.
15217         
15218 2005-08-29  Colin Walters  <walters@verbum.org>
15220         * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15221         signal_change member.
15222         (threadsafe_entry_set): New function.
15223         (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15224         (rhythmdb_entry_set_nonotify): New function; just call
15225         threadsafe_entry_set with FALSE.
15226         (rhythmdb_entry_set_internal): Take a notify flag; if true
15227         add the change to our pending set.
15229         Also update all internal callers of rhythmdb_entry_set_internal
15230         to pass FALSE.  Some of these may be bugs however and need to
15231         pass TRUE...
15233         * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15234         rhythmdb_entry_set, and rename rhythmdb_entry_set to
15235         rhythmdb_entry_set_nonotify.
15237         * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15238         (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15240         * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15242         * widgets/rb-entry-view.c (rb_entry_view_rated_cb): 
15243         * sources/rb-source.c (rb_source_update_play_statistics): 
15244         * sources/rb-iradio-source.c (rb_iradio_source_add_station): 
15245         * sources/rb-ipod-source.c (entry_set_string_prop) 
15246         (load_ipod_db_idle_cb): 
15247         * shell/rb-shell.c (rb_shell_set_rating_impl): 
15248         * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) 
15249         (info_available_cb): 
15250         * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) 
15251         (rb_station_properties_dialog_sync_entries): 
15252         * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): 
15254         Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15255         and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15256         
15257 2005-08-29  Colin Walters  <walters@verbum.org>
15259         * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15261         * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15262         linking insanity.
15264         * widgets/rb-header.c (sanitize_string): New function, extracted
15265         from old info_url.  Be sure to always strip the string.
15266         (info_url): Rewrite to take artist/album, and generate a sane
15267         URL for them from last.fm, which is better than allmusic.com in
15268         that they support Rhythmbox, and have a *SANE* URL scheme.
15269         (artist_info_url, album_info_url): Delete.
15270         (rb_header_sync): Use info_url.
15272 2005-08-29  James Livingston  <jrl@ids.org.au>
15274         * sources/rb-source.c: (rb_source_search): Check to ensure that this
15275         is implemented before calling it. Many sources don't implement the
15276         method.
15278 2005-08-28  Dennis Cranston  <dennis_cranston@yahoo.com>
15280         * data/glade/create-playlist.glade:  Cleanup the layout,
15281         and add a few more mnemonics.
15282         * shell/rb-playlist-manager.c:
15283         (rb_playlist_manager_cmd_load_playlist),
15284         (rb_playlist_manager_cmd_save_playlist): HIG fix, use title 
15285         capitalization for window titles.
15286         * widgets/rb-query-creator-properties.c: Add mnemonics
15287         to checkbutton labels.
15288         * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15289         (limit_toggled_cb):  Toggle the sortLabel sensitivity.
15291 2005-08-28  Colin Walters  <walters@verbum.org>
15293         * data/rhythmbox.schemas: Delete search_text for library
15294         and iradio; this isn't a persistent value anymore.
15295         Closes #313757.
15296         
15297         * sources/rb-source.h:
15298         * sources/rb-source.c: Delete impl_can_search.
15300         * sources/rb-iradio-source.c: Delete search_text usage.
15301         * sources/rb-library-source.c: Ditto.
15303         * shell/rb-source-header.c: Don't use GConf for search key.  Reset
15304         search when source is set, and just do rb_source_search in
15305         rb_source_header_search_cb.
15307         * shell/rb-shell.c (rb_shell_append_source): Don't
15308         initiate search.
15310         * shell/Makefile.am: Don't dist dashboard.c.
15312 2005-08-28  Colin Walters  <walters@verbum.org>
15314         * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15315         
15316 2005-08-28  Colin Walters  <walters@verbum.org>
15318         * data/org.gnome.Rhythmbox.service.in: New.
15320         * data/Makefile.am: Install service file.
15322         * configure.ac: Define DBUS_SERVICES_DIR.
15324         * autogen.sh: Set ACLOCAL_FLAGS.
15326         * macros/acinclude.m4: New.
15327         
15328 2005-08-28  Colin Walters  <walters@verbum.org>
15330         Initial patch from Jonathan Matthew; closes 313684.
15332         * rhythmdb/rhythmdb-tree.c:
15333         (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15334         (save_entry): Return on error.
15335         (rhythmdb_tree_save): Handle error when saving the
15336         db; additionally, handle errors from fclose and unlink,
15337         and print error too.
15339 2005-08-28  Colin Walters  <walters@verbum.org>
15341         * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15342         extra _.
15343         
15344 2005-08-28  Colin Walters  <walters@verbum.org>
15346         * configure.ac: Change iPod support to --with-ipod;
15347           automatically enable it if we have HAL.  Try to
15348           support both HAL 0.5 and HAL 0.2.  Break out
15349           totem-plparser into its own check so later we
15350           can do version tests there too.
15351           Kill dashboard support.
15352         
15353         * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15354         to support HAL > 0.5, but preserve the old code for HAL < 0.5
15355         Closes #310017.
15356         
15357         * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15358         (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15360         * sources/Makefile.am: Also handle
15361         TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15363         * shell/dashboard.c: Delete; someone should just write a little
15364         python shim which lists on the D-BUS interface and writes the
15365         stuff to Dashboard.  Even better Dashboard should be ported
15366         to D-BUS and do the listening itself, perhaps on an abstract
15367         "org.gnome.MusicPlayer" interface or something.
15369         * shell/rb-shell.c: Kill dashboard support.
15371 2005-08-28  Colin Walters  <walters@verbum.org>
15373         * remote/dbus/rb-print-playing.py: New file.
15375 2005-08-28  Colin Walters  <walters@verbum.org>
15377         * rhythmdb/rhythmdb.c (rhythmdb_entry_get): 
15378         * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
15380         * shell/rb-shell-player.h:
15381         * shell/rb-shell-player.c: Add playing-uri-changed signal.
15382         * shell/rb-shell-player.xml: Export it.
15384         * shell/rb-shell.c (rb_shell_get_song_properties): New function.
15385         (rb_shell_error_quark): New.
15387         * shell/rb-shell.h: Prototype.  Also add RBShellError.
15388         * shell/rb-shell.xml: Export rb_shell_get_song_properties.
15389         
15390 2005-08-28  Colin Walters  <walters@verbum.org>
15392         * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
15393         (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
15394         bonobo_unlock.
15395         (rb_remote_bonobo_preinit): Lock setting moved here.
15396         (rb_remote_bonobo_init): From here.
15398         * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
15399         Also invoke handle_cmdline in the right place.
15400         (handle_cmdline): Remove some unused vars.  Cast bonobo_load_uri to
15401         GFunc.
15403 2005-08-28  James Livingston  <jrl@ids.org.au>
15405         * NEWS: keep the NEWS file up to date, so we don't have to do it all
15406         when 0.9.1 comes around.
15408 2005-08-28  James Livingston  <jrl@ids.org.au>
15410         * iradio/rb-new-station-dialog.c:
15411         (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
15412         bug 314477.
15414 2005-08-28  James Livingston  <jrl@ids.org.au>
15416         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15418         * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
15419         * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
15420         is a song is longer than 60 minutes. Closes bug 313311.
15422 2005-08-27  James Livingston  <jrl@ids.org.au>
15424         * data/glade/create-playlist.glade:
15425         * widgets/rb-query-creator.c: (rb_query_creator_load_query),
15426         (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
15427         "minutes" as an option in the playlist limit menu.
15429         * rhythmdb/rhythmdb-query-model.c:
15430         (rhythmdb_query_model_class_init),
15431         (rhythmdb_query_model_set_property),
15432         (rhythmdb_query_model_get_property),
15433         (rhythmdb_query_model_update_limited_entries): Allow query models to
15434         have a time limit
15435         
15436         * shell/rb-playlist-manager.c:
15437         (rb_playlist_manager_set_automatic_playlist),
15438         (rb_playlist_manager_cmd_edit_automatic_playlist):
15439         * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
15440         (rb_playlist_source_get_query), (impl_receive_drag),
15441         (rb_playlist_source_new_from_xml),
15442         (rb_playlist_source_save_to_xml),
15443         (rb_playlist_source_songs_sort_order_changed_cb),
15444         (rb_playlist_source_do_query):
15445         * sources/rb-playlist-source.h:
15446         * widgets/rb-query-creator.h: Allow playlists to be limited by time
15448 2005-08-27  James Livingston  <jrl@ids.org.au>
15450         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
15452         * configure.ac:
15453         * shell/Makefile.am: work correctly if dbus-binding-tool is in a
15454         non-standard location. Closes bug 314640.
15456 2005-08-26  Colin Walters  <walters@verbum.org>
15457         
15458         Patch from Olivier Blin <oblin@mandriva.com>
15460         * widgets/eggnotificationbubble.c (draw_bubble): 
15461         Handle extreme-left case as well.
15462         
15463 2005-08-26  Colin Walters  <walters@verbum.org>
15465         * shell/rb-shell.c (idle_save_state): Don't do this.
15466         (rb_shell_construct): Remove idle calls to idle_save_state.
15467         We should save the playlists automatically when they're
15468         modified.
15469         (rb_shell_load_uri): Don't try to re-stat entry if it already
15470         exists.
15472         * shell/rb-shell-player.c: Keep track of entry we are attempting
15473         to play.
15474         (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
15475         Don't double-free error.
15476         (rb_shell_player_play_entry): Signal errors.
15477         (rb_shell_player_entry_activated_cb): Ditto.
15478         (rb_shell_player_property_row_activated_cb): Ditto.
15479         (rb_shell_player_set_playing_source_internal): Unset attempted
15480         playing entry.
15481         (rb_shell_player_error): Refactor to be usable both sync and
15482         async.  Handle case where displayed entry differs from entry.
15483         (error_cb): Move GDK locking here.
15485         * shell/main.c (main): Drop most commandline arguments for D-BUS;
15486         people can just use dbus-send or python.  We only support focusing
15487         and loading files.
15488         (load_uri_args): New function, extracted from handle_cmdline.
15489         (dbus_load_uri, bonobo_load_uri): New functions.
15491         * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
15492         appropriate.
15494         * remote/Makefile.am: Don't compile dbus subdir, it's not used.
15495         * remote/dbus/rb-remote-dbus.c: Deleted.
15497         * player/rb-player-gst.c: Clear any pending idle handlers when we
15498         close the player.  Signal errors generated during open/play etc
15499         as synchronous errors.
15501         * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
15502         
15503 2005-08-26  Colin Walters  <walters@verbum.org>
15505         * shell/rb-shell.c (rb_shell_present): Try harder.
15507 2005-08-26  Colin Walters  <walters@verbum.org>
15509         * shell/rb-shell.c (rb_shell_present): Try to handle
15510         GTK_MINOR_VERSION < 8.
15512 2005-08-26  James Livingston  <jrl@ids.org.au>
15514         * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
15515         <pbrobinson@gmail.com>
15517 2005-08-26  Colin Walters  <walters@verbum.org>
15519         * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
15521 2005-08-25  Colin Walters  <walters@verbum.org>
15523         * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
15524         Delete.
15525         (rb_shell_player_do_next_with_rating): Move back into
15526         rb_shell_player_do_next.
15527         (rb_shell_player_entry_activated_cb): Remove call to
15528         rb_shell_player_auto_adjust_rating.
15529         (do_next_idle): Just call rb_shell_player_do_next.
15531         * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
15533 2005-08-25  Colin Walters  <walters@verbum.org>
15535         * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
15536         before gtk_window_present_with_time.
15537         
15538 2005-08-25  Colin Walters  <walters@verbum.org>
15540         * configure.ac: Require D-BUS 0.35.  Bonobo is disabled by
15541         default.
15543         * shell/rb-shell.c (rb_shell_constructor): Adapted from
15544         rb_shell_construct.  This is so we only have to do g_object_new.
15545         (rb_shell_get_player): New function.
15546         (rb_shell_get_player_path): Ditto.
15547         (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
15548         
15549         * shell/rb-shell.h: Prototype them.
15551         * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
15552         export over D-BUS.
15553         (reemit_playing_signal): New function.
15554         (rb_shell_player_open_playlist_location): Use return values from
15555         rb_player_open, rb_player_close, etc. instead of checking "error".
15556         Return a gboolean on failure.
15557         (rb_shell_player_open_entry): Just open entry location, don't
15558         print to stderr.
15559         (rb_shell_player_play): Handle retval from rb_player_play.  Return
15560         a gboolean.
15561         (do_next_idle): Move logic for handling of end of playlist here.
15562         (rb_shell_player_set_playing_entry): Take a GError, return a
15563         gboolean.  Update to use gboolean return values.
15564         (rb_shell_player_do_previous): Delete lots of crazy duplicate
15565         logic.  Signal an error on end of playlist.  Also signal error if
15566         we're not playing.  Move heuristic for replaying the song into
15567         rb_shell_player_cmd_previous.
15568         (rb_shell_player_do_next_with_rating): Signal error on end of
15569         playlist.
15570         (rb_shell_player_do_next): Return errors.
15571         (rb_shell_player_cmd_previous): Heuristic for restarting song
15572         moved here; the idea is you generally only want that from the GUI.
15573         (rb_shell_player_cmd_play): Handle error.
15574         (rb_shell_player_playpause): Signal errors.
15575         (filter_mmkeys): Use rb_shell_player_cmd_previous and
15576         rb_shell_player_cmd_next in favor of the internal _do functions.
15577         
15578         * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
15579         errors.  Update prototypes for above changes.
15581         * shell/main.c: More tightly integrate D-BUS; register various
15582         major singleton objects here.  Fix handle_cmdline so we only
15583         process extra arguments, not every argument.
15585         * shell/Makefile.am: Generate D-BUS glue headers.
15587         * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
15588         into shell/main.c.  Now this file just acts as a client library.
15589         Not heavily tested.
15591         * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
15592         Moved here.
15593         (rb_remote_bonobo_init): Move long CORBA rant here along with
15594         setting of lock functions.
15596         * player/rb-player-gst.c (rb_player_construct)
15597         (rb_player_play, rb_player_open, rb_player_close): Return gboolean
15598         on error.
15600         * player/rb-player.h: Update prototypes.
15602         * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
15603         rb-remote-bonobo.c.
15604         (rb_threads_init): Don't set gdk lock functions here.
15606 2005-08-25  James Livingston  <jrl@ids.org.au>
15608         Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15610         * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
15611         * lib/rb-tree-dnd.h:
15612         * rhythmdb/rhythmdb-property-model.c:
15613         (rhythmdb_property_model_class_init),
15614         (rhythmdb_property_model_drag_source_init),
15615         (rhythmdb_property_model_iter_parent),
15616         (rhythmdb_property_model_row_draggable),
15617         (rhythmdb_property_model_drag_data_delete), (query_model_cb),
15618         (rhythmdb_property_model_drag_data_get),
15619         (rhythmdb_property_model_enable_drag):
15620         * rhythmdb/rhythmdb-property-model.h:
15621         * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
15622         (rb_playlist_manager_set_property), (append_new_playlist_source),
15623         (rb_playlist_manager_save_playlists):
15624         * shell/rb-shell.c: (rb_shell_construct),
15625         (sourcelist_drag_received_cb):
15626         * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15627         * sources/rb-playlist-source.c: (impl_receive_drag):
15628         * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
15629         (rb_sourcelist_model_drag_dest_init),
15630         (rb_sourcelist_model_set_dnd_targets),
15631         (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
15632         (rb_sourcelist_model_row_drop_position),
15633         (rb_sourcelist_model_get_drag_target),
15634         (rb_sourcelist_model_drag_data_get):
15635         * sources/rb-sourcelist-model.h:
15636         * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
15637         (rb_sourcelist_init), (rb_sourcelist_get_property),
15638         (rb_sourcelist_selection_changed_cb):
15639         * sources/rb-sourcelist.h:
15640         * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
15641         improve drag-n-drop support. Allow dragging of item from property
15642         views to the source list, to create new automatic playlists. Allow
15643         playlist re-ordering. Fix dragging from Rhythmbox to other
15644         applications. (Closes bug 147337)
15646 2005-08-24  Colin Walters  <walters@verbum.org>
15648         Patch from Olivier Blin <oblin@mandriva.com>
15650         * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
15651         correctly in the case where the window is next to monitor edge.
15653 2005-08-24  James Livingston  <jrl@ids.org.au>
15655         * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
15656         (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
15657         a gobject property to get the query model that backs the playlist.
15659 2005-08-24  James Livingston  <jrl@ids.org.au>
15661         * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
15662         (handle_playlist_entry_into_playlist_cb),
15663         (rb_playlist_manager_playlist_entries_changed): Disable the "create
15664         audio cd" menu item when a non-playlist source is selected, or the
15665         playlist is empty. (Closes Bug 313253)
15667 2005-08-24  James Livingston  <jrl@ids.org.au>
15669         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15670         Fix the playlist length checkso it doesn't report 0 for automatic
15671         playlists. This was stopping automati playlists being burnt to cd.
15673 2005-08-24  James Livingston  <jrl@ids.org.au>
15675         * configure.ac:
15676         * sources/rb-playlist-source-recorder.c: (burn_cd):
15677         * sources/rb-playlist-source.c:
15678         (rb_playlist_source_songs_sort_order_changed_cb):
15679         * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
15680         more warnings that occur when compiling RPMs on Fedora.
15682 2005-08-24  James Livingston  <jrl@ids.org.au>
15684         * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
15685         was stopping some distros gcc version compiling.
15687 2005-08-24  James Livingston  <jrl@ids.org.au>
15689         * NEWS:
15690         * data/glade/create-playlist.glade:
15691         * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
15692         * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
15693         (rhythmdb_query_free), (rhythmdb_query_serialize),
15694         (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
15695         * rhythmdb/rhythmdb.h:
15696         * shell/rb-playlist-manager.c:
15697         (rb_playlist_manager_set_automatic_playlist),
15698         (rb_playlist_manager_cmd_edit_automatic_playlist):
15699         * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
15700         (rb_playlist_source_set_query), (rb_playlist_source_get_query),
15701         (impl_receive_drag), (rb_playlist_source_new_from_xml),
15702         (rb_playlist_source_save_to_xml),
15703         (rb_playlist_source_songs_sort_order_changed_cb),
15704         (rb_playlist_source_do_query):
15705         * sources/rb-playlist-source.h:
15706         * widgets/Makefile.am:
15707         * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
15708         (rb_entry_view_set_sorting_order):
15709         * widgets/rb-query-creator-private.h:
15710         * widgets/rb-query-creator-properties.c:
15711         (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
15712         (stringCriteriaGetWidgetData),
15713         (escapedStringCriteriaSetWidgetData),
15714         (escapedStringCriteriaGetWidgetData), (set_rating_score),
15715         (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
15716         (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
15717         (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
15718         (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
15719         (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
15720         (relativeTimeCriteriaCreateWidget),
15721         (relativeTimeCriteriaSetWidgetData),
15722         (relativeTimeCriteriaGetWidgetData):
15723         * widgets/rb-query-creator.c: (rb_query_creator_get_type),
15724         (rb_query_creator_class_init), (rb_query_creator_constructor),
15725         (rb_query_creator_dispose), (rb_query_creator_set_property),
15726         (rb_query_creator_get_property), (rb_query_creator_load_query),
15727         (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
15728         (get_entry_for_property), (rb_query_creator_get_query),
15729         (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
15730         (limit_toggled_cb), (lookup_row_by_widget),
15731         (remove_button_click_cb), (append_row),
15732         (get_property_index_from_proptype), (select_criteria_from_value),
15733         (property_option_menu_changed), (create_property_option_menu),
15734         (create_criteria_option_menu), (sort_option_menu_changed),
15735         (setup_sort_option_menu):
15736         * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
15737         playlists. The two most notable improvements are 1) adding more
15738         properties to the query creator, making it much easier to add more in
15739         the future, and 2) allow playlists to be sorted, from the query editor
15740         if they gave limits, and by clicking on column headers if they don't.
15742         Files added: widgets/rb-query-creator-private.h,
15743         sources/rb-query-creator-properties.c
15745 2005-08-21  James Livingston  <jrl@ids.org.au>
15747         * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
15748         error=NULL. This stops some crashes.
15750 2005-08-19  Colin Walters  <walters@verbum.org>
15752         Patch from Olivier Blin <oblin@mandriva.com>
15754         * widgets/eggnotificationbubble.c (force_window): Support top
15755         orientation.
15756         * widgets/eggnotificationbubble.h: Remove
15757         egg_notification_bubble_force_window from header.
15758         
15759 2005-08-18  James Livingston  <jrl@ids.org.au>
15761         * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
15762         with the changes since then.
15764 2005-08-17  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
15766         * shell/rb-shell-player.c: (rb_shell_player_init),
15767         (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
15768         (rb_shell_player_volume_widget_changed_cb):
15769         * sources/rb-iradio-source.c:
15770         * sources/rb-library-source.c:
15771         * sources/rb-playlist-source.c:
15772         * widgets/Makefile.am:
15773         * widgets/bacon-volume.c: (bacon_volume_button_get_type),
15774         (bacon_volume_button_class_init), (bacon_volume_button_init),
15775         (bacon_volume_button_dispose), (bacon_volume_button_new),
15776         (bacon_volume_button_get_value), (bacon_volume_button_set_value),
15777         (bacon_volume_button_scroll), (bacon_volume_button_press),
15778         (cb_button_timeout), (cb_button_press), (cb_button_release),
15779         (bacon_volume_release_grab), (cb_dock_press),
15780         (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
15781         (bacon_volume_scale_new), (bacon_volume_scale_press),
15782         (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
15783         * widgets/bacon-volume.h:
15784         * widgets/rb-volume.c:
15785         * widgets/rb-volume.h:
15786           Use BaconVolumeButton (#300867).
15788 2005-08-17  James Livingston  <jrl@ids.org.au>
15790         * rhythmdb/rhythmdb.c: (set_props_from_metadata),
15791         (rhythmdb_process_metadata_load): don't reset the First Seen time
15792         whenever we recheck the metadata.
15794 2005-08-17  James Livingston  <jrl@ids.org.au>
15796         * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15797         temporary workaround to stop crashes when trying to burn an empty
15798         playlist. Doesn't disable the menu item which is the better solution
15799         (Bug 313253).
15801 2005-08-15  James Livingston  <jrl@ids.org.au>
15803         * shell/rb-source-header.c: (rb_source_header_init),
15804         (rb_source_header_sync_control_state),
15805         (rb_source_header_search_activate_cb):
15806         * widgets/rb-entry-view.c: (rb_entry_view_class_init),
15807         (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
15808         * widgets/rb-search-entry.c: (rb_search_entry_class_init),
15809         (rb_search_entry_init), (rb_search_entry_searching),
15810         (rb_search_entry_activate_cb):
15811         * widgets/rb-search-entry.h: Move focus to the entry view when user
15812         presses enter in the search box. Patch from Paolo Borelli
15813         <pborelli@katamail.com> (Closes bug 128110)
15815 2005-08-15  James Livingston  <jrl@ids.org.au>
15817         * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
15818         (rb_playlist_manager_new_playlist):
15819         * shell/rb-playlist-manager.h:
15820         * shell/rb-shell.c: (rb_shell_construct),
15821         (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
15822         the source list to be shown when a new playlist is created. (Closes
15823         bug 161935)
15825 2005-08-15  James Livingston  <jrl@ids.org.au>
15827         * widgets/rb-header.c: (rb_header_init),
15828         (rb_header_set_show_timeline): disable the seek slider, rather than
15829         hiding it, which more closely follows the HIG. (Closes bug 139102)
15831 2005-08-13  Colin Walters  <walters@verbum.org>
15833         * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
15834         rb_shell_hidden_notify.
15835         (rb_shell_hidden_notify): Notify if the shell is hidden.
15836         (rb_shell_set_visibility_impl): Debug goo.
15838         * shell/rb-shell.h: Export rb_shell_hidden_notify.
15840         * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
15841         when the user clicks on notification.
15843         * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
15844         CD burn is complete.
15845         (rb_playlist_source_recorder_finalize): Unref shell.
15846         (rb_playlist_source_recorder_new): Take shell.
15848         * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
15849         Pass shell to RBPlaylistSourceRecorder.
15850         
15851 2005-08-13  Colin Walters  <walters@verbum.org>
15853         * lib/rb-thread.c:
15854         * lib/rb-thread.h: Not used yet, but put in CVS in case we get
15855           time to convert.
15857 2005-08-13  Colin Walters  <walters@verbum.org>
15859         * widgets/eggnotificationbubble.h:
15860         * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
15861         * widgets/eggtrayicon.c:
15862         * widgets/eggtrayicon.h: Add notification API.
15863         * shell/rb-tray-icon.c:
15864         * shell/rb-tray-icon.h: Add notification API.
15865         * shell/rb-shell.c: Notify on song change.
15867 2005-08-12  Raphael Slinckx  <rslinckx@cvs.gnome.org>
15869         * sources/rb-ipod-source.c: (rb_ipod_unplugged):
15870         Correct an inversion of two lines causing NULL to be unreffed
15872 ============ Version 0.9.0
15874 2005-08-10  Bastien Nocera  <hadess@hadess.net>
15876         * configure.ac: 0.9.0, whee!
15877         * NEWS: badly updated
15878         * remote/bonobo/Makefile.am:
15879         * remote/bonobo/rb-remote-bonobo.h:
15880         * shell/Makefile.am:
15881         * shell/main.c: make distcheck fixes