2006-06-18 James Livingston <
[email protected]>
* configure.ac: bump version
* NEWS: add NEWS for 0.9.5
2006-06-18 Jonathan Matthew <
[email protected]>
* lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
(rb_uri_handle_recursively):
Don't attempt to recurse into directories we can't open.
Fixes #341485.
2006-06-18 James Livingston <
[email protected]>
patch by: Jaap A. Haitsma <
[email protected]>
* shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
#344610.
2006-06-18 Jonathan Matthew <
[email protected]>
* bindings/python/rb.defs:
* shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
* shell/rb-shell-player.h:
* shell/rb-shell.c: (rb_shell_play_entry):
Add source parameter to rb_shell_player_play_entry, using the selected
source if not specified.
* shell/rb-play-order.c: (rb_play_order_class_init),
(rb_play_order_finalize), (rb_play_order_query_model_changed),
(rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
(default_playing_entry_removed):
* shell/rb-play-order.h:
Move entry removal handling back to the row-deleted signal, as we need
the entry to be present in the model. When changing to the next entry
after the playing entry is deleted, set the new entry as the playing
entry and then sync it to the player in an idle handler, so we don't
end up playing it if it was removed too.
* shell/rb-play-order-queue.c:
(rb_queue_play_order_playing_entry_changed),
(rb_queue_play_order_playing_entry_removed):
Use the playing-entry-removed handler from the play order class,
setting a flag so we don't try to remove the already-removed entry
from the model.
This makes removal of the playing entry from playlists etc. work more
or less correctly for all play orders. Fixes #344627.
2006-06-17 James Livingston <
[email protected]>
patch by: Elijah Newren <
[email protected]>
* tests/test-rhythmdb.c: fix the build with older versions of check
(again). Fixes #343718.
2006-06-17 James Livingston <
[email protected]>
* player/rb-recorder-gst.c: (rb_recorder_construct): use the right
name for capsfilter's "caps" property. Fixes #344968.
2006-06-17 Jonathan Matthew <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_playpause):
Don't leak the selected entry list when finding an entry to play.
2006-06-17 James Livingston <
[email protected]>
* widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
(rb_entry_view_selection_changed_cb): don't do O(n) operations here,
as a O(1) one works fine, and it will get called often when the user
deleted multiple tracks. Part of #344922.
2006-06-17 James Livingston <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_stop): make
rb_shell_player_stop and rb_shell_player_playpause not mutually
recursive. Fixed #336912.
2006-06-17 Jonathan Matthew <
[email protected]>
* podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
Treat nested elements inside properties as unknown. Fixes parsing of
podcast feeds with unescaped HTML in description tags, bug #344532.
2006-06-15 William Jon McCann <
[email protected]>
* shell/rb-shell.c (rb_shell_quit): Unset the playing source
when quitting. Fixes #344875.
2006-06-15 Jonathan Matthew <
[email protected]>
* shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
Move the playing-entry-removed handling to after the normal entry
delete handling, since we're called after the entry has been removed
from the query model now. Fixes crashes described in #344627.
2006-06-13 William Jon McCann <
[email protected]>
* widgets/rb-rating-helper.c: (rb_rating_render_stars),
(rb_rating_get_rating_from_widget):
* widgets/rb-rating.c: (rb_rating_class_init),
(rb_rating_finalize), (rb_rating_get_property),
(rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
(rb_rating_button_press_cb):
Don't crash when ratings icons can't be found. Fixes #344533.
2006-06-12 Jonathan Matthew <
[email protected]>
* remote/dbus/Makefile.am: Fix build with builddir != srcdir.
2006-06-11 Jonathan Matthew <
[email protected]>
* Makefile.am:
* configure.ac:
* remote/Makefile.am:
* remote/dbus/Makefile.am:
* remote/dbus/rb-client.c:
* shell/Makefile.am:
New dbus client program providing --play/--next etc. arguments.
Fixes #340863, #155763.
2006-06-11 Jonathan Matthew <
[email protected]>
* podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
g_mkdir_with_parents returns -1 on error, not 0. Fixes #344316.
2006-06-10 Ryan P Skadberg <
[email protected]>
patch by: Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
to Library incorrectly
2006-06-08 Jonathan Matthew <
[email protected]>
* lib/rb-file-helpers.c: (rb_canonicalise_uri):
Return input string untouched if gnome_vfs_uri_new returns NULL.
* sources/rb-static-playlist-source.c: (impl_receive_drag),
(rb_static_playlist_source_add_list_uri):
Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
URIs don't break it. Fixes #339033.
2006-06-08 James Livingston <
[email protected]>
* lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
for sources on the edge (i.e. the queue). Fixes #328409.
* sources/rb-ipod-source.c: fix typo
2006-06-08 James Livingston <
[email protected]>
* configure.ac:
* sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
--enable-ipod-writing to enable the ipod syncing code.
2006-06-08 Jonathan Matthew <
[email protected]>
* sources/rb-library-source.c: (layout_example_label_update):
add missing comma so we don't generate broken markup.
2006-06-08 James Livingston <
[email protected]>
* metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
tag-merging with id3v2mux as well as id3mux. From #342330.
2006-06-07 James Livingston <
[email protected]>
* tests/test-rhythmdb.c: #define fail_if for old version of check
which don't have it. Hopefully fixes #343718.
2006-06-07 James Livingston <
[email protected]>
* shell/rb-playlist-manager.c:
(rb_playlist_manager_cmd_edit_automatic_playlist): don't call
g_value_array_free with NULL. Fixes #341053.
2006-06-07 James Livingston <
[email protected]>
* shell/rb-playlist-manager.c:
(rb_playlist_manager_playlist_entries_changed),
(rb_playlist_manager_set_source): use the "post-entry-delete" signal
instead of "row-removed", which fixes updating "burn playlist"
sensitivity. Fixes #331119.
2006-06-07 James Livingston <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_error): display errors
rather than restarting if the source uses _RETRY and there is an
actual error (like an undecodable stream) rather than it just dropping
out and causing EOS.
2006-06-07 James Livingston <
[email protected]>
* widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
free the pixbufs if they couldn't be loaded. Fixed #343852.
2006-06-07 James Livingston <
[email protected]>
* sources/rb-playlist-source-recorder.c: (response_cb): make pressing
the close button on the dialog work. Fixes #335346.
2006-06-07 Jonathan Matthew <
[email protected]>
* sources/rb-sourcelist-model.c: (path_is_droppable),
(path_is_reorderable):
* sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
(row_activated_cb), (emit_show_popup), (key_release_cb),
(rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
Ignore group marker rows in the source list. Fixes #344089, a couple
of other crashers, and some weird UI glitches too.
2006-06-07 James Livingston <
[email protected]>
* backends/gstreamer/rb-player-gst.c: check if we have a duration if
the seeking query fails. This is needed because many gst elements
don't implement the seeking query yet. Should fix 329977.
2006-06-06 James Livingston <
[email protected]>
* configure.ac: bump version for a prerelease, turn on track transfer
by default.
* sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
ipod transfer stuff, since it has big issues and we'll hopefully land
real support (bug 310774) after 0.9.5
2006-06-06 James Livingston <
[email protected]>
* metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
id3v2mux once we've detected it.
2006-06-06 James Livingston <
[email protected]>
* lib/Makefile.am:
* tests/test-rhythmdb.c: undo accidental commit which caused
rb-thread.c to be built (which it isn't normally)
2006-06-06 James Livingston <
[email protected]>
* tests/test-rhythmdb.c: (test_rhythmdb_setup),
(test_rhythmdb_shutdown), (START_TEST): add message strings to all
fail_{if/unless} calls, as some versions of check need them (they are
optional in others). Should fix bug 343718.
2006-06-06 James Livingston <
[email protected]>
* lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
343836.
* lib/Makefile.am:
* lib/rb-thread.c: (process_actions):
* tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
tests that don't pass.
2006-06-05 James Livingston <
[email protected]>
* data/glade/Makefile.am:
* data/glade/load-failure.glade:
* data/rhythmbox.schemas: remove the remainder of the old load-failure
dialog.
2006-06-05 Jonathan Matthew <
[email protected]>
* bindings/python/rb.defs: Remove rb_debug stuff I accidentally
checked in.
2006-06-04 Jonathan Matthew <
[email protected]>
* bindings/python/rb.defs:
* sources/rb-source.h:
* sources/rb-source.c: (rb_source_class_init),
(rb_source_set_property), (rb_source_get_property),
(rb_sourcelist_group_get_type):
Add 'sourcelist-group' property on the RBSource class, describing how
sources should be grouped in the source list.
* sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
(rb_sourcelist_model_new), (real_row_is_separator),
(rb_sourcelist_model_is_row_visible),
(rb_sourcelist_model_row_is_separator), (get_group_for_path),
(rb_sourcelist_model_drag_data_received), (path_is_reorderable),
(rb_sourcelist_model_row_draggable),
(rb_sourcelist_model_row_inserted_cb),
(rb_sourcelist_model_row_deleted_cb),
(rb_sourcelist_model_get_group_path):
* sources/rb-sourcelist-model.h:
* sources/rb-sourcelist.c: (rb_sourcelist_init),
(rb_sourcelist_append):
Add group marker rows for each sourcelist group, and use these to
insert sources in the right place. Sort transient sources (DAAP
shares) by name. Show the group marker rows as separators when the
next visible row is a source. Make persistant sources (playlists) and
removable sources reorderable using drag and drop, restricting them
within the source groups.
* sources/rb-audiocd-source.c: (rb_audiocd_source_new):
* sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
* sources/rb-daap-source.c: (rb_daap_source_new):
* sources/rb-ipod-source.c: (rb_ipod_source_new):
* sources/rb-static-playlist-source.c:
(rb_static_playlist_source_new):
* plugins/generic-player/rb-generic-player-source.c:
(rb_generic_player_source_new):
* plugins/generic-player/rb-nokia770-source.c:
(rb_nokia770_source_new):
* plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
Add source list group information to existing source classes.
Fixes #318754 and #336492.
2006-06-04 James Livingston <
[email protected]>
* widgets/rb-song-info.c: (rb_song_info_populate_dialog),
(rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
win32 build fixes.
2006-06-03 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_class_init),
(rhythmdb_query_model_remove_from_main_list):
* rhythmdb/rhythmdb-query-model.h:
Add a new 'post-entry-delete' signal, emitted when the entry has been
removed from the model's data structures.
* shell/rb-play-order.c: (rb_play_order_finalize),
(rb_play_order_query_model_changed),
(rb_play_order_post_entry_delete_cb):
Use the new signal to update the play order, so the queue play order
doesn't try to scroll to entries that don't exist in a way that causes
the tree view to crash. Fixes #340216.
2006-06-03 Jonathan Matthew <
[email protected]>
* backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
Fix rb_debug call I missed previously.
2006-06-03 Jonathan Matthew <
[email protected]>
* metadata/rb-metadata-gst.c:
Don't use NULL as the error message for ignored files, as it crashes
with some C libraries. Fixes #343713.
2006-06-03 Jonathan Matthew <
[email protected]>
* widgets/rb-dialog.c: (rb_error_dialog):
* widgets/rb-dialog.h:
Mark rb_error_dialog as taking printf-like arguments, and use a format
string for the primary message rather than passing in the message
directly.
* lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
* shell/rb-shell-player.c: (rb_shell_player_cmd_play),
(info_available_cb):
* shell/rb-playlist-manager.c: (load_playlist_response_cb):
* shell/rb-removable-media-manager.c:
(rb_removable_media_manager_eject_medium_cb):
Make sure all calls to rb_error_dialog use string constants for the
format string rather than passing the error message directly. Remove
an extra %s from the message used when playback fails. Fixes #343562.
* lib/rb-debug.h:
* sources/rb-audiocd-source.c:
* plugins/audioscrobbler/rb-audioscrobbler.c:
(rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
Mark rb_debug as taking printf-like arguments and fix a few resulting
warnings.
2006-06-02 James Livingston <
[email protected]>
* configure.ac:
+ macros/check.m4: add support for using check for unit tests, the .m4
files is so autogen can run without check being installed
* tests/Makefile.am:
+ tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
some of the old tests, and add some new ones. Currently
deserialisation tests 2 and 3 fail, for reasons I haven't figured out
yet (the query doesn't return any entries).
- tests/deserialization-test1.xml:
- tests/deserialization-test2.xml:
- tests/deserialization-test3.xml:
- tests/test-rhythmdb-indexing.c:
- tests/test-rhythmdb-simple.c:
- tests/test-rhythmdb-tree-deserialization.c: remove old tests that
have been ported
- tests/test-cd.c:
- tests/test-cmdline.c: remove obsolete tests
2006-06-02 James Livingston <
[email protected]>
* metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
(rb_add_id3_tagger), (rb_metadata_init): add support for using
id3v2mux, and check whether we are using a version of id3mux that has
the correct merge-mode behaviour.
* plugins/sample-python/Makefile.am: fix distcheck.
* rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
the changed-files source was added before trying to remove it.
* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
*old* bug which would crash if a query with top-level disjunctions
tried to check later disjunctive parts. Hooray for unit-testing.
2006-06-02 William Jon McCann <
[email protected]>
* player/rb-recorder-gst.c (rb_recorder_set_device):
Check for a null drive.
2006-05-31 Jonathan Matthew <
[email protected]>
* lib/Makefile.am:
* lib/rb-stock-icons.c: (rb_stock_icons_init):
Register the app icon as a builtin if the icon theme can't find it.
2006-05-31 James Livingston <
[email protected]>
* player/rb-recorder-gst.c: add missing include.
2006-05-30 William Jon McCann <
[email protected]>
* metadata/sj-metadata-musicbrainz.c: (lookup_cd):
* player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
(tick_timeout_cb), (rb_recorder_sync_pipeline),
(nautilus_burn_drive_get_device), (rb_recorder_get_device),
(rb_recorder_set_device), (rb_recorder_get_default_device):
* shell/main.c: (main):
* shell/rb-removable-media-manager.c:
(rb_removable_media_manager_finalize),
(get_nautilus_burn_drive_for_path),
(rb_removable_media_manager_playing_uri_changed_cb),
(rb_removable_media_manager_load_media),
(nautilus_burn_drive_get_device),
(rb_removable_media_manager_scan):
* sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
Update for libnautilus-burn 2.15.3 API changes.
Fixes #342604
2006-05-30 James Livingston <
[email protected]>
* daapsharing/rb-daap-connection.c: (handle_login): add a missing
"return" to that it asks for the password again if it was wrong.
2006-05-30 Jonathan Matthew <
[email protected]>
* metadata/rb-metadata-gst.c: Don't leak a reference to decodebin's
typefind element.
2006-05-30 James Livingston <
[email protected]>
* podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
(download_progress_cb): don't do wonky things if the transfer
"suceeds" without transferring any data.
2006-05-29 Jonathan Matthew <
[email protected]>
* sources/rb-library-source.c: (layout_example_label_update),
(build_filename): Fix crash when no audio profile is selected.
Fixes #341447.
2006-05-29 Jonathan Matthew <
[email protected]>
* shell/rb-shell.c: (rb_shell_clear_queue):
* shell/rb-shell.h:
* shell/rb-shell.xml:
* sources/rb-play-queue-source.c:
(rb_play_queue_source_clear_queue),
(rb_play_queue_source_cmd_clear):
* sources/rb-play-queue-source.h:
Add clearQueue dbus method.
2006-05-29 Jonathan Matthew <
[email protected]>
* shell/main.c: (main): Implement --quit option.
2006-05-29 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-private.h:
* rhythmdb/rhythmdb-tree.h:
* rhythmdb/rhythmdb.c: (process_added_entries_cb),
(rhythmdb_entry_insert), (rhythmdb_entry_set),
(rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
(rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
(rhythmdb_entry_get_boolean):
Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
bitmask, giving the db backend anything past the first 16 bits for
its own private use.
* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
(save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
Add a 'loading' flag to indicate that an entry is being loaded from
disk, and use that to ignore entry_set operations on such entries
rather than the 'inserted' flag, which doesn't quite mean the same
thing. Fixes #342694.
2006-05-28 Jonathan Matthew <
[email protected]>
* shell/rb-shell.xml: Remove visibility property, since it causes
crashes (dbus bug 7057) and doesn't do much else.
2006-05-28 James Livingston <
[email protected]>
* plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
patch by: Nguyễn Thái Ngọc Duy <
[email protected]>
* po/POTFILES.in: fix some more i18n issues.
2006-05-28 Jonathan Matthew <
[email protected]>
* bindings/python/rb.defs:
* shell/rb-shell-player.c: (rb_shell_player_playpause),
(filter_mmkeys):
* shell/rb-shell-player.h:
Deprecate the useless 'ignore_stop' parameter to
rb_shell_player_playpause, leaving it in place to avoid breaking dbus
API. From bug #334829.
2006-05-28 Jonathan Matthew <
[email protected]>
* plugins/generic-player/rb-generic-player-source.c:
(visit_playlist_dirs), (default_transform_playlist_uri):
When playlist parsing fails, unref the playlist, not the parent
source. Fix memory leak in playlist uri transform.
* plugins/generic-player/rb-nokia770-source.c:
(impl_transform_playlist_uri):
Fix memory leak in playlist uri transform.
2006-05-27 Ryan P Skadberg <
[email protected]>
* doc/reference/Makefile.am: fix grk-doc build
2006-05-27 James Livingston <
[email protected]>
patch by: Nguyễn Thái Ngọc Duy <
[email protected]>
* plugins/lyrics/lyrics.py:
* po/POTFILES.in: Make strings in plugins translatable. From bug
343081.
2006-05-27 James Livingston <
[email protected]>
* backends/Makefile.am:
* backends/gstreamer/Makefile.am:
* lib/Makefile.am:
* plugins/audioscrobbler/Makefile.am:
* plugins/generic-player/Makefile.am:
* po/POTFILES.in:
* rhythmdb/rhythmdb-monitor.c:
* rhythmdb/rhythmdb.c:
* sources/Makefile.am:
* widgets/Makefile.am: fix compilation after some CVS surgery was
done.
2006-05-26 Jonathan Matthew <
[email protected]>
* bindings/python/rhythmdb.defs:
* rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
(rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
(rhythmdb_query_deserialize):
* rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
(rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
(rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
(rhythmdb_entry_register_type_alias),
(rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
(rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
(_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
(rhythmdb_entry_podcast_feed_get_type),
(rhythmdb_entry_import_error_get_type),
(rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
* rhythmdb/rhythmdb.h:
Allocate a specified amount of extra memory for each db entry, to be
used to store fields specific to the entry type. Optionally associate
a name with each entry type, to be used when saving entries and
auto playlists to disk. Allow entry types to have multiple names
to handle older playlist files that used '0' to represent 'song'.
Use private data to store podcast fields.
* rhythmdb/rhythmdb-private.h:
* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
(rhythmdb_tree_parser_end_element), (save_entry),
(rhythmdb_tree_entry_set):
Simplify property handling by using existing code to convert
properties from strings to GValues and to set properties on entries.
Other assorted changes due to the above.
* sources/rb-audiocd-source.c: (rb_audiocd_source_new):
* sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
* sources/rb-generic-player-source.c:
(rb_generic_player_source_new):
* sources/rb-ipod-source.c: (rb_ipod_source_new):
* sources/rb-nokia770-source.c: (rb_nokia770_source_new):
* sources/rb-psp-source.c: (rb_psp_source_new):
Update for changes to rhythmdb_entry_register_type. None of these
entry types need names or use private data.
Fixes #337429.
2006-05-25 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
Fix creation of ignored-file db entries - need to check for
RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
2006-05-25 James Livingston <
[email protected]>
* AUTHORS:
* MAINTAINERS: update my email address
2006-05-25 James Livingston <
[email protected]>
* plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
"(... mix)" when searching for lyrics. Cache the lyrics under
~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
2006-05-25 Jonathan Matthew <
[email protected]>
* sources/rb-import-errors-source.c:
(rb_import_errors_source_class_init):
* sources/rb-playlist-source.c: (rb_playlist_source_class_init):
* sources/rb-browser-source.c: (rb_browser_source_class_init):
* sources/rb-source.c: (rb_source_class_init),
(default_move_to_trash):
Implement the basic move-to-trash operation once in rb-source.c,
rather than in each source type that supports it.
* plugins/ipod/rb-ipod-plugin.c:
* shell/rb-removable-media-manager.c:
* shell/rb-shell.c: (rb_shell_constructor):
Only scan removable media once after loading plugins. Add a flag
plugins can use to check if the initial scan has been done.
* data/rhythmbox.schemas:
Enable ipod and generic-player plugins by default.
* configure.ac:
* data/ui/Makefile.am:
* data/ui/generic-player-ui.xml:
* data/ui/rhythmbox-ui.xml:
* plugins/Makefile.am:
* plugins/generic-player/Makefile.am:
* plugins/generic-player/generic-player.rb-plugin.desktop.in:
* plugins/generic-player/rb-generic-player-plugin.c:
* sources/Makefile.am:
* sources/rb-generic-player-source.c:
* sources/rb-generic-player-source.h:
* sources/rb-nokia770-source.c:
* sources/rb-nokia770-source.h:
* sources/rb-psp-source.c: (visit_playlist_dirs):
* sources/rb-psp-source.h:
Pluginise generic player (and nokia770 and PSP) support and add
move-to-trash for players not mounted read-only.
Fixes #342868.
2006-05-24 William Jon McCann <
[email protected]>
* daapsharing/rb-daap-connection.c (handle_song_listing):
Lower bound check for batch commit. Fixes #342848
* sources/rb-daap-source.c (rb_daap_source_get_status):
Always set output variables if provided.
2006-05-25 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
(rhythmdb_tree_entry_delete), (remove_one_song):
* rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
Fix two db entry reference counting problems.
The initial reference on the entry is held by the db backend, but it
was never being dropped. The reference count was incremented when
adding an entry to the deleted_entries map and to the
deleted_entries_to_emit list, but only decremented for one of those.
2006-05-24 William Jon McCann <
[email protected]>
* daapsharing/rb-daap-connection.c (http_response_handler)
(rb_daap_connection_dispose):
Call soup_session_abort to make sure there are no outstanding
requests when we dispose of the connection. Ignore cancelled
messages in the callback.
2006-05-24 William Jon McCann <
[email protected]>
* sources/rb-daap-source.c (rb_daap_source_connection_cb)
(rb_daap_source_disconnect): Set a flag when disconnecting
the source. Check this flag in connection callback
to see if we should release the connection.
2006-05-24 William Jon McCann <
[email protected]>
* daapsharing/Makefile.am:
* daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
(rb_daap_connection_class_init), (connection_connected),
(connection_disconnected), (connection_operation_done),
(build_message), (connection_set_error_message),
(actual_http_response_handler), (http_get),
(entry_set_string_prop), (emit_progress_idle),
(handle_server_info), (handle_login), (handle_update),
(handle_database_info), (handle_song_listing), (handle_playlists),
(handle_playlist_entries), (handle_logout),
(rb_daap_connection_new), (rb_daap_connection_is_connected),
(connection_response_data_free), (connected_cb),
(rb_daap_connection_connect), (disconnected_cb),
(rb_daap_connection_finish), (rb_daap_connection_disconnect),
(rb_daap_connection_state_done), (rb_daap_connection_do_something),
(rb_daap_connection_dispose), (rb_daap_connection_set_property),
(rb_daap_connection_get_property):
* daapsharing/rb-daap-connection.h:
* daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
(OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
(DigestToString), (GenerateStatic_42), (GenerateStatic_45),
(rb_daap_hash_generate):
* daapsharing/rb-daap-hash.h:
* sources/rb-daap-source.c: (rb_daap_source_class_init),
(rb_daap_get_icon), (remove_source), (stop_browsing),
(create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
(connection_connecting_cb), (connection_disconnected_cb),
(release_connection), (rb_daap_source_connection_cb),
(rb_daap_source_activate), (rb_daap_source_disconnect_cb),
(rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
Adds a better async API for connect and disconnect. Doesn't share
callback data for every async call. Adds a connect signal. Uses
an operation-done signal to trigger the callbacks. Displays an
error when connections fail. A few refcounting fixes to fix
crashes. Uses a weak pointer to set the connection to NULL so we
don't clobber references. Wait for each disconnect when shutting
down sources. Split out DAAP hash stuff into its own file. Fix
typo in header.
Fixes #342643
2006-05-24 Jonathan Matthew <
[email protected]>
* sources/rb-auto-playlist-source.c:
(rb_auto_playlist_source_new_from_xml):
Initialize the gvalue used to hold the size limit correctly.
Fixes #342744.
2006-05-23 Jonathan Matthew <
[email protected]>
* shell/rb-shell.c: (rb_shell_window_delete_cb),
(rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
* shell/rb-shell.h:
* shell/rb-shell.xml:
Convert rb_shell_quit into a dbus method, and add visibility dbus
property.
2006-05-22 James Livingston <
[email protected]>
* rhythmdb/rhythmdb.h:
* rhythmdb/rhythmdb.c: (sync_entry_changed),
(rhythmdb_entry_is_editable), (action_thread_main),
(song_can_sync_metadata), (default_sync_metadata): Add entry-type
vfuncs for can_sync_metadata, and sync_metadata. The default is always
false, and syncing into the file.
(rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
(rhythmdb_entry_iradio_get_type),
(rhythmdb_entry_import_error_get_type):
* sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
change the DB.
2006-05-22 Jonathan Matthew <
[email protected]>
* rhythmdb/Makefile.am:
* rhythmdb/rhythmdb-monitor.c:
* rhythmdb/rhythmdb-private.h:
* rhythmdb/rhythmdb-query.c:
* rhythmdb/rhythmdb.c:
Split up rhythmdb.c a bit.
2006-05-22 Jonathan Matthew <
[email protected]>
* data/glade/audioscrobbler-prefs.glade:
Add a link to the last.fm server status page.
2006-05-20 Dennis Cranston <
[email protected]>
* plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
Capitalization fix.
* plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
(impl_create_configure_dialog): UI layout fixes, remove
dialog separator, and capitalization fix for window title.
* shell/rb-shell.c: (rb_shell_cmd_plugins): UI layout fixes,
and remove dialog separator.
* data/glade/plugins.glade: UI layout fixes.
* data/glade/audioscrobbler-prefs.glade: UI layout fixes,
and capitalization fix. Fixes #342438.
2006-05-20 Dennis Cranston <
[email protected]>
* data/glade/podcast-properties.glade: Fix layout of the download
location. Fixes #342431.
2006-05-21 Jonathan Matthew <
[email protected]>
* data/ui/rhythmbox-ui.xml:
We only need one copy of the 'add to queue' action in the edit menu.
2006-05-20 James Livingston <
[email protected]>
* data/ui/rhythmbox-ui.xml:
* shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
(rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
(rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
(rb_shell_clipboard_sync),
(rb_shell_clipboard_cmd_add_to_playlist_new),
(rb_shell_clipboard_cmd_queue_song_info),
(rb_shell_clipboard_playlist_add_cb), (generate_action_name),
(rb_shell_clipboard_playlist_deleted_cb),
(rb_shell_clipboard_playlist_renamed_cb),
(rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
(rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
* shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
dynamically generated with all the static playlists. Fixes bug 323364.
* shell/rb-shell.c: (construct_widgets), (construct_sources): use the
right child, so it doesn't go weird when art appears and disappears.
2006-05-20 James Livingston <
[email protected]>
patch by: Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_set_property),
(rhythmdb_query_model_finalize),
(rhythmdb_query_model_reapply_query_cb):
* rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
(rhythmdb_query_append_prop_multiple),
(rhythmdb_query_is_time_relative):
* rhythmdb/rhythmdb.h: re-run queries every minutes if they have
time-based criteria, fixes bug 341131.
2006-05-20 James Livingston <
[email protected]>
* plugins/artdisplay/artdisplay/__init__.py: don't display the art if
we have already changed playing entries. Interpolate the art size so
it doesn't jump when the old and new images have different aspect
ratios.
2006-05-20 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-private.h:
* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
(save_entry):
* rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
(rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
(rhythmdb_entry_get_ulong):
Include the GDate directly in RhythmDBEntry (it's only 8 bytes)
and elsewhere, use them on the stack rather than allocating on
the heap. From bug #342333.
2006-05-19 William Jon McCann <
[email protected]>
* player/rb-recorder-gst.c: (rb_recorder_error_quark),
(rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
(add_track), (eos_cb), (error_signal_idle),
(rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
(rb_recorder_construct), (recorder_track_free),
(rb_recorder_finalize):
* sources/rb-playlist-source-recorder.c:
Support libnautilus-burn size -> capacity API change. Add
some braces to blocks.
2006-05-19 William Jon McCann <
[email protected]>
* metadata/sj-metadata-musicbrainz.c:
(sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
Sync with sound-juicer in CVS. Fixes #342177
* sources/rb-audiocd-source.c: Don't declare variables
in the middle of a block (c99ism). Fix order of #includes.
Use gi18n.h. Don't include rhythmdb.h twice. Declare
one variable per line. Update copyright date.
2006-05-19 James Livingston <
[email protected]>
patch by: Hendrik Richter <
[email protected]>
* shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
"translator_credits" to a hyphen, so it doesn't cause problems for
tools that check access keys. Fixes bug 341832.
2006-05-19 James Livingston <
[email protected]>
* po/POTFILES.in: remove references to files that don't exist any more
(fixes make distcheck).
2006-05-19 Dennis Cranston <
[email protected]>
* plugins/lyrics/lyrics.py: Fix layout close button in
Song Lyrics dialog. Fixes bug 342322.
2006-05-19 James Livingston <
[email protected]>
patch by: Loïc Minier <
[email protected]>
* widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
(egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
version checks not break when libnotify goes to 1.0.0. Fixes bug
342244.
2006-05-18 James Livingston <
[email protected]>
* shell/rb-shell-clipboard.c:
* shell/rb-shell.c:
* sources/rb-podcast-source.c: Fix some conflicting keybindings.
2006-05-17 William Jon McCann <
[email protected]>
* sources/rb-playlist-source-recorder.c (get_song_description):
Reverse artist and title in song description. This
is useful because at least the title will be visible
when there is limited space.
2006-05-17 Jonathan Matthew <
[email protected]>
* daapsharing/rb-daap-connection.c: (connection_get_password):
Take gdk lock before emitting authenticate signal.
* sources/rb-daap-source.c: (connection_connecting_cb):
Get rid of the unnecessary idle handler (it's already called from one)
Fixes #342047 once more.
2006-05-17 Jonathan Matthew <
[email protected]>
* shell/rb-shell.c: (rb_shell_class_init):
* shell/rb-shell.h:
* widgets/rb-song-info.c: (rb_song_info_class_init),
(rb_song_info_construct_single), (rb_song_info_construct_multiple),
(rb_song_info_constructor), (rb_song_info_get_property),
(rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
(rb_song_info_forward_clicked_cb):
* widgets/rb-song-info.h:
* data/glade/song-info-multiple.glade:
* lib/rb-marshal.list:
* bindings/python/Makefile.am:
* bindings/python/rb.defs:
* bindings/python/rb.override:
Allow plugins to add pages to the notebooks used in song info windows,
and to track the current song displayed in single-entry windows.
* configure.ac:
* plugins/Makefile.am:
* plugins/lyrics/Loader.py:
* plugins/lyrics/Makefile.am:
* plugins/lyrics/lyrics.py:
* plugins/lyrics/lyrics.rb-plugin.desktop.in:
Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
as a separate window (for the playing song) or as a page in the song
info window. A few TODO items left, but this fixes #319320.
2006-05-17 Jonathan Matthew <
[email protected]>
Patch by: Roozbeh Pournader
* configure.ac:
* lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
Update eel_strdup_strftime from eel CVS HEAD. Fixes #341938.
2006-05-17 Jonathan Matthew <
[email protected]>
* sources/rb-daap-source.c: (update_connection_status):
Correct return value. Fixes #342047 again.
2006-05-17 Jonathan Matthew <
[email protected]>
* sources/rb-daap-source.c: (update_connection_status),
(connection_connecting_cb):
Update status in an idle handler so we don't rely on the gdk lock
being recursive (because it isn't any more). Fixes #342047.
2006-05-16 Jonathan Matthew <
[email protected]>
* lib/rb-util.c: (rb_make_duration_string),
(rb_make_elapsed_time_string):
* lib/rb-util.h:
Add a function for formatting an elapsed time string.
* shell/rb-shell-player.c: (rb_shell_player_init),
(rb_shell_player_sync_with_source),
(rb_shell_player_get_playing_time_string), (tick_cb):
Store elapsed time in the private data structure, and use the above
function.
* widgets/rb-header.c:
* widgets/rb-header.h:
Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
object, so everything has the same idea of the elapsed time.
Fixes #339693.
2006-05-16 James Livingston <
[email protected]>
* bindings/python/rhythmdb.defs:
* bindings/python/rhythmdb.override: give rhythmdb.query_model_new
some parametre defaults, so you don't have to pass None, False for the
sorting order.
2006-05-16 Jonathan Matthew <
[email protected]>
* bindings/python/rhythmdb.defs:
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_compute_status_normal):
* rhythmdb/rhythmdb-query-model.h:
* rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
* rhythmdb/rhythmdb.h:
Change the various compute_status methods to accept a singular/plural
pair to use in the status string.
* sources/rb-podcast-source.c: (rb_podcast_source_class_init),
(rb_podcast_source_cmd_new_podcast), (impl_get_status):
* sources/rb-source.c: (default_get_status):
Call entries 'songs' by default, and 'episodes' in the podcast source.
Fixes #340227.
2006-05-16 Jonathan Matthew <
[email protected]>
patch by: Paul Drain
* plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
Fixes #341817.
2006-05-16 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
Generate reorder maps correctly.
* widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
Scroll to the first entry from the old selection.
Fixes #322992.
2006-05-15 William Jon McCann <
[email protected]>
* data/ui/rhythmbox-ui.xml:
* lib/rb-preferences.h:
* shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
(rb_shell_playlist_created_cb),
(rb_shell_view_sidepane_changed_cb),
(rb_shell_sync_sidepane_visibility),
(rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
(sidepane_visibility_changed_cb):
* sources/rb-podcast-source.c:
Convert sourcelist visibility to side-pane visbility.
Fixes #339733
2006-05-15 Jonathan Matthew <
[email protected]>
* widgets/rb-header.c:
* widgets/rb-header.h: Stop RBHeader from referring to itself as
'player', and make it use the private data structure allocated for it.
2006-05-15 Jonathan Matthew <
[email protected]>
* configure.ac: enable metadata helper with dbus < 0.35.
2006-05-15 James Livingston <
[email protected]>
patch by: Alex Lancaster <
[email protected]>
* data/glade/song-info.glade:
* widgets/rb-song-info.c: (rb_song_info_construct_single),
(rb_song_info_populate_dialog), (rb_song_info_update_duration),
(rb_song_info_update_filesize): Add the file size into the song info
window. Fixes bug 340861.
2006-05-14 Jonathan Matthew <
[email protected]>
* bindings/python/rhythmdb.defs:
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_set_property),
(rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
* rhythmdb/rhythmdb-query-model.h:
Add a new method to chain query models without importing entries from
the parent into the child. This is useful when the subset of entries
in the child can be more easily determined by running a query than by
filtering entries from the parent.
* bindings/python/rb.defs:
* widgets/rb-library-browser.c: (rb_library_browser_class_init),
(rb_library_browser_set_property),
(rb_library_browser_get_property), (rb_library_browser_new),
(rebuild_child_model):
* widgets/rb-library-browser.h:
* sources/rb-auto-playlist-source.c:
(rb_auto_playlist_source_constructor):
* sources/rb-static-playlist-source.c:
(rb_static_playlist_source_constructor):
* sources/rb-browser-source.c: (rb_browser_source_constructor):
Use more efficient queries for constructing the browser query model
chain. Include the entry type at each level (allowing the rhythmdb-tree
backend to optimise the query) and run new queries rather than
filtering entries from the parent. Fixes #341402.
* configure.ac: remove reference to rhythmbox.pc that I missed earlier.
2006-05-14 Jonathan Matthew <
[email protected]>
* configure.ac:
* shell/Makefile.am:
* shell/main.c: (main), (load_uri_args), (send_present_message),
(unregister_dbus_handler), (handle_dbus_message),
(register_dbus_handler):
Add minimal support for dbus 0.31 - 0.35.
* doc/reference/Makefile.am:
* doc/reference/rhythmbox.types:
* data/Makefile.am:
* data/GNOME_Rhythmbox.server.in:
* data/rhythmbox.pc.in:
* remote/*:
* remote/bonobo/*:
Remove remaining bonobo and generic remote interface files.
2006-05-14 James Livingston <
[email protected]>
* shell/rb-shell.c: (construct_widgets):
* sources/rb-browser-source.c: (rb_browser_source_constructor): Never
resize the browser and queue-sidebar section of their panes, unless
the other section is below the minimum size. Fixes bug 331927.
2006-05-13 James Livingston <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_class_init),
(rhythmdb_query_model_set_property),
(rhythmdb_query_model_get_property),
(rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
(rhythmdb_query_model_insert_into_main_list),
(rhythmdb_query_model_insert_into_limited_list),
(rhythmdb_query_model_do_reorder),
(rhythmdb_query_model_set_sort_order), (_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_genre_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/rhythmdb-query-model.h: Make the sorting data be a gpointer
instead of a RhythmDBPropType (which can be put in a gpointer). Add a
"data destroy" property. Fixed bug 341543.
* bindings/python/rhythmdb.defs:
* bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
rhythmdb_query_model_set_sorting_order
* rhythmdb/rhythmdb-property-model.c:
(rhythmdb_property_model_drag_data_get):
* sources/rb-import-errors-source.c:
(rb_import_errors_source_constructor):
* sources/rb-missing-files-source.c:
(rb_missing_files_source_constructor):
* widgets/rb-entry-view.c: (rb_entry_view_append_column),
(rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
* widgets/rb-entry-view.h: adapt to the above change.
2006-05-13 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
(rhythmdb_tree_load):
Commit loaded entries in batches, rather than individually.
More startup time reduction.
2006-05-12 Ryan P Skadberg <
[email protected]>
* doc/reference/Makefile.am: fix gtk-doc compilation
2006-05-12 William Jon McCann <
[email protected]>
* plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
* plugins/artdisplay/artdisplay/CoverArtDatabase.py:
* plugins/artdisplay/artdisplay/Loader.py:
Correct fallback to medium size. Convert & to "and" when doing comparisons.
Only call the first artist the best match when album==Unknown.
Don't perform each query twice if album doesn't include "Vol N".
Fix searching for compilations. Fix blacklisting.
Part of bug #307848
2006-05-12 William Jon McCann <
[email protected]>
* Makefile.am:
* bindings/python/Makefile.am:
* bindings/python/rb.defs:
* bindings/python/rb.override:
* configure.ac:
* doc/reference/Makefile.am:
* plugins/Makefile.am:
* plugins/audioscrobbler/Makefile.am:
* plugins/ipod/Makefile.am:
* plugins/lirc/Makefile.am:
* plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
(impl_activate), (impl_deactivate):
* plugins/sample/Makefile.am:
* remote/Makefile.am:
* shell/Makefile.am:
* shell/main.c: (main), (main_shell_weak_ref_cb):
* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
(rb_shell_get_property), (rb_shell_window_state_cb),
(idle_hide_mainwindow), (rb_shell_set_visibility),
(rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
(rb_shell_set_song_property):
* shell/rb-shell.h:
* shell/rb-tray-icon.c: (rb_tray_icon_class_init),
(rb_tray_icon_sync_action), (rb_tray_icon_set_property),
(rb_tray_icon_get_property), (rb_tray_icon_new),
(rb_tray_icon_button_press_event_cb),
(rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
(rb_tray_icon_show_window_changed_cb):
* shell/rb-tray-icon.h:
Remove bonobo, require DBUS.
Patch from Jonathan Matthew <
[email protected]>
Fixes #339720
2006-05-13 James Livingston <
[email protected]>
* bindings/python/rb.override: fix some pointer-type warnings
2006-05-12 James Livingston <
[email protected]>
* lib/rb-util.c: (rb_value_free):
* lib/rb-util.h: Add function to unset and free a GValue* that was
allocated in the heap.
* metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
the metadata hastable values
* metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
leak the metadata hashtable structure
* metadata/rb-metadata-dbus.c:
(rb_metadata_dbus_read_from_message):use g_value_set_string instead of
using g_strdup and then _take_string
* rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
(rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
stat something.
* shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
leak the encoded string
* widgets/rb-property-view.c:
(rb_property_view_selection_changed_cb): set some variables to have
inital values, because some code paths may not set them before we use
them.
* plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
don't have python warning into a debug message".
2006-05-10 William Jon McCann <
[email protected]>
* data/rhythmbox.schemas: Use zero instead of null for
default burn speed. Fixes #341283.
2006-05-10 Jonathan Matthew <
[email protected]>
* bindings/python/rb.defs:
* widgets/rb-library-browser.c:
(rb_library_browser_get_property_view):
* widgets/rb-library-browser.h:
Add a method to get the property view for a given property.
* sources/rb-browser-source.c:
(rb_browser_source_cmd_choose_genre),
(rb_browser_source_cmd_choose_artist),
(rb_browser_source_cmd_choose_album):
Change the browser selection by changing the property view selection.
Makes the selection change visible, fixing #331740.
2006-05-10 Jonathan Matthew <
[email protected]>
* bindings/python/rb.defs:
* bindings/python/rb.override:
* rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
* shell/rb-statusbar.c: (*),
* sources/rb-import-errors-source.c: (impl_get_status):
* sources/rb-iradio-source.c: (impl_get_status):
* sources/rb-missing-files-source.c: (impl_get_status):
* sources/rb-source.c: (default_get_status),
(rb_source_get_status):
* sources/rb-source.h:
Allow sources to provide a progress value for the status bar.
Simplify status bar processing (much less polling).
Consider rhythmdb busy while it's still loading the database.
* daapsharing/rb-daap-connection.c: (*)
* daapsharing/rb-daap-connection.h:
* lib/rb-marshal.list:
* sources/rb-daap-source.c: (rb_daap_source_class_init),
(rb_daap_source_init), (connection_connecting_cb),
(rb_daap_source_activate), (rb_daap_source_get_paned_key),
(rb_daap_source_get_status):
Provide status information for DAAP connections, and move processing
of large responses into a separate thread.
Fixes bugs #322020 and #338978.
2006-05-09 James Livingston <
[email protected]>
Split the artdisplay plugin into several files.
Fix loader and amazon-search re-use issues.
Add some better search heuristics.
* configure.ac:
* plugins/artdisplay/Makefile.am:
* plugins/artdisplay/artdisplay.py:
* plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
* plugins/artdisplay/artdisplay/CoverArtDatabase.py:
* plugins/artdisplay/artdisplay/Loader.py:
* plugins/artdisplay/artdisplay/Makefile.am:
* plugins/artdisplay/artdisplay/__init__.py:
2006-05-09 James Livingston <
[email protected]>
* sources/rb-browser-source.h: remove the _has_first_added_column
stuff since it isn't actually used anywhere. Sources that want it
should just add it themselves, as the library already does
* bindings/python/rb.defs:
* sources/rb-daap-source.c: (rb_daap_source_class_init):
* sources/rb-library-source.c: (rb_library_source_class_init):
* sources/rb-removable-media-source.c:
(rb_removable_media_source_class_init): Remove the remanants of the
above.
2006-05-09 James Livingston <
[email protected]>
* bindings/python/rb.defs:
* sources/rb-browser-source.h: remove a function that was declared in
the header, but not defined anywhere.
2006-05-09 Jonathan Matthew <
[email protected]>
* plugins/artdisplay/.cvsignore:
* plugins/ipod/.cvsignore: Added.
2006-05-09 Jonathan Matthew <
[email protected]>
* sources/rb-auto-playlist-source.c:
(rb_auto_playlist_source_new_from_xml):
Fix reading of older playlist files where all three limits were
specified so we take the first nonzero limit. From #341053.
2006-05-09 James Livingston <
[email protected]>
* bindings/python/Makefile.am:
* bindings/python/rb.defs:
* bindings/python/rb.override: bind RBBrowserSource,
RBRemovableMediaSource and RBRemovableMediamanager.
2006-05-09 James Livingston <
[email protected]>
patch by: Baptiste Mille-Mathias <
[email protected]>
* data/glade/plugins.glade: make the plugin dialog look a bit better.
Fixes bug 339221.
2006-05-09 Jonathan Matthew <
[email protected]>
* widgets/rb-query-creator.c: (rb_query_creator_load_query):
Don't explode when trying to edit a query with no limit set.
2006-05-09 Jonathan Matthew <
[email protected]>
* shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
Clear the should_queue flag when switching to a non-submittable entry,
so we don't submit songs that played for three seconds before
switching to a podcast episode.
* rhythmdb/rhythmdb-query-model.c
(rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
in the drag data list.
2006-05-08 James Livingston <
[email protected]>
* lib/rb-util.c: (rb_value_array_append_data):
* lib/rb-util.h: add function which is basically a combination of
G_VALUE_COLLECT and g_value_array_append.
* rhythmdb/rhythmdb-query-model.h:
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_class_init),
(rhythmdb_query_model_set_property),
(rhythmdb_query_model_get_property),
(rhythmdb_query_model_finalize),
(rhythmdb_query_model_update_limited_entries),
(rhythmdb_query_model_set_sort_order),
(rhythmdb_query_model_within_limit),
(rhythmdb_query_model_limit_type_get_type): Make query model limits
saner. Rather than having <count=N, time=N, size=N> we now have a
<type, value> pair. This will also make it much easier to add new
limit types in the future.
* shell/rb-playlist-manager.c:
(rb_playlist_manager_set_automatic_playlist),
(rb_playlist_manager_cmd_edit_automatic_playlist):
* sources/rb-auto-playlist-source.c:
(rb_auto_playlist_source_finalize),
(rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
(_save_write_ulong), (_save_write_uint64),
(impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
(rb_auto_playlist_source_set_query),
(rb_auto_playlist_source_get_query):
* sources/rb-auto-playlist-source.h:
* sources/rb-library-source.c:
(rb_library_source_add_child_source):
* sources/rb-psp-source.c: (visit_playlist_dirs):
* widgets/rb-query-creator.c: (rb_query_creator_load_query),
(rb_query_creator_new_from_query), (rb_query_creator_get_limit):
* widgets/rb-query-creator.h: Adapt to the above change.
2006-05-08 James Livingston <
[email protected]>
* shell/rb-playlist-manager.c:
(rb_playlist_manager_cmd_edit_automatic_playlist):
* sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
(rb_auto_playlist_source_set_query),
(rb_auto_playlist_source_get_query): copy the query in the _get method
and free it in things calling that. Fixes a crasher.
2006-05-08 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
Make entries on newly mounted volumes visible immediately, hiding them
later if they turn out to be missing. Fixes #340068.
2006-05-07 Jonathan Matthew <
[email protected]>
* metadata/rb-metadata-gst.c: (rb_metadata_finalize):
Ignore zip files and ignore errors for files we've decided to ignore.
2006-05-07 Jonathan Matthew <
[email protected]>
* sources/rb-ipod-source.c: (hal_udi_is_ipod):
Add missing }, should fix #340844.
2006-05-06 James Livingston <
[email protected]>
* plugins/artdisplay/artdisplay.py: fade between covers, and fix a
typo.
2006-05-06 James Livingston <
[email protected]>
* widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
that we work with libnotify >= 0.4
2006-05-06 James Livingston <
[email protected]>
patch by: Joe Barnett <
[email protected]>
* configure.ac: check if we're using a version of libgpod that
supports the Motorola ROKR
* sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
for the db path, if we using the newer version.
(rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
2006-05-05 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_drag_data_get):
Use playback URI, not location, for drag data. Fixes #322597.
2006-05-03 Dennis Cranston <
[email protected]>
* data/glade/general-prefs.glade: HIG fixes from bug 340588.
2006-05-03 James Livingston <
[email protected]>
* metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
(rb_add_id3_tagger), (rb_metadata_save):
Set the tags on the tagging element when it is
created, not during pipeline creation - which is required for
dynamically created elements.
(ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
support for using the "vorbistag" element to re-tag ogg vorbis files.
Fixes bug 339878.
2006-05-03 James Livingston <
[email protected]>
patch by: Martin Szulecki <
[email protected]>
* plugins/artdisplay/artdisplay.py:
- Fix small bug callback of data loader getting overwritten on fast
connections.
- Add asynchronous loading with gnomevfs and urllib fallback (thx to
Jonathan Matthew)
- Fix Rhythmbox UI blocking while loading/searching cover art
- Split logic into CoverArtDatabase, AmazonCoverArtSearch
- Initial approach to allow additional "art search engines"
- Further modularization in a couple of places
- Minor fixes for empty entries (iradio, album, artist etc.)
2006-05-03 James Livingston <
[email protected]>
* shell/rb-playlist-manager.c:
(rb_playlist_manager_playlist_entries_changed),
(rb_playlist_manager_set_source): don't show the edit/delete/rename
options for non-local sources, rather than showing disabled ones.
* sources/rb-library-source.c: (add_child_sources_idle),
(rb_library_source_constructor), (rb_library_source_new),
(rb_library_source_library_location_changed),
(rb_library_source_add_child_source),
(rb_library_source_sync_child_sources): Create "child library" sources
when the user has multiple library locations set. Fixes bug 100552.
2006-05-03 Jonathan Matthew <
[email protected]>
* plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
* plugins/sample/sample.rb-plugin.desktop.in:
Finish changing 'Author' to 'Authors'
* rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
(rhythmdb_entry_import_error_get_type):
Implement get_playback_uri for import errors (returns NULL)
* shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
Use rhythmdb_entry_get_playback_uri to figure out if we can play the
entry, rather than doing entry type checks.
2006-05-02 James Livingston <
[email protected]>
patch from Alessandro Decina <
[email protected]>
* backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
the signal emission in the case of fatal-on-init errors. From bug
322268.
2006-05-02 James Livingston <
[email protected]>
* rhythmdb/rhythmdb.h:
* rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
(rhythmdb_entry_finalize), (_get_podcast_playback_uri),
(rhythmdb_entry_podcast_post_get_type),
(rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
virtual function to entry-types for getting the playback URI. From bug
330226.
* backends/gstreamer/rb-encoder-gst.c:
(create_pipeline_and_source), (extract_track):
* shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
to get the URI.
2006-05-02 James Livingston <
[email protected]>
patch by: Brian Cameron <
[email protected]>
* sources/rb-nokia770-source.c: more Solaris build fixes, from bug
340337.
2006-05-01 William Jon McCann <
[email protected]>
* plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
instead of clear. Use regex matching to strip "disc N"
from album. Match titles in ProductName. Perform
fallback queries including various artist compilations.
Include "us" locale. Improve queries when artist or album
is unknown. Use medium size image if large is unavailable.
patch by: Alex Lancaster <
[email protected]>,
William Jon McCann <
[email protected]>
2006-04-30 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
(conjunctive_query): Sanity check.
(evaluate_conjunctive_subquery):
Don't return TRUE immediately when a relative-time query criterion
matches. Fixes #339972.
2006-04-29 Jonathan Matthew <
[email protected]>
* widgets/eggtrayicon.c: (egg_tray_icon_notify):
Don't crash if primary or secondary are NULL.
2006-04-29 Jonathan Matthew <
[email protected]>
* doc/reference/Makefile.am: fix gtk-doc build yet again
2006-04-28 James Livingston <
[email protected]>
* plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
python console. Fixes bug 339934.
2006-04-27 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-property-model.c:
(rhythmdb_property_model_drag_data_get):
When creating uri list drag data, create a new query model based on
the query model the property model is attached to. Makes the
resulting query use the right entry type and include the upstream
query criteria. Fixes half of #327540.
2006-04-27 James Livingston <
[email protected]>
* backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
(profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
build fixes.
2006-04-27 James Livingston <
[email protected]>
* player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
2006-04-27 Jonathan Matthew <
[email protected]>
* shell/rb-playlist-manager.c: (rb_playlist_manager_init),
(rb_playlist_manager_save_data),
(rb_playlist_manager_save_playlists):
* shell/rb-playlist-manager.h:
* shell/rb-shell.c: (rb_shell_sync_state),
(idle_save_playlist_manager):
Remove a bit more threading insanity from the playlist manager.
2006-04-27 Jonathan Matthew <
[email protected]>
* shell/rb-playlist-manager.c:
* shell/rb-playlist-manager.h:
Remove dead code, add gtk-doc, remove threading insanity (mostly).
* shell/rb-shell.c: (rb_shell_sync_state),
(idle_save_playlist_manager), (construct_sources),
(rb_shell_select_source), (rb_shell_sync_party_mode):
Adjustments for above changes.
2006-04-26 William Jon McCann <
[email protected]>
* sources/rb-browser-source.c (impl_browser_toggled):
Reset browser when hidden. Fixes #339617.
2006-04-26 James Livingston <
[email protected]>
* backends/Makefile.am:
* backends/gstreamer/Makefile.am: work again with separated
built-roots
2006-04-26 James Livingston <
[email protected]>
* shell/rb-removable-media-manager.c:
(rb_removable_media_manager_set_uimanager): fix compilation with
-Werror and --enable-track-transfer.
2006-04-26 James Livingston <
[email protected]>
Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
implementing class. In theory allows alternate player implementations
to be selected at run-time rather than compile-time. Fixes bug 338667.
* Makefile.am:
* backends/Makefile.am:
* backends/gstreamer/Makefile.am:
* backends/gstreamer/rb-player-gst.h:
* backends/rb-player.c: (rb_player_interface_init),
(rb_player_get_type), (rb_player_open), (rb_player_opened),
(rb_player_close), (rb_player_play), (rb_player_pause),
(rb_player_playing), (rb_player_set_volume),
(rb_player_get_volume), (rb_player_set_replaygain),
(rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
(rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
(_rb_player_emit_buffering), (_rb_player_emit_error),
(_rb_player_emit_tick), (rb_player_error_quark):
* player/Makefile.am:
* player/rb-player-gst.c: (rb_player_gst_class_init),
(rb_player_init), (tick_timeout), (rb_player_gst_init),
(rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
(destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
(process_tag), (found_tag_cb), (buffering_cb),
(rb_player_gst_bus_cb), (rb_player_gst_construct),
(rb_player_gst_new):
* player/rb-player.h:
* shell/Makefile.am:
* sources/rb-audiocd-source.c:
* widgets/Makefile.am:
* widgets/rb-header.c: (rb_header_class_init):
2006-04-26 James Livingston <
[email protected]>
* podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
don't try to download an episode if it couldn't be parsed. Fixes bug
339712.
* shell/rb-removable-media-manager.c:
(rb_removable_media_manager_set_uimanager): don't show the "Copy to
Library" option when track transfer is disabled. Fixes bug 339728.
2006-04-26 James Livingston <
[email protected]>
* data/ui/Makefile.am:
* data/ui/daap-ui.xml:
* data/ui/rhythmbox-ui.xml:
* sources/rb-daap-source.c: (rb_daap_sources_init),
(rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
way that the ipod ui is. Fixes bug 339743.
2006-04-26 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
(process_added_entries_cb), (process_deleted_entries_cb),
(rhythmdb_commit_internal):
Combine the idle functions to emit entry-added and entry-deleted,
and combine as many invocations of same as possible. Another
significant reduction in startup time.
(rhythmdb_process_events), (rhythmdb_idle_poll_events):
Delay the next call to rhythmdb_process_events if the queue is
empty or if we can't process any of the events in the queue because
the database is read only.
This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
2006-04-25 William Jon McCann <
[email protected]>
* player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
* sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
Don't special case errors quite so much.
2006-04-25 William Jon McCann <
[email protected]>
* data/rhythmbox.schemas: Remove default speed.
* sources/rb-playlist-source-recorder.c (update_speed_combobox):
Add n-c-b 2.15 support. Make the default speed to slowest since
that is all that works reliably.
2006-04-25 William Jon McCann <
[email protected]>
* backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
Fix compiler error from last commit.
2006-04-25 James Livingston <
[email protected]>
patch by Alessandro Decina <
[email protected]> to fix some
transcoding-related issues. From bug 322268.
* backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
don't emit the signal, since the object is being finalised, which os a
Bad Thing To Do.
(profile_bin_find_encoder), (get_profile_from_mime_type),
(transcode_track): find the encoding element by iterating looking for
element in the class Codec/Encoder/Audio rather than the one named
"enc".
2006-04-25 Jonathan Matthew <
[email protected]>
* shell/rb-shell-player.xml:
* shell/rb-shell.xml:
Add signal argument information.
Patch by Tim Moloney <
[email protected]>
* shell/rb-shell.c: (rb_shell_window_state_cb):
Use the right value for the visibility_changed signal. Most of the
time, anyway.
2006-04-25 Jonathan Matthew <
[email protected]>
* plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
* plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
(impl_create_configure_dialog):
* data/glade/audioscrobbler-prefs.glade:
* shell/rb-audioscrobbler.c (*):
* lib/rb-preferences.h:
* data/rhythmbox.schemas:
Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
Add status information (# tracks submitted, # queued, last submit
time, result of last submission) to the plugin config window.
Remove 'enabled' setting, since it's easier to just disable the
plugin. Call the plugin 'last.fm profile', to distinguish it from the
nonexistant (so far) 'last.fm streaming' plugin.
* help/C/rhythmbox.xml: Update documentation for last.fm profile
plugin
Fixes some of #325848. We still don't provide a way to view the
submission queue.
2006-04-25 James Livingston <
[email protected]>
patch by: Anders Petersson <
[email protected]>
* podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
the YY-MM-DD format.
2006-04-23 James Livingston <
[email protected]>
* bindings/python/override_common.c: (_helper_wrap_pointer_glist),
(_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
* bindings/python/override_common.h:
* bindings/python/rb.override: python binding fixes
2006-04-23 James Livingston <
[email protected]>
* shell/rb-statusbar.c: (rb_statusbar_finalize),
(rb_statusbar_sync_with_source),
(rb_statusbar_source_status_changed_cb): do the sync in an idle
callback, rather than immediately every time. Takes ~5% off my warm-cache
startup time.
* bindings/python/rhythmdb.defs: fix the types using for
RhythmDBEntryTypes.
2006-04-22 James Livingston <
[email protected]>
* data/ui/rhythmbox-ui.xml:
* shell/rb-shell.c:
* sources/rb-daap-source.c: (rb_daap_source_class_init),
(remove_source), (rb_daap_sources_init),
(rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
(rb_daap_source_disconnect):
* sources/rb-source.c: (rb_source_class_init),
(rb_source_deactivate):
* sources/rb-source.h: move the "disconnect" functionality from into
RBSource to RBDaapSource where it belongs. Fixes bug 338464.
2006-04-22 James Livingston <
[email protected]>
* widgets/rb-library-browser.c: (rb_library_browser_constructor):
actually get the translated strings for browser headers (they were
already marked as translatable). Fixes bug 339380.