============ Version 0.9.8

2007-02-21  James Livingston  <[email protected]>

       * plugins/ipod/rb-ipod-plugin.c: (rb_ipod_plugin_cmd_rename):
       * shell/rb-removable-media-manager.c:
       * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
       don't crash when we try to change the name of the ipod. Fixes #410338

2007-02-21  James Livingston  <[email protected]>

       * data/rhythmbox.schemas: turn on the art plugin by default
       * NEWS: release name

2007-02-21  James Livingston  <[email protected]>

       * NEWS: update NEWS
       * configure.ac: bump version for release

       * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
       (rb_metadata_init): remove id3tag support, since it break files. Fixes
       #401782

2007-02-21  James Livingston  <[email protected]>

       patch by: Ed Catmur  <[email protected]>

       * bindings/python/rhythmdb.override: make
       rhythmdb.emit_entry_extra_metadata_notify support passing None. Fixes
       #410105

2007-02-21  James Livingston  <[email protected]>

       * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime): ref the
       caps we get back from the mime->caps table, because we unref them
       later. Fixes some crashes.

2007-02-20  James Livingston  <[email protected]>

       * bindings/python/Makefile.am:
       * bindings/python/rb.defs:
       * bindings/python/rb.override: bind RB{Static,Auto,}PlaylistSource

2007-02-20  James Livingston  <[email protected]>

       * plugins/jamendo/jamendo/JamendoSource.py:
       * plugins/magnatune/magnatune/MagnatuneSource.py: don't use the
       synchronous callback, as it runs in the GnomeVFS worker thread and we
       don't have threading enabled. Should fix #397460

2007-02-20  James Livingston  <[email protected]>

       * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_class_init):
       change audio/aac to audio/mpeg, which I forgot to do when I copy and
       pasted the code.

2007-02-19  Jonathan Matthew  <[email protected]>

       * plugins/visualizer/rb-fake-visualizer.c: (rb_fake_vis_reset),
       (rb_fake_vis_chain):
       Make the fake visualizer push a frame as soon as possible so
       prerolling finishes.  Fixes #409170.

2007-02-18  James Livingston  <[email protected]>

       * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime): add
       missing not symbol, and debug output. Should fix #405149

2007-02-18  James Livingston  <[email protected]>

       * plugins/audiocd/rb-audiocd-source.c: (rb_audiocd_source_new): don't
       emit a critical warning when the below happens.

2007-02-18  James Livingston  <[email protected]>

       * plugins/audiocd/rb-audiocd-source.c: (rb_audiocd_source_new): lower
       assertion to warning, since it can fail if the CD was removed in
       between the original check and this one. Fixes #408913

2007-02-17  James Livingston  <[email protected]>

       * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_class_init),
       (encoder_match_mime), (get_profile_from_mime_type),
       (get_profile_from_mime_types), (transcode_track),
       (rb_encoder_gst_get_preferred_mimetype):
       * backends/gstreamer/rb-encoder-gst.h: use caps intersection rather
       than just the mimetype to find out whether a pipeline will emit what
       is needed. This makes it correctly match things like AAC. From #405149

2007-02-17  James Livingston  <[email protected]>

       * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
       (rb_header_sync), (rb_header_set_show_timeline),
       (rb_header_sync_time), (rb_header_update_elapsed): display playing
       time of radio stations in the main UI as well as in the tooltip.
       Fixes #402650

2007-02-17  James Livingston  <[email protected]>

       * shell/rb-tray-icon.c: (rb_tray_icon_set_tooltip_icon),
       (rb_tray_icon_notify), (rb_tray_icon_construct_tooltip),
       (rb_tray_icon_create_blank_image): use a blank pixbuf so the art in
       the tray icon doesn't shuffle around

       patch by Ed Catmur  <[email protected]>

       * widgets/eggtrayicon.c: (egg_tray_icon_notify): update the
       notification bubble, rather than creating a new one. Stops some
       flickering.

       From #407246

2007-02-15  James Livingston  <[email protected]>

       * sources/rb-auto-playlist-source.c: (search_action_changed):
       * sources/rb-browser-source.c: (search_action_changed):
       * sources/rb-static-playlist-source.c: (search_action_changed): don't
       crash if the search action changes when a different type of source is
       selected. Fixes #407987

2007-02-14  James Livingston  <[email protected]>

       * plugins/iradio/rb-station-properties-dialog.c:
       (rb_station_properties_dialog_sync_entries): don't crash if the user
       tries to rename/add a station which is the same as another. From #353119

2007-02-14  James Livingston  <[email protected]>

       * shell/rb-shell.c: (rb_shell_db_metadata_art_cb): don't crash if we
       get art for an entry after we've stop playing anything. Fixes #405537

2007-02-13  Jonathan Matthew  <[email protected]>

       * sources/rb-streaming-source.c: (set_streaming_metadata):
       Don't do anything if the value isn't changing.  Fixes #407221.

2007-02-12  Jonathan Matthew  <[email protected]>

       * plugins/daap/rb-daap-src.c: (rb_daap_src_open):
       Don't leak the parsed HTTP response headers.

2007-02-13  James Livingston  <[email protected]>

       * rhythmdb/rhythmdb-query.c: (rhythmdb_query_append_params): add new
       function which appends a single criteria to the query. Mostly for use
       by bindings.

       * rhythmdb/rhythmdb.h: The above, and replace GPtrArray with
       RhythmDBQuery in the header.

       * bindings/python/rhythmdb.defs:
       * bindings/python/rhythmdb.override: bind the new function, and fix up
       some other bits.

