============ Version 0.9.6 2006-10-01 James Livingston * configure.ac: bump version to 0.9.6. enable tag-writing and ipod-writing by default * NEWS: update NEWS 2006-09-30 Jonathan Matthew patch by: William Jon McCann * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load): Use a local GError in case no error pointer pointer is passed in. From bug #358396. 2006-09-30 Jonathan Matthew * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load): Don't reference members of freed structures. 2006-09-29 Jonathan Matthew patch by: William Jon McCann * player/rb-recorder-gst.c: (rb_recorder_burn): Drop GDK lock before entering n-c-b. Fixes #353894? 2006-09-28 Jonathan Matthew * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code), (impl_activate): Handle error/hangup conditions on the LIRC connection. Fixes #358049. 2006-09-28 Jonathan Matthew * plugins/lirc/rb-lirc-plugin.c: (impl_activate): Call lirc_init before lirc_readconfig so we don't crash if the user's .lircrc file has any mode sections. Fixes #357419. 2006-09-24 James Livingston * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert if we get called twice, as that can happen. Fixes #357214. 2006-09-24 James Livingston * backends/rb-encoder.h: add "file access" error * lib/rb-file-helpers.c: (rb_dot_dir): * podcast/rb-podcast-manager.c: (rb_podcast_manager_download_file_info_cb): remove directory creation race condition. * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri), (create_parent_dirs), (rb_encoder_gst_encode): check result of directory creation. Fixes #347743 2006-09-22 Jonathan Matthew * plugins/audioscrobbler/rb-audioscrobbler.c: (*): Strip trailing whitespace 2006-09-21 Jonathan Matthew * rhythmdb/Makefile.am: * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark), (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load): * rhythmdb/rhythmdb-tree.h: * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb), (rhythmdb_load_thread_main), (rhythmdb_save_thread_main): * rhythmdb/rhythmdb.h: Rather than aborting, show an error and refuse to load the database when it appears to come from the future. From bug #350304. 2006-09-19 Jonathan Matthew * bindings/python/rhythmdb.override: Make entry_foreach usable. 2006-09-18 Jonathan Matthew * sources/rb-podcast-source.c: (rb_podcast_source_init): Scale the icon so it matches the rest of the sources. Fixes #351410. 2006-09-17 Jonathan Matthew * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb), (rhythmdb_property_model_set_query_model_internal), (rhythmdb_property_model_row_inserted_cb), (rhythmdb_property_model_prop_changed_cb), (rhythmdb_property_model_entry_removed_cb), (rhythmdb_property_model_delete), (rhythmdb_property_model_perform_sync): Use the hash table to track hidden entries, rather than visible entries. Cuts memory usage fairly significantly. From bug #347425. 2006-09-14 Jonathan Matthew * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting): Patch from Christian Becke to fix compilation with -O3, bug #355945. 2006-09-14 Jonathan Matthew * sources/rb-ipod-source.c: (add_rb_playlist), (impl_move_to_trash), (impl_delete_thyself): Delete ipod playlists when the ipod source is deleted. Fixes #355235. * sources/rb-sourcelist.c: (rb_sourcelist_remove): Make sure we don't leave the sourcelist thinking a deleted source is still playing. Fixes nothing. 2006-09-13 Jonathan Matthew * shell/rb-shell.c: Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the 'Music->Import Folder' menu item for better icon theme coverage. Fixes #354575. 2006-09-13 Jonathan Matthew * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_start_action_thread), (rhythmdb_finalize), (rhythmdb_thread_create), (rhythmdb_add_uri_with_type), (rhythmdb_load), (rhythmdb_save_async): Use a limited thread pool for adding URIs to the database. Fixes #352494. 2006-09-10 Jonathan Matthew * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb): Do something like the previous change, but for gstreamer 0.10 this time. Oops. Really fixes #349569. 2006-09-09 Jonathan Matthew * backends/gstreamer/rb-player-gst.c: (error_cb): Ignore 'internal data flow error' messages if we've already got an error for the file. Fixes #349569. 2006-09-07 Jonathan Matthew * shell/rb-shell-clipboard.c: (rb_shell_clipboard_playlist_deleted_cb): Rebuild 'add to playlist' menu before removing actions for deleted playlists, and don't unref the action, as we never had a reference on it to begin with. Fixes #354599. 2006-09-05 Jonathan Matthew * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map), (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon): Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c. 2006-09-04 Jonathan Matthew * daapsharing/rb-daap-connection.c: (handle_playlists): Reverse the list of playlists on the DAAP server so it ends up in the right order. Fixes #353926. 2006-09-03 Jonathan Matthew * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code): Fully process each code so the LIRC client returns to its normal state when we're done. Makes LIRC actually work properly for me. 2006-09-03 Jonathan Matthew patch by: Ed Catmur * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map), (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon): Don't show unused GdkWindows in SexyIconEntry. Fixes #353671. 2006-09-02 William Jon McCann patch by: James Livingston * configure.ac: * data/rhythmbox.schemas: * metadata/Makefile.am: * plugins/Makefile.am: * plugins/audiocd/.cvsignore: * plugins/audiocd/Makefile.am: * plugins/audiocd/audiocd.rb-plugin.desktop.in: * plugins/audiocd/rb-audiocd-plugin.c: (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init), (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume), (rb_audiocd_plugin_unmount_volume), (poll_tray_opened), (end_cd_drive_monitor), (begin_cd_drive_monitor), (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri), (rb_audiocd_plugin_playing_uri_changed_cb), (nautilus_burn_drive_get_device), (rb_audiocd_plugin_source_deleted), (create_source_cb), (impl_activate), (_delete_cb), (impl_deactivate): * plugins/cd-recorder/rb-cd-recorder-plugin.c: (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize): * shell/main.c: (main): * shell/rb-removable-media-manager.c: (rb_removable_media_manager_finalize), (rb_removable_media_manager_load_media), (rb_removable_media_manager_mount_volume), (rb_removable_media_manager_scan): * sources/Makefile.am: * sources/rb-audiocd-source.c: * sources/rb-audiocd-source.h: Make auto CD support a plugin. Fixes #349415. 2006-09-02 Jonathan Matthew * daapsharing/rb-daap-connection.c: (handle_song_listing): Add a final rhythmdb_commit to make sure all songs from the share show up in the daap source. Fixes #353913. 2006-09-02 Jonathan Matthew * sources/rb-sourcelist-model.c: (rb_sourcelist_model_drag_data_received), (rb_sourcelist_model_row_drop_possible): Re-enable dragging of a set of tracks to the source list to create a new static playlist. Fixes #353893. 2006-09-02 Jonathan Matthew * widgets/bacon-volume.c: (cb_button_timeout): Actually drop the GDK lock, rather than returning while holding it. Fixes #353895. 2006-08-30 Jonathan Matthew * plugins/generic-player/rb-generic-player-source.c: (rb_generic_player_source_constructor), (rb_generic_player_source_get_device_info), (impl_delete_thyself), (rb_generic_player_source_load_songs), (load_playlist_file), (default_load_playlists), (get_hal_context): Only call libhal_ctx_shutdown if libhal_ctx_init succeeds. Fixes #353483. 2006-08-30 Jonathan Matthew * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb): Canonicalise URIs received from gnome-vfs file monitor. Fixes #353447. 2006-08-28 Jonathan Matthew * help/C/rhythmbox.xml: unbreak help build * plugins/lirc/rb-lirc-plugin.c: (impl_activate): Unbuffer the IO channel. Fixes some weirdness for me. 2006-08-28 Jonathan Matthew * help/C/rhythmbox.xml: * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code), (impl_activate), (impl_deactivate): Add 'playpause' LIRC command. 2006-08-24 Jonathan Matthew * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose), (rb_source_finalize): Remove idle callbacks in dispose, rather than finalize. Fixes crashes when disconnecting generic audio players. 2006-08-23 Jonathan Matthew patch by: Paolo Borelli * plugins/rb-python-plugin.c: (rb_python_object_get_type): Fix a small leak. 2006-08-19 Jonathan Matthew * backends/gstreamer/rb-player-gst.c: * shell/rb-shell-player.c: (rb_shell_player_sync_with_source): Don't actually disable the seek bar for non-seekable songs, because we can't reliably tell yet. 2006-08-19 Jonathan Matthew * daapsharing/rb-daap-share.c: (add_entry_to_mlcl), (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb), (db_entry_deleted_cb), (rb_daap_share_server_start), (rb_daap_share_server_stop): * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb-tree.c: (save_entry): * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate), (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_ulong): * rhythmdb/rhythmdb.h: Give db entries a numeric ID property, replacing the daap server's entry->id map. From #347665. 2006-08-19 Jonathan Matthew * shell/rb-shell-player.c: (rb_shell_player_sync_with_source): * widgets/rb-header.c: (rb_header_class_init), (rb_header_set_property), (rb_header_get_property), (rb_header_set_playing_entry), (rb_header_sync), (rb_header_sync_time): * widgets/rb-header.h: Add a 'seekable' property on RBHeader, and use it to make the seek bar insensitive when the player backend tells us we can't seek in the current song. From #330410. 2006-08-18 Jonathan Matthew * widgets/rb-song-info.c: (rb_song_info_update_buttons): Don't try to unref previous/next entries if they aren't there. Fixes #351806. 2006-08-15 James Livingston * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the mountpoint into a RBRefString and compare equality of those, rather than doign lots of strcmp()s. * sources/rb-source.c: (rb_source_finalize), (_update_status_idle), (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do status notification as well as the visibility update in an idle callback. Makes it take much less time to update after a volume mount/unmount event. 2006-08-15 James Livingston patch by: Christian Becke * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow multiple selections in the Import Folder dialog. Fixes #351414. 2006-08-15 Jonathan Matthew * shell/rb-shell.c: (construct_widgets): * shell/rb-statusbar.c: (rb_statusbar_class_init), (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property), (rb_statusbar_get_property), (rb_statusbar_new): * shell/rb-statusbar.h: Use the connect-proxy signal from the UI manager, which covers all action groups, rather than just one. Fixes #351280. 2006-08-15 Jonathan Matthew * widgets/rb-library-browser.c: (rebuild_child_model): Fix query model reference counts (bug #349601). 2006-08-15 James Livingston * backends/rb-player.c: (rb_player_interface_init): make the EOS and Error signals be non-recursive. Fixes a highly-unlikely issue that could have caused #322972. 2006-08-14 James Livingston * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_init): * sources/rb-static-playlist-source.c: (rb_static_playlist_source_init): 2006-08-14 Jonathan Matthew * sources/rb-browser-source.c: * sources/rb-import-errors-source.c: * sources/rb-iradio-source.c: * sources/rb-library-source.c: * sources/rb-missing-files-source.c: * sources/rb-play-queue-source.c: * sources/rb-playlist-source.c: * sources/rb-podcast-source.c: * sources/rb-source.c: Make entry-type a property on RBSource, rather than on most of its subclasses. Fixes #347288. 2006-08-13 Jonathan Matthew * remote/dbus/rb-client.c: (parse_pattern), (create_rb_shell_proxies), (main): Actually implement %ag and %aG (genre) for --print-playing-format 2006-08-11 Jonathan Matthew * lib/rb-debug.c: (rb_debug_real): No point allocating a buffer for the timestamp when we can just put it on the stack. 2006-08-11 Jonathan Matthew * metadata/rb-metadata-dbus-client.c: (start_metadata_service): Don't ignore SIGPIPE. gnome-vfs does it for us anyway. 2006-08-11 James Livingston * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_synctime): fix accidental commit in the last, which caused a warning. 2006-08-11 James Livingston * data/rhythmbox.schemas: * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_synctime): change the schema's update-inteval value from 0 to 1, which causes it to update on startup, rather than never. Should fixs #343818. 2006-08-11 James Livingston * configure.ac: * data/Makefile.am: - data/rhythmbox.desktop.in: + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so the @VERSION@ can be substituted in. Fix some issues with newer bug-buddy versions. Fixes #348853. 2006-08-10 William Jon McCann * data/rhythmbox.schemas: * plugins/Makefile.am: * plugins/artdisplay/Makefile.am: * plugins/audioscrobbler/Makefile.am: * plugins/cd-recorder/Makefile.am: * plugins/generic-player/Makefile.am: * plugins/ipod/Makefile.am: * plugins/lirc/Makefile.am: * plugins/lyrics/Makefile.am: * plugins/pythonconsole/Makefile.am: * plugins/rb-module.c: * plugins/rb-module.h: * plugins/rb-plugin-manager.c: (configure_button_cb), (plugin_manager_view_cell_cb), (cursor_changed_cb), (plugin_manager_populate_lists), (plugin_manager_set_active), (plugin_manager_toggle_active), (plugin_manager_get_selected_plugin), (rb_plugin_manager_init), (rb_plugin_manager_finalize): * plugins/rb-plugin-manager.h: * plugins/rb-plugin.c: (rb_get_plugin_paths), (rb_plugin_find_file): * plugins/rb-plugin.h: * plugins/rb-plugins-engine.c: (rb_plugins_engine_load), (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all), (rb_plugins_engine_init), (rb_plugin_info_free), (load_plugin_module), (rb_plugins_engine_activate_plugin), (rb_plugins_engine_deactivate_plugin), (rb_plugins_engine_plugin_is_active), (rb_plugins_engine_plugin_is_visible), (rb_plugins_engine_plugin_is_configurable), (rb_plugins_engine_configure_plugin), (rb_plugins_engine_get_plugin_name), (rb_plugins_engine_get_plugin_description), (rb_plugins_engine_get_plugin_authors), (rb_plugins_engine_get_plugin_website), (rb_plugins_engine_get_plugin_copyright), (rb_plugins_engine_get_plugin_icon): * plugins/rb-plugins-engine.h: * plugins/rb-python-module.c: (rb_python_module_init_python), (rb_python_module_load), (rb_python_module_unload), (rb_python_module_class_init), (rb_python_module_new), (finalise_collect_cb), (rb_python_shutdown): * plugins/rb-python-module.h: * plugins/rb-python-plugin.c: (call_python_method), (impl_deactivate), (impl_activate), (impl_create_configure_dialog), (impl_is_configurable), (rb_python_object_get_type): * plugins/rb-python-plugin.h: * plugins/rb/Makefile.am: Use TRUE/FALSE in schemas to make it easier to read. Remove spurious whitespace. Don't use libgnome explicitly. Replace the crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths(). Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc. Don't special case loading of dirs. Install plugins to subdirectors of PLUGINDIR so they don't interfere. Install rb plugin to LIBDIR not DATADIR. Fixes #350352 2006-08-10 James Livingston * daapsharing/rb-daap-connection.c: (connection_connected), (connection_disconnected), (connection_operation_done): * daapsharing/rb-daap-share.c: (name_collision_cb): * plugins/generic-player/rb-generic-player-source.c: (rb_generic_player_source_load_playlists): * podcast/rb-podcast-manager.c: (rb_podcast_manager_download_entry), (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file), (end_job), (rb_podcast_manager_event_loop): * rhythmdb/rhythmdb-property-model.c: (rhythmdb_property_model_perform_sync): * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle), (rhythmdb_query_model_process_update), (idle_process_update), (rhythmdb_query_model_reapply_query_cb): * shell/rb-play-order.c: (sync_playing_entry_cb): * shell/rb-removable-media-manager.c: (rb_removable_media_manager_load_media): * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle), (rb_shell_clipboard_sync), (rb_shell_clipboard_entryview_changed_cb), (rb_shell_clipboard_entries_changed_cb), (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu), (rebuild_playlist_menu_idle), (rb_shell_clipboard_playlist_added_cb): * shell/rb-shell-player.c: (notify_playing_idle), (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb): * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout), (rb_shell_quit): * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): * sources/rb-library-source.c: (add_child_sources_idle): * sources/rb-playlist-source-recorder.c: (response_idle_cb), (burn_cd_idle): * sources/rb-source.c: (update_visibility_idle): * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout), (cb_button_press): * widgets/rb-druid.c: (idle_set_sensitive): * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed): take the GDK lock when we should be, from #348588 2006-08-09 James Livingston * rhythmdb/rhythmdb-property-model.c: (rhythmdb_property_model_get_path), (rhythmdb_property_model_get_value), (rhythmdb_property_model_iter_next): don't attempt to verify the iterator if it's the All value, since it isn't valid. Fixes a potential crasher. 2006-08-08 Jonathan Matthew * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post), (rb_podcast_manager_download_file_info_cb), (rb_podcast_manager_abort_download), (download_info_free), (download_info_new): Use gnome_vfs_async_get_file_info to figure out the local filename for a podcast episode, so we get the filename from the target of any redirects, rather than the source. When creating the GnomeVFSURI, hide the query string, then append it later, to stop gnome-vfs from converting 'http://' to 'http:/'. If the local filename ends with the query string, remove it. Fixes #330766 and #321991. 2006-08-08 Jonathan Matthew * sources/rb-library-source.c: (impl_want_uri): * sources/rb-static-playlist-source.c: (impl_want_uri): Treat sftp:// URIs as likely indicators of songness. 2006-08-07 James Livingston * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide remote tracks with GStreamer 0.10, and remember their visibility like local ones. 2006-08-07 James Livingston * remote/dbus/rb-client.c: (main): don't unref the bus instance, since apparently it's a borrowed reference. Should fix #347072. 2006-08-06 James Livingston * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize), (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next), (rb_shuffle_play_order_get_previous), (rb_shuffle_play_order_go_previous), (handle_query_model_changed), (remove_from_history), (add_randomly_to_history), (rb_shuffle_sync_history_with_query_model), (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted), (query_model_and_history_contents_match): remove the tentatative history stuff, which is from older code, like we did for -random a few weeks ago. 2006-08-06 James Livingston * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next), (rb_queue_play_order_get_previous): * shell/rb-play-order-random.c: (rb_random_play_order_get_next), (rb_random_play_order_go_next), (rb_random_play_order_get_previous), (rb_random_db_changed): * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init), (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next), (rb_shuffle_play_order_get_previous), (add_randomly_to_history), (rb_shuffle_db_changed), (rb_shuffle_entry_added), (rb_shuffle_entry_removed), (query_model_and_history_contents_match): * shell/rb-play-order.c: (rb_play_order_query_model_changed), (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb), (default_has_next), (default_has_previous), (rb_play_order_model_not_empty): Fix assorted refcounting issues in various play orders, after reviewing the code. Should fix #349601. 2006-08-05 Jonathan Matthew * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: Pass the items_per_notification parameter to gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors with some versions of python. 2006-08-05 Jonathan Matthew * widgets/libsexy/sexy-icon-entry.c: (draw_icon): Don't try to draw the icon if the drawable area is too small. Fixes #349838. 2006-08-04 Ryan P Skadberg patch by: Jonathan Matthew * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783 2006-08-05 James Livingston * configure.ac: tell libtool not to check for C++/fortran/ etc compilers * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right watch, to fix some gconf warnings. 2006-08-04 James Livingston patch by: William Jon McCann * shell/main.c: (main): use GOption instead of popt. Fixes #346930 2006-08-04 James Livingston * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to actually fix #349722 this time 2006-08-04 James Livingston * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt to seach for local art from http:// URIs, or those gnome-vfs doesn't know about. Fixes #348571. 2006-08-03 Benjamin Otte various fixes for valgrind complaints: * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free), (init_rb_tree_dnd_data): free the associated target list, too * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize): initialize allocation.{x,y,width,height} correctly * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting), (rb_entry_view_constructor): free strings when no longer needed 2006-08-03 James Livingston * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the real GtkTreeModel not the filter. Fixes #349722 2006-08-03 Jonathan Matthew * backends/gstreamer/rb-player-gst.c: Only use DAAP seek hacks for GStreamer 0.8 builds. * daapsharing/rb-daap-src.c: (rb_daap_src_class_init), (rb_daap_src_open): * daapsharing/rb-daap-src.h: Implement normal GStreamer seeking for GStreamer 0.10 builds. * sources/rb-daap-source.c: (rb_daap_source_class_init), (rb_daap_source_get_headers): * sources/rb-daap-source.h: Reimplement rb_daap_source_get_headers for the case where we've already got the byte offset. Add a small hack to rb_daap_source_class_init to prevent the linker from dropping rb-daap-src.o entirely. Fixes client-side DAAP seeking (for MP3, at least), bug #330410. 2006-08-02 James Livingston * daapsharing/rb-daap-connection.c: (entry_set_string_prop), (handle_song_listing), (handle_playlist_entries), (rb_daap_connection_dispose): * sources/rb-daap-source.c: (_add_location_to_playlist), (rb_daap_source_connection_cb): make the daap code use RBRefStrings for playlist URIs, not pointless duplicate strings. From #347425. 2006-08-02 James Livingston * data/rhythmbox.schemas: * lib/rb-preferences.h: * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init), (plugin_manager_view_cell_cb), (plugin_manager_populate_lists), (plugin_manager_set_active), (plugin_manager_toggle_active), (plugin_manager_get_selected_plugin), (name_search_cb), (plugin_manager_construct_tree), (rb_plugin_manager_new), (rb_plugin_manager_finalize): * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all), (rb_plugin_info_free), (rb_plugins_engine_plugin_is_visible), (rb_plugins_engine_plugin_visible_cb): * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading per-user plugins, and 2) hide plugins from the manager UI. From #349395 2006-08-02 James Livingston * sources/rb-sourcelist-model.c: (rb_sourcelist_model_drag_data_received): don't crash if we didn't drop on a source. Fixes #349580. 2006-07-31 Jonathan Matthew * configure.ac: * daapsharing/rb-daap-dialog.c: * daapsharing/rb-daap-dialog.h: * shell/Makefile.am: * sources/Makefile.am: * sources/rb-daap-source.c: (connection_auth_cb), (rb_daap_source_connection_cb), (rb_daap_source_activate): Add gnome-keyring support for DAAP passwords and use gnome-password-dialog instead of our own. Patch mostly by James Livingston. Fixes bug #330346. 2006-07-31 Jonathan Matthew * shell/rb-shell-player.c: (rb_shell_player_set_playing_source_internal), (rb_shell_player_sync_with_selected_source): Remove call to rb_source_have_url, as we never did anything with the result. * sources/rb-browser-source.c: (rb_browser_source_class_init): * sources/rb-import-errors-source.c: (rb_import_errors_source_class_init): * sources/rb-iradio-source.c: (rb_iradio_source_class_init), (impl_song_properties), (impl_want_uri), (impl_add_uri): * sources/rb-library-source.c: (rb_library_source_class_init), (impl_want_uri), (impl_add_uri): * sources/rb-missing-files-source.c: (rb_missing_files_source_class_init): * sources/rb-playlist-source.c: (rb_playlist_source_class_init): * sources/rb-podcast-source.c: (rb_podcast_source_class_init), (impl_want_uri), (impl_add_uri): * sources/rb-source.c: (rb_source_class_init), (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos): * sources/rb-source.h: * sources/rb-static-playlist-source.c: (rb_static_playlist_source_class_init), (search_action_changed), (impl_want_uri): Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs. When adding a URI, want_uri gets called for each source; the one that wants it most gets the URI passed to its add_uri method. * shell/rb-shell.h: * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb), (rb_shell_guess_source_for_uri), (rb_shell_add_uri), (handle_playlist_entry_cb), (rb_shell_load_uri): * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): Use want_uri and add_uri to simplify and make generic rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code. If a source that returns TRUE from try_playlist wants all the URIs in the playlist, give it the playlist URI instead. This retains the existing behaviour for adding iradio playlists. * bindings/python/rb.defs: Update for above changes. From bug #347097. 2006-07-31 James Livingston * data/Makefile.am: * data/generate-keys.sh: fix the build I broke with the last commit. Oops. 2006-07-31 James Livingston * data/rhythmbox.applications: remove from cvs, as it hasn't been used in a long time. Fixes #349179. 2006-07-30 James Livingston * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data): * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string): * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes 2006-07-30 Jonathan Matthew * sources/rb-browser-source.c: (rb_browser_source_do_query): Don't tell the browser the query is still pending when doing a subset search. Fixes #348617 again. 2006-07-30 James Livingston * bindings/python/rb.override: remove an extraneous _wrap_ from the override definition. Fixes #348893. 2006-07-30 James Livingston * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use rb_error_dialog, as it's above this in the stack. * lib/rb-util.c: (rb_gvalue_compare): * lib/rb-util.h: change the return type to int, as we're returning -1/0/1 * rhythmdb/rhythmdb.c: (rhythmdb_finalize): * widgets/rb-query-creator.c: (rb_query_creator_constructor), (rb_query_creator_set_sorting): minor leak fixes 2006-07-28 James Livingston * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init), (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal), (get_or_create_genre), (remove_entry_from_album), (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete), (rhythmdb_tree_entry_delete_by_type), (conjunctive_query), (rhythmdb_tree_entry_lookup_by_location), (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach), (rhythmdb_hash_tree_foreach), (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree threadsafe. Fix a nasty problem if the _foreach callback function caused the addition/removal of entries. 2006-07-27 Jonathan Matthew * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal): Clear selection before changing our idea of the model. Fixes crashes on model changes while playing. 2006-07-27 James Livingston * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add a missing rb_refstring_unref. * rhythmdb/rhythmdb.c: (rhythmdb_action_free), (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free: oops. should hopefully fix the crash reported on #347425. 2006-07-27 James Livingston * backends/gstreamer/rb-encoder-gst.c: (get_profile_from_mime_type): fix encoding error issue, from #310774. * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential thread-safety issue. 2006-07-27 James Livingston * rhythmdb/rb-refstring.c: (rb_refstring_find): * rhythmdb/rb-refstring.h: add a new function which returns the RBRefString that matches a string, but never creates a new one. * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring), (monitor_entry_file), (rhythmdb_check_changed_file), (rhythmdb_directory_change_cb): * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init), (unparent_entries), (free_unknown_entries), (rhythmdb_tree_parser_start_element), (rhythmdb_tree_parser_end_element), (save_entry), (save_unknown_entry_type), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete), (remove_one_song), (rhythmdb_tree_entry_lookup_by_location), (rhythmdb_tree_entry_type_registered): * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new), (rhythmdb_entry_example_new), (rhythmdb_entry_finalize), (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load), (rhythmdb_process_file_created_or_modified), (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load), (action_thread_main), (rhythmdb_entry_set_internal), (rhythmdb_entry_move_to_trash_set_error), (rhythmdb_entry_move_to_trash), (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_lookup_by_location_refstring), (default_sync_metadata), (rhythmdb_entry_get_string), (rhythmdb_entry_get_refstring): * rhythmdb/rhythmdb.h: * shell/rb-shell.c: (rb_shell_db_entry_added_cb): * sources/rb-playlist-source.c: (rb_playlist_source_constructor), (rb_playlist_source_row_deleted), (rb_playlist_source_entry_added_cb), (rb_playlist_source_location_in_map), (rb_playlist_source_add_to_map): Make the LOCATION field of RhythmDBEntry be a RBRefString instead, which reduces some of the memory-fragmentation on startup and saves RBStaticPlaylistSource duplicating all the strings. 2006-07-26 Jonathan Matthew * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain): * rhythmdb/rhythmdb-query-model.h: Add function to copy contents from one query model to another, filtered by the destination model's query. * sources/rb-browser-source.c: (rb_browser_source_do_query): Use the above to create a new query model for subset searches, rather than filtering the existing model. Fixes #348617. 2006-07-25 James Livingston * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get lost from static playlists. Yet again. Fixes #323095. * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test case for the above, so that we should know if a change will break it again. 2006-07-25 William Jon McCann * data/rhythmbox.schemas: Fix for last commit. * podcast/rb-podcast-manager.c: (rb_podcast_manager_download_entry), (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds), (rb_podcast_manager_db_entry_deleted_cb): * rhythmdb/rhythmdb-property-model.c: (rhythmdb_property_model_set_query_model_internal), (rhythmdb_property_model_set_property), (rhythmdb_property_model_finalize), (rhythmdb_property_model_drag_data_get): * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_set_query_internal), (rhythmdb_query_model_set_property), (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain): * rhythmdb/rhythmdb-query-model.h: * sources/rb-browser-source.c: (rb_browser_source_dispose), (rb_browser_source_do_query): * sources/rb-import-errors-source.c: (rb_import_errors_source_constructor): * sources/rb-iradio-source.c: (rb_iradio_source_dispose), (rb_iradio_source_constructor), (rb_iradio_source_set_property), (rb_iradio_source_get_property), (rb_iradio_source_add_station), (impl_search), (impl_get_status), (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb), (rb_iradio_source_show_browser), (rb_iradio_source_do_query), (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist): * sources/rb-missing-files-source.c: (rb_missing_files_source_constructor), (rb_missing_files_source_dispose), (rb_missing_files_source_new): * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize): * sources/rb-playlist-source.c: (rb_playlist_source_constructor), (rb_playlist_source_dispose), (rb_playlist_source_finalize), (rb_playlist_source_save_playlist), (rb_playlist_source_new_from_xml), (rb_playlist_source_save_to_xml), (rb_playlist_source_setup_entry_view), (rb_playlist_source_set_query_model), (rb_playlist_source_get_db), (rb_playlist_source_get_query_model), (rb_playlist_source_mark_dirty), (rb_playlist_source_location_in_map), (rb_playlist_source_add_to_map): * sources/rb-podcast-source.c: (rb_podcast_source_dispose), (rb_podcast_source_finalize), (rb_podcast_source_constructor), (rb_podcast_source_set_property), (rb_podcast_source_get_property), (impl_delete), (rb_podcast_source_state_prefs_sync), (rb_podcast_source_show_browser), (rb_podcast_source_do_query), (impl_get_config_widget), (rb_podcast_source_add_feed), (rb_podcast_source_cmd_download_post), (rb_podcast_source_cmd_cancel_download), (rb_podcast_source_cmd_delete_feed), (rb_podcast_source_cmd_update_feed), (rb_podcast_source_cmd_update_all), (rb_podcast_source_cb_interval_changed_cb), (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown), (rb_podcast_source_entry_activated_cb): * sources/rb-source.c: (rb_source_finalize), (rb_source_set_query_model_internal), (rb_source_set_property), (default_get_status): * sources/rb-static-playlist-source.c: (rb_static_playlist_source_dispose), (rb_static_playlist_source_finalize), (rb_static_playlist_source_constructor), (rb_static_playlist_source_do_query): * widgets/rb-entry-view.c: (rb_entry_view_finalize), (rb_entry_view_set_shell_player_internal), (rb_entry_view_set_model_internal), (rb_entry_view_get_property), (rb_entry_view_set_model), (rb_entry_view_append_column), (rb_entry_view_insert_column_custom), (rb_entry_view_constructor), (rb_entry_view_set_state): * widgets/rb-library-browser.c: (rb_library_browser_constructor), (rb_library_browser_finalize), (rb_library_browser_new), (update_browser_property_visibilty), (view_selection_reset_cb), (reset_view_cb), (construct_query_cb), (ignore_selection_changes), (restore_selection), (rebuild_child_model), (rb_library_browser_set_selection), (rb_library_browser_set_model): * widgets/rb-property-view.c: (rb_property_view_set_model_internal), (rb_property_view_set_selection_mode), (rb_property_view_reset), (rb_property_view_get_model), (rb_property_view_set_model), (rb_property_view_get_num_properties), (rb_property_view_set_selection), (rb_property_view_append_column_custom), (rb_property_view_set_search_func): Fix some more leaks. Mostly RhythmDBQueryModel ref leaks. From #347446 2006-07-25 William Jon McCann * sources/rb-playlist-source-recorder.c: (update_speed_combobox): Work around a small n-c-b API change. 2006-07-25 James Livingston * data/rhythmbox.schemas: fix the schema to use the right plugin keys * rhythmdb/rhythmdb.c: (rhythmdb_finalize), (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when aborting entry-emission on finalise 2006-07-25 James Livingston * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix warning when entry is NULL. 2006-07-25 James Livingston * help/sv/.cvsignore: * lib/.cvsignore: * plugins/generic-player/.cvsignore: * remote/.cvsignore: * remote/dbus/.cvsignore: * shell/.cvsignore: * tests/.cvsignore: more .cvsignore updates 2006-07-24 James Livingston * widgets/eggtrayicon.c: (egg_tray_icon_class_init), (transparent_expose_event), (make_transparent_again), (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add): apply a patch for EggTrayIcon so that it handled transparent panels correctly. Patch by DanWinship from bug 150726. Fixes #348208. 2006-07-24 James Livingston * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy queries rather than taking ownership when parsing a subquery. Fixed a crash exposed by the recent leak fixes. * doc/reference/tmpl/disclosure-widget.sgml: * doc/reference/tmpl/rb-debug.sgml: * doc/reference/tmpl/rb-metadata.sgml: * doc/reference/tmpl/rb-play-order.sgml: * doc/reference/tmpl/rb-playlist-manager.sgml: * doc/reference/tmpl/rb-playlist-source.sgml: * doc/reference/tmpl/rb-shell-player.sgml: * doc/reference/tmpl/rb-shell.sgml: * doc/reference/tmpl/rb-song-display-box.sgml: * doc/reference/tmpl/rhythmbox-unused.sgml: * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap 2006-07-24 James Livingston * lib/.cvsignore: * plugins/artdisplay/.cvsignore: * plugins/artdisplay/artdisplay/.cvsignore: * plugins/lyrics/.cvsignore: * plugins/pythonconsole/.cvsignore: * plugins/rb/.cvsignore: add/update various .cvsignore files 2006-07-24 James Livingston * rhythmdb/rb-refstring.c: (rb_refstring_unref), (rb_refstring_ref): don't emit critical warnings when the refstring is NULL, as that happens often for podcast metadata. * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add missing rhythmdb_entry_ref call 2006-07-23 William Jon McCann * bindings/python/rb.override: * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl): * plugins/cd-recorder/rb-cd-recorder-plugin.c: (playlist_row_inserted_cb): * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs): * plugins/rb-plugin-manager.c: * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb), (rb_podcast_manager_copy_post), (rb_podcast_manager_db_entry_deleted_cb), (rb_podcast_manager_insert_feed): * rhythmdb/rb-refstring.c: (rb_refstring_unref), (rb_refstring_ref), (rb_refstring_get_sort_key): * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb-property-model.c: (rhythmdb_property_model_set_property), (rhythmdb_property_model_get_property), (rhythmdb_property_model_finalize), (rhythmdb_property_model_new), (rhythmdb_property_model_row_inserted_cb), (rhythmdb_property_model_prop_changed_cb), (rhythmdb_property_model_compare), (rhythmdb_property_model_insert), (rhythmdb_property_model_iter_from_string), (rhythmdb_property_model_get_column_type), (rhythmdb_property_model_get_iter), (rhythmdb_property_model_get_value), (rhythmdb_property_model_iter_nth_child), (query_model_cb), (rhythmdb_property_model_enable_drag): * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init), (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose), (rhythmdb_query_model_finalize), (rhythmdb_query_model_new), (rhythmdb_query_model_chain), (rhythmdb_query_model_entry_added_cb), (rhythmdb_query_model_entry_changed_cb), (rhythmdb_query_model_entry_deleted_cb), (idle_process_update), (rhythmdb_query_model_add_entry), (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_move_entry), (rhythmdb_query_model_remove_entry), (rhythmdb_query_model_entry_to_iter), (rhythmdb_query_model_iter_to_entry), (rhythmdb_query_model_get_previous_from_entry), (rhythmdb_query_model_row_draggable), (rhythmdb_query_model_drag_data_delete), (rhythmdb_query_model_drag_data_get), (rhythmdb_query_model_drag_data_received), (rhythmdb_query_model_row_drop_possible), (rhythmdb_query_model_row_drop_position), (rhythmdb_query_model_add_results), (rhythmdb_query_model_query_complete), (rhythmdb_query_model_get_column_type), (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value), (rhythmdb_query_model_iter_nth_child), (apply_updated_entry_sequence), (rhythmdb_query_model_child_index_to_base_index), (rhythmdb_query_model_get_entry_index), (rhythmdb_query_model_base_row_inserted), (rhythmdb_query_model_base_row_deleted), (rhythmdb_query_model_reapply_query), (_reverse_sorting_func), (rhythmdb_query_model_location_sort_func), (rhythmdb_query_model_title_sort_func), (rhythmdb_query_model_album_sort_func), (rhythmdb_query_model_artist_sort_func), (rhythmdb_query_model_track_sort_func), (rhythmdb_query_model_double_ceiling_sort_func), (rhythmdb_query_model_ulong_sort_func), (rhythmdb_query_model_date_sort_func), (rhythmdb_query_model_string_sort_func), (rhythmdb_query_model_within_limit): * rhythmdb/rhythmdb-tree.c: (unparent_entries), (rhythmdb_tree_parser_start_element), (rhythmdb_tree_parser_end_element), (rhythmdb_tree_parser_characters), (rhythmdb_tree_load), (write_elt_name_open), (write_elt_name_close), (save_entry_string), (save_entry_int), (save_entry_ulong), (save_entry_boolean), (save_entry_uint64), (save_entry_double), (save_entry), (set_entry_album), (rhythmdb_tree_entry_new), (get_genres_hash_for_type), (get_or_create_genre), (get_or_create_artist), (get_or_create_album), (remove_child), (remove_entry_from_album), (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete), (remove_one_song), (rhythmdb_tree_entry_delete_by_type), (rhythmdb_tree_evaluate_query), (search_match_properties), (evaluate_conjunctive_subquery), (do_conjunction), (conjunctive_query_songs), (clone_remove_ptr_array_index), (conjunctive_query_albums), (conjunctive_query_artists), (conjunctive_query_genre), (conjunctive_query), (split_query_by_disjunctions), (do_query_recurse), (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location), (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach), (hash_tree_entries_foreach), (hash_tree_albums_foreach), (hash_tree_artists_foreach), (hash_tree_genres_foreach): * rhythmdb/rhythmdb.c: (metadata_field_from_prop), (extract_gtype_from_enum_entry), (extract_nice_name_from_enum_entry), (rhythmdb_init), (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free), (rhythmdb_event_free), (rhythmdb_finalize), (rhythmdb_set_property), (rhythmdb_get_property), (rhythmdb_thread_create), (free_entry_changes), (emit_entry_changed), (sync_entry_changed), (process_added_entries_cb), (process_deleted_entries_cb), (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit), (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data), (rhythmdb_entry_insert), (rhythmdb_entry_new), (rhythmdb_entry_example_new), (rhythmdb_entry_ref), (rhythmdb_entry_finalize), (rhythmdb_entry_unref), (rhythmdb_entry_is_editable), (set_props_from_metadata), (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load), (rhythmdb_process_file_created_or_modified), (rhythmdb_process_file_deleted), (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat), (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load), (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri), (rhythmdb_add_uri_with_type), (rhythmdb_entry_set), (record_entry_change), (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete), (rhythmdb_entry_move_to_trash_cb), (rhythmdb_entry_move_to_trash_set_error), (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type), (rhythmdb_nice_elt_name_from_propid), (rhythmdb_propid_from_nice_elt_name), (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach), (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted), (rhythmdb_compute_status_normal), (default_sync_metadata), (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach), (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata), (podcast_get_playback_uri), (podcast_data_destroy), (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility), (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer), (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type): * rhythmdb/rhythmdb.h: * shell/rb-play-order-linear-loop.c: (rb_linear_play_order_loop_get_next), (rb_linear_play_order_loop_get_previous): * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next), (rb_linear_play_order_get_previous): * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous): * shell/rb-play-order-random.c: (get_query_model_contents): * shell/rb-play-order-shuffle.c: (handle_query_model_changed), (get_query_model_contents): * shell/rb-play-order.c: (rb_play_order_constructor), (rb_play_order_finalize), (rb_play_order_set_playing_entry_internal), (rb_play_order_set_property), (rb_play_order_new), (rb_play_order_get_player), (rb_play_order_get_source), (rb_play_order_get_db), (rb_play_order_get_query_model), (rb_play_order_player_is_playing), (rb_play_order_set_playing_entry), (rb_play_order_get_playing_entry), (rb_play_order_playing_source_changed), (rb_play_order_query_model_changed), (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb), (default_has_next), (default_has_previous), (sync_playing_entry_cb), (default_playing_entry_removed), (rb_play_order_has_next), (rb_play_order_get_next), (rb_play_order_go_next), (rb_play_order_has_previous), (rb_play_order_get_previous), (rb_play_order_go_previous), (rb_play_order_model_not_empty), (rb_play_order_update_have_next_previous): * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_playlists), (rb_playlist_manager_set_automatic_playlist), (rb_playlist_manager_cmd_edit_automatic_playlist), (_queue_track_cb), (rb_playlist_manager_get_playlists), (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name): * shell/rb-shell-clipboard.c: (add_playlist_to_menu): * shell/rb-shell-player.c: (rb_shell_player_constructor), (volume_pre_unmount_cb), (reemit_playing_signal), (notify_playing_idle), (rb_shell_player_open_playlist_url), (rb_shell_player_handle_eos_unlocked), (rb_shell_player_handle_eos), (rb_shell_player_init), (rb_shell_player_new), (rb_shell_player_get_playing_entry), (playlist_entry_cb), (rb_shell_player_open_entry), (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed), (rb_shell_player_set_play_order), (rb_shell_player_set_playback_state), (rb_shell_player_sync_play_order), (rb_shell_player_play_order_update_cb), (rb_shell_player_jump_to_current), (swap_playing_source), (rb_shell_player_do_previous), (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause), (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain), (rb_shell_player_entry_activated_cb), (rb_shell_player_property_row_activated_cb), (rb_shell_player_entry_changed_cb), (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons), (rb_shell_player_pause), (rb_shell_player_get_playing_song_duration), (rb_shell_player_error), (error_cb), (tick_cb), (info_available_cb), (buffering_cb), (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys): * shell/rb-shell.c: (rb_shell_playing_from_queue_cb), (rb_shell_jump_to_current): * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_finalize), (impl_receive_drag), (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query), (rb_auto_playlist_source_get_query): * sources/rb-auto-playlist-source.h: * sources/rb-browser-source.c: (rb_browser_source_do_query): * sources/rb-import-errors-source.c: (rb_import_errors_source_constructor): * sources/rb-iradio-source.c: (rb_iradio_source_do_query): * sources/rb-library-source.c: (filepath_parse_pattern): * sources/rb-missing-files-source.c: (rb_missing_files_source_constructor): * sources/rb-play-queue-source.c: (rb_play_queue_source_clear_queue), (rb_play_queue_source_track_info_cell_data_func): * sources/rb-playlist-source.c: (rb_playlist_source_set_property), (rb_playlist_source_get_property), (playlist_iter_func), (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted), (rb_playlist_source_track_cell_data_func): * sources/rb-podcast-source.c: (construct_query_from_selection), (rb_podcast_source_post_status_cell_data_func), (rb_podcast_source_post_feed_cell_data_func), (rb_podcast_source_feed_title_search_func), (rb_podcast_source_post_date_cell_data_func): * sources/rb-source.c: (default_get_status), (rb_source_get_status), (rb_source_browser_toggled), (rb_source_update_play_statistics), (rb_source_search), (rb_source_get_config_widget), (default_add_to_queue), (rb_source_add_to_queue), (rb_source_receive_drag), (rb_source_gather_hash_keys): * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible), (rb_sourcelist_model_row_is_separator), (rb_sourcelist_model_drag_data_received), (path_is_droppable), (path_is_reorderable), (rb_sourcelist_model_row_draggable), (rb_sourcelist_model_drag_data_get): * sources/rb-sourcelist.c: (rb_sourcelist_append), (match_source_to_iter), (rb_sourcelist_source_to_iter), (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_edit_source_name), (set_source_playing), (rb_sourcelist_set_playing_source), (rb_sourcelist_remove), (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb), (drop_received_cb), (row_activated_cb), (emit_show_popup), (key_release_cb), (name_notify_cb), (visibility_notify_cb), (rb_sourcelist_title_cell_data_func), (source_name_edited_cb): * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml), (rb_static_playlist_source_add_location_internal), (rb_static_playlist_source_row_inserted): * widgets/rb-entry-view.c: (type_ahead_search_func), (rb_entry_view_finalize), (rb_entry_view_set_model), (rb_entry_view_playing_cell_data_func), (rb_entry_view_rating_cell_data_func), (rb_entry_view_long_cell_data_func), (rb_entry_view_play_count_cell_data_func), (rb_entry_view_duration_cell_data_func), (rb_entry_view_year_cell_data_func), (rb_entry_view_quality_cell_data_func), (rb_entry_view_location_cell_data_func), (rb_entry_view_string_cell_data_func), (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type), (rb_entry_view_get_sorting_order), (rb_entry_view_set_sorting_order), (rb_entry_view_append_column), (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor), (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb), (rb_entry_view_playing_song_changed), (harvest_entries), (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb), (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb), (set_column_visibility): * widgets/rb-entry-view.h: * widgets/rb-header.c: (rb_header_new), (rb_header_set_playing_entry), (rb_header_set_title): * widgets/rb-library-browser.c: (rebuild_child_model), (rb_library_browser_set_model): * widgets/rb-property-view.c: (rb_property_view_set_model_internal), (rb_property_view_finalize), (rb_property_view_set_property), (rb_property_view_get_property), (rb_property_view_reset), (rb_property_view_get_model), (rb_property_view_set_model), (rb_property_view_row_activated_cb), (rb_property_view_button_press_cb): * widgets/rb-query-creator.c: (rb_query_creator_constructor), (rb_query_creator_get_property), (rb_query_creator_load_query), (rb_query_creator_set_sorting), (rb_query_creator_new_from_query), (rb_query_creator_get_query), (rb_query_creator_get_limit), (rb_query_creator_get_sort_order), (limit_toggled_cb), (lookup_row_by_widget), (remove_button_click_cb), (add_button_click_cb), (create_property_option_menu): * widgets/rb-song-info.c: (rb_song_info_constructor), (rb_song_info_finalize), (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons), (rb_song_info_update_rating), (rb_song_info_sync_entry_single): Fix more leaks. Mostly RhythmDBEntry ref leaks. From #347446 2006-07-23 Jonathan Matthew * shell/rb-shell-player.c: (rb_shell_player_class_init), (rb_shell_player_get_property): Add a property providing access to the player backend object. 2006-07-23 James Livingston * shell/rb-play-order-random.c: (rb_random_play_order_finalize), (get_history), (rb_random_filter_history), (rb_random_playing_entry_changed), (rb_random_db_entry_deleted): remove the tentative history, since it appears to be a remanent from older play order code. The only thing it was doing was using up CPU-time and memory. From #345857 2006-07-23 James Livingston patch by: Alex Lancaster * shell/main.c: (main): * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init), (rb_playlist_manager_finalize), (rb_playlist_manager_set_property), (rb_playlist_manager_get_property), (rb_playlist_manager_new), (rb_playlist_manager_load_playlists), (rb_playlist_manager_save_data): * shell/rb-playlist-manager.h: * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property), (rb_shell_get_property), (rb_shell_sync_state), (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new), (construct_sources), (idle_handle_load_complete): * shell/rb-shell.h: Add a command-line option for changing the playlist xml file to use, similar to the rhythmdb one. Fixes #343659. 2006-07-22 Jonathan Matthew * daapsharing/rb-daap-share.c: (databases_cb): Make sure we set status codes on HTTP responses. 2006-07-22 Jonathan Matthew * configure.ac: * daapsharing/rb-daap-share.c: (add_entry_to_mlcl), (chunked_message_finished), (send_chunked_file), (mapped_file_message_finished), (send_mapped_file), (databases_cb): Use GMappedFile to send local files to DAAP clients where possible. iTunes can't seek properly in files sent using chunked transfer encoding. Also remove the useless bitrate calculation code, as we never even used the result anyway. From #330410. 2006-07-22 Jonathan Matthew patch by: Nguyễn Thái Ngọc Duy * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library): Enable multiple selection for 'import file'. Fixes #347478. 2006-07-20 Claudio Saavedra * metadata/rb-metadata-dbus-client.c: (kill_metadata_service): * metadata/rb-metadata-dbus-service.c: (main): Replace calls to deprecated dbus_connection_disconnect () with dbus_connection_close (). Fixes #348098. 2006-07-20 James Livingston * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings aren't NULL before calling strstr. Fixes #347998. 2006-07-19 James Livingston patch by: Alex Lancaster * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from MB that only have years. Fixes #347906. 2006-07-19 James Livingston * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free), (_shutdown_foreach_swapped), (rhythmdb_shutdown), (rhythmdb_finalize), (timeout_rhythmdb_commit), (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main), (rhythmdb_load), (rhythmdb_entry_register_type), (rhythmdb_entry_register_type_alias): Keep track of outstanding asynchronous vfs operations, and cancel them when shutting down the DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985 * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal), (test_rhythmdb_shutdown): wait until the db has been finalised before continuing on to the next test. 2006-07-19 James Livingston * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the right thing in the #ifdef. From #347832. 2006-07-19 Jonathan Matthew * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string): Fix compile warning. 2006-07-18 Jonathan Matthew * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_set_property), (rhythmdb_query_model_reapply_query_cb): Ignore old query == new query case. Fixes auto playlists with time-relative queries. * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string), (write_encoded_gvalue), (rhythmdb_query_is_time_relative), (rhythmdb_query_to_string): * rhythmdb/rhythmdb.h: Add debug helper for printing queries in case someone needs it again. 2006-07-18 James Livingston patch by: Ståle Lyngaas * sources/rb-audiocd-source.c: store the MB track ids in the database. Fixes #347832 * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and write then into files. 2006-07-17 William Jon McCann * daapsharing/rb-daap-connection.c: (rb_daap_connection_set_property): * daapsharing/rb-daap-share.c: (rb_daap_share_set_db), (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property), (add_playlist_to_mlcl), (databases_cb): * daapsharing/rb-daap-sharing.c: (create_share): * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_class_init), (rb_new_station_dialog_new): * iradio/rb-station-properties-dialog.c: (rb_station_properties_dialog_finalize), (rb_station_properties_dialog_set_property), (rb_station_properties_dialog_get_current_entry): * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data): * plugins/generic-player/rb-generic-player-source.c: (rb_generic_player_source_dispose), (rb_generic_player_source_new), (handle_playlist_entry_cb): * plugins/generic-player/rb-nokia770-source.c: (rb_nokia770_source_new), (hal_udi_is_nokia770): * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path), (visit_playlist_dirs), (hal_udi_is_psp): * podcast/rb-podcast-manager.c: * podcast/rb-podcast-properties-dialog.c: (rb_podcast_properties_dialog_finalize), (rb_podcast_properties_dialog_set_entry_view), (rb_podcast_properties_dialog_set_property): * rhythmdb/rhythmdb-property-model.c: * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_set_property), (rhythmdb_query_model_reapply_query_cb): * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize): * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions): * rhythmdb/rhythmdb.c: (rhythmdb_action_free), (rhythmdb_event_free), (rhythmdb_shutdown), (rhythmdb_thread_create), (action_thread_main), (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query_internal): * shell/main.c: (main): * shell/rb-play-order-random.c: (rb_random_play_order_go_next): * shell/rb-play-order.c: (rb_play_order_finalize), (rb_play_order_set_player), (rb_play_order_set_playing_entry_internal), (rb_play_order_set_property), (rb_play_order_playing_source_changed), (rb_play_order_query_model_changed): * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize), (rb_playlist_manager_set_source), (rb_playlist_manager_set_shell_internal), (rb_playlist_manager_set_property): * shell/rb-removable-media-manager.c: (rb_removable_media_manager_set_property), (rb_removable_media_manager_set_uimanager), (rb_removable_media_manager_cmd_eject_medium), (rb_removable_media_manager_cmd_copy_tracks): * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize), (rb_shell_clipboard_new), (rb_shell_clipboard_sync), (rb_shell_clipboard_set), (rb_shell_clipboard_cmd_add_to_playlist_new), (rb_shell_clipboard_playlist_add_cb), (rb_shell_clipboard_playlist_renamed_cb), (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu), (rebuild_playlist_menu): * shell/rb-shell-player.c: (rb_shell_player_set_source_internal), (rb_shell_player_set_queue_source_internal), (rb_shell_player_finalize), (rb_shell_player_set_play_order), (rb_shell_player_entry_activated_cb), (rb_shell_player_property_row_activated_cb), (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb): * shell/rb-shell-preferences.c: (rb_shell_preferences_new): * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property), (rb_shell_finalize), (construct_widgets), (rb_shell_playing_from_queue_cb), (rb_shell_player_stream_song_changed_cb), (rb_shell_player_volume_changed_cb): * shell/rb-statusbar.c: (rb_statusbar_new): * shell/rb-tray-icon.c: (rb_tray_icon_finalize), (rb_tray_icon_sync_action), (rb_tray_icon_set_property): * sources/rb-audiocd-source.c: (rb_audiocd_source_new): * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_class_init), (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize), (rb_auto_playlist_source_constructor), (impl_receive_drag), (rb_auto_playlist_source_do_query), (rb_auto_playlist_source_set_query), (rb_auto_playlist_source_browser_changed_cb), (search_action_changed): * sources/rb-auto-playlist-source.h: * sources/rb-browser-source.c: (rb_browser_source_finalize), (search_action_changed), (rb_browser_source_constructor), (rb_browser_source_cmd_choose_artist), (impl_delete), (rb_browser_source_browser_changed_cb), (rb_browser_source_do_query): * sources/rb-daap-source.c: (rb_daap_source_dispose), (rb_daap_source_finalize), (rb_daap_source_class_init), (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs), (rb_daap_sources_init), (rb_daap_sources_shutdown), (rb_daap_source_connection_cb), (rb_daap_source_activate), (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect), (rb_daap_source_get_headers): * sources/rb-import-errors-source.c: (rb_import_errors_source_constructor), (rb_import_errors_source_new), (impl_delete), (impl_get_status): * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb), (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db), (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs), (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb), (impl_paste), (impl_receive_drag): * sources/rb-iradio-source.c: (rb_iradio_source_finalize), (rb_iradio_source_constructor), (impl_get_status), (impl_delete), (impl_song_properties): * sources/rb-library-source.c: (rb_library_source_constructor), (rb_library_source_new), (impl_paste), (rb_library_source_add_child_source): * sources/rb-missing-files-source.c: (impl_delete), (impl_get_status): * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize), (rb_play_queue_source_class_init), (rb_play_queue_source_constructor): * sources/rb-playlist-source.c: (rb_playlist_source_init), (rb_playlist_source_set_db), (rb_playlist_source_constructor), (rb_playlist_source_dispose), (rb_playlist_source_save_playlist), (rb_playlist_source_new_from_xml), (rb_playlist_source_save_to_xml): * sources/rb-podcast-source.c: (rb_podcast_source_init), (rb_podcast_source_dispose), (rb_podcast_source_finalize), (search_action_changed), (rb_podcast_source_constructor), (impl_delete), (rb_podcast_source_songs_show_popup_cb), (construct_query_from_selection), (rb_podcast_source_cmd_download_post), (rb_podcast_source_cmd_cancel_download), (rb_podcast_source_cmd_delete_feed), (rb_podcast_source_start_download_cb), (rb_podcast_source_finish_download_cb), (rb_podcast_source_feed_updates_avaliable_cb), (rb_podcast_source_get_shell), (impl_can_add_to_queue), (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast), (impl_get_status): * sources/rb-removable-media-source.c: (impl_delete_thyself): * sources/rb-source.c: (rb_source_get_property), (default_add_to_queue), (default_move_to_trash), (_rb_source_show_popup), (rb_source_gather_selected_properties), (_rb_source_register_action_group): * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible), (rb_sourcelist_model_drag_data_received), (path_is_reorderable), (rb_sourcelist_model_row_draggable), (rb_sourcelist_model_drag_data_get): * sources/rb-sourcelist.c: (rb_sourcelist_finalize), (icon_notify_cb), (rb_sourcelist_append), (set_source_playing), (rb_sourcelist_remove), (button_press_cb), (name_notify_cb), (visibility_notify_cb): * sources/rb-static-playlist-source.c: (rb_static_playlist_source_class_init), (rb_static_playlist_source_init), (rb_static_playlist_source_finalize), (rb_static_playlist_source_constructor), (impl_delete), (rb_static_playlist_source_browser_changed_cb), (rb_static_playlist_source_add_location_internal), (search_action_changed): * sources/rb-static-playlist-source.h: * widgets/rb-druid.c: * widgets/rb-entry-view.c: (rb_entry_view_set_shell_player_internal), (rb_entry_view_set_model_internal), (rb_entry_view_set_property), (rb_entry_view_get_property), (rb_entry_view_new), (rb_entry_view_button_press_cb): * widgets/rb-library-browser.c: (rb_library_browser_finalize), (rb_library_browser_set_property), (rb_library_browser_get_property): * widgets/rb-query-creator.c: (rb_query_creator_new_from_query), (get_entry_for_property), (get_property_index_from_proptype): * widgets/rb-song-info.c: (rb_song_info_constructor), (rb_song_info_finalize), (rb_song_info_set_source_internal), (rb_song_info_set_property), (rb_song_info_get_property): More leak and reference counting fixes. From bug #347446. 2006-07-17 James Livingston * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain rather than setting the base model, as that lets us not import all the entries from the base model. This fixes some issues whether the search box wasn't filting automatic playlists. 2006-07-17 James Livingston * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax error, which caused blacklist creation to fail. 2006-07-17 James Livingston * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when running with -n, because we don't start it then. Fixes a crash on exit. 2006-07-17 James Livingston patch by: Przemysław Grzegorczyk * data/glade/playlist-save.glade: Make the "playlist save" dialog use Save not Open for the button. Fixes #345816 2006-07-17 James Livingston patch by: Przemysław Grzegorczyk * sources/rb-library-source.c: (impl_get_config_widget): Fix the build when track transfer is disabled. Fixes #347705 2006-07-17 James Livingston patch by: Przemysław Grzegorczyk * sources/rb-library-source.c: (impl_get_config_widget): fix build with track transfer disabled. Fixes #347705 2006-07-14 William Jon McCann * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_set_property): * shell/main.c: (main): * shell/rb-shell-clipboard.c: (unset_source_internal), (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_source_internal), (rb_shell_clipboard_set_property), (rebuild_playlist_menu): * shell/rb-shell-player.c: (rb_shell_player_set_source_internal), (rb_shell_player_set_db_internal), (rb_shell_player_set_queue_source_internal), (rb_shell_player_finalize), (rb_shell_player_set_property): * shell/rb-shell.c: (rb_shell_finalize), (construct_sources): * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_constructor), (rb_auto_playlist_source_new_from_xml): * sources/rb-daap-source.c: (create_pixbufs): * sources/rb-ipod-source.c: * sources/rb-iradio-source.c: (rb_iradio_source_constructor): * sources/rb-library-source.c: (rb_library_source_add_child_source): * sources/rb-play-queue-source.c: (rb_play_queue_sync_playing_state), (rb_play_queue_source_track_info_cell_data_func): * sources/rb-playlist-source.c: (rb_playlist_source_constructor): * sources/rb-podcast-source.c: (rb_podcast_source_dispose), (rb_podcast_source_finalize), (rb_podcast_source_constructor), (impl_can_add_to_queue), (impl_add_to_queue): * sources/rb-source.c: (rb_source_set_property): * sources/rb-sourcelist.c: (rb_sourcelist_append): * sources/rb-static-playlist-source.c: (rb_static_playlist_source_constructor), (rb_static_playlist_source_load_from_xml): * widgets/bacon-volume.c: (bacon_volume_scale_value_changed): * widgets/rb-entry-view.c: (rb_entry_view_init), (rb_entry_view_finalize), (rb_entry_view_append_column), (rb_entry_view_constructor): * widgets/rb-song-info.c: (rb_song_info_set_property): Fix leaks. From bug #347446. 2006-07-14 William Jon McCann * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize), (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb), (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry), (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb), (add_decoding_pipeline), (profile_bin_find_encoder), (get_profile_from_mime_type), (extract_track), (transcode_track), (rb_encoder_gst_encode): * backends/gstreamer/rb-encoder-gst.h: * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init), (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin), (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb), (rb_player_gst_construct): * backends/gstreamer/rb-player-gst.h: * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel): * backends/rb-encoder.h: * backends/rb-player.c: (_rb_player_emit_tick): * backends/rb-player.h: * daapsharing/rb-daap-connection.c: (build_message), (actual_http_response_handler), (http_response_handler), (http_get), (entry_set_string_prop), (emit_progress_idle), (handle_server_info), (handle_database_info), (handle_song_listing), (handle_playlists), (handle_playlist_entries), (rb_daap_connection_new), (connected_cb), (rb_daap_connection_do_something), (rb_daap_connection_get_headers), (rb_daap_connection_dispose), (rb_daap_connection_get_property): * daapsharing/rb-daap-connection.h: * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run): * daapsharing/rb-daap-dialog.h: * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init), (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform), (DigestToString), (rb_daap_hash_generate): * daapsharing/rb-daap-hash.h: * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb), (resolve_cb), (browse_cb): * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb), (resolve_cb), (rb_daap_mdns_browser_resolve), (rb_daap_mdns_browser_start), (resolver_free): * daapsharing/rb-daap-mdns-browser.h: * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb): * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb), (publish_cb): * daapsharing/rb-daap-mdns-publisher.h: * daapsharing/rb-daap-share.c: (name_collision_cb), (rb_daap_share_process_playlist), (rb_daap_share_dispose), (message_set_from_rb_daap_structure), (content_codes_cb), (session_id_validate), (logout_cb), (update_cb), (add_entry_to_mlcl), (add_playlist_to_mlcl), (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb), (rb_daap_share_server_start), (rb_daap_share_server_stop), (rb_daap_share_publish_start): * daapsharing/rb-daap-share.h: * daapsharing/rb-daap-sharing.c: (share_name_changed_cb), (share_password_changed_cb), (rb_daap_sharing_shutdown): * daapsharing/rb-daap-sharing.h: * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init), (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps), (rb_daap_src_open): * daapsharing/rb-daap-structure.c: (rb_daap_structure_add), (rb_daap_structure_node_serialize), (rb_daap_structure_serialize), (rb_daap_structure_parse_container_buffer), (rb_daap_structure_parse), (gnode_find_node), (rb_daap_structure_find_item), (rb_daap_structure_find_node), (print_rb_daap_item): * daapsharing/rb-daap-structure.h: * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_class_init), (rb_new_station_dialog_init), (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb), (rb_new_station_dialog_text_changed): * iradio/rb-station-properties-dialog.c: (rb_station_properties_dialog_init), (rb_station_properties_dialog_new), (rb_station_properties_dialog_response_cb), (rb_station_properties_dialog_get_current_entry), (rb_station_properties_dialog_rated_cb), (rb_station_properties_dialog_update_rating), (rb_station_properties_dialog_update_playback_error), (rb_station_properties_dialog_sync_entries): * metadata/rb-metadata-common.c: (rb_metadata_error_quark): * metadata/rb-metadata-dbus-client.c: (ping_metadata_service), (start_metadata_service), (rb_metadata_load), (rb_metadata_set), (rb_metadata_can_save), (rb_metadata_save): * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load), (rb_metadata_dbus_can_save), (rb_metadata_dbus_save), (_handle_message), (_new_connection), (main): * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message), (rb_metadata_dbus_read_from_message): * metadata/rb-metadata-dbus.h: * metadata/rb-metadata-gst.c: (ogg_pad_added_cb), (rb_add_id3_tagger), (rb_metadata_init), (rb_metadata_gst_tag_to_field), (make_undecodable_error), (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb), (rb_metadata_gst_new_decoded_pad_cb), (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler): * metadata/sj-error.c: (sj_error_quark): * metadata/sj-error.h: * metadata/sj-metadata-musicbrainz.c: (sj_metadata_musicbrainz_instance_init), (get_offline_track_listing), (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd): * metadata/sj-metadata.c: (sj_metadata_get_type): * metadata/sj-structures.c: * metadata/sj-structures.h: * metadata/test-metadata.c: (load_metadata_cb), (main): * podcast/rb-feed-podcast-properties-dialog.c: (rb_feed_podcast_properties_dialog_init), (rb_feed_podcast_properties_dialog_update_title): * podcast/rb-feed-podcast-properties-dialog.h: * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init), (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb), (rb_new_podcast_dialog_text_changed): * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init), (rb_podcast_manager_constructor), (rb_podcast_manager_finalize), (rb_podcast_manager_set_property), (rb_podcast_manager_get_property), (rb_podcast_manager_new), (rb_podcast_manager_download_entry), (rb_podcast_manager_update_feeds), (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post), (rb_podcast_manager_thread_parse_feed), (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata), (rb_podcast_manager_db_entry_added_cb), (write_job_data), (download_info_free), (download_info_new), (start_job), (rb_podcast_manager_cancel_all), (end_job), (cancel_job), (download_progress_cb), (download_progress_update_cb), (rb_podcast_manager_remove_feed), (rb_podcast_manager_db_entry_deleted_cb), (rb_podcast_manager_cancel_download), (rb_podcast_manager_update_synctime), (rb_podcast_manager_set_remove_files), (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop), (rb_podcast_manager_abort_subscribe), (rb_podcast_manager_get_podcast_dir): * podcast/rb-podcast-manager.h: * podcast/rb-podcast-parse.c: (rb_set_channel_value), (rb_validate_channel_propert), (rb_validate_item_propert), (rb_podcast_parser_start_element), (rb_podcast_parser_end_element), (rb_podcast_parser_characters), (rb_podcast_parse_load_feed), (rb_podcast_parse_date), (rb_podcast_parse_time), (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free): * podcast/rb-podcast-parse.h: * podcast/rb-podcast-properties-dialog.c: (rb_podcast_properties_dialog_init), (rb_podcast_properties_dialog_get_current_entry), (rb_podcast_properties_dialog_update_title), (rb_podcast_properties_dialog_update_duration), (rb_podcast_properties_dialog_update_date): * podcast/rb-podcast-properties-dialog.h: * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend), (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate), (g_sequence_remove_range), (g_sequence_get_ptr_at_pos), (g_sequence_ptr_move), (g_sequence_ptr_sort_changed), (g_sequence_search), (g_sequence_set_aggregate_data), (g_sequence_node_update_fields), (g_sequence_node_rotate), (find_min), (g_sequence_node_find_by_pos), (g_sequence_node_find_closest), (g_sequence_node_free), (g_sequence_node_split), (g_sequence_node_insert_before), (g_sequence_node_get_length), (g_sequence_node_remove), (g_sequence_node_calc_height), (g_sequence_node_insert_sorted), (g_sequence_calc_tree_height): * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown), (rb_refstring_get): * rhythmdb/rb-refstring.h: * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init), (rhythmdb_gda_init), (dump_model), (execute_query), (execute_nonquery), (ensure_table_exists), (collect_value_for_sql), (collect_value_from_sql), (_initialize), (rhythmdb_gda_new), (rhythmdb_gda_load), (rhythmdb_gda_entry_new), (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get), (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location), (translate_query), (do_query), (rhythmdb_gda_do_full_query): * rhythmdb/rhythmdb-gda.h: * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring), (rhythmdb_finalize_monitoring), (monitor_entry_file), (monitor_library_directory), (rhythmdb_check_changed_file), (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb), (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb-property-model.c: (rhythmdb_property_model_set_property), (rhythmdb_property_model_row_inserted_cb), (rhythmdb_property_model_prop_changed_cb), (rhythmdb_property_model_compare), (rhythmdb_property_model_get_value), (rhythmdb_property_model_iter_nth_child), (rhythmdb_property_model_drag_data_delete), (query_model_cb), (rhythmdb_property_model_drag_data_get), (rhythmdb_property_model_enable_drag), (rhythmdb_property_model_column_get_type): * rhythmdb/rhythmdb-property-model.h: * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_class_init), (rhythmdb_query_model_set_property), (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain), (rhythmdb_query_model_has_pending_changes), (rhythmdb_query_model_entry_changed_cb), (rhythmdb_query_model_entry_deleted_cb), (idle_process_update), (rhythmdb_query_model_add_entry), (rhythmdb_query_model_remove_from_main_list), (rhythmdb_query_model_remove_entry), (rhythmdb_query_model_drag_data_received), (rhythmdb_query_model_row_drop_possible), (rhythmdb_query_model_compute_status_normal), (rhythmdb_query_model_set_sort_order), (rhythmdb_query_model_get_entry_index), (rhythmdb_query_model_base_row_inserted), (rhythmdb_query_model_base_row_deleted), (rhythmdb_query_model_reapply_query), (_reverse_sorting_func), (rhythmdb_query_model_date_sort_func), (rhythmdb_query_model_within_limit): * rhythmdb/rhythmdb-query-model.h: * rhythmdb/rhythmdb-query-results.c: (rhythmdb_query_results_query_complete): * rhythmdb/rhythmdb-query-results.h: * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy), (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist), (rhythmdb_query_free), (rhythmdb_read_encoded_property), (rhythmdb_query_serialize), (rhythmdb_query_deserialize), (rhythmdb_query_preprocess), (rhythmdb_query_get_type): * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize), (rhythmdb_tree_parser_start_element), (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load), (save_entry), (save_entry_type), (save_unknown_entry_type), (rhythmdb_tree_save), (rhythmdb_tree_entry_new), (rhythmdb_tree_property_new), (get_genres_hash_for_type), (get_or_create_genre), (remove_entry_from_album), (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete), (remove_one_song), (rhythmdb_tree_entry_delete_by_type), (search_match_properties), (evaluate_conjunctive_subquery), (clone_remove_ptr_array_index), (conjunctive_query_albums), (conjunctive_query_artists), (conjunctive_query_genre), (conjunctive_query), (split_query_by_disjunctions), (do_query_recurse), (rhythmdb_tree_entry_foreach), (hash_tree_entries_foreach), (hash_tree_albums_foreach), (hash_tree_artists_foreach), (hash_tree_genres_foreach), (rhythmdb_hash_tree_foreach), (rhythmdb_tree_entry_type_registered): * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (metadata_field_from_prop), (extract_gtype_from_enum_entry), (extract_nice_name_from_enum_entry), (rhythmdb_init), (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free), (rhythmdb_shutdown), (rhythmdb_finalize), (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb), (rhythmdb_entry_insert), (rhythmdb_entry_new), (rhythmdb_entry_example_new), (set_metadata_string_default_unknown), (is_ghost_entry), (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load), (rhythmdb_process_queued_entry_set_event), (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb), (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main), (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save), (rhythmdb_entry_set), (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete), (rhythmdb_entry_delete_by_type), (rhythmdb_propid_from_nice_elt_name), (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query), (rhythmdb_compute_status_normal), (rhythmdb_entry_register_type_alias), (rhythmdb_entry_type_foreach), (song_can_sync_metadata), (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_import_error_get_type), (rhythmdb_entry_podcast_post_get_type), (rhythmdb_entry_podcast_feed_get_type), (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility), (rhythmdb_sync_library_location), (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type): * rhythmdb/rhythmdb.h: * shell/main.c: (main), (load_uri_args), (handle_dbus_message): * shell/rb-history.c: (rb_history_new), (rb_history_set_playing), (rb_history_limit_size): * shell/rb-history.h: * shell/rb-play-order-linear-loop.c: (rb_linear_play_order_loop_get_next): * shell/rb-play-order-linear-loop.h: * shell/rb-play-order-linear.c: * shell/rb-play-order-linear.h: * shell/rb-play-order-queue.c: (rb_queue_play_order_playing_entry_removed): * shell/rb-play-order-queue.h: * shell/rb-play-order-random-by-age-and-rating.c: * shell/rb-play-order-random-by-age-and-rating.h: * shell/rb-play-order-random-by-age.c: (rb_random_by_age_get_entry_weight): * shell/rb-play-order-random-by-age.h: * shell/rb-play-order-random-by-rating.c: * shell/rb-play-order-random-by-rating.h: * shell/rb-play-order-random-equal-weights.c: * shell/rb-play-order-random-equal-weights.h: * shell/rb-play-order-random.c: (rb_random_filter_history), (rb_random_get_total_weight), (rb_random_play_order_get_next), (rb_random_db_changed), (rb_random_playing_entry_changed), (rb_random_db_entry_deleted): * shell/rb-play-order-shuffle.c: (remove_from_history), (add_randomly_to_history), (get_query_model_contents), (rb_shuffle_playing_entry_changed): * shell/rb-play-order-shuffle.h: * shell/rb-play-order.c: (rb_play_order_class_init), (rb_play_order_set_property), (rb_play_order_playing_source_changed), (rb_play_order_query_model_changed_cb), (rb_play_order_query_model_changed), (rb_play_order_entry_added_cb), (default_playing_entry_removed): * shell/rb-play-order.h: * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init), (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager), (rb_playlist_manager_set_property), (rb_playlist_manager_parse_file), (rb_playlist_manager_load_playlists), (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data), (rb_playlist_manager_save_playlists), (rb_playlist_manager_new_playlist), (rb_playlist_manager_new_playlist_from_selection_data), (rb_playlist_manager_cmd_new_automatic_playlist), (rb_playlist_manager_cmd_edit_automatic_playlist), (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist), (save_playlist_response_cb), (export_set_extension_cb), (filter_get_export_filter_label), (setup_format_menu), (rb_playlist_manager_cmd_save_playlist), (rb_playlist_manager_get_playlists), (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name), (rb_playlist_manager_delete_playlist), (rb_playlist_manager_export_playlist): * shell/rb-playlist-manager.h: * shell/rb-removable-media-manager.c: (rb_removable_media_manager_class_init), (rb_removable_media_manager_dispose), (rb_removable_media_manager_finalize), (rb_removable_media_manager_set_property), (split_drive_from_cdda_uri), (rb_removable_media_manager_playing_uri_changed_cb), (rb_removable_media_manager_load_media), (rb_removable_media_manager_volume_mounted_cb), (remove_volume_by_source), (rb_removable_media_manager_source_deleted_cb), (rb_removable_media_manager_volume_unmounted_cb), (rb_removable_media_manager_mount_volume), (rb_removable_media_manager_set_uimanager), (rb_removable_media_manager_scan), (do_transfer), (rb_removable_media_manager_cmd_copy_tracks): * shell/rb-removable-media-manager.h: * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init), (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor), (rb_shell_clipboard_sync), (rb_shell_clipboard_idle_poll_deletions), (rb_shell_clipboard_cmd_add_to_playlist_new), (rb_shell_clipboard_playlist_add_cb), (rb_shell_clipboard_playlist_deleted_cb), (rb_shell_clipboard_playlist_renamed_cb), (rb_shell_clipboard_playlist_visible_cb), (rb_shell_clipboard_playlist_added_cb): * shell/rb-shell-player.c: (rb_shell_player_class_init), (rb_shell_player_constructor), (volume_pre_unmount_cb), (rb_shell_player_init), (rb_shell_player_set_property), (rb_shell_player_new), (rb_shell_player_open_playlist_url), (rb_shell_player_open_location), (rb_shell_player_set_playing_entry), (rb_shell_player_play_order_update_cb), (rb_shell_player_jump_to_current), (rb_shell_player_do_previous), (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek), (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next), (rb_shell_player_cmd_play), (rb_shell_player_playpause), (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain), (gconf_song_position_slider_visibility_changed), (rb_shell_player_entry_activated_cb), (rb_shell_player_property_row_activated_cb), (rb_shell_player_entry_changed_cb), (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons), (actually_set_playing_source), (rb_shell_player_set_playing_source_internal), (rb_shell_player_get_playing_song_duration), (eos_cb), (rb_shell_player_error), (error_cb), (info_available_cb), (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb), (rb_shell_player_error_get_type): * shell/rb-shell-player.h: * shell/rb-shell-preferences.c: (rb_shell_preferences_init), (rb_shell_preferences_append_page), (share_check_button_toggled_cb), (password_check_button_toggled_cb), (add_daap_preferences), (rb_shell_preferences_column_check_changed_cb), (rb_shell_preferences_sync_column_button), (rb_shell_preferences_sync), (rb_shell_preferences_browser_views_activated_cb): * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init), (rb_shell_set_property), (rb_shell_get_property), (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize), (construct_widgets), (construct_load_ui), (rb_shell_constructor), (rb_shell_get_visibility), (rb_shell_set_visibility), (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb), (rb_shell_register_entry_type_for_source), (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb), (rb_shell_playing_entry_changed_cb), (rb_shell_select_source), (rb_shell_player_stream_song_changed_cb), (rb_shell_set_window_title), (rb_shell_view_smalldisplay_changed_cb), (rb_shell_view_queue_as_sidebar_changed_cb), (rb_shell_cmd_plugins), (add_to_library_response_cb), (rb_shell_cmd_add_folder_to_library), (rb_shell_cmd_add_file_to_library), (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay), (sidepane_visibility_changed_cb), (toolbar_state_changed_cb), (rb_shell_jump_to_entry_with_source), (tray_embedded_cb), (session_die_cb), (save_yourself_cb), (rb_shell_session_init), (handle_playlist_entry_cb), (rb_shell_load_uri), (rb_shell_add_to_queue), (rb_shell_present), (rb_shell_get_song_properties), (rb_shell_set_song_property), (rb_shell_volume_widget_changed_cb), (rb_shell_player_volume_changed_cb), (rb_shell_ui_location_get_type): * shell/rb-shell.h: * shell/rb-source-header.c: (ui_manager_add_widget_cb), (rb_source_header_init), (rb_source_header_set_source_internal), (rb_source_state_sync), (rb_source_header_clear_search), (rb_source_header_view_browser_changed_cb): * shell/rb-source-header.h: * shell/rb-statusbar.c: (rb_statusbar_construct), (rb_statusbar_init), (rb_statusbar_finalize), (rb_statusbar_set_property), (rb_statusbar_set_progress), (rb_statusbar_source_status_changed_cb): * shell/rb-statusbar.h: * shell/rb-tray-icon.c: (rb_tray_icon_init), (rb_tray_icon_constructor), (rb_tray_icon_finalize), (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb), (rb_tray_icon_get_geom), (rb_tray_icon_notify): * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor), (rb_audiocd_create_track_entry): * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_class_init), (rb_auto_playlist_source_constructor), (rb_auto_playlist_source_new_from_xml), (impl_reset_filters), (impl_search), (impl_receive_drag), (impl_save_contents_to_xml), (rb_auto_playlist_source_query_complete_cb), (rb_auto_playlist_source_do_query), (rb_auto_playlist_source_set_query), (rb_auto_playlist_source_browser_changed_cb), (search_action_to_prop): * sources/rb-auto-playlist-source.h: * sources/rb-browser-source.c: (rb_browser_source_init), (rb_browser_source_dispose), (search_action_to_prop), (rb_browser_source_constructor), (rb_browser_source_cmd_choose_genre), (rb_browser_source_cmd_choose_artist), (rb_browser_source_cmd_choose_album), (impl_search), (rb_browser_source_browser_changed_cb), (rb_browser_source_do_query): * sources/rb-browser-source.h: * sources/rb-daap-source.c: (rb_daap_source_class_init), (rb_daap_source_init), (rb_daap_source_dispose), (rb_daap_source_set_property), (start_browsing), (rb_daap_sources_init), (rb_daap_sources_shutdown), (rb_daap_source_connection_cb), (rb_daap_source_activate), (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri), (rb_daap_source_get_headers), (rb_daap_source_get_status): * sources/rb-daap-source.h: * sources/rb-import-errors-source.h: * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb), (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist), (add_ipod_song_to_db), (load_ipod_db_idle_cb), (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path), (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions), (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod), (ipod_mkdir_with_parents), (build_ipod_dir_name), (generate_ipod_filename), (ipod_path_from_unix_path), (impl_delete_thyself): * sources/rb-iradio-source.c: (rb_iradio_source_class_init), (rb_iradio_source_init), (rb_iradio_source_constructor), (rb_iradio_source_new), (guess_uri_scheme), (rb_iradio_source_add_station), (rb_iradio_source_async_update_play_statistics), (genre_selection_reset_cb), (rb_iradio_source_do_query), (stations_view_drag_data_received_cb), (rb_iradio_source_cmd_new_station): * sources/rb-iradio-source.h: * sources/rb-library-source.c: (rb_library_source_dispose), (rb_library_source_constructor), (rb_library_source_location_button_clicked_cb), (impl_get_config_widget), (rb_library_source_library_location_cb), (sanitize_path), (filepath_parse_pattern), (layout_example_label_update), (rb_library_source_layout_filename_changed), (build_filename), (impl_can_paste), (impl_paste), (rb_library_source_add_child_source), (rb_library_source_sync_child_sources): * sources/rb-library-source.h: * sources/rb-missing-files-source.h: * sources/rb-play-queue-source.c: (rb_play_queue_source_constructor), (impl_show_entry_view_popup): * sources/rb-play-queue-source.h: * sources/rb-playlist-source-recorder.c: (rb_playlist_source_recorder_class_init), (update_speed_combobox), (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc), (rb_playlist_source_recorder_init), (rb_playlist_source_recorder_new): * sources/rb-playlist-source.c: (rb_playlist_source_constructor), (rb_playlist_source_save_playlist), (rb_playlist_source_entry_added_cb), (rb_playlist_source_set_query_model), (rb_playlist_source_add_to_map): * sources/rb-podcast-source.c: (rb_podcast_source_class_init), (rb_podcast_source_init), (rb_podcast_source_dispose), (rb_podcast_source_finalize), (search_action_to_prop), (rb_podcast_source_constructor), (rb_podcast_source_set_property), (rb_podcast_source_get_property), (rb_podcast_source_new), (impl_delete), (rb_podcast_source_songs_show_popup_cb), (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb), (rb_podcast_source_show_browser), (construct_query_from_selection), (rb_podcast_source_do_query), (impl_get_config_widget), (rb_podcast_source_btn_file_change_cb), (posts_view_drag_data_received_cb), (rb_podcast_source_cmd_download_post), (rb_podcast_source_cmd_cancel_download), (rb_podcast_source_cmd_delete_feed), (rb_podcast_source_cmd_properties_feed), (rb_podcast_source_cmd_update_feed), (rb_podcast_source_post_status_cell_data_func), (rb_podcast_source_post_feed_cell_data_func), (rb_podcast_source_post_date_cell_data_func), (rb_podcast_source_load_finish_cb), (impl_receive_drag), (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue), (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast), (impl_get_status): * sources/rb-podcast-source.h: * sources/rb-removable-media-source.c: (rb_removable_media_source_constructor): * sources/rb-removable-media-source.h: * sources/rb-source.h: * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init), (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible), (rb_sourcelist_model_row_is_separator), (rb_sourcelist_model_drag_data_received), (rb_sourcelist_model_row_drop_possible), (path_is_droppable), (rb_sourcelist_model_row_drop_position), (rb_sourcelist_model_get_drag_target), (rb_sourcelist_model_row_draggable), (rb_sourcelist_model_drag_data_get), (rb_sourcelist_model_row_inserted_cb), (rb_sourcelist_model_get_group_path): * sources/rb-sourcelist.c: (rb_sourcelist_append), (match_source_to_iter), (rb_sourcelist_source_to_iter), (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_edit_source_name), (rb_sourcelist_selection_changed_cb), (button_press_cb), (key_release_cb), (name_notify_cb), (icon_notify_cb), (rb_sourcelist_title_cell_data_func), (source_name_edited_cb): * sources/rb-static-playlist-source.c: (rb_static_playlist_source_class_init), (rb_static_playlist_source_constructor), (rb_static_playlist_source_load_from_xml), (impl_reset_filters), (impl_search), (rb_static_playlist_source_do_query), (rb_static_playlist_source_browser_changed_cb), (impl_receive_drag), (impl_save_contents_to_xml), (rb_static_playlist_source_add_location_swapped), (search_action_to_prop): * sources/rb-static-playlist-source.h: * widgets/bacon-volume.c: (bacon_volume_button_get_type): * widgets/eggtrayicon.c: (egg_tray_icon_init), (egg_tray_icon_get_orientation_property), (egg_tray_icon_send_manager_message), (egg_tray_icon_update_manager_window), (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize), (egg_tray_icon_send_message), (egg_tray_icon_notify): * widgets/eggtrayicon.h: * widgets/rb-cell-renderer-pixbuf.c: (rb_cell_renderer_pixbuf_get_property), (rb_cell_renderer_pixbuf_set_property), (rb_cell_renderer_pixbuf_get_size), (rb_cell_renderer_pixbuf_render), (rb_cell_renderer_pixbuf_activate): * widgets/rb-cell-renderer-rating.c: (rb_cell_renderer_rating_class_init), (rb_cell_renderer_rating_get_property), (rb_cell_renderer_rating_set_property), (rb_cell_renderer_rating_get_size), (rb_cell_renderer_rating_render), (rb_cell_renderer_rating_activate): * widgets/rb-dialog.c: * widgets/rb-dialog.h: * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new), (path_dialog_response_cb), (idle_set_sensitive), (do_response), (rb_druid_page3_finish_cb): * widgets/rb-entry-view.c: (rb_entry_view_class_init), (rb_entry_view_init), (rb_entry_view_set_property), (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func), (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting), (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type), (rb_entry_view_set_sorting_order), (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column), (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor), (rb_entry_view_playing_song_changed), (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb), (rb_entry_view_scroll_to_entry), (set_column_visibility), (rb_entry_view_set_fixed_column_width), (rb_entry_view_get_time_date_column_sample), (rb_entry_view_state_get_type): * widgets/rb-entry-view.h: * widgets/rb-header.c: (rb_header_init), (rb_header_set_property), (rb_header_sync), (slider_moved_timeout), (slider_moved_callback), (changed_idle_callback), (rb_header_elapsed_changed_cb): * widgets/rb-library-browser.c: (rb_library_browser_constructor), (update_browser_property_visibilty), (rb_library_browser_construct_query), (restore_selection), (rebuild_child_model), (rb_library_browser_set_selection), (rb_library_browser_set_model): * widgets/rb-library-browser.h: * widgets/rb-property-view.c: (rb_property_view_class_init), (rb_property_view_set_property), (rb_property_view_reset), (rb_property_view_get_model), (rb_property_view_constructor), (rb_property_view_set_selection), (rb_property_view_selection_changed_cb), (rb_property_view_button_press_cb), (rb_property_view_set_search_func): * widgets/rb-query-creator-private.h: * widgets/rb-query-creator-properties.c: (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData), (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData), (durationCriteriaGetWidgetData), (create_time_unit_option_menu), (relativeTimeCriteriaCreateWidget), (relativeTimeCriteriaSetWidgetData): * widgets/rb-query-creator.c: (rb_query_creator_constructor), (rb_query_creator_dispose), (rb_query_creator_load_query), (rb_query_creator_new_from_query), (rb_query_creator_get_query), (get_property_index_from_proptype), (select_criteria_from_value), (create_property_option_menu), (create_criteria_option_menu), (sort_option_menu_changed), (setup_sort_option_menu): * widgets/rb-query-creator.h: * widgets/rb-rating-helper.c: (rb_rating_install_rating_property), (rb_rating_render_stars): * widgets/rb-rating-helper.h: * widgets/rb-rating.c: (rb_rating_expose): * widgets/rb-rating.h: * widgets/rb-search-entry.c: (rb_search_entry_clear), (rb_search_entry_timeout_cb): * widgets/rb-search-entry.h: * widgets/rb-song-info.c: (rb_song_info_construct_single), (rb_song_info_constructor), (rb_song_info_new), (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog), (rb_song_info_update_location), (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons), (rb_song_info_query_model_changed_cb), (rb_song_info_sync_entries_multiple), (rb_song_info_sync_entry_single): Strip all trailing whitespace. Fixes #344293. 2006-07-13 Ryan P Skadberg * doc/reference/Makefile.am: Fix GTK Doc Build 2006-07-13 James Livingston * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above instead of the LOCATION, and don't try to get the directory listing for http URI schemes * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for invalid utf8 in the error message, since apparently it can happen. 2006-07-12 William Jon McCann * sources/rb-import-errors-source.c: (rb_import_errors_source_class_init), (rb_import_errors_source_init), (rb_import_errors_source_constructor), (rb_import_errors_source_dispose), (rb_import_errors_source_new), (impl_get_status), (rb_import_errors_source_songs_show_popup_cb): * sources/rb-missing-files-source.c: (rb_missing_files_source_class_init), (rb_missing_files_source_init), (rb_missing_files_source_constructor), (rb_missing_files_source_dispose), (rb_missing_files_source_new), (rb_missing_files_source_songs_sort_order_changed_cb), (impl_get_status): * sources/rb-source.c: (rb_source_class_init), (rb_source_finalize), (update_visibility_idle), (queue_update_visibility), (rb_source_set_hidden_when_empty), (rb_source_set_property), (rb_source_get_property), (default_get_status), (rb_source_update_play_statistics), (default_add_to_queue), (_rb_source_show_popup), (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb), (rb_source_gather_selected_properties), (_rb_source_register_action_group): * sources/rb-source.h: * sources/rb-sourcelist.c: (visibility_notify_cb): Don't use a fake model for import-errors and missing-files sources. Add a new source property "hidden-when-empty". Update source visibility in an idle. Clean up some whitespace. From bug #346800 2006-07-12 James Livingston * bindings/python/rb.defs: * bindings/python/rb.override: bind rb_error_dialog * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off the current working directory for uninstalled plugins, and add the class name to the method name. 2006-07-12 James Livingston * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check the sources EOF type if it's NULL. Fixes #346284. 2006-07-12 James Livingston * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit I accidently committed. Nothing to see here, move along... 2006-07-11 James Livingston * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py: * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of Unknown. 2006-07-12 Jonathan Matthew * doc/reference/rhythmbox.types: Fix doc build (bug #347223) 2006-07-11 Jonathan Matthew * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): Don't try to set mtime if we've deleted the entry. 2006-07-11 Jonathan Matthew * bindings/python/rhythmdb.defs: * rhythmdb/rhythmdb.c: * rhythmdb/rhythmdb.h: * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb-query.c: Move data structures holding registered entry types inside the RhythmDB object, and add a vfunc called when new types are registered. Add a flag to RhythmDBEntryType specifying whether entries of the type should be saved to the on-disk database. * sources/rb-audiocd-source.c: * sources/rb-daap-source.c: * sources/rb-ipod-source.c: * plugins/generic-player/rb-generic-player-source.c: * plugins/generic-player/rb-nokia770-source.c: * plugins/generic-player/rb-psp-source.c: Adjust to the above changes. * rhythmdb/rhythmdb-tree.c: If the type for an entry hasn't been registered yet, store the entry's properties as-is, and convert them to a real entry when the type is registered. If the type doesn't get registered, save the entry back to the database unmodified. From #330226. 2006-07-10 James Livingston * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change os.path.unlink to os.unlink, so removing stuff works. 2006-07-10 James Livingston patch by: Ed Catmur and Peter * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py: * plugins/artdisplay/artdisplay/CoverArtDatabase.py: * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the internals of the cover database and Amazon lookup engine, and add support for loading art from the local file system. Fixes #345688. * plugins/rb/Coroutine.py: * plugins/rb/Makefile.am: * plugins/rb/__init__.py: Add the Coroutine class to the common python plugin classes. 2006-07-10 James Livingston * tests/Makefile.am: don't run the benchmark when doing "make check" * po/POTFILES.in: more build fixes, from Matti Lindell . Fixes #347049. 2006-07-10 James Livingston * plugins/cd-recorder/Makefile.am: build fixes * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't attempt to change properties if we couldn't create an entry. * shell/rb-source-header.c: (rb_source_header_init), (rb_source_header_view_browser_changed_cb), (rb_source_header_sync_control_state): * shell/rb-tray-icon.c: * widgets/Makefile.am: * widgets/disclosure-widget.c: * widgets/disclosure-widget.h: remove the remanents of the disclosure widget, as it hasn't been used for a while. 2006-07-09 William Jon McCann * Makefile.am: * configure.ac: * data/ui/rhythmbox-ui.xml: * plugins/Makefile.am: * plugins/cd-recorder/.cvsignore: * plugins/cd-recorder/Makefile.am: * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in: * plugins/cd-recorder/rb-cd-recorder-plugin.c: (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize), (burn_source_iter_func), (source_burn), (cmd_burn_source), (playlist_entries_changed), (playlist_row_inserted_cb), (update_source), (shell_selected_source_notify_cb), (impl_activate), (impl_deactivate): * shell/Makefile.am: * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source), (rb_playlist_manager_cmd_save_playlist): * shell/rb-shell.c: (rb_shell_select_source): * sources/Makefile.am: * sources/rb-playlist-source-recorder.c: (rb_playlist_source_recorder_new): * sources/rb-playlist-source.c: (rb_playlist_source_class_init), (rb_playlist_source_add_to_map): * sources/rb-playlist-source.h: Move cd burning into a plugin. Fixes #344300. 2006-07-10 James Livingston * lib/eel-gconf-extensions.c: * shell/rb-shell.c: remove some ununsed gnomeui includes * widgets/Makefile.am: * widgets/rb-song-display-box.c: * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs, since it isn't acutally used anywhere. Fixes #346926 2006-07-09 James Livingston * bindings/python/rb.defs: * bindings/python/rb.override: * lib/rb-debug.c: (rb_debug_real): * lib/rb-debug.h: * plugins/rb/__init__.py: don't print out an extra newline when diverting python print statements to RB's debug log. 2006-07-09 James Livingston * rhythmdb/rhythmdb-property-model.c: (rhythmdb_property_model_drag_data_get): * sources/rb-sourcelist-model.c: (rb_sourcelist_model_row_draggable), (rb_sourcelist_model_drag_data_get): check that the path/iter we get from the row reference is still valid. Fixes #346709. 2006-07-09 Jonathan Matthew patch by: Peter * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple): If all selected entries have the same rating, use that as the initial rating for the multiple song info dialog. Fixes #345970. 2006-07-09 James Livingston * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try to prevent #343345: - don't ever scale to 1x1, just hide the image in that case - don't fade when the window is minimised - use the last-good allocation width, not the current one - as it sometimes get weird values. 2006-07-08 William Jon McCann * data/ui/rhythmbox-ui.xml: * shell/rb-shell.c: Remove Import audio CD from menu. Fixes #339732 2006-07-08 James Livingston * metadata/test-metadata.c: (print_metadata_string), (load_metadata_cb): print out all the metadata we have read, not just a few. * sources/rb-playlist-source-recorder.c: (insert_media_request_cb), (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues. 2006-07-08 Jonathan Matthew * plugins/lyrics/lyrics.py: Change the lyrics cache location to match Quod Libet's, and fix the '&' -> 'and' substitution to require spaces. 2006-07-08 James Livingston * bindings/python/rb.defs: * bindings/python/rb.override: bind rb_debug_real to rb._debug * configure.ac: * plugins/Makefile.am: * plugins/rb-python-module.c: (rb_python_module_init_python): * plugins/rb/Makefile.am: add a place to put common python classes. plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the rb module/ * plugins/lyrics/Makefile.am: * plugins/lyrics/Loader.py: * plugins/artdisplay/artdisplay/Makefile.am: * plugins/artdisplay/artdisplay/Loader.py: * plugins/rb/Loader.py: move the loader class to rb.Loader * plugins/rb/__init__.py: redirect stdout from python (e.g. "print ...") to rb_debug. error output (e.g. exceptions) are still printed on stderr. * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py: * plugins/artdisplay/artdisplay/CoverArtDatabase.py: * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader instead of Loader. Fixes #346895. 2006-07-08 Jonathan Matthew * shell/rb-shell-player.xml: * shell/rb-shell-player.h: Correct the details of the playing-song-property-changed signal. 2006-07-08 Jonathan Matthew * lib/rb-marshal.list: * shell/rb-shell-player.c: (rb_shell_player_class_init), (rb_shell_player_entry_changed_cb): * shell/rb-shell-player.h: * shell/rb-shell-player.xml: Emit a dbus signal when a property is changed on the playing entry. Fixes #332461. 2006-07-07 Jonathan Matthew * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): Fix build break with gcc 4.1 by changing RBRefString pointers into gpointers. 2006-07-07 James Livingston * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring): remove an extraneous !, which caused it not to monitor folders in the library with no tracks in them. Fixes #346759. 2006-07-07 James Livingston * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate), (rhythmdb_entry_get), (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility), (rhythmdb_entry_get_string): * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty" flags for the affected properties. _sync_mirrored will get run automatically when a dirty property is accessed, which improves performance a bit (especially during startup) as we don't need to sync every time they change. From #325215. * tests/bench-rhythmdb-load.c * tests/Makefile.am: add a RhythmDB loading benchmark. 2006-07-06 James Livingston * bindings/python/rb.defs: * bindings/python/rb.override: some more fixes, so that python classes derived from RBSource work correctly. 2006-07-06 James Livingston * configure.ac: bump pygtk requirements to 2.8, since we're already using some features of it, and weird things will happen if people are actually trying to use pygtk 2.6. * bindings/python/rb.override: * bindings/python/rhythmdb.defs: * bindings/python/rhythmdb.override: allow python to set RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs * sources/rb-browser-source.c: remove some left over member variables 2006-07-06 James Livingston * rhythmdb/rhythmdb.c: * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The former is pointless (as rhythmdb already knows which it should use) and the latter doesn't seem useful at all, and possibly bad. From #330226. * bindings/python/rhythmdb.defs: * bindings/python/rhythmdb.override: * daapsharing/rb-daap-connection.c: (entry_set_string_prop), (handle_song_listing): * podcast/rb-podcast-manager.c: (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post), (rb_podcast_manager_insert_feed): * sources/rb-audiocd-source.c: (entry_set_string_prop), (rb_audiocd_create_track_entry): * sources/rb-ipod-source.c: (entry_set_string_prop), (add_ipod_song_to_db): * sources/rb-iradio-source.c: (rb_iradio_source_add_station): * tests/test-rhythmdb.c: (START_TEST): adapt to the above. 2006-07-05 James Livingston * shell/rb-playlist-manager.c: (playlist_load_start_cb), (playlist_load_end_cb), (rb_playlist_manager_parse_file), (rb_playlist_manager_cmd_save_playlist): set the playlist name to what totem-plparser gives us, or the file name if it doesn't give us anything. Set the default file name when saving too. Fixes #345261 2006-07-05 Jonathan Matthew patch by: Ed Catmur * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): Skip all hidden directories, not just trash, and skip unreadable files. Fixes #346322. 2006-07-04 James Livingston * plugins/rb-module.h: * plugins/rb-module.c: (rb_module_load), (rb_module_new_object), (rb_module_new): * plugins/rb-plugin.h: * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init), (rb_plugin_finalise), (rb_plugin_set_property), (rb_plugin_get_property), (rb_plugin_activate), (rb_plugin_deactivate), (rb_plugin_create_configure_dialog), (rb_plugin_find_file): * plugins/rb-plugins-engine.c: (load_plugin_module): * plugins/rb-python-module.c: (rb_python_module_new_object), (rb_python_module_new): * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new rb_plugin_find_file method for locating plugin-specific data. Fixes 346473. * bindings/python/rb.defs: * plugins/Makefile.am: * plugins/generic-player/rb-generic-player-plugin.c: (create_source_cb): * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above. 2006-07-04 Jonathan Matthew * metadata/rb-metadata-dbus-client.c: (rb_metadata_load), (rb_metadata_can_save), (rb_metadata_save): Protect the dbus connection with a mutex. 2006-07-03 James Livingston * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the case of the parser/tagger not being able to be created. 2006-07-03 James Livingston patch by: Nguyễn Thái Ngọc Duy * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info window resizable, as it used to be. Fixes #345940. 2006-07-01 James Livingston Patch from Ståle Lyngaas * rhythmdb/rhythmdb.h: * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element), (rhythmdb_tree_parser_end_element), (save_entry): * rhythmdb/rhythmdb.c: (metadata_field_from_prop), (rhythmdb_entry_allocate), (rhythmdb_entry_finalize), (set_props_from_metadata), (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store MusicBrainz track IDs in the database, and bump the on-disk version number to trigger a metadata reload. * backends/gstreamer/rb-player-gst.c: (process_tag): * metadata/rb-metadata-common.c: * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field), (rb_metadata_gst_field_to_gst_tag): * metadata/rb-metadata.h: grab MB track IDs and use them. * plugins/audioscrobbler/rb-audioscrobbler.c: (rb_audioscrobbler_init), (rb_audioscrobbler_finalize), (rb_audioscrobbler_timeout_cb), (rb_audioscrobbler_song_changed_cb): send the MB track id along with the other metadata. Fixes #343491. 2006-06-30 James Livingston * bindings/python/rb.defs: bind RBSource's convenienve "show popup" method. 2006-06-30 James Livingston * bindings/python/rb.defs: * sources/rb-browser-source.c: (rb_browser_source_class_init), (rb_browser_source_songs_show_popup_cb), (default_show_entry_popup): * sources/rb-browser-source.h: * sources/rb-library-source.c: (rb_library_source_class_init), (rb_library_source_constructor), (impl_show_popup): allow RBBrowserSource-derived sources to override the entry context menu properly - by making it a virtual function, rather than relying on signal handler order (which doesn't really work). 2006-06-30 Jonathan Matthew * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_reapply_query_cb): Use the original query, not the preprocessed query, when redoing the query to pick up entries that previously didn't match. Preprocessing the query twice is bad. Fixes #346186. 2006-06-28 Jonathan Matthew * plugins/audioscrobbler/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb): Just check if the elapsed time has been reset, rather than checking if it's a different track. Fixes #344827. 2006-06-28 Jonathan Matthew * backends/gstreamer/rb-player-gst.c: Set cdda source read-speed to 1. Fixes gaps in playback while the drive spins up, #344576. 2006-06-28 Jonathan Matthew * plugins/audioscrobbler/rb-audioscrobbler.c: (rb_audioscrobbler_perform): Use HTTP/1.1. Fixes #345895. 2006-06-26 Jonathan Matthew * lib/rb-preferences.h: * lib/rb-proxy-config.c: (rb_proxy_config_init), (check_auto_proxy_config), (get_proxy_config): Don't try to use a HTTP proxy if no proxy host is specified. Alert the user to the fact that we don't support automatic proxy configuration as infrequently as possible. From #345712. 2006-06-25 James Livingston * rhythmdb/rhythmdb-property-model.c: (rhythmdb_property_model_set_property): connect to the "post-entry-delete" signal, rather than "entry-deleted". This ensures things get removed correctly, fixes #338183. 2006-06-25 Jonathan Matthew * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_drag_data_received): Fix build break. 2006-06-25 James Livingston patch by Nguyễn Thái Ngọc Duy * widgets/rb-search-entry.c: (rb_search_entry_init), (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the search box have a pale yellow background when it's in use, except for when the user has an "accessability" theme. Code based heavily on Epiphany's. Fixes #344416. 2006-06-25 James Livingston * plugins/lyrics/lyrics.py: * plugins/pythonconsole/pythonconsole.py: * plugins/sample-python/sample-python.py: don't import gettext stuff as _, as the C code does this for us. Fixes i18n for python plugins, #343081 2006-06-25 James Livingston * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing a model use a reorder rather then deleting and re-adding the entry. This means it does do weird things like stop playback of a track that is dragged, fixing #337657. 2006-06-25 Jonathan Matthew * metadata/rb-metadata-dbus-service.c: Add missing #include from previous commit. 2006-06-25 Jonathan Matthew patch by: Nguyễn Thái Ngọc Duy * metadata/rb-metadata-dbus-service.c: (main): Initialize gettext in the metadata helper. * metadata/rb-metadata-gst.c: Make some strings translatable. Fixes #345286. 2006-06-25 Jonathan Matthew * configure.ac: * lib/Makefile.am: * lib/rb-stock-icons.c: (rb_stock_icons_init): Inline the custom icons so they can always be loaded, but are still themable. Fixes #345796. 2006-06-23 James Livingston * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_do_query): stop the search box being applied for limits in auto playlists. Fixes #345307. 2006-06-23 James Livingston * shell/rb-shell-clipboard.c: (rb_shell_clipboard_set_source_internal), (rb_shell_clipboard_sync), (add_playlist_to_menu), (rebuild_playlist_menu): don't use the add-to-playlist menu for non-library tracks, as we don't supprot it yet. From #345248. 2006-06-23 James Livingston patch by: Brian Cameron * plugins/generic-player/rb-generic-player-plugin.c: * plugins/generic-player/rb-generic-player-source.c: * plugins/generic-player/rb-nokia770-source.c: * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris. Fixes 345673. 2006-06-22 James Livingston * backends/rb-player.c: (rb_player_interface_init): * lib/rb-marshal.list: * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init): * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_class_init): * rhythmdb/rhythmdb.c: (rhythmdb_class_init): * shell/rb-shell-player.c: (rb_shell_player_class_init): * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init): * sources/rb-sourcelist.c: (rb_sourcelist_class_init): * widgets/rb-entry-view.c: (rb_entry_view_class_init): * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite possible not. 2006-06-20 James Livingston patch by Alex Lancaster * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR metadata to clients. Fixes #345276. 2006-06-22 Jonathan Matthew * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater), (rb_add_id3_tagger): Fix plugin/element version detection for id3v2mux. 2006-06-20 Jonathan Matthew * sources/rb-source.c: (rb_source_finalize), (rb_source_set_property), (rb_source_post_entry_deleted_cb), (_autohide_update_visibility), (_rb_autohide_source_post_entry_deleted_cb), (_rb_autohide_source_row_inserted_cb), (_rb_source_hide_when_empty): Use post-entry-delete signal to update status and autohide sources. 2006-06-20 James Livingston * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the "selection changed" idle callback, if present. 2006-06-19 James Livingston patch by: Nguyễn Thái Ngọc Duy * sources/rb-playlist-source.c: (rb_playlist_source_constructor): don't try to translate the empty string. Fixes #345285. 2006-06-19 James Livingston * bindings/python/rhythmdb.override: more python binding fixes 2006-06-19 James Livingston * lib/rb-util.c: (rb_copy_function): * lib/rb-util.h: add a function that returns the same pointer it was passed. * rhythmdb/rhythmdb.h: * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref), (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry and RhythmDBEntryType into boxed types. This allows them to be used from python. Note that entry-types aren't actually reference counted (yet). * bindings/python/rb.defs: * bindings/python/rhythmdb.defs: * bindings/python/rhythmdb.override: Adapt to the above, and fix the return types of some bindings. * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb), (rhythmdb_entry_finalize), (rhythmdb_entry_delete): * daapsharing/rb-daap-connection.c: (rb_daap_connection_class_init), (rb_daap_connection_set_property), (rb_daap_connection_get_property): * plugins/generic-player/rb-generic-player-source.c: (rb_generic_player_source_load_songs), (load_playlist_file): * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init): * rhythmdb/rhythmdb-property-model.c: (query_model_cb): * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize), (idle_process_update), (rhythmdb_query_model_add_entry), (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_drag_data_received), (rhythmdb_query_model_add_results), (rhythmdb_query_model_get_column_type), (rhythmdb_query_model_get_value): * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element), (rhythmdb_tree_entry_delete), (remove_one_song): * shell/rb-play-order-linear-loop.c: (rb_linear_play_order_loop_get_next), (rb_linear_play_order_loop_get_previous): * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next), (rb_linear_play_order_get_previous): * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next), (rb_queue_play_order_get_previous): * shell/rb-play-order-random.c: (rb_random_play_order_init), (rb_random_filter_history), (rb_random_play_order_get_next), (rb_random_play_order_go_next), (rb_random_db_changed), (rb_random_playing_entry_changed): * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init), (remove_from_history), (add_randomly_to_history), (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed): * shell/rb-play-order.c: (rb_play_order_class_init), (rb_play_order_set_property), (rb_play_order_get_property), (rb_play_order_update_have_next_previous): * shell/rb-play-order.h: * shell/rb-shell-clipboard.c: (rb_shell_clipboard_process_deletions), (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu): * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_constructor): * sources/rb-browser-source.c: (rb_browser_source_class_init), (rb_browser_source_set_property), (rb_browser_source_get_property), (rb_browser_source_do_query): * sources/rb-daap-source.c: (rb_daap_source_connection_cb): * sources/rb-import-errors-source.c: (rb_import_errors_source_new): * sources/rb-ipod-source.c: (add_rb_playlist), (add_ipod_song_to_db), (impl_paste): * sources/rb-iradio-source.c: (rb_iradio_source_class_init), (rb_iradio_source_set_property), (rb_iradio_source_get_property): * sources/rb-library-source.c: (layout_example_label_update): * sources/rb-missing-files-source.c: (rb_missing_files_source_class_init), (rb_missing_files_source_set_property), (rb_missing_files_source_get_property), (rb_missing_files_source_new): * sources/rb-playlist-source.c: (rb_playlist_source_class_init), (rb_playlist_source_set_property), (rb_playlist_source_get_property): * sources/rb-podcast-source.c: (rb_podcast_source_class_init), (rb_podcast_source_set_property), (rb_podcast_source_get_property), (construct_query_from_selection): * sources/rb-removable-media-source.c: (impl_delete_thyself): * sources/rb-static-playlist-source.c: (rb_static_playlist_source_constructor), (rb_static_playlist_source_add_location_internal): * widgets/rb-entry-view.c: (rb_entry_view_class_init): * widgets/rb-header.c: (rb_header_class_init), (rb_header_set_property), (rb_header_get_property): * widgets/rb-library-browser.c: (rb_library_browser_class_init), (rb_library_browser_set_property), (rb_library_browser_get_property): * widgets/rb-song-info.c: (rb_song_info_class_init), (rb_song_info_get_property): Adjust for the _ref/_unref prototype change, do s/pointer/boxed/ in many places and free entry-types properly. 2006-06-18 James Livingston * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge unushed GThreadPool non-exclusive threads every now and then. * rhythmdb/rhythmdb-private.h: * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize), (rhythmdb_do_full_query_async_parsed): Use a thread pool for query threads. Fixes #341593 2006-06-19 James Livingston * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make the "Track number" checkbox actually work for playlists. From #329986. 2006-06-19 Jonathan Matthew * plugins/generic-player/rb-generic-player-source.c: Get playlist and audio folder information from HAL. Fixes #333845. 2006-06-18 James Livingston patch by: Alex Lancaster * widgets/rb-entry-view.h: * widgets/rb-entry-view.c: (rb_entry_view_class_init), (rb_entry_view_append_column_custom), (rb_entry_view_insert_column_custom): add support for inserting custom columns at arbitrary locations, rather than just appending to the end. * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make the playlists "track number" column go at the start, and add a normal track number column. Fixes #329986. 2006-06-18 Dennis Cranston * data/glade/library-prefs.glade: Capitalization fixes. Fix a mnemonic conflict. Add ellipses to the edit button. * sources/rb-library-source.c: (rb_library_source_edit_profile_clicked_cb), (impl_get_config_widget): Hide dialog separator. Assign a mnemonic widget to the labels. Fixes #344114.