============ Version 0.9.1 2005-10-16 James Livingston * configure.ac: bump version to 0.9.1 * NEWS: update translation credits 2005-10-16 James Livingston * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_class_init), (rhythmdb_query_model_drag_data_received): * rhythmdb/rhythmdb-query-model.h: Allow sources to be notified when things are dropped into the entry view. * sources/rb-playlist-source.c: (rb_playlist_source_constructor), (rb_playlist_source_add_location_swapped), (rb_playlist_source_add_location), (rb_playlist_source_do_query), (rb_playlist_source_non_entry_dropped), (rb_playlist_source_row_inserted): Use the new signal so that dropping things onto a playlist's entry view work correctly, and doesn't cause crashes. Allow folders to be dropped as well. (Closes 318308) 2005-10-16 James Livingston * NEWS: Update some more * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor), (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things with the paned size, so that it doesn't move when the window is maximised/restored. Closes bug 315852. * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't display the playcount column, as it's useless (it never get changed). 2005-10-14 James Livingston * Makefile.am: * data/Makefile.am: * doc/reference/Makefile.am: get "make distcheck" to pass again 2005-10-11 James Livingston * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't destroy the connection when retrieving the playlists fails, because tracks have already been added. Closes 318380. 2005-10-11 James Livingston * sources/rb-sourcelist.c: (rb_sourcelist_append), (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb), (source_name_edited_cb): Ask for the columns to be resized when a source is added, deleted or changes name. 2005-10-11 James Livingston * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only create a thread when processing a directory. This stops up created one thread for each file in a playlist we're trying to load. Closes 317850. * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a typo that made sort-by-artist not work correctly. 2005-10-11 James Livingston * doc/reference/Makefile.am: Make gtk-doc generation work when daap support is enabled 2005-10-11 James Livingston * lib/rb-file-helpers.c: (rb_canonicalise_uri): * lib/rb-file-helpers.h: add a function to turn uris into our canonical path-escaped form * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the above function when import playlists. This will fix the problem of duplicate entries due to different representations of the uri (bug 158211). 2005-10-11 James Livingston * shell/rb-shell.c: (rb_shell_get_visibility), (rb_shell_set_visibility), (rb_shell_window_delete_cb), (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix window hiding so that Alt-F4 works again. * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func), (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func), (rb_entry_view_string_sort_func): Stop some crashes where a string property was set to NULL. 2005-10-10 James Livingston * doc/reference/rhythmbox.types: fix gtk-doc generation 2005-10-09 James Livingston * sources/rb-sourcelist.c: (rb_sourcelist_init): * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few accelerators, so that we don't have as many conflicting keys. 2005-10-08 James Livingston * data/iradio-initial.pls: Update the list of radio stations. Thanks to Ali Akcaagac for collating a list to add. Closes bug 129285. 2005-10-07 James Livingston * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape local path names in the same way as every other URI. This should stop duplicates occurring due to different escapings. Closes bug 158211. 2005-10-06 James Livingston * NEWS: more updates patch from Jaap Haitsma : * configure.ac: * data/Makefile.am: * data/art/Makefile.am: - data/art/rhythmbox-paused.png: - data/art/rhythmbox-playback-error.png: - data/art/rhythmbox-playing.png: - data/art-clearlooks/: * lib/rb-file-helpers.c: (rb_file): * lib/rb-stock-icons.c: (rb_stock_icons_init): * lib/rb-stock-icons.h: * shell/rb-shell-player.c: (rb_shell_player_sync_buttons): * widgets/rb-cell-renderer-pixbuf.c: (rb_cell_renderer_pixbuf_render): * widgets/rb-entry-view.c: (rb_entry_view_init), (rb_entry_view_set_playing): * widgets/rb-rating-helper.c: (rb_rating_render_stars): use more stock icons instead of custom art. Drop remanents of art-clearlooks. 2005-10-04 Pawan Chitrakar * configure.ac: Added ne in ALL_LINGUAS 2005-10-02 James Livingston * data/glade/Makefile.am: actually install the daap prefs glade file 2005-09-30 James Livingston * po/POTFILES.in: mremove rb-string-helper.c from the list of translatable files, so that make check works and we don't annoy the translators. * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of sanity checking, in case a db entry is missing some properties. 2005-09-29 James Livingston - lib/rb-string-helpers.c: - lib/rb-string-helpers.h: * lib/Makefile.am: * rhythmdb/rhythmdb-tree.c: * rhythmdb/rhythmdb.c: * shell/main.c: (main): * shell/rb-shell.c: * widgets/rb-entry-view.c: * widgets/rb-property-view.c: remove rb-string-helpers, as they utility functions haven't been used in a while. 2005-09-27 James Livingston * data/art-clearlooks/Makefile.am: - data/art-clearlooks/rhythmbox-album.png: - data/art-clearlooks/rhythmbox-audiocd.png: - data/art-clearlooks/rhythmbox-automatic-playlist.png: - data/art-clearlooks/rhythmbox-dnd.png: - data/art-clearlooks/rhythmbox-ipod.png: - data/art-clearlooks/rhythmbox-iradio.png: - data/art-clearlooks/rhythmbox-library.png: - data/art-clearlooks/rhythmbox-next.png: - data/art-clearlooks/rhythmbox-pause.png: - data/art-clearlooks/rhythmbox-play.png: - data/art-clearlooks/rhythmbox-playlist-menu.png: - data/art-clearlooks/rhythmbox-playlist.png: - data/art-clearlooks/rhythmbox-previous.png: - data/art-clearlooks/rhythmbox-repeat.png: - data/art-clearlooks/rhythmbox-rewind.png: - data/art-clearlooks/rhythmbox-shuffle.png: - data/art-clearlooks/rhythmbox-stop.png: - data/art-clearlooks/rhythmbox-visuals.png: - data/art-clearlooks/rhythmbox-volume-max.png: - data/art-clearlooks/rhythmbox-volume-medium.png: - data/art-clearlooks/rhythmbox-volume-min.png: - data/art-clearlooks/rhythmbox-volume-mute.png: - data/art-clearlooks/rhythmbox-volume-zero.png: * data/art/Makefile.am: - data/art/rhythmbox-album.png: - data/art/rhythmbox-audiocd.png: - data/art/rhythmbox-automatic-playlist.png: - data/art/rhythmbox-dnd.png: - data/art/rhythmbox-ipod.png: - data/art/rhythmbox-iradio.png: - data/art/rhythmbox-library.png: - data/art/rhythmbox-next.png: - data/art/rhythmbox-pause.png: - data/art/rhythmbox-play.png: - data/art/rhythmbox-playlist-menu.png: - data/art/rhythmbox-playlist.png: - data/art/rhythmbox-previous.png: - data/art/rhythmbox-repeat.png: - data/art/rhythmbox-rewind.png: - data/art/rhythmbox-shuffle.png: - data/art/rhythmbox-stop.png: - data/art/rhythmbox-visuals.png: - data/art/rhythmbox-volume-max.png: - data/art/rhythmbox-volume-medium.png: - data/art/rhythmbox-volume-min.png: - data/art/rhythmbox-volume-mute.png: - data/art/rhythmbox-volume-zero.png: * lib/rb-stock-icons.c: (rb_stock_icons_init): * lib/rb-stock-icons.h: * shell/rb-playlist-manager.c: * shell/rb-shell-player.c: * sources/rb-daap-source.c: (rb_daap_get_icon): * sources/rb-ipod-source.c: * sources/rb-iradio-source.c: (rb_iradio_source_init): * sources/rb-library-source.c: (rb_library_source_new): * sources/rb-playlist-source.c: (rb_playlist_source_constructor): * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art that hasn't been used in a LONG time, and also remove art that are now stock icons. 2005-09-27 James Livingston * README: point to the gnome.org web sites, and update the example gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108 * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_set_property), (rhythmdb_query_model_get_property), (rhythmdb_query_model_finalize): * rhythmdb/rhythmdb.c: (rhythmdb_query_internal), (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess): * rhythmdb/rhythmdb.h: * sources/rb-iradio-source.c: (impl_search): * sources/rb-library-source.c: (impl_search): Add query "preprocessing", which performs operations such as casefolding any strings that will be compared to any of the *_FOLDED properties. Closes bug 316039 2005-09-27 James Livingston * data/glade/daap-prefs.glade: * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade file for the daap preferences pane * sources/rb-sourcelist.c: (rb_sourcelist_init), (rb_sourcelist_append), (rb_sourcelist_remove), (visibility_notify_cb), (rb_sourcelist_update_expander_visibility): don't display the column for source expanders unless there is an expandable source. 2005-09-24 Raphael Slinckx * .cvsignore: * Makefile.am: * configure.ac: * doc/.cvsignore: * doc/Makefile.am: * doc/reference/.cvsignore: * doc/reference/Makefile.am: * doc/reference/rhythmbox-docs.sgml: * doc/reference/rhythmbox-sections.txt: * doc/reference/rhythmbox.types: * doc/reference/tmpl/bacon-volume.sgml: * doc/reference/tmpl/disclosure-widget.sgml: * doc/reference/tmpl/eel-gconf-extensions.sgml: * doc/reference/tmpl/eggnotificationbubble.sgml: * doc/reference/tmpl/eggtrayicon.sgml: * doc/reference/tmpl/gsequence.sgml: * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml: * doc/reference/tmpl/rb-cell-renderer-rating.sgml: * doc/reference/tmpl/rb-daap-connection.sgml: * doc/reference/tmpl/rb-daap-dialog.sgml: * doc/reference/tmpl/rb-daap-mdns.sgml: * doc/reference/tmpl/rb-daap-share.sgml: * doc/reference/tmpl/rb-daap-sharing.sgml: * doc/reference/tmpl/rb-daap-source.sgml: * doc/reference/tmpl/rb-daap-src.sgml: * doc/reference/tmpl/rb-daap-structure.sgml: * doc/reference/tmpl/rb-debug.sgml: * doc/reference/tmpl/rb-dialog.sgml: * doc/reference/tmpl/rb-druid.sgml: * doc/reference/tmpl/rb-entry-view.sgml: * doc/reference/tmpl/rb-enums.sgml: * doc/reference/tmpl/rb-file-helpers.sgml: * doc/reference/tmpl/rb-glade-helpers.sgml: * doc/reference/tmpl/rb-header.sgml: * doc/reference/tmpl/rb-history.sgml: * doc/reference/tmpl/rb-ipod-source.sgml: * doc/reference/tmpl/rb-iradio-source.sgml: * doc/reference/tmpl/rb-library-source.sgml: * doc/reference/tmpl/rb-load-failure-dialog.sgml: * doc/reference/tmpl/rb-metadata.sgml: * doc/reference/tmpl/rb-new-station-dialog.sgml: * doc/reference/tmpl/rb-play-order-linear-loop.sgml: * doc/reference/tmpl/rb-play-order-linear.sgml: * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml: * doc/reference/tmpl/rb-play-order-random-by-age.sgml: * doc/reference/tmpl/rb-play-order-random-by-rating.sgml: * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml: * doc/reference/tmpl/rb-play-order-random.sgml: * doc/reference/tmpl/rb-play-order-shuffle.sgml: * doc/reference/tmpl/rb-play-order.sgml: * doc/reference/tmpl/rb-player.sgml: * doc/reference/tmpl/rb-playlist-manager.sgml: * doc/reference/tmpl/rb-playlist-source-recorder.sgml: * doc/reference/tmpl/rb-playlist-source.sgml: * doc/reference/tmpl/rb-preferences.sgml: * doc/reference/tmpl/rb-property-view.sgml: * doc/reference/tmpl/rb-query-creator-private.sgml: * doc/reference/tmpl/rb-query-creator.sgml: * doc/reference/tmpl/rb-rating-helper.sgml: * doc/reference/tmpl/rb-rating.sgml: * doc/reference/tmpl/rb-recorder.sgml: * doc/reference/tmpl/rb-refstring.sgml: * doc/reference/tmpl/rb-removable-media-manager.sgml: * doc/reference/tmpl/rb-removable-media-source.sgml: * doc/reference/tmpl/rb-search-entry.sgml: * doc/reference/tmpl/rb-shell-clipboard.sgml: * doc/reference/tmpl/rb-shell-glue.sgml: * doc/reference/tmpl/rb-shell-player-glue.sgml: * doc/reference/tmpl/rb-shell-player.sgml: * doc/reference/tmpl/rb-shell-preferences.sgml: * doc/reference/tmpl/rb-shell.sgml: * doc/reference/tmpl/rb-song-display-box.sgml: * doc/reference/tmpl/rb-song-info.sgml: * doc/reference/tmpl/rb-source-header.sgml: * doc/reference/tmpl/rb-source.sgml: * doc/reference/tmpl/rb-sourcelist-model.sgml: * doc/reference/tmpl/rb-sourcelist.sgml: * doc/reference/tmpl/rb-station-properties-dialog.sgml: * doc/reference/tmpl/rb-statusbar.sgml: * doc/reference/tmpl/rb-stock-icons.sgml: * doc/reference/tmpl/rb-string-helpers.sgml: * doc/reference/tmpl/rb-thread.sgml: * doc/reference/tmpl/rb-tray-icon.sgml: * doc/reference/tmpl/rb-tree-dnd.sgml: * doc/reference/tmpl/rb-tree-model-sort.sgml: * doc/reference/tmpl/rb-util.sgml: * doc/reference/tmpl/rhythmdb-property-model.sgml: * doc/reference/tmpl/rhythmdb-query-model.sgml: * doc/reference/tmpl/rhythmdb-tree.sgml: * doc/reference/tmpl/rhythmdb.sgml: * macros/.cvsignore: * shell/Makefile.am: * sources/rb-source.c: (rb_source_class_init), (rb_source_init), (rb_source_finalize), (rb_source_set_property), (rb_source_get_property), (default_get_pixbuf), (_rb_source_show_popup): * sources/rb-source.h: Add support for gtk-doc in rhythmbox. Convert RBSource to use newer glib functions, such as add_private. Gives RBSource a default get_pixbuf implementation. 2005-09-25 James Livingston * NEWS: Update with about a months worth of changes * data/glade/song-info-multiple.glade: * data/glade/song-info.glade: * data/rhythmbox.schemas: * lib/rb-preferences.h: * rhythmdb/rhythmdb.h: * shell/rb-shell-player.c: * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last few remaining parts of autorating. 2005-09-24 James Livingston * shell/rb-shell.c: (rb_shell_constructor), (rb_shell_window_state_cb), (rb_shell_set_visibility), (rb_shell_window_configure_cb): store window state in the gconf keys, so that it gets used. Closes bugs 313893 and 137068. 2005-09-20 James Livingston * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't crash if the entry has a NULL string in a property * shell/rb-removable-media-manager.c: (rb_removable_media_manager_load_media): fix some memory leaks (rb_removable_media_manager_mount_volume), (rb_removable_media_manager_eject_medium_cb), (rb_removable_media_manager_cmd_eject_medium): use gnome_vfs_volume_ref/unref instead of g_object_ref/unref * sources/rb-removable-media-source.c: (rb_removable_media_source_set_property), (rb_removable_media_source_get_property): use gnome_vfs_volume_ref/unref instead of g_object_ref/unref 2005-09-18 James Livingston Patch from Ernst Persson to add a "date added" column * data/glade/general-prefs.glade: * shell/rb-shell-preferences.c: (rb_shell_preferences_init), (rb_shell_preferences_column_check_changed_cb), (rb_shell_preferences_sync): add checkbox to control visibility of the column * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element), (save_entry): * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type): * rhythmdb/rhythmdb.h: add string version of "first seen", in the same was as "last played" is handled * sources/rb-library-source.c: (rb_library_source_constructor): * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Make the column show in the library and playlists * widgets/rb-entry-view.c: (rb_entry_view_append_column): * widgets/rb-entry-view.h: add the column * widgets/rb-query-creator-properties.c: allow automatic playlists to be sorted by the column 2005-09-16 James Livingston * shell/rb-shell-player.c: (rb_shell_player_init), (rb_shell_player_do_previous_or_seek), (rb_shell_player_previous_button_cb), (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous), (rb_shell_player_playpause_button_cb): Make the previous button act the same as the menu item. Fix an inversion of the "previous track or seek" logic. Patch from Jonathan Matthew (rb_shell_player_playpause): make --play-pause stop source that can't be paused 2005-09-15 James Livingston * configure.ac: increase totem-plparser requirements to 1.1.5 * shell/rb-playlist-manager.c: (playlist_load_start_cb), (playlist_load_end_cb), (rb_playlist_manager_parse_file): * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist): use the newer playlist APIs to save the name of the playlist, and use the name of a loaded playlist. Closes bug 309817. 2005-09-15 James Livingston Patch from Jonathan Matthew * shell/Makefile.am: stop some linker warnings * shell/main.c: (main): make --no-registration work with dbus 2005-09-15 James Livingston * daapsharing/rb-daap-sharing.c: (create_share): * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some reference sinking and counting issues that I caused. 2005-09-15 James Livingston * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now playing" icon in the "now playing" column header. 2005-09-14 James Livingston * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering daap shares, when sharing is turned off. 2005-09-12 Bastien Nocera * sources/rb-daap-source.c: (rb_daap_sources_init): Check the GConf value's default, especially for badly installed schema files 2005-09-12 James Livingston * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl Patch from Paolo Borelli * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar grip when maximised. Closes bug 316055. 2005-09-11 James Livingston Patch from William Jon McCann * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE. Make a subclass of GtkStatusbar instead of GtkHBox. (rb_statusbar_construct): Don't set border width. (rb_statusbar_init): Use resize grip. Don't use markup. (set_statusbar_tooltip, unset_statusbar_tooltip) (rb_statusbar_connect_action_group, rb_statusbar_set_property): Connect tooltips for actions. (rb_statusbar_sync_status): Push new message to statusbar. (rb_statusbar_set_progress): Don't use markup. (rb_statusbar_entry_view_changed_cb): Don't set syncing_state flag here since it prevents actually showing or hiding. (rb_statusbar_sync_with_source): Push new message to statusbar. 2005-09-11 Charles Schmidt * daapsharing/rb-daap-structure.c: (rb_daap_structure_parse_container_buffer: Forgot to remove comments around debugging definition. 2005-09-11 Charles Schmidt * daapsharing/rb-daap-structure.c: (rb_daap_structure_parse_container_buffer): Read the patch from daap type = version. * daapsharing/rb-daap-mdns.c/h: (resolve_cb): Updated mDNS resolve callback to send service-name & name (read from Machine Name in the TXT data or equal to service-name if not in TXT). * daapsharing/rb-daap-source.c: (rb_daap_source_class_init), (rb_daap_source_set_property), (rb_daap_source_get_property), (rb_daap_source_new), (find_source_by_service_name), (resolve_cb), (browse_cb), (stop_resolver), (start_browsing), (stop_browsing), (enable_browsing_changed_cb): Switched 'real-name' for 'service-name' and added 'host' and 'port' gobject properties. Updated to use new mDNS resolve callback sending service-name & name arguments. 2005-09-11 Charles Schmidt * daapsharing/rb-daap-mdns.c: (howl_strerror): New function to report errors from Howl (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish), (get_sw_discovery), (get_avahi_client): Better error reporting from Howl & Avahi. * sources/rb-daap-source.: (start_browsing), (stop_browsing): Fixed a bug where browsing would not get started or stopped in some situations. 2005-09-12 James Livingston * shell/rb-removable-media-manager.c: add a missing include, that would stop compilation if ipod support wasn't turned on 2005-09-11 James Livingston * daapsharing/rb-daap-dialog.c: (encode_base64), (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run): fix a translatable string, so that it is no broken in to two pieces, and remove a use of a goto * daapsharing/rb-daap-mdns.c: (mdns_error_dialog), (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb), (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb), (get_avahi_client), (browse_cb), (rb_daap_mdns_browse), (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a memory leaks, and some code style things. * daapsharing/rb-daap-share.c: (rb_daap_share_class_init), (rb_daap_share_init), (rb_daap_share_set_property), (rb_daap_share_dispose), (rb_daap_share_new), (rb_daap_share_get_property): make the DB and the playlist manager gobject properties. (message_add_standard_headers), (message_set_from_rb_daap_structure), (server_info_cb), (content_codes_cb), (login_cb), (update_cb), (databases_cb), (server_cb), (add_db_entry), (db_entry_added_cb), (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish), (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code style and use CONF_PREFIX in the gconf keys * daapsharing/rb-daap-sharing.c: (create_share), (enable_sharing_changed_cb), (share_name_changed_cb), (rb_daap_sharing_init), (rb_daap_sharing_shutdown): * daapsharing/rb-daap-src.c: (rb_daap_src_class_init), (rb_daap_src_instance_init), (rb_daap_src_dispose), (rb_daap_src_uri_handler_init), (rb_daap_src_set_property), (rb_daap_src_get_property), (rb_daap_src_getcaps), (rb_daap_src_close_file), (rb_daap_src_srcpad_event), (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time), (rb_daap_src_get_time): Deal with gconf callbacks where the key hasn't actually changed, fix some memory leaks, code style and release gconf notifications when the object is destroyed. * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new), (rb_daap_source_class_init), (rb_daap_source_init), (rb_daap_source_dispose), (rb_daap_source_set_property), (rb_daap_source_get_property), (rb_daap_source_new), (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver), (start_browsing), (stop_browsing), (enable_browsing_changed_cb), (rb_daap_sources_init), (rb_daap_sources_shutdown), (rb_daap_source_activate), (rb_daap_source_disconnect), (rb_daap_source_show_popup), (rb_daap_source_find_for_uri), (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys, release gconf notifications, handle gconf callbacks where the key hasn't changed, make "real name" and "password protected" gobject properties, fix some code style and fix a memory leak. 2005-09-11 James Livingston Patch from Jonathan Matthew * shell/rb-playlist-manager.c: (rb_playlist_manager_save_playlists), (rb_playlist_manager_get_playlists): don't unref the sourcelist model when we aren't supposed to. (Closes bug 315886) 2005-09-11 James Livingston * shell/rb-removable-media-manager.c: (rb_removable_media_manager_class_init), (rb_removable_media_manager_init), (rb_removable_media_manager_dispose), (rb_removable_media_manager_set_property), (rb_removable_media_manager_get_property), (rb_removable_media_manager_new), (rb_removable_media_manager_load_media), (rb_removable_media_manager_volume_mounted_cb), (rb_removable_media_manager_volume_unmounted_cb), (rb_removable_media_manager_mount_volume), (rb_removable_media_manager_unmount_volume), (rb_removable_media_manager_source_deleted_cb), (rb_removable_media_manager_append_media_source), (rb_removable_media_manager_set_uimanager), (rb_removable_media_manager_eject_medium_cb), (rb_removable_media_manager_cmd_eject_medium): * shell/rb-removable-media-manager.h: * sources/rb-removable-media-source.c: (rb_removable_media_source_class_init), (rb_removable_media_source_init), (rb_removable_media_source_dispose), (rb_removable_media_source_set_property), (rb_removable_media_source_get_property), (impl_get_pixbuf), (impl_delete_thyself): * sources/rb-removable-media-source.h: Add the four files that I somehow managed not to add to cvs in the last commit. Oops. 2005-09-11 James Livingston * shell/Makefile.am: Add rb-removable-media-manager.{c,h} * sources/Makefile.am: Add rb-removable-media-source.{c,h} * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor), (rb_shell_medium_added_cb), (rb_shell_select_source): create the removable-media-manager on startup, and handle creation of sources. * sources/rb-ipod-source.h: * sources/rb-ipod-source.c: (rb_ipod_source_class_init), (rb_ipod_source_init), (rb_ipod_source_constructor), (rb_ipod_source_dispose), (rb_ipod_source_new), (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port the iPod source over to the removable media framework. * sources/rb-library-source.c: (paned_size_allocate_cb), (rb_library_source_get_paned_key): fix a potential bug is a library-derived source doesn't have a paned-key 2005-09-11 Bastien Nocera * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to mp3 when we can't get the suffix of a file (Closes: #315941) 2005-09-10 James Livingston * configure.ac: fix the mdns tests, so that it doesn't complain about not finding one, if daap support isn't being compiled in 2005-09-10 Charles Schmidt * configure.ac: Updated to require avahi >= 0.5. Small fixes. * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run): HIG compliancy & images. * daapsharing/rb-daap-mdns.c: (browse_cb), (resolve_cb): Better detection of local services. Requries avahi 0.5. Still doesn't work quite right with Howl, due to Howl's limitations. Fix the way collision handling is done under Avahi. * daapsharing/rb-daap-share.c: (publish_cb): Better name collision handling (at least for Avahi). 2005-09-10 James Livingston * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from Dennis Cranston to make the DAAP preferences more HIG compliant (Closes #315889) * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the list of files to be translated 2005-09-10 James Livingston * configure.ac: fix it so that --enable-daap=no works * lib/rb-file-helpers.c: (rb_file): allow use of new art when running uninstalled 2005-09-10 James Livingston Patch from Christophe Fergeau * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in the ipod code. 2005-09-09 Charles Schmidt * README.daap: Updating documentation 2005-09-09 Charles Schmidt * AUTHORS: Added myself. * daapsharing/rb-daap-connection.c: (connection_login), (rb_connection_new): Reorganized password handling. * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c * shell/rb-shell.c: (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources. * sources/rb-daap-source.c: (rb_daap_source_activate): Better error handling when we are unable to connect. 2005-09-09 Charles Schmidt * README.daap: Fixed some terminology. * configure.ac: Better automatic detection of mDNS/DNS-SD library. New --with-mdns=auto|howl|avahi flag to specify. * daapsharing/rb-daap-dialog.c/h: New files to handle password & name collision dialogs. * daapsharing/rb-daap-connection.c: (connection_get_password), (build_message), (http_get) (connection_login): Ask for & use a password if the share demands it. * daapsharing/rb-daap-connection.h: Changed prototype of rb_daap_connection_new. * daapsharing/rb-daap-mdns.c: (resolve_cb): Better detection of your own music share so it doesn't appear in the sourcelist. * daapsharing/rb-daap-share.c: (rb_daap_share_start_publish): Attempt to start on port 3689, failing that start on any available port. * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state. * sources/rb-daap-source.c: (find_source_by_name), (rb_daap_source_new), (resolve_cb), (browse_cb): Handle passworded shares. Resolve the host immediately instead of when activated. (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key), (rb_daap_source_new): New GConf keys for UI state. (rb_daap_source_activate): Use RBPlaylistSource instead of RBDAAPPlaylistSource * sources/rb-daap-playlist-source.c/h: Removed * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE if the playlist is local (i.e. not DAAP or iPod). * shell/rb-playlist-manager.c: (rb_playlist_manager_save_playlists): Fixed a bug where the playlists wouldn't get saved if the last playlist hadn't changed. Only save local playlists. 2005-09-09 James Livingston * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the iPod preferences pane, as it already uses the browser views as the library. 2005-09-09 James Livingston * sources/rb-library-source.c: (rb_library_source_finalize), (rb_library_source_constructor): fix gconf monitoring of library preference keys. * sources/rb-library-source.h: remove declaration of function that does not exist 2005-09-08 Charles Schmidt * player/rb-player-gst.c: (rb_player_set_time): Fix seeking in daap streams. 2005-09-08 Charles Schmidt * data/rhythmbox.schemas: Turn music share browsing on by default. 2005-09-07 James Livingston * configure.ac: include daapsharing/Makefile in AC_OUTPUT 2005-09-06 Charles Schmidt * player/rb-player-gst.c: (rb_player_get_time): Fix for extra << & == that accidentally made it in. * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h 2005-09-06 Charles Schmidt * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made it in last time. Sorry. 2005-09-06 Charles Schmidt * player/rb-player-gst.c: (rb_player_get_time): Fix a small crash appearing when the uri isn't set in the player, but rb_player_get_time() is still called. * configure.ac: Also check for libsoup 2.4, which is what ships with Gnome 2.12. * po/POTFILES.in: Added music sharing files that have translatable strings. * README.daap: New file explaining "How Music Sharing Works" 2005-09-06 Bastien Nocera * daapsharing/.cvsignore: added 2005-09-06 Charles Schmidt * daapsharing/*: Music sharing library. * sources/rb-daap-source.c/h: Music share RBSource. * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource. * configure.ac: --enable-daap flag to turn on music sharing. Requires libsoup and a mutlicast DNS implementation (howl or avahi). * data/rhythmbox.schemas: New GConf keys for music sharing. * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap source right click menu. * player/rb-player-gst.c: Changes to properly play & seek in remote music share files. * shell/rb-playlist-manager.c/h: (rb_playlist_manager_get_playlists): New function to get a GList * of the playlists. (rb_playlist_manager_save_playlists): Don't save music share playlists and fixed a GObject reference leak. * shell/rb-shell.c/h: (rb_shell_append_source): No longer a local function. Now takes a parent RBSource * argument, NULL to append a toplevel source. (rb_shell_cmd_source_disconnect): New function to 'disconnect' a source (useful for disconnecting from remote music share, specifically). (rb_shell_quit): Stop music sharing/browsing. (rb_shell_playlist_added_cb): Work with tree source structure. (rb_shell_get_property): "playlist-manager" property accessor. (rb_shell_class_init): New "playlist-manager" property. (rb_shell_construor): Append sources as toplevel sources. Initialize daap sharing/browsing. (rb_shell_select_source): Notify source of activation/deactivation. * shell/rb-shell-prefernces.c: Music sharing preferences. * sources/rb-source.c/h: New activate, deactivate and disconnect class functions. Activate & deactivate are notification style functions that will tell a source when it is selected/unselected. Disconnect can be hooked up to a UI object to disconnect the source. * sources/rb-sourcelist-model.c: * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure. (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to append a toplevel source. 2005-09-05 James Livingston * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_entry_changed_cb), (rhythmdb_query_model_do_reorder): Update the query model's totals if the duration of filesize of an entry changes. Emit the row-changed signals that I forgot to put back in, when I was doing query sorting. * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print out "0 minutes" or "0 bytes". 2005-09-04 James Livingston * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist): remove a leftover bit of the "internal-name" property of sources. 2005-09-03 James Livingston * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove extraneous debug message * sources/rb-library-source.c: (rb_library_source_do_query): fix a crasher would affect any library-derived sources (which was also a memory leak). 2005-09-02 Colin Walters * configure.ac: Fix sytnax error. * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional code to disable minimization icons - need to figure out why it doesn't work... 2005-09-01 Dennis Cranston * data/glade/song-info-multiple.glade: * data/glade/song-info.glade: * widgets/rb-song-info.c: (rb_song_info_constructor): Add a mnemonic to the newly added "Automatically rate" label in the properties dialog and use a bold typeface like all the other labels in the dialog. (Closes bug 315089) 2005-09-03 James Livingston * sources/rb-library-source.c: (rb_library_source_class_init), (rb_library_source_finalize), (rb_library_source_constructor), (rb_library_source_set_property), (rb_library_source_get_property), (impl_get_paned_key), (paned_size_allocate_cb), (rb_library_source_state_prefs_sync), (impl_show_popup), (rb_library_source_get_paned_key): * sources/rb-library-source.h: Allow sources derived from RBLibrarySource to use different gconf keys for sort order, browser visibility and browser pane position. Fix a crasher if a derived source overrides _get_pixbuf. 2005-09-02 Colin Walters * shell/rb-shell.c (rb_shell_set_visibility): Move hint setting which seems to avoid races more. 2005-09-03 James Livingston * shell/rb-shell.c: fix compilation with iPod support enabled 2005-09-02 Colin Walters * shell/rb-shell.c (struct RBShellPrivate): Add idle_hide_mainwindow_id. (rb_shell_constructor): Move taskbar skipping hint into rb_shell_set_visibility. (idle_hide_mainwindow): New function. (rb_shell_set_visibility): Taskbar hinting moved here; add evil racy hack to avoid rb appearing in taskbar when minimized. 2005-09-01 Colin Walters * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager. * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal from gtkstatusicion.c. * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom. * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle TrayShowWindow entry. (rb_tray_icon_class_init): Make GtkActionGroup readable only. (rb_tray_icon_constructor): Create action group here. (rb_tray_icon_finalize): Destroy action group. (rb_tray_icon_set_property): Don't take an action group. (rb_tray_icon_new): Ditto. (tray_popup_position_menu): Some mostly boilerplate code to position menu. (rb_tray_icon_button_press_event_cb): Position menu. (rb_tray_icon_get_geom): New function used for the shell to set minimization hints. * shell/rb-shell.h: Prototype rb_shell_toggle_visibility. * shell/rb-shell.c (rb_shell_actions): Add MusicClose. (struct RBShellPrivate): Change visible to iconified. (set_icon_geometry): New function from Søren Sandmann to tell Metacity where to draw the minimization animiation. (rb_shell_window_state_cb): Update iconified. (rb_shell_get_visibility): New function to say whether or not we're currently visible. (rb_shell_set_visibility): Update to minimize to tray or present as appropriate. (rb_shell_window_delete_cb): On window close, just minimize to tray if we're deleted. (rb_shell_set_window_title): Kill old notification code. (rb_shell_toggle_visibility): Nwe function. (rb_shell_cmd_toggle_visibility): Call it. (rb_shell_constructor): Skip the taskbar. (tray_destroy_cb): Better debugging. 2005-09-01 Colin Walters * data/ui/rhythmbox-ui.xml: Add MusicClose. * configure.ac: Enable bonobo by default. 2005-09-01 Colin Walters * configure.ac: Default to old art. Add macros subdir. * Makefile.am (SUBDIRS): Add macros. * macros/Makefile.am: New. 2005-09-01 Colin Walters * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and rb-shell-player.xml. * remote/dbus/rb-remote-dbus.h: Deleted. * remote/dbus/Makefile.am: Delete all the junk, just dist rb-print-playing.py and rb-set-rating.py. * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo. * data/Makefile.am (EXTRA_DIST): Add service_in_files. 2005-09-02 James Livingston - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete file from cvs * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize), (rb_shell_constructor): Patches from Jonathan Matthew to fix compilation without ipod support, and a crash when using "browse this artist". 2005-08-31 Colin Walters * configure.ac: Add --with-old-art configure switch. Also add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage, but it doesn't work. * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render): Don't use eel_create_colorized_pixbuf for new art. * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto. * data/art-clearlooks: New artwork. 2005-08-31 Colin Walters * shell/main.c (main): Fix Bastien's commit to continue to focus the window with GTK+ 2.8 at least. 2005-08-31 Colin Walters * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry is already loaded. * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg. 2005-08-31 Bastien Nocera * README: remove mentions of the xine-lib backend * shell/main.c: (main): make it compilable with gtk+ < 2.8 2005-08-30 Colin Walters * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page): Make non-visible sources insensitive. 2005-08-30 Colin Walters * shell/rb-shell.c: Don't use GConf for selected source; it's confusing to have the selected source change after startup, and since we don't save other things it's not worth saving this. * sources/rb-playlist-source.c: * sources/rb-library-source.c: * sources/rb-iradio-source.c: * sources/rb-ipod-source.c: Delete internal-name property usage. * sources/rb-source.c: Delete internal-name property. * data/rhythmbox.schemas: Delete selected_source. 2005-08-30 Colin Walters * sources/rb-sourcelist.c: Make playing source bold instead of displaying a pixbuf; it's much less ugly. 2005-08-30 Colin Walters * sources/rb-source.c: * sources/rb-source.h: New virtual method try_playlist. * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement impl_try_playlist. (rb_iradio_source_add_station): Remove validation; we do that elsewhere. (impl_handle_eos): Return RB_SOURCE_EOF_RETRY. (handle_playlist_entry_cb): Don't check for iradio uris, we don't need to. (stations_view_drag_data_received_cb): Don't check for iradio uris; in theory we should though... * shell/rb-shell.c (known_sources): Delete; we just hardcode the list in rb_shell_construct now. (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource, RBiPodSource. (rb_shell_constructor): Create library, iradio, ipod here. (rb_shell_source_deleted_cb): Use source directly instead of indirecting through type. (rb_shell_sync_selected_source): Ditto. (rb_shell_jump_to_entry_with_source): Just use the source reutrned from the type instead of special-casing. (rb_shell_guess_type_for_uri) (rb_shell_add_uri) (handle_one_uri_with_possible_metadata): New functions. (rb_shell_load_uri): Refactor to allow loading playlists again, also use other URI infrastructure. * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY. (rb_shell_player_error): Always set entry error on error, instead of depending on EOF behavior. * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor to just invoke rb_shell_add_uri. (rb_playlist_manager_parse_file): Return error instead of tossing up dialog box directly. (load_playlist_response_cb): Display error here. (add_uri_to_playlist): Delete. (handle_playlist_entry_into_playlist_cb): Renamed to handle_playlist_entry_cb. * shell/rb-playlist-manager.h: Add error, update prototype. * lib/rb-file-helpers.c: * lib/rb-file-helpers.h: Delete rb_uri_is_iradio. 2005-08-29 Colin Walters * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return if entry already exists. Use rhythmdb_entry_set_uninserted. * sources/rb-ipod-source.c (entry_set_string_prop): Avoid needlessly duping string, and use rhythmdb_entry_set_uninserted. (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted. * shell/rb-shell.h (enum RBShellError): Add some more errors. Prototype rb_shell_set_song_property. * shell/rb-shell.xml: Export setSongProperty. * shell/rb-shell.c (rb_shell_set_song_property): New function. (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, and call rhythmdb_commit. * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do want to notify of the change. (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange. * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix logic error; idle functions would be enqueued for each set. (rhythmdb_entry_set): Fix assertion logic error. * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted. Return if the entry already exists. 2005-08-29 Colin Walters * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add "inserted" member which we use to keep track of whether or not an entry is in the DB. Prototype rhythmdb_entry_set_uninserted. * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted flag. (rhythmdb_entry_insert): Assert entry is not already inserted. (rhythmdb_process_metadata_load): Update to call _set_uninserted just after creating entry. (rhythmdb_entry_set): Document, and fail on uninserted entries. (rhythmdb_entry_set_nonotify): Ditto. (rhythmdb_entry_set_uninserted): Document, and fail on inserted entries. (rhythmdb_entry_set_internal): Change notify flag to notify_if_inserted. Also move notification after assertions. Update all existing callers of rhythmdb_entry_set_internal to give TRUE for notify_if_inserted; this should be what we want but may be an efficiency hit. 2005-08-30 Raphael Slinckx * shell/rb-shell-player.c: (rb_shell_player_init), (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb), (rb_shell_player_set_playing_source_internal), (rb_shell_player_sync_with_selected_source): Notify the player when an entry has updated the title, album or artist field, and resync the big display. * sources/rb-iradio-source.c: (rb_iradio_source_class_init): * sources/rb-library-source.c: (rb_library_source_class_init), (impl_get_config_widget): * sources/rb-playlist-source.c: (rb_playlist_source_class_init): * sources/rb-source.c: * sources/rb-source.h: Removed unused have_artist_album, get_artist, and get_album functions in rb-source and adapted other sources accordingly. 2005-08-29 Colin Walters * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add signal_change member. (threadsafe_entry_set): New function. (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE. (rhythmdb_entry_set_nonotify): New function; just call threadsafe_entry_set with FALSE. (rhythmdb_entry_set_internal): Take a notify flag; if true add the change to our pending set. Also update all internal callers of rhythmdb_entry_set_internal to pass FALSE. Some of these may be bugs however and need to pass TRUE... * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to rhythmdb_entry_set, and rename rhythmdb_entry_set to rhythmdb_entry_set_nonotify. * rhythmdb/rhythmdb.h (enum RhythmDBProp) (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE. * widgets/rb-song-info.c: Kill off vestiges of auto rating. * widgets/rb-entry-view.c (rb_entry_view_rated_cb): * sources/rb-source.c (rb_source_update_play_statistics): * sources/rb-iradio-source.c (rb_iradio_source_add_station): * sources/rb-ipod-source.c (entry_set_string_prop) (load_ipod_db_idle_cb): * shell/rb-shell.c (rb_shell_set_rating_impl): * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error) (info_available_cb): * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb) (rb_station_properties_dialog_sync_entries): * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb): Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify, and callers of rhythmdb_entry_sync to rhythmdb_entry_set. 2005-08-29 Colin Walters * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally. * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid linking insanity. * widgets/rb-header.c (sanitize_string): New function, extracted from old info_url. Be sure to always strip the string. (info_url): Rewrite to take artist/album, and generate a sane URL for them from last.fm, which is better than allmusic.com in that they support Rhythmbox, and have a *SANE* URL scheme. (artist_info_url, album_info_url): Delete. (rb_header_sync): Use info_url. 2005-08-29 James Livingston * sources/rb-source.c: (rb_source_search): Check to ensure that this is implemented before calling it. Many sources don't implement the method. 2005-08-28 Dennis Cranston * data/glade/create-playlist.glade: Cleanup the layout, and add a few more mnemonics. * shell/rb-playlist-manager.c: (rb_playlist_manager_cmd_load_playlist), (rb_playlist_manager_cmd_save_playlist): HIG fix, use title capitalization for window titles. * widgets/rb-query-creator-properties.c: Add mnemonics to checkbutton labels. * widgets/rb-query-creator.c: (rb_query_creator_constructor), (limit_toggled_cb): Toggle the sortLabel sensitivity. 2005-08-28 Colin Walters * data/rhythmbox.schemas: Delete search_text for library and iradio; this isn't a persistent value anymore. Closes #313757. * sources/rb-source.h: * sources/rb-source.c: Delete impl_can_search. * sources/rb-iradio-source.c: Delete search_text usage. * sources/rb-library-source.c: Ditto. * shell/rb-source-header.c: Don't use GConf for search key. Reset search when source is set, and just do rb_source_search in rb_source_header_search_cb. * shell/rb-shell.c (rb_shell_append_source): Don't initiate search. * shell/Makefile.am: Don't dist dashboard.c. 2005-08-28 Colin Walters * shell/main.c: Remove include of dead file rb-remote-dbus.h. 2005-08-28 Colin Walters * data/org.gnome.Rhythmbox.service.in: New. * data/Makefile.am: Install service file. * configure.ac: Define DBUS_SERVICES_DIR. * autogen.sh: Set ACLOCAL_FLAGS. * macros/acinclude.m4: New. 2005-08-28 Colin Walters Initial patch from Jonathan Matthew; closes 313684. * rhythmdb/rhythmdb-tree.c: (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors. (save_entry): Return on error. (rhythmdb_tree_save): Handle error when saving the db; additionally, handle errors from fclose and unlink, and print error too. 2005-08-28 Colin Walters * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix extra _. 2005-08-28 Colin Walters * configure.ac: Change iPod support to --with-ipod; automatically enable it if we have HAL. Try to support both HAL 0.5 and HAL 0.2. Break out totem-plparser into its own check so later we can do version tests there too. Kill dashboard support. * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje to support HAL > 0.5, but preserve the old code for HAL < 0.5 Closes #310017. * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS. (INCLUDES): Add TOTEM_PLPARSER_CFLAGS. * sources/Makefile.am: Also handle TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS. * shell/dashboard.c: Delete; someone should just write a little python shim which lists on the D-BUS interface and writes the stuff to Dashboard. Even better Dashboard should be ported to D-BUS and do the listening itself, perhaps on an abstract "org.gnome.MusicPlayer" interface or something. * shell/rb-shell.c: Kill dashboard support. 2005-08-28 Colin Walters * remote/dbus/rb-print-playing.py: New file. 2005-08-28 Colin Walters * rhythmdb/rhythmdb.c (rhythmdb_entry_get): * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public. * shell/rb-shell-player.h: * shell/rb-shell-player.c: Add playing-uri-changed signal. * shell/rb-shell-player.xml: Export it. * shell/rb-shell.c (rb_shell_get_song_properties): New function. (rb_shell_error_quark): New. * shell/rb-shell.h: Prototype. Also add RBShellError. * shell/rb-shell.xml: Export rb_shell_get_song_properties. 2005-08-28 Colin Walters * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock) (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and bonobo_unlock. (rb_remote_bonobo_preinit): Lock setting moved here. (rb_remote_bonobo_init): From here. * shell/main.c (main): Call rb_remote_bonobo_preinit very early. Also invoke handle_cmdline in the right place. (handle_cmdline): Remove some unused vars. Cast bonobo_load_uri to GFunc. 2005-08-28 James Livingston * NEWS: keep the NEWS file up to date, so we don't have to do it all when 0.9.1 comes around. 2005-08-28 James Livingston * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes bug 314477. 2005-08-28 James Livingston Patch from Jonathan Mattnew * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func): * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours is a song is longer than 60 minutes. Closes bug 313311. 2005-08-27 James Livingston * data/glade/create-playlist.glade: * widgets/rb-query-creator.c: (rb_query_creator_load_query), (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add "minutes" as an option in the playlist limit menu. * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_class_init), (rhythmdb_query_model_set_property), (rhythmdb_query_model_get_property), (rhythmdb_query_model_update_limited_entries): Allow query models to have a time limit * shell/rb-playlist-manager.c: (rb_playlist_manager_set_automatic_playlist), (rb_playlist_manager_cmd_edit_automatic_playlist): * sources/rb-playlist-source.c: (rb_playlist_source_set_query), (rb_playlist_source_get_query), (impl_receive_drag), (rb_playlist_source_new_from_xml), (rb_playlist_source_save_to_xml), (rb_playlist_source_songs_sort_order_changed_cb), (rb_playlist_source_do_query): * sources/rb-playlist-source.h: * widgets/rb-query-creator.h: Allow playlists to be limited by time 2005-08-27 James Livingston Patch from Jonathan Mattnew . * configure.ac: * shell/Makefile.am: work correctly if dbus-binding-tool is in a non-standard location. Closes bug 314640. 2005-08-26 Colin Walters Patch from Olivier Blin * widgets/eggnotificationbubble.c (draw_bubble): Handle extreme-left case as well. 2005-08-26 Colin Walters * shell/rb-shell.c (idle_save_state): Don't do this. (rb_shell_construct): Remove idle calls to idle_save_state. We should save the playlists automatically when they're modified. (rb_shell_load_uri): Don't try to re-stat entry if it already exists. * shell/rb-shell-player.c: Keep track of entry we are attempting to play. (rb_shell_player_set_playing_entry): Set playing_attempt_entry. Don't double-free error. (rb_shell_player_play_entry): Signal errors. (rb_shell_player_entry_activated_cb): Ditto. (rb_shell_player_property_row_activated_cb): Ditto. (rb_shell_player_set_playing_source_internal): Unset attempted playing entry. (rb_shell_player_error): Refactor to be usable both sync and async. Handle case where displayed entry differs from entry. (error_cb): Move GDK locking here. * shell/main.c (main): Drop most commandline arguments for D-BUS; people can just use dbus-send or python. We only support focusing and loading files. (load_uri_args): New function, extracted from handle_cmdline. (dbus_load_uri, bonobo_load_uri): New functions. * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as appropriate. * remote/Makefile.am: Don't compile dbus subdir, it's not used. * remote/dbus/rb-remote-dbus.c: Deleted. * player/rb-player-gst.c: Clear any pending idle handlers when we close the player. Signal errors generated during open/play etc as synchronous errors. * configure.ac: Enable Bonobo by default if D-BUS isn't enabled. 2005-08-26 Colin Walters * shell/rb-shell.c (rb_shell_present): Try harder. 2005-08-26 Colin Walters * shell/rb-shell.c (rb_shell_present): Try to handle GTK_MINOR_VERSION < 8. 2005-08-26 James Livingston * shell/main.c: (main): compilation fixes. Patch from Peter Robinson 2005-08-26 Colin Walters * remote/dbus/rb-remote-dbus.c: Various compilation fixes. 2005-08-25 Colin Walters * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating): Delete. (rb_shell_player_do_next_with_rating): Move back into rb_shell_player_do_next. (rb_shell_player_entry_activated_cb): Remove call to rb_shell_player_auto_adjust_rating. (do_next_idle): Just call rb_shell_player_do_next. * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET. 2005-08-25 Colin Walters * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show before gtk_window_present_with_time. 2005-08-25 Colin Walters * configure.ac: Require D-BUS 0.35. Bonobo is disabled by default. * shell/rb-shell.c (rb_shell_constructor): Adapted from rb_shell_construct. This is so we only have to do g_object_new. (rb_shell_get_player): New function. (rb_shell_get_player_path): Ditto. (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl. * shell/rb-shell.h: Prototype them. * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we export over D-BUS. (reemit_playing_signal): New function. (rb_shell_player_open_playlist_location): Use return values from rb_player_open, rb_player_close, etc. instead of checking "error". Return a gboolean on failure. (rb_shell_player_open_entry): Just open entry location, don't print to stderr. (rb_shell_player_play): Handle retval from rb_player_play. Return a gboolean. (do_next_idle): Move logic for handling of end of playlist here. (rb_shell_player_set_playing_entry): Take a GError, return a gboolean. Update to use gboolean return values. (rb_shell_player_do_previous): Delete lots of crazy duplicate logic. Signal an error on end of playlist. Also signal error if we're not playing. Move heuristic for replaying the song into rb_shell_player_cmd_previous. (rb_shell_player_do_next_with_rating): Signal error on end of playlist. (rb_shell_player_do_next): Return errors. (rb_shell_player_cmd_previous): Heuristic for restarting song moved here; the idea is you generally only want that from the GUI. (rb_shell_player_cmd_play): Handle error. (rb_shell_player_playpause): Signal errors. (filter_mmkeys): Use rb_shell_player_cmd_previous and rb_shell_player_cmd_next in favor of the internal _do functions. * shell/rb-shell-player.h (enum RBShellPlayerError): Add some errors. Update prototypes for above changes. * shell/main.c: More tightly integrate D-BUS; register various major singleton objects here. Fix handle_cmdline so we only process extra arguments, not every argument. * shell/Makefile.am: Generate D-BUS glue headers. * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff into shell/main.c. Now this file just acts as a client library. Not heavily tested. * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock): Moved here. (rb_remote_bonobo_init): Move long CORBA rant here along with setting of lock functions. * player/rb-player-gst.c (rb_player_construct) (rb_player_play, rb_player_open, rb_player_close): Return gboolean on error. * player/rb-player.h: Update prototypes. * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to rb-remote-bonobo.c. (rb_threads_init): Don't set gdk lock functions here. 2005-08-25 James Livingston Patch from Jonathan Mattnew * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb): * lib/rb-tree-dnd.h: * rhythmdb/rhythmdb-property-model.c: (rhythmdb_property_model_class_init), (rhythmdb_property_model_drag_source_init), (rhythmdb_property_model_iter_parent), (rhythmdb_property_model_row_draggable), (rhythmdb_property_model_drag_data_delete), (query_model_cb), (rhythmdb_property_model_drag_data_get), (rhythmdb_property_model_enable_drag): * rhythmdb/rhythmdb-property-model.h: * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize), (rb_playlist_manager_set_property), (append_new_playlist_source), (rb_playlist_manager_save_playlists): * shell/rb-shell.c: (rb_shell_construct), (sourcelist_drag_received_cb): * sources/rb-iradio-source.c: (rb_iradio_source_class_init): * sources/rb-playlist-source.c: (impl_receive_drag): * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init), (rb_sourcelist_model_drag_dest_init), (rb_sourcelist_model_set_dnd_targets), (rb_sourcelist_model_drag_data_received), (path_is_reorderable), (rb_sourcelist_model_row_drop_position), (rb_sourcelist_model_get_drag_target), (rb_sourcelist_model_drag_data_get): * sources/rb-sourcelist-model.h: * sources/rb-sourcelist.c: (rb_sourcelist_class_init), (rb_sourcelist_init), (rb_sourcelist_get_property), (rb_sourcelist_selection_changed_cb): * sources/rb-sourcelist.h: * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly improve drag-n-drop support. Allow dragging of item from property views to the source list, to create new automatic playlists. Allow playlist re-ordering. Fix dragging from Rhythmbox to other applications. (Closes bug 147337) 2005-08-24 Colin Walters Patch from Olivier Blin * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle correctly in the case where the window is next to monitor edge. 2005-08-24 James Livingston * sources/rb-playlist-source.c: (rb_playlist_source_class_init), (rb_playlist_source_get_property), (rb_playlist_source_do_query): add a gobject property to get the query model that backs the playlist. 2005-08-24 James Livingston * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property), (handle_playlist_entry_into_playlist_cb), (rb_playlist_manager_playlist_entries_changed): Disable the "create audio cd" menu item when a non-playlist source is selected, or the playlist is empty. (Closes Bug 313253) 2005-08-24 James Livingston * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist): Fix the playlist length checkso it doesn't report 0 for automatic playlists. This was stopping automati playlists being burnt to cd. 2005-08-24 James Livingston * configure.ac: * sources/rb-playlist-source-recorder.c: (burn_cd): * sources/rb-playlist-source.c: (rb_playlist_source_songs_sort_order_changed_cb): * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some more warnings that occur when compiling RPMs on Fedora. 2005-08-24 James Livingston * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that was stopping some distros gcc version compiling. 2005-08-24 James Livingston * NEWS: * data/glade/create-playlist.glade: * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist), (rhythmdb_query_free), (rhythmdb_query_serialize), (rhythmdb_query_deserialize), (rhythmdb_query_get_type): * rhythmdb/rhythmdb.h: * shell/rb-playlist-manager.c: (rb_playlist_manager_set_automatic_playlist), (rb_playlist_manager_cmd_edit_automatic_playlist): * sources/rb-playlist-source.c: (rb_playlist_source_constructor), (rb_playlist_source_set_query), (rb_playlist_source_get_query), (impl_receive_drag), (rb_playlist_source_new_from_xml), (rb_playlist_source_save_to_xml), (rb_playlist_source_songs_sort_order_changed_cb), (rb_playlist_source_do_query): * sources/rb-playlist-source.h: * widgets/Makefile.am: * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order), (rb_entry_view_set_sorting_order): * widgets/rb-query-creator-private.h: * widgets/rb-query-creator-properties.c: (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData), (stringCriteriaGetWidgetData), (escapedStringCriteriaSetWidgetData), (escapedStringCriteriaGetWidgetData), (set_rating_score), (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData), (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget), (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData), (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData), (durationCriteriaGetWidgetData), (create_time_unit_option_menu), (relativeTimeCriteriaCreateWidget), (relativeTimeCriteriaSetWidgetData), (relativeTimeCriteriaGetWidgetData): * widgets/rb-query-creator.c: (rb_query_creator_get_type), (rb_query_creator_class_init), (rb_query_creator_constructor), (rb_query_creator_dispose), (rb_query_creator_set_property), (rb_query_creator_get_property), (rb_query_creator_load_query), (rb_query_creator_set_sorting), (rb_query_creator_new_from_query), (get_entry_for_property), (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), (append_row), (get_property_index_from_proptype), (select_criteria_from_value), (property_option_menu_changed), (create_property_option_menu), (create_criteria_option_menu), (sort_option_menu_changed), (setup_sort_option_menu): * widgets/rb-query-creator.h: A fairly huge patch to improve automatic playlists. The two most notable improvements are 1) adding more properties to the query creator, making it much easier to add more in the future, and 2) allow playlists to be sorted, from the query editor if they gave limits, and by clicking on column headers if they don't. Files added: widgets/rb-query-creator-private.h, sources/rb-query-creator-properties.c 2005-08-21 James Livingston * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where error=NULL. This stops some crashes. 2005-08-19 Colin Walters Patch from Olivier Blin * widgets/eggnotificationbubble.c (force_window): Support top orientation. * widgets/eggnotificationbubble.h: Remove egg_notification_bubble_force_window from header. 2005-08-18 James Livingston * NEWS: Give a bit of detail on the major changes in 0.9.0, and update with the changes since then. 2005-08-17 Ronald S. Bultje * shell/rb-shell-player.c: (rb_shell_player_init), (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb), (rb_shell_player_volume_widget_changed_cb): * sources/rb-iradio-source.c: * sources/rb-library-source.c: * sources/rb-playlist-source.c: * widgets/Makefile.am: * widgets/bacon-volume.c: (bacon_volume_button_get_type), (bacon_volume_button_class_init), (bacon_volume_button_init), (bacon_volume_button_dispose), (bacon_volume_button_new), (bacon_volume_button_get_value), (bacon_volume_button_set_value), (bacon_volume_button_scroll), (bacon_volume_button_press), (cb_button_timeout), (cb_button_press), (cb_button_release), (bacon_volume_release_grab), (cb_dock_press), (bacon_volume_scale_get_type), (bacon_volume_scale_class_init), (bacon_volume_scale_new), (bacon_volume_scale_press), (bacon_volume_scale_release), (bacon_volume_scale_value_changed): * widgets/bacon-volume.h: * widgets/rb-volume.c: * widgets/rb-volume.h: Use BaconVolumeButton (#300867). 2005-08-17 James Livingston * rhythmdb/rhythmdb.c: (set_props_from_metadata), (rhythmdb_process_metadata_load): don't reset the First Seen time whenever we recheck the metadata. 2005-08-17 James Livingston * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist): temporary workaround to stop crashes when trying to burn an empty playlist. Doesn't disable the menu item which is the better solution (Bug 313253). 2005-08-15 James Livingston * shell/rb-source-header.c: (rb_source_header_init), (rb_source_header_sync_control_state), (rb_source_header_search_activate_cb): * widgets/rb-entry-view.c: (rb_entry_view_class_init), (rb_entry_view_poll_model), (rb_entry_view_grab_focus): * widgets/rb-search-entry.c: (rb_search_entry_class_init), (rb_search_entry_init), (rb_search_entry_searching), (rb_search_entry_activate_cb): * widgets/rb-search-entry.h: Move focus to the entry view when user presses enter in the search box. Patch from Paolo Borelli (Closes bug 128110) 2005-08-15 James Livingston * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init), (rb_playlist_manager_new_playlist): * shell/rb-playlist-manager.h: * shell/rb-shell.c: (rb_shell_construct), (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force the source list to be shown when a new playlist is created. (Closes bug 161935) 2005-08-15 James Livingston * widgets/rb-header.c: (rb_header_init), (rb_header_set_show_timeline): disable the seek slider, rather than hiding it, which more closely follows the HIG. (Closes bug 139102) 2005-08-13 Colin Walters * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use rb_shell_hidden_notify. (rb_shell_hidden_notify): Notify if the shell is hidden. (rb_shell_set_visibility_impl): Debug goo. * shell/rb-shell.h: Export rb_shell_hidden_notify. * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox when the user clicks on notification. * sources/rb-playlist-source-recorder.c (burn_cd): Notify when CD burn is complete. (rb_playlist_source_recorder_finalize): Unref shell. (rb_playlist_source_recorder_new): Take shell. * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist): Pass shell to RBPlaylistSourceRecorder. 2005-08-13 Colin Walters * lib/rb-thread.c: * lib/rb-thread.h: Not used yet, but put in CVS in case we get time to convert. 2005-08-13 Colin Walters * widgets/eggnotificationbubble.h: * widgets/eggnotificationbubble.c: New files, will likely go in libegg. * widgets/eggtrayicon.c: * widgets/eggtrayicon.h: Add notification API. * shell/rb-tray-icon.c: * shell/rb-tray-icon.h: Add notification API. * shell/rb-shell.c: Notify on song change. 2005-08-12 Raphael Slinckx * sources/rb-ipod-source.c: (rb_ipod_unplugged): Correct an inversion of two lines causing NULL to be unreffed