2007-02-12  Jonathan Matthew  <[email protected]>

       * plugins/ipod/rb-ipod-source.c:
       * sources/rb-removable-media-source.c:
       (rb_removable_media_source_class_init):
       Fix build breaks with track transfer/ipod writing disabled.
       Probably fixes #406126?

2007-02-12  Irene Huang  <[email protected]>

       * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type):
       Do not have to use g_return_if_fail (sorttype != NULL), since
       sorttype can be null, and the statement that follows also
       implement the checking using if (!sorttype || ...

       Fixes #406980

2007-02-12  Irene Huang  <[email protected]>

       * plugins/audiocd/sj-metadata.c: (sj_metadata_set_cdrom):
       syntax error, there should be no else after "{".
       * widgets/libsexy/sexy-tooltip.c: Add a dummy int for _SexyTooltipPriv
       empty structs breaks build on Solaris.

2007-02-12  James Livingston  <[email protected]>

       * plugins/rb-python-module.c: (run_gc), (rb_python_shutdown): be nicer
       when poking the garbage colletor, so as to not block the UI.

2007-02-10  Alex Lancaster  <[email protected]>

       * Makefile.am (art_DATA): Build fix: remove
       magnatune_circle_small.png, it has moved to plugins/magnatune/

2007-02-09  William Jon McCann  <[email protected]>

       * configure.ac:  Use more warnings when .svn
       directory is present so I break the build less.

2007-02-09  William Jon McCann  <[email protected]>

       * plugins/generic-player/rb-generic-player-source.c:
       (rb_generic_player_source_constructor),
       (rb_generic_player_source_get_device_info),
       (rb_generic_player_source_new),
       (rb_generic_player_is_volume_player), (sanitize_path),
       (get_hal_udi_for_player):
       Initialize the device info in the constructor instead of new().
       Fix a small leak.  Fixes part of #405775

2007-02-09  James Livingston  <[email protected]>

       * plugins/ipod/rb-ipod-source.c: (rb_ipod_source_set_ipod_name): don't
       crash if the MPL is null. Fixes #406052

2007-02-09  Jonathan Matthew  <[email protected]>

       * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode):
       * sources/rb-removable-media-source.c:
       Fix build breaks

2007-02-08  William Jon McCann  <[email protected]>

       * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
       (profile_bin_find_encoder), (get_profile_from_mime_type),
       (rb_encoder_gst_encode):
       Use rb_safe_strcmp.  Add hack to translate application/x-id3 to audio/mpeg.
       * lib/rb-util.[ch]: (rb_safe_strcmp):
       * sources/rb-removable-media-source.c: (impl_paste),
       (rb_removable_media_source_build_dest_uri):
       Fix the construction of the file extension.  Fixes rest of #405198

2007-02-08  James Livingston  <[email protected]>

       * sources/rb-removable-media-source.c: (impl_paste): don't put NULL on
       the list of mime-types, just pass NULL for the list. Fixes some/all of
       #405198

2007-02-07  William Jon McCann  <[email protected]>

       * plugins/generic-player/rb-nokia770-source.c:
       (hal_udi_is_nokia770):
       Add N800 support.  Fixes #405218

2007-02-07  Jonathan Matthew  <[email protected]>

       * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_dispose),
       (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
       (rb_shuffle_play_order_get_previous),
       (rb_shuffle_play_order_go_previous),
       (rb_shuffle_sync_history_with_query_model),
       (rb_shuffle_playing_entry_changed):
       If the playing entry is not in the query model, track it separately
       rather than inserting it into the history, so it doesn't cause
       assertion failures when we check that the query model and the history
       are in sync.  Fixes #381561.

2007-02-06  James Livingston  <[email protected]>

       patch by: Gustavo Carneiro  <[email protected]>

       * plugins/rb-python-module.c: (rb_python_module_load): use Py_ssize_t
       rather than int, so we don't cause memory corruption with python 2.5
       on 64 bit systems. Fixes #404932

2007-02-06  James Livingston  <[email protected]>

       * plugins/rb-plugin.c: (rb_plugin_find_file): turn relative paths into
       absolute ones, so that rb_glade_new doesn't get confused when running
       uninstalled.

       * shell/rb-shell-player.c: (rb_shell_player_get_property): don't crash
       if _idle_unblock_signal_cb() tried to update the playing status after
       we've disposed of the backend player object.

2007-02-06  James Livingston  <[email protected]>

       * shell/rb-tray-icon.c: (rb_tray_icon_set_tooltip_icon),
       (rb_tray_icon_construct_tooltip): make it not display a placeholder
       icon when there is no art.

2007-02-06  James Livingston  <[email protected]>

       * plugins/generic-player/rb-generic-player-source.c:
       (impl_build_dest_uri): use the right variable, so file extensions get
       set correctly. From #76528

2007-02-06  James Livingston  <[email protected]>

       * plugins/rb-python-module.c: (rb_python_module_load): log when we
       can't find any rb.Plugin-derived classes.

2007-02-06  James Livingston  <[email protected]>

       * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element): don't
       crash if we get an itunes:image tag with no attributes. Fixes #404850

2007-02-06  Jonathan Matthew  <[email protected]>

       * shell/rb-shell-player.c: (rb_shell_player_set_source_internal):
       Connect and disconnect signal handlers on all the property views, not
       just the first one.  Fixes #404753.

2007-02-05  James Livingston  <[email protected]>

       * po/POTFILES.in: add the mmkeys plugin

       * po/POTFILES.skip: add data/rhythmbox.desktop.in, to stop intltool
       complaining

       * configure.ac: bump to 0.9.7.90 for a pre-release

2007-02-05  James Livingston  <[email protected]>

       patch mostly  by: Irene Huang  <[email protected]>

       * plugins/audiocd/sj-metadata.c: (sj_metadata_set_cdrom): make audio
       cds detection work properly on Solaris. Fixes #402384

2007-02-04  Jonathan Matthew  <[email protected]>

       * plugins/audioscrobbler/rb-audioscrobbler.c: (idle_unref_cb),
       (rb_audioscrobbler_do_handshake_cb),
       (rb_audioscrobbler_submit_queue_cb):
       Don't unref the audioscrobbler object in soup callbacks.  When this
       unref destroys the object, it will in turn destroy the soup session,
       which will then cause a crash when we return from the callback.
       Instead, do the unref in an idle handler.  Fixes #403097.

2007-02-04  James Livingston  <[email protected]>

       * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_init),
       (encoder_match_mime), (get_profile_from_mime_type),
       (get_profile_from_mime_types), (transcode_track),
       (rb_encoder_gst_encode), (rb_encoder_gst_get_preferred_mimetype):
       * backends/rb-encoder.c: (rb_encoder_encode),
       (rb_encoder_get_preferred_mimetype):
       * backends/rb-encoder.h:
       * lib/rb-util.c: (rb_str_in_strv):
       * lib/rb-util.h: add a new function for finding out what the preferred
       mimetype from a list is, and the extension to use for those files.

       * sources/rb-removable-media-source.c:
       (rb_removable_media_source_class_init), (impl_delete_thyself),
       (_track_added_cb), (impl_paste), (get_db_for_source),
       (impl_receive_drag), (rb_removable_media_source_build_dest_uri),
       (rb_removable_media_source_get_mime_types),
       (rb_removable_media_source_track_added):
       * sources/rb-removable-media-source.h:
       * bindings/python/rb.defs: add common code for transcoding to
       removable media, so that subclasses can use it.

       * plugins/generic-player/rb-generic-player-source.h:
       * plugins/generic-player/rb-generic-player-source.c:
       (rb_generic_player_source_class_init),
       (rb_generic_player_source_get_device_info),
       (rb_generic_player_source_finalize),
       (rb_generic_player_source_new), (impl_can_paste), (sanitize_path),
       (impl_get_mime_types), (impl_build_dest_uri): use the above to support
       transcoding to "generic" audio players. From #76528.

       * plugins/ipod/rb-ipod-plugin.c:
       * plugins/ipod/rb-ipod-source.c: (rb_ipod_source_class_init),
       (rb_ipod_source_new), (create_ipod_song_from_entry),
       (impl_build_dest_uri), (impl_track_added),
       (ipod_get_filename_for_uri), (impl_get_mime_types): improve iPod
       support use the new features.

       * shell/rb-removable-media-manager.c:
       (rb_removable_media_manager_class_init),
       (rb_removable_media_manager_set_property),
       (rb_removable_media_manager_get_property),
       (rb_removable_media_manager_new), (completed_cb), (do_transfer),
       (rb_removable_media_manager_queue_transfer):
       * shell/rb-removable-media-manager.h:
       * shell/rb-shell.c: (construct_sources): miscellaneous fixes and
       improvements related to the above.

2007-02-01  Alex Lancaster  <[email protected]>

       * plugins/mmkeys/Makefile.am (INCLUDES): Build fix for building in
       separate directory.

2007-02-02  Jonathan Matthew  <[email protected]>

       * configure.ac:
       * data/rhythmbox.schemas:
       * plugins/Makefile.am:
       * plugins/mmkeys/Makefile.am:
       * plugins/mmkeys/mmkeys.rb-plugin.desktop.in:
       * plugins/mmkeys/rb-mmkeys-plugin.c: (rb_mmkeys_plugin_init),
       (media_player_key_pressed), (window_focus_cb), (grab_mmkey),
       (ungrab_mmkey), (filter_mmkeys), (mmkeys_grab), (impl_activate),
       (impl_deactivate), (rb_mmkeys_plugin_class_init):
       New plugin for media player key shortcuts.  Handles both dbus signals
       from gnome-settings-daemon and the older XGrabKey method (bug #398184).

       * shell/rb-shell-player.c: (rb_shell_player_init):
       Remove XGrabKey key shortcut handling code.

2007-02-01  James Livingston  <[email protected]>

       * shell/rb-statusbar.c: (rb_statusbar_sync_status): make the status
       bar disappear when it's not in use. Fixes #402378

2007-02-01  Jonathan Matthew  <[email protected]>

       patch by:  Guillaume Desmottes  <[email protected]>

       * configure.ac:
       * data/rhythmbox.schemas:
       * plugins/Makefile.am:
       * plugins/jamendo/Makefile.am:
       * plugins/jamendo/jamendo-loading.glade:
       * plugins/jamendo/jamendo-prefs.glade:
       * plugins/jamendo/jamendo.rb-plugin.desktop.in:
       * plugins/jamendo/jamendo/JamendoConfigureDialog.py:
       * plugins/jamendo/jamendo/JamendoSaxHandler.py:
       * plugins/jamendo/jamendo/JamendoSource.py:
       * plugins/jamendo/jamendo/Makefile.am:
       * plugins/jamendo/jamendo/__init__.py:
       Jamendo plugin (bug #397010).

       * plugins/daap/Makefile.am:
       Remove some random junk that automake was complaining about

2007-01-31  James Livingston  <[email protected]>

       patch by: Ed Catmur  <[email protected]>

       * data/ui/rhythmbox-ui.xml: Add "remove" to the context menu of Import
       Error entries. Fixes #399439

2007-01-31  James Livingston  <[email protected]>

       patch by: Gabor Kelemen  <[email protected]>

       * plugins/magnatune/magnatune/MagnatuneSource.py: Allow translators to
       swap the artist and album names around. Fixes #401857

2007-01-31  James Livingston  <[email protected]>

       patch by: Adam Zimmerman  <[email protected]>

       * plugins/magnatune/magnatune/MagnatuneSource.py:
       * plugins/magnatune/magnatune/TrackListHandler.py:
       * plugins/magnatune/magnatune/__init__.py: allow the purchase of
       physical CDs from Magnatune. Fixes #390848

2007-01-31  James Livingston  <[email protected]>

       patch by: Ed Catmur  <[email protected]>

       * plugins/artdisplay/artdisplay/__init__.py: keep the art widget
       square so it doesn't resize vertically. Fixes #346679.

2007-01-31  James Livingston  <[email protected]>

       patch by: Ed Catmur  <[email protected]>

       * lib/rb-file-helpers.c: (rb_uri_is_hidden):
       * lib/rb-file-helpers.h:
       * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb),
       (rhythmdb_monitor_uri_path): fix some codepaths to ignore hidden
       files. Fixes #395644.

2007-01-30  Jonathan Matthew  <[email protected]>

       patch partly by:  William Jon McCann  <[email protected]>

       * lib/rb-debug.c: (rb_debug_init_match), (rb_debug_get_args):
       * lib/rb-debug.h:
       Add a function to return a copy of the debug command line args.

       * metadata/rb-metadata-dbus-client.c: (rb_metadata_class_init),
       (rb_metadata_finalize), (start_metadata_service):
       * metadata/rb-metadata-dbus-service.c: (main):
       Pass debug args through to the metadata helper.  Fixes #383845.

2007-01-29  James Livingston  <[email protected]>

       * shell/rb-shell.c: (rb_shell_transfer_progress_cb):
       * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml): more
       memory leak fixes

2007-01-29  James Livingston  <[email protected]>

       * plugins/audiocd/rb-audiocd-source.c:
       * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
       (impl_activate):
       * plugins/rb-plugin-manager.c: (rb_plugin_manager_init):
       * rhythmdb/rhythmdb-property-model.c:
       (rhythmdb_property_model_finalize):
       * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
       (rhythmdb_query_model_entry_changed_cb):
       * shell/rb-shell-player.c: (rb_shell_player_set_source_internal):
       * shell/rb-tray-icon.c: (rb_tray_icon_set_tooltip_icon):
       * widgets/rb-library-browser.c: (update_browser_views_visibility): fix
       assorted memory leaks

2007-01-27  Jonathan Matthew  <[email protected]>

       * plugins/daap/rb-daap-src.c: (rb_daap_src_open):
       Fix call to soup_headers_parse_response to work with libsoup 2.2.99.

2007-01-26  Alex Lancaster  <[email protected]>

       * sources/rb-library-source.c (impl_want_uri): Handle 'ssh://' as
       songs.

2007-01-25  James Livingston  <[email protected]>

       * data/ui/rhythmbox-ui.xml: add "save to playlist" to the playlist
       context menu.

2007-01-24  Jonathan Matthew  <[email protected]>

       * shell/rb-shell.c: (rb_shell_player_window_title_changed_cb):
       Update tooltip contents when the window title changes.  Slightly odd,
       but this keeps the tooltip up to date with streaming song changes.

2007-01-23  William Jon McCann  <[email protected]>

       * data/rhythmbox.schemas: Add missing podcast schemas.
       Fixes #398884

2007-01-23  Alex Lancaster  <[email protected]>

       * plugins/artdisplay/artdisplay/PodcastCoverArtSearch.py:
       Add missing file from #380746.

2007-01-23  James Livingston  <[email protected]>

       patch by: Martin Szulecki  <[email protected]>

       * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
       * plugins/artdisplay/artdisplay/Makefile.am:
       * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
       * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element): emit
       art-uri metadata for podcasts. Fixes #380746

2007-01-23  James Livingston  <[email protected]>

       patch by: Gilles Dartiguelongue  <[email protected]>

       * plugins/daap/Makefile.am: fix builds with --as-needed. Fixes #380411

2007-01-21  James Livingston  <[email protected]>

       * rhythmdb/rhythmdb.c: warn instead of crashing if the entry is NULL.
       Fixes #397973.

2007-01-21  James Livingston  <[email protected]>

       patch by: Ed Catmur  <[email protected]>

       * plugins/artdisplay/artdisplay/__init__.py: add 'rb:coverArt-uri'
       metadata type. Fixes #398231

2007-01-21  James Livingston  <[email protected]>

       patch by: Ed Catmur  <[email protected]>

       * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
       * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: Allow the DB
       to save art into the file's directory. Fixes #398102

2007-01-21  James Livingston  <[email protected]>

       patch by: Ed Catmur  <[email protected]>

       * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
       * plugins/artdisplay/artdisplay/__init__.py: decouple the art widget
       from the DB search. Fixes #398093

2007-01-20  James Livingston  <[email protected]>

       * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): emit a
       critical warning rather than exploding if we're passed NULL.

2007-01-18  Jonathan Matthew  <[email protected]>

       * sources/rb-browser-source.h:
       * sources/rb-browser-source.c: (rb_browser_source_class_init),
       (rb_browser_source_init), (rb_browser_source_constructor),
       (paned_size_allocate_cb), (rb_browser_source_state_prefs_sync),
       (default_pack_paned):
       Change get_paned_key to return an allocated string so python sources
       can implement it, and add a pack_paned method for packing the GtkPaned
       containing the browser and the entry view into the source UI.  The
       default implementation just packs it into a box and adds that to the
       source.

       * plugins/daap/rb-daap-source.c: (rb_daap_source_get_paned_key):
       * sources/rb-library-source.c: (impl_get_paned_key):
       Update for changes to get_paned_key.

       * bindings/python/rb.defs:
       * bindings/python/rb.override:
       Add python bindings for RBSource.get_browser_key,
       RBBrowserSource.get_paned_key, and RBBrowserSource.pack_paned.

       * plugins/magnatune/magnatune/MagnatuneSource.py:
       Implement get_browser_key and get_paned_key, pack the browser pane
       widget into a box that we hide while showing the loading screen.
       Fixes #390834.

       * data/rhythmbox.schemas:
       Show the browser in the magnatune source by default.  Fixes #392071.

2007-01-17  Jonathan Matthew  <[email protected]>

       * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
       If the feed doesn't have a title, use the URL instead.  Fixes #394205.

2007-01-17  Jonathan Matthew  <[email protected]>

       Patch by: Ed Catmur  <[email protected]>

       * shell/rb-tray-icon.c: (rb_tray_icon_update_tooltip_visibility),
       (rb_tray_icon_sticky_cb), (rb_tray_icon_enter_notify_event_cb),
       (rb_tray_icon_leave_notify_event_cb),
       (rb_tray_icon_construct_tooltip):
       Only show the tooltip after a short delay, as with normal gtk+
       tooltips.  From #345592.

2007-01-15  Alex Lancaster  <[email protected]>

       Patch by Greg Ward

       * README.daap: Fix minor typos.

2007-01-13  Jonathan Matthew  <[email protected]>

       patch mostly by: Adam Zimmerman <[email protected]>

       * plugins/magnatune/magnatune/MagnatuneSource.py:
       * plugins/magnatune/magnatune/TrackListHandler.py:
       * plugins/magnatune/magnatune/__init__.py:
       Complain if no library location is set when trying to purchase an
       album from magnatune (fixes #390153).
       Use the right format strings for the status text to actually show the
       number of songs (fixes #392930).
       Pulse the status bar while loading the song info (fixes #392040).
       Use the song's 'year' property from the magnatune catalog if it
       exists, otherwise fall back to 'launchdate'; clean up some other
       stuff.  (fixes #388425).

2007-01-13  Jonathan Matthew  <[email protected]>

       * rhythmdb/rhythmdb-query-model.h:
       Increase query result chunk size from 32 to 1024.

2007-01-13  James Livingston  <[email protected]>

       patch by: John Daiker  <[email protected]>

       * shell/rb-shell.c: change "show all" to "show all tracks".
       Fixes #332627

2007-01-12  Jonathan Matthew  <[email protected]>

       patch by:  William Jon McCann  <[email protected]>

       * widgets/rb-header.c: (rb_header_init):
       Left-align the song info label.  Fixes #393974.

2007-01-11  Alex Lancaster  <[email protected]>

       Patch by: Ed Catmur  <[email protected]>

       * shell/rb-shell.c (rb_shell_construct_notify_titles):
       * shell/rb-tray-icon.c (TRAY_ICON_DEFAULT_TOOLTIP): Use identical
       markup in tooltips and tray icon to that displayed in actual
       player slider.  From #345592.

2007-01-11  Jonathan Matthew  <[email protected]>

       patch by: Ed Catmur  <[email protected]>

       * shell/rb-tray-icon.c: (sexy_tooltip_position_to_widget),
       (rb_tray_icon_update_tooltip_visibility):
       Add a less broken implementation of sexy_tooltip_position_to_widget
       that works for tray icons, and update the tooltip position each time
       it gets displayed.  From #345592, fixes #395273.

2007-01-11  Jonathan Matthew  <[email protected]>

       * plugins/cd-recorder/rb-cd-recorder-plugin.c: (source_burn),
       (cmd_burn_source):
       * plugins/cd-recorder/rb-playlist-source-recorder.c:
       * plugins/cd-recorder/rb-playlist-source-recorder.h:
       Use rb_plugin_find_file to locate plugin-specific files.
       Accidentally dropped from the source tree surgery changes.

2007-01-11  Jonathan Matthew  <[email protected]>

       * shell/main.c: (main):  Initialise GThread before doing anything
       else.

2007-01-11  Jonathan Matthew  <[email protected]>

       patch by:  William Jon McCann  <[email protected]>

       * plugins/power-manager/rb-power-manager-plugin.c:
       (impl_deactivate):
       Don't crash if we couldn't create the dbus proxy object or connect the
       signal handler.  Fixes #395088.

2007-01-07  Alex Lancaster  <[email protected]>

       * plugins/daap/Makefile.am (INCLUDES): Build fix for building in
       separate build directories.

2007-01-07  Jonathan Matthew  <[email protected]>

       Moved lots of files around.  Now everything should be in the directory
       it's built in and all plugin-specific files should be installed into
       the plugin directory.

       * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
       (impl_create_configure_dialog):
       * plugins/audioscrobbler/rb-audioscrobbler.c:
       (rb_audioscrobbler_class_init), (rb_audioscrobbler_dispose),
       (rb_audioscrobbler_finalize),
       (rb_audioscrobbler_get_config_widget):
       * plugins/audioscrobbler/rb-audioscrobbler.h:
       Use rb_plugin_find_file where needed.

       * widgets/rb-uri-dialog.c: (rb_uri_dialog_class_init),
       (rb_uri_dialog_init), (rb_uri_dialog_finalize),
       (rb_uri_dialog_new), (rb_uri_dialog_response_cb),
       (rb_uri_dialog_text_changed):
       * widgets/rb-uri-dialog.h:
       New common 'enter a URI' dialog, used by iradio and podcast code.

       * plugins/iradio/rb-iradio-plugin.c: (impl_activate):
       * plugins/iradio/rb-iradio-source.c:
       (rb_iradio_source_constructor), (rb_iradio_source_new),
       (impl_song_properties), (rb_iradio_source_first_time_changed),
       (new_station_location_added), (rb_iradio_source_cmd_new_station):
       * plugins/iradio/rb-iradio-source.h:
       * plugins/iradio/rb-station-properties-dialog.c:
       (rb_station_properties_dialog_class_init),
       (rb_station_properties_dialog_init),
       (rb_station_properties_dialog_constructor),
       (rb_station_properties_dialog_set_property),
       (rb_station_properties_dialog_get_property),
       (rb_station_properties_dialog_new):
       * plugins/iradio/rb-station-properties-dialog.h:
       Use the common URI dialog, use rb_plugin_find_file where needed.

       * sources/rb-podcast-source.c:
       (rb_podcast_source_location_added_cb),
       (rb_podcast_source_cmd_new_podcast):
       Use the common URI dialog.

2007-01-07  James Livingston  <[email protected]>

       patch by: Ed Catmur  <[email protected]>

       * widgets/libsexy/Makefile.am:
       * widgets/libsexy/sexy-tooltip.h:
       * widgets/libsexy/sexy-tooltip.c: add a copy of sexy-tooltip from
       Libsexy.

       * bindings/python/rhythmdb.override:
       * plugins/artdisplay/artdisplay/__init__.py:
       * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
       (rb_shell_db_metadata_art_cb), (rb_shell_playing_entry_changed_cb),
       (rb_shell_player_elapsed_changed_cb),
       (rb_shell_update_tray_tooltip_elapsed), (markup_escape),
       (rb_shell_construct_notify_titles),
       (rb_shell_notify_playing_entry), (rb_shell_hidden_notify),
       (rb_shell_hidden_notify_markup):
       * shell/rb-shell.h:
       * shell/rb-tray-icon.c: (rb_tray_icon_init),
       (rb_tray_icon_finalize), (rb_tray_icon_update_tooltip_visibility),
       (rb_tray_icon_unhide_cb),
       (rb_tray_icon_set_tooltip_primary_markup),
       (rb_tray_icon_set_tooltip_icon),
       (rb_tray_icon_set_tooltip_secondary_markup), (rb_tray_icon_notify),
       (rb_tray_icon_enter_notify_event_cb),
       (rb_tray_icon_leave_notify_event_cb),
       (rb_tray_icon_tooltip_size_allocate_cb),
       (rb_tray_icon_construct_tooltip), (rb_tray_icon_unsuppress_cb),
       (rb_tray_icon_suppress_tooltips):
       * shell/rb-tray-icon.h:
       * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
       (egg_tray_icon_notify):
       * widgets/eggtrayicon.h: Display cover art in the song-change
       notification and the tray icon toolip. Fixes #345592

2007-01-02  James Livingston  <[email protected]>

       * corelib/: add the directory that I missed in the last commit. Oops.

2007-01-02  James Livingston  <[email protected]>

       patch by: Jonathan Matthew  <[email protected]>

       * Makefile.am:
       * configure.ac:
       * plugins/audiocd/Makefile.am:
       * plugins/audioscrobbler/Makefile.am:
       * plugins/cd-recorder/Makefile.am:
       * plugins/ipod/Makefile.am:
       * plugins/iradio/Makefile.am:
       * shell/Makefile.am: move stuff into a shared library that is used by
       both the main binary and plugins. Reduces the size of the binaries and
       hopefully fixes dynamic linking issues on Solaris. From #372863.

2007-01-02  James Livingston  <[email protected]>

       patch by: Loïc Minier  <[email protected]>

       * data/rhythmbox.schemas: fix a typo in the schema. Fixes #387527

2007-01-02  Jonathan Matthew  <[email protected]>

       * podcast/rb-podcast-manager.c: (rb_podcast_manager_dispose),
       (rb_podcast_manager_download_entry),
       (rb_podcast_manager_next_file),
       (rb_podcast_manager_abort_download), (end_job):
       Remove the next_file idle handler on shutdown.  Should fix #390884.

2006-12-30  Jonathan Matthew  <[email protected]>

       * sources/rb-streaming-source.c: (rb_streaming_source_class_init):
       Don't set impl_can_browse here.

2006-12-30  Jonathan Matthew  <[email protected]>

       patch by:  Oliver Lemke  <[email protected]>

       * plugins/artdisplay/Makefile.am:
       Install rhythmbox-missing-artwork.svg properly.  Really fixes #387413.

2006-12-29  Jonathan Matthew  <[email protected]>

       * plugins/audioscrobbler/rb-lastfm-source.c:
       (rb_lastfm_source_title_from_uri):
       Handle personal (/user/$user/personal) and user tag
       (/usertags/$user/tag) lastfm:// URIs.  The rest of #390494.

2006-12-29  Jonathan Matthew  <[email protected]>

       * plugins/audioscrobbler/rb-lastfm-source.c:
       (rb_lastfm_source_title_from_uri):
       Don't free the drag data string if we don't understand the URI.
       From #390494.

2006-12-29  Jonathan Matthew  <[email protected]>

       * plugins/artdisplay/Makefile.am:
       Install rhythmbox-missing-artwork.svg.  Fixes #387413.

2006-12-27  Jonathan Matthew  <[email protected]>

       * widgets/rb-song-info.c: (rb_song_info_dispose):
       Fix a few mistakes that caused criticals when closing
       a song info window.

2006-12-23  Jonathan Matthew  <[email protected]>

       * shell/rb-history.c: (_history_remove_swapped),
       (rb_history_set_playing), (rb_history_remove_entry),
       (rb_history_remove_entry_internal), (rb_history_clear):
       Don't remove entries from the sequence while iterating it.

2006-12-23  Jonathan Matthew  <[email protected]>

       * daapsharing/rb-daap-src.c: (rb_daap_src_finalize):
       * iradio/rb-station-properties-dialog.c:
       (rb_station_properties_dialog_class_init),
       (rb_station_properties_dialog_dispose),
       (rb_station_properties_dialog_finalize):
       * podcast/rb-podcast-properties-dialog.c:
       (rb_podcast_properties_dialog_class_init),
       (rb_podcast_properties_dialog_dispose),
       (rb_podcast_properties_dialog_finalize):
       * rhythmdb/rhythmdb-monitor.c: (rhythmdb_dispose_monitoring),
       (rhythmdb_finalize_monitoring):
       * rhythmdb/rhythmdb-private.h:
       * rhythmdb/rhythmdb-property-model.c:
       (rhythmdb_property_model_class_init),
       (rhythmdb_property_model_dispose),
       (rhythmdb_property_model_finalize):
       * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
       (rhythmdb_query_model_finalize):
       * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
       * shell/rb-play-order-shuffle.c:
       (rb_shuffle_play_order_class_init),
       (rb_shuffle_play_order_dispose), (rb_shuffle_play_order_finalize):
       * shell/rb-play-order.c: (rb_play_order_class_init),
       (rb_play_order_dispose), (rb_play_order_finalize):
       * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
       (rb_shell_clipboard_dispose), (rb_shell_clipboard_finalize):
       * shell/rb-shell-player.c: (rb_shell_player_class_init),
       (rb_shell_player_dispose), (rb_shell_player_finalize):
       * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
       (rb_tray_icon_constructor), (rb_tray_icon_dispose),
       (rb_tray_icon_finalize):
       * sources/rb-auto-playlist-source.c:
       (rb_auto_playlist_source_class_init),
       (rb_auto_playlist_source_dispose),
       (rb_auto_playlist_source_finalize):
       * sources/rb-browser-source.c: (rb_browser_source_dispose),
       (rb_browser_source_finalize):
       * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
       (rb_iradio_source_dispose):
       * sources/rb-library-source.c: (rb_library_source_dispose),
       (rb_library_source_finalize):
       * sources/rb-play-queue-source.c: (rb_play_queue_source_dispose),
       (rb_play_queue_source_finalize), (rb_play_queue_source_class_init):
       * sources/rb-playlist-source-recorder.c:
       (rb_playlist_source_recorder_class_init),
       (rb_playlist_source_recorder_dispose),
       (rb_playlist_source_recorder_finalize):
       * sources/rb-playlist-source.c: (rb_playlist_source_dispose):
       * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
       (rb_podcast_source_finalize):
       * sources/rb-static-playlist-source.c:
       (rb_static_playlist_source_dispose),
       (rb_static_playlist_source_finalize):
       * widgets/rb-song-info.c: (rb_song_info_class_init),
       (rb_song_info_dispose), (rb_song_info_finalize):
       Unref objects and remove main loop sources in dispose rather than
       finalize throughout (except RBShell, which scares me).  In all
       likelihood, fixes #362484.

2006-12-23  James  Livingston  <[email protected]>

       * plugins/audioscrobbler/rb-lastfm-source.c: fix a typo. Closes #380933

2006-12-23  James Livingston  <[email protected]>

       * plugins/visualizer/Makefile.am: fix make distcheck

       * configure.ac:
       * po/LINGUAS: use the new intltool po/LINGUA thing. Fixes #339292

2006-12-22  Jonathan Matthew  <[email protected]>

       * backends/gstreamer/rb-player-gst.c: (rb_player_gst_class_init),
       (rb_player_gst_get_property), (rb_player_gst_construct):
       Add a 'playbin' property allowing plugins to access the playbin
       element, and allow them to set the audio and video sinks.

       * shell/rb-shell.c: (rb_shell_get_box_for_ui_location),
       (rb_shell_add_widget), (rb_shell_remove_widget),
       (rb_shell_notebook_set_page), (rb_shell_ui_location_get_type):
       * shell/rb-shell.h:
       Extend rb_shell_add_widget to allow the addition of source notebook
       pages.

       * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
       * shell/rb-source-header.c: (rb_source_header_set_source_internal),
       (rb_source_header_set_source):
       Handle the possibility of no source being selected if a notebook page
       added with rb_shell_add_widget is active.  Hide the source header
       widget when no source is selected.

       * configure.ac:
       * data/rhythmbox.schemas:
       * plugins/Makefile.am:
       * plugins/visualizer/Makefile.am:
       * plugins/visualizer/rb-fake-visualizer.c:
       * plugins/visualizer/rb-vis-widget.c:
       * plugins/visualizer/rb-vis-widget.h:
       * plugins/visualizer/rb-visualizer-plugin.c:
       * plugins/visualizer/rb-visualizer.xml:
       * plugins/visualizer/visualizer-controls.glade:
       * plugins/visualizer/visualizer-ui.xml:
       * plugins/visualizer/visualizer.rb-plugin.desktop.in:
       Add visualiser plugin.  Fixes #76519.

2006-12-21  James  Livingston  <[email protected]>

       * lib/eggsequence.c:
       * lib/eggsequence.h:
       * rhythmdb/gsequence.c:
       * rhythmdb/gsequence.h:
       * lib/Makefile.am:
       * rhythmdb/Makefile.am: replace GSequence with EggSequence. Closes #374242

       * rhythmdb/rhythmdb-property-model.c:
       (rhythmdb_property_model_init), (_prop_model_entry_cleanup),
       (rhythmdb_property_model_finalize),
       (rhythmdb_property_model_insert),
       (rhythmdb_property_model_delete_prop),
       (rhythmdb_property_model_iter_from_string),
       (rhythmdb_property_model_get_iter),
       (rhythmdb_property_model_get_path),
       (rhythmdb_property_model_get_value),
       (rhythmdb_property_model_iter_next),
       (rhythmdb_property_model_iter_n_children),
       (rhythmdb_property_model_iter_nth_child):
       * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
       (rhythmdb_query_model_finalize), (_copy_contents_foreach_cb),
       (rhythmdb_query_model_copy_contents),
       (rhythmdb_query_model_insert_into_main_list),
       (rhythmdb_query_model_insert_into_limited_list),
       (rhythmdb_query_model_remove_from_main_list),
       (rhythmdb_query_model_remove_from_limited_list),
       (rhythmdb_query_model_update_limited_entries),
       (rhythmdb_query_model_emit_reorder),
       (rhythmdb_query_model_do_reorder),
       (rhythmdb_query_model_do_insert),
       (rhythmdb_query_model_filter_out_entry),
       (rhythmdb_query_model_move_entry),
       (rhythmdb_query_model_entry_to_iter),
       (rhythmdb_query_model_drag_data_delete),
       (rhythmdb_query_model_drag_data_get),
       (rhythmdb_query_model_drag_data_received),
       (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_path),
       (rhythmdb_query_model_get_value), (rhythmdb_query_model_iter_next),
       (rhythmdb_query_model_iter_children),
       (rhythmdb_query_model_iter_n_children),
       (rhythmdb_query_model_iter_nth_child),
       (apply_updated_entry_sequence),
       (rhythmdb_query_model_set_sort_order),
       (rhythmdb_query_model_child_index_to_base_index),
       (rhythmdb_query_model_get_entry_index),
       (_base_rows_reordered_foreach_cb),
       (rhythmdb_query_model_base_rows_reordered),
       (_reapply_query_foreach_cb), (rhythmdb_query_model_reapply_query):
       * shell/rb-history.c: (rb_history_init), (rb_history_finalize),
       (rb_history_length), (rb_history_first), (rb_history_previous),
       (rb_history_current), (rb_history_next), (rb_history_last),
       (rb_history_go_first), (rb_history_go_previous),
       (rb_history_go_next), (rb_history_go_last),
       (_history_remove_swapped), (rb_history_set_playing),
       (rb_history_append), (rb_history_get_current_index),
       (rb_history_insert_at_index), (rb_history_limit_size),
       (rb_history_remove_entry), (rb_history_delete_link),
       (rb_history_clear), (rb_history_dump):
       * shell/rb-history.h: update for the above.

2006-12-19  William Jon McCann  <[email protected]>

       * lib/rb-cut-and-paste-code.c:
       Remove trailing whitespace.

       * rhythmdb/rhythmdb.c:
       * sources/rb-podcast-source.c:
       (rb_podcast_source_post_date_cell_data_func):
       * widgets/rb-entry-view.c:
       (rb_entry_view_get_time_date_column_sample):
       Use a friendlier time/date format.  Fixes #324534