2006-02-02 James Livingston <
[email protected]>
* NEWS: update NEWS
* configure.ac: bump version to 0.9.3
* data/Makefile.am: pass make distcheck. patch from Christopher Aillon
<
[email protected]>, fixed bug 329517.
2006-02-02 Jonathan Matthew <
[email protected]>
Patch from Alex Lancaster <
[email protected]>
* widgets/rb-song-info.c: (rb_song_info_constructor):
Make year and disc number fields non-editable if tag editing
is disabled. Fixes #329463.
2006-02-01 James Livingston <
[email protected]>
* rhythmdb/rhythmdb-property-model.c:
(rhythmdb_property_model_row_inserted_cb),
(rhythmdb_property_model_prop_changed_cb),
(rhythmdb_property_model_entry_removed_cb): handle hidden entries
correctly. Fixes bug 327061.
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_entry_changed_cb): emit change notification of
the HIDDEN property when an entry is removed for being hidden.
* rhythmdb/rhythmdb-query-model.h:
* sources/rb-iradio-source.c: (rb_iradio_source_do_query):
* widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
models's "connected" property. Whatever it was needed for seems to
have gone.
2006-02-01 James Livingston <
[email protected]>
patch by: Jonathan Matthew <
[email protected]>
* shell/rb-shell-player.c: (_idle_unblock_signal_cb),
(rb_shell_player_playing_changed_cb): block the signal to prevent
re-entrancy. Fixes bug 329329 and fixes the first click of the play
button pausing.
2006-02-01 James Livingston <
[email protected]>
* metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
/should/ now work, if the neccessary plugins get ported.
2006-01-30 James Livingston <
[email protected]>
* daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
string properties to "Unknown" is the string is empty. Kind of fixes
bug 327495.
* rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
gettext calls once, rather than once per time the function is used.
This stops us making tens of thousands of gettext calls on startup,
which reduces the cpu-time of startup by 10-20%
2006-01-29 James Livingston <
[email protected]>
* rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
(rhythmdb_add_uri):
* metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
for files containing known video streams.
2006-01-29 Jonathan Matthew <
[email protected]>
* INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
required.
2006-01-29 Jonathan Matthew <
[email protected]>
* INSTALL.quick: More random updates
* 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):
Remove user sort data handling, take a property ID and a reverse
flag instead.
(rhythmdb_query_model_insert_into_main_list),
(rhythmdb_query_model_insert_into_limited_list),
(rhythmdb_query_model_do_reorder),
(_reverse_sorting_func):
Handle reverse sorting by calling _reverse_sorting_func, which
calls the real sort function and reverses the result.
(rhythmdb_query_model_set_sort_order):
Allow this to be called to set the initial sort order for limited
queries, and handle reverse sorting when reordering.
(rhythmdb_query_model_location_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):
Sort functions moved from rb-entry-view.c.
* rhythmdb/rhythmdb-query-model.h:
Add the sort functions, and update the changed functions.
* widgets/rb-entry-view.c: (rb_entry_view_set_property):
Just call _resort_model when the query model is set, since it
does all the same things.
(rb_entry_view_append_column):
Rework bits so the rating column doesn't have to be so much of a
special case.
(rb_entry_view_append_column_custom):
Take a property ID to sort on, rather than arbitrary custom data.
(rb_entry_view_resort_model):
Query model does all the reverse sort handling now.
* widgets/rb-entry-view.h: Update _append_column_custom.
* sources/rb-play-queue-source.c:
(rb_play_queue_source_constructor):
* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
(rb_podcast_source_post_date_cell_sort_func),
(rb_podcast_source_post_status_cell_sort_func),
(rb_podcast_source_post_feed_cell_sort_func):
Updates required by all the other changes.
* rhythmdb/rhythmdb-property-model.c:
(rhythmdb_property_model_drag_data_get):
Sort the query results on the selected property,
so they arrive in the expected order. All the other changes were made
to make this possible. Fixes bug #327494.
2006-01-29 Jonathan Matthew <
[email protected]>
* shell/rb-shell-clipboard.c:
Use GTK_STOCK_REMOVE icon for the remove action in
the play queue too.
2006-01-29 Jonathan Matthew <
[email protected]>
* sources/rb-play-queue-source.c:
(rb_play_queue_source_constructor),
(rb_play_queue_source_update_count):
Don't make the 'queued songs' column clickable,
and add the queued song count to the column title.
2006-01-29 James Livingston <
[email protected]>
* configure.ac: remove "experimental" marking from DAAP, and enable by
default if the dependencies are found.
2006-01-29 James Livingston <
[email protected]>
* NEWS: update NEWS
2006-01-29 James Livingston <
[email protected]>
patch by: William Jon McCann <
[email protected]>
* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
(rb_podcast_source_feed_title_cell_data_func): Revert the change of
property used for the feed list. Fixes problem with feeds with no
episodes not showing up.
2006-01-29 Jonathan Matthew <
[email protected]>
* shell/rb-play-order-random-by-age-and-rating.c:
(rb_random_by_age_and_rating_get_entry_weight):
Fix compile errors, bug #328978.
2006-01-28 Jonathan Matthew <
[email protected]>
* INSTALL.quick, README: Random updates
* README.lirc: Add notes on controlling Rhythmbox with LIRC
2006-01-28 James Livingston <
[email protected]>
* rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
default rating back to 0 (from 2.5, which was needed for autorating).
* shell/rb-play-order-random-by-age-and-rating.c:
(rb_random_by_age_and_rating_get_entry_weight):
* shell/rb-play-order-random-by-rating.c:
(rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
2.5 for the purposes of weighting entries.
2006-01-28 James Livingston <
[email protected]>
* lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
translator comments, to make it clearer what the "friendly time"
formatting strings mean.
2006-01-27 Jonathan Matthew <
[email protected]>
* daapsharing/rb-daap-connection.c: (http_response_handler):
Fix the sense of the overflow check so it'll accept valid input.
2006-01-27 James Livingston <
[email protected]>
Patch from Alex Lancaster <
[email protected]>
* lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
escape paths when using rb_uri_handle_recursively. Closes bug 139646.
2006-01-27 Jonathan Matthew <
[email protected]>
Patch by: Alex Lancaster <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
Don't include the artist field in the window title if it's blank.
Fixes #325973.
2006-01-26 William Jon McCann <
[email protected]>
* shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
Use stock delete icon for move to trash and stock remove
for remove menu item.
2006-01-26 Jonathan Matthew <
[email protected]>
* shell/rb-shell.c: (rb_shell_constructor),
(idle_handle_load_complete): Don't start the playlist save
timeout until we've loaded the playlists, otherwise we'll
write an empty playlist file if startup takes too long.
2006-01-25 William Jon McCann <
[email protected]>
* shell/rb-shell.c: Make view toolbar toggle use
shift+ctrl+t. Fixes #327585.
2006-01-25 James Livingston <
[email protected]>
patch by: Christope Fergeau <
[email protected]>
* daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
(http_response_handler): fix a potential buffer overflow issue.
2006-01-25 James Livingston <
[email protected]>
* widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
Year column wide enough to display "Unknown"
2006-01-25 James Livingston <
[email protected]>
* sources/rb-podcast-source.c: (rb_podcast_source_constructor),
(rb_podcast_source_post_status_cell_data_func): make the episode
status wording better. Part of bug 321607.
2006-01-25 James Livingston <
[email protected]>
* data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
others with a separator.
* shell/rb-shell-clipboard.c: Rename "Delete" to "Remove" and use the
stock Delete icon.
2006-01-24 Jonathan Matthew <
[email protected]>
* data/rhythmbox.desktop.in: Add GTK to categories. Fixes #328047.
2006-01-23 James Livingston <
[email protected]>
* widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
0.3.2. Fixed bug 328158.
2006-01-23 James Livingston <
[email protected]>
* metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
(gulong_gst_date_transform), (rb_metadata_class_init):
* metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
2006-01-23 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
(rhythmdb_commit_internal), (rhythmdb_entry_insert),
(record_entry_change): Protect added_entries and changed_entries with
a mutex, so it doesn't crash on startup on SMT/SMP machines.
2006-01-23 James Livingston <
[email protected]>
* sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
the browser for audio CDs.
2006-01-22 James Livingston <
[email protected]>
* daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
NEVER_FAIL as it causes the daemon-not-running error to never be
reported, resulting in bug 319438 re-occurring.
2006-01-22 Jonathan Matthew <
[email protected]>
* sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
Just call the podcast manager's update method. Unbreaks the 'update
all feeds' command.
2006-01-22 Jonathan Matthew <
[email protected]>
* sources/Makefile.am: Fix typo. Fixes bug #327970.
2006-01-21 Jonathan Matthew <
[email protected]>
* configure.ac: Don't disable DAAP with gstreamer 0.10
* daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
(rb_daap_src_class_init), (rb_daap_src_init),
(rb_daap_src_finalize), (rb_daap_src_set_property),
(rb_daap_src_get_property), (rb_daap_src_write),
(rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
(_split_uri), (rb_daap_src_open):
* daapsharing/rb-daap-src.h:
Mostly fix seeking, handle chunked transfer encoding, and port to
gstreamer 0.10.
* player/rb-player-gst.c:
* sources/rb-daap-source.c: (start_browsing), (stop_browsing):
Remove rb_daap_src_initialize and rb_daap_src_shutdown.
Fixes bugs #326738 and #318852, and brings #309609 one step closer to
being fixed.
2006-01-21 James Livingston <
[email protected]>
patch by: Alex Lancaster <
[email protected]> to add support
for Year metadata in DAAP sources. Fixes bug 327700.
* daapsharing/rb-daap-connection.c: (handle_song_listing):
2006-01-20 William Jon McCann <
[email protected]>
* widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
enum values instead of magic numbers.
* widgets/rb-property-view.c (rb_property_view_cell_data_func):
Add number of songs that match each property title into
the cell. Also show the number of properties that match
in the All entry.
(rb_property_view_constructor): Use enum values instead of
magic numbers.
* sources/rb-podcast-source.c (rb_podcast_source_constructor):
Query podcast posts instead of feeds for browser. Use
post SUBTITLE which is the location for the property view.
(rb_podcast_source_feeds_show_popup_cb): Remove unused code.
(construct_query_from_selection)
(rb_podcast_source_cmd_delete_feed)
(rb_podcast_source_cmd_properties_feed)
(rb_podcast_source_cmd_update_feed): Use variable to make
it clear what the selection data represents.
(rb_podcast_source_feed_title_cell_data_func): Add number
of posts that belong to each feed in the browser.
* rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
(rhythmdb_property_model_delete_prop): Decrement the refcount
for the All entry.
(rhythmdb_property_model_get_column_type): Use column enum
values instead of magic numbers. Add NUMBER column.
(rhythmdb_property_model_get_value): Use enum.
Add NUMBER column that represents the refcount for
the title of that property.
(rhythmdb_property_model_perform_sync): Don't fake up
a title for All here.
Fixes #327372.
2006-01-21 James Livingston <
[email protected]>
Make Rhythmbox start faster by not blocking the UI while database
initialisation and loading occurs. Closes bug 323348.
* rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
start 10 seconds later instead of immediately.
(rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
safe to call from any thread.
(rhythmdb_process_metadata_load), (rhythmdb_process_events),
(rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
so the UI doesn't block.
2006-01-18 James Livingston <
[email protected]>
* sources/rb-static-playlist-source.c:
(rb_static_playlist_source_do_query): fix dumb mistake I made that would
cause crashes. Oops. fixes bug 327477.
2006-01-17 William Jon McCann <
[email protected]>
* player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
Set GST element state to NULL before unreffing.
Fixes #327422.
2006-01-18 James Livingston <
[email protected]>
* sources/rb-static-playlist-source.c:
(rb_static_playlist_source_do_query): don't filter on the SONG entry
type, since the playlists can contain non-song entries. Fixes bug
327448.
* sources/rb-play-queue-source.c:
(rb_play_queue_source_class_init): disable the search box for the
queue.
2006-01-18 James Livingston <
[email protected]>
* sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
dragging of podcast episodes. Fixed bug 327450.
2006-01-18 James Livingston <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_drag_data_received): fix possible assertion when
dragging to an emoty playlist.
2006-01-18 Jonathan Matthew <
[email protected]>
* sources/rb-playlist-source-recorder.c:
Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
2006-01-17 James Livingston <
[email protected]>
patch by: Jonathan Matthew <
[email protected]>
* sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
different number of tracks than exist on the cd, since that happens
with audio+data hybrid CDs. Part of bug 325046.
2006-01-17 Jonathan Matthew <
[email protected]>
* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
Remove useless call to gtk_tree_view_column_set_clickable().
* widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
Don't store sort data for columns if the sort function is NULL,
so only sortable columns will be in the column sort data map.
(rb_entry_view_set_columns_clickable): Only make columns we can sort
on clickable.
(rb_entry_view_constructor): The 'playing icon' column is never
clickable, so don't connect a signal handler for it.
Fixes bug 326811.
2006-01-17 James Livingston <
[email protected]>
* metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
are 0.8 only. Fix element detection.
* rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
saving the new metadata failed
2006-01-17 James Livingston <
[email protected]>
* shell/rb-shell-player.c: (do_next_idle),
(rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
(eos_cb): release audio device when a playlist finishes. Fixes bug
323679.
2006-01-17 James Livingston <
[email protected]>
* rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
canonicalise the URIs when things are added via library watching.
2006-01-16 William Jon McCann <
[email protected]>
* sources/rb-playlist-source-recorder.c (update_speed_combobox):
Off by one error in default speed index.
2006-01-16 William Jon McCann <
[email protected]>
* sources/rb-playlist-source-recorder.c (get_write_speeds)
(update_speed_combobox, update_speed_combobox):
Get a list of the actually supported write speeds from
n-c-b >= 2.13.90. Otherwise use fallback list.
2006-01-17 James Livingston <
[email protected]>
* lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
(rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
don't get stuck on recursive symlinks. Fixed bug 125452.
2006-01-17 James Livingston <
[email protected]>
Add support for mass-storage audio players. Players are detected via
either the HAL "audio_player" capability, or a ".is_audio_player" file
in the root of the volume. Closes bug 325602.
* configure.ac: separate using HAL from ipod support.
* lib/rb-file-helpers.c: (rb_uri_is_local):
* lib/rb-file-helpers.h: add function to determine whether a URI is
local.
* rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
(rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
(rhythmdb_process_file_created_or_modified), (queue_stat_uri),
(queue_stat_uri_tad), (add_thread_main), (action_thread_main),
(rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
* rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
directories can be scanned for files to add as non-SONG entries.
* shell/rb-removable-media-manager.c:
(rb_removable_media_manager_mount_volume): add checking for
mass-storage players.
* sources/rb-audiocd-source.c: (rb_audiocd_source_new):
* sources/rb-ipod-source.c: (rb_ipod_source_new),
(hal_udi_is_ipod):
* sources/rb-removable-media-source.c:
(rb_removable_media_source_class_init),
(rb_removable_media_source_constructor): move some things up to the
RBRemovableMediaSource, rather than making subclasses do it.
* sources/Makefile.am:
* sources/rb-generic-player-source.c:
* sources/rb-generic-player-source.h: add mass-storage player source.
2006-01-16 James Livingston <
[email protected]>
patch by: William Jon McCann <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_base_row_deleted): fix build issue from last
commit.
2006-01-16 James Livingston <
[email protected]>
Patch to add support for "chained queries" and putting hidden tracks
in query models. Use chained queries to add search box support to
normal playlists, and to make hidden entries not get lost. Fixes bug
319278.
* 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): add "show-hidden" and
"base-model" properties.
(rhythmdb_query_model_set_connected),
(rhythmdb_query_model_has_pending_changes),
(rhythmdb_query_model_entry_added_cb),
(rhythmdb_query_model_entry_changed_cb), (idle_process_update),
(rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
(rhythmdb_query_model_remove_entry),
(rhythmdb_query_model_drag_data_received),
(rhythmdb_query_model_base_row_inserted),
(rhythmdb_query_model_base_row_deleted),
(rhythmdb_query_model_base_non_entry_dropped),
(rhythmdb_query_model_base_complete),
(rhythmdb_query_model_base_entry_prop_changed),
(rhythmdb_query_model_base_rows_reordered),
(rhythmdb_query_model_row_drop_possible): handle base-model by
chaining events and operations where necessary. Make hidden entries
not get added only if "show-hidden" is false.
(rhythmdb_query_model_child_index_to_base_index),
(rhythmdb_query_model_base_index_to_child_index),
(rhythmdb_query_model_get_entry_index): utility functions for handling
base-model entries.
(rhythmdb_query_model_reapply_query): apply the current query, and
remove entries that don't match it.
* rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
empty queries.
* sources/rb-source.c: (rb_source_set_property): move the unref later
to fix problem if it is the last reference.
* sources/rb-static-playlist-source.c:
(rb_static_playlist_source_class_init),
(rb_static_playlist_source_init),
(rb_static_playlist_source_finalize),
(rb_static_playlist_source_constructor), (impl_reset_filters),
(impl_search), (rb_static_playlist_source_do_query),
(impl_save_contents_to_xml),
(rb_static_playlist_source_add_location_internal): use a chained query
model to filter out hidden entries and implement the search box.
2006-01-15 James Livingston <
[email protected]>
* sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
the default playlist loading, which I broke earlier.
2006-01-15 James Livingston <
[email protected]>
patch by: William Jon McCann <
[email protected]>
* sources/rb-playlist-source.c: (playlist_iter_func): use
totem-plparser's new API version macros to check for API changes.
Handle the recent API change.
2006-01-15 Jonathan Matthew <
[email protected]>
* sources/rb-library-source.c: (impl_get_config_widget):
Ref the preferences object to match the unref in the
finalizer. Fixes some portion of #323505.
2006-01-15 Jonathan Matthew <
[email protected]>
* shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
* shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
Fix valgrind warnings about accessing uninitialised values.
2006-01-14 William Jon McCann <
[email protected]>
* sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
2006-01-14 Jonathan Matthew <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
Stops the 'now playing' icon from being displayed after the play
order finishes.
2006-01-14 Jonathan Matthew <
[email protected]>
* podcast/rb-podcast-manager.c:
(rb_podcast_manager_db_entry_deleted_cb):
Don't try to delete files we never downloaded, and cancel downloads
for deleted episodes. Fixes bug #326862.
* sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
Don't complain about NULL data items in the selection list.
2006-01-14 James Livingston <
[email protected]>
* shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
Make the name ofthe queue non editable. Fixes bug 326918.
2006-01-13 William Jon McCann <
[email protected]>
* sources/rb-playlist-source-recorder.c (burn_cd)
(ask_rewrite_disc): Don't use our locally copied functions
if we have at least 2.13.
2006-01-13 William Jon McCann <
[email protected]>
* podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
Correct the argument type for the process_error signal.
May fix bug #323154.
2006-01-13 James Livingston <
[email protected]>
save the queue to disk when exiting, and reload on startup. Fixed bug
326677 .
* shell/rb-playlist-manager.c:
(rb_playlist_manager_load_playlists),
(rb_playlist_manager_save_playlists_async): don't disable saving of
the queue
* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
add the queue source as a gobject property.
* sources/rb-play-queue-source.c:
(rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
code to save the queue to xml
* sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
load the queue from xml.
* sources/rb-playlist-xml.h:
* sources/rb-static-playlist-source.c:
(rb_static_playlist_source_load_from_xml),
(rb_static_playlist_source_new_from_xml):
* sources/rb-static-playlist-source.h: split the playlist xml loading
from the static playlist creation function, so the queue can use it.
2006-01-13 James Livingston <
[email protected]>
* rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
assertion that should be there. Fixes bug 325923.
* rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
return NULL if the entry already exists (e.g. as another type).
* daapsharing/rb-daap-connection.c: (handle_song_listing):
* podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
(rb_podcast_manager_insert_feed):
* sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
* sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
* sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
for the above function returning NULL.
2006-01-12 James Livingston <
[email protected]>
* doc/reference/Makefile.am: make gtk-docs build again when libnotify
is enabled. Fixes bug 326673.
* doc/reference/tmpl/eggtrayicon.sgml:
* doc/reference/tmpl/rb-daap-src.sgml:
* doc/reference/tmpl/rb-source.sgml:
* doc/reference/tmpl/rb-statusbar.sgml:
* doc/reference/tmpl/rb-tree-model-sort.sgml:
* doc/reference/tmpl/rhythmbox-unused.sgml:
* doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
2006-01-11 James Livingston <
[email protected]>
* widgets/rb-song-info.c: (rb_song_info_constructor),
(rb_song_info_new), (rb_song_info_populate_dialog_multiple),
(rb_song_info_populate_dialog): fill in the fields if all tracks have
the same value for properties. From bug 326054.
2006-01-11 James Livingston <
[email protected]>
* sources/rb-source.h:
* shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
(rb_shell_player_set_playing_source_internal), (eos_cb):
add support for RB_SOURCE_EOF_STOP, so that playback will stop after
every entry.
* sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
source use this. Closes bug 322077.
2006-01-10 William Jon McCann <
[email protected]>
* widgets/eggtrayicon.c (egg_tray_icon_notify):
In order for set_icon_data_from_pixbuf() to be
effective, one must not set an icon in _new().
2006-01-10 William Jon McCann <
[email protected]>
* widgets/eggtrayicon.c (egg_tray_icon_init)
(egg_tray_icon_unrealize, egg_tray_icon_cancel_message)
(egg_tray_icon_notify): Add support for libnotify 0.3.
* widgets/Makefile.am: Add missing NOTIFY_CLAGS.
* configure.ac: Determine the version of libnotify.
Fixes #326333.
2006-01-08 James Livingston <
[email protected]>
* daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
trying to share a track with unknown length.
2006-01-08 Jonathan Matthew <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_init):
Sync volume on startup so it doesn't default to 0.
2006-01-08 Jonathan Matthew <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_class_init),
(rb_shell_player_get_property), (rb_shell_player_open_location),
(info_available_cb): Add the iradio streamed song title as a
property, and emit a signal when it changes.
* shell/rb-shell.c: (rb_shell_constructor),
(rb_shell_player_elapsed_changed_cb),
(rb_shell_player_stream_song_changed_cb):
Issue a notification when the iradio song title changes.
Fixes #326166.
2006-01-08 Jonathan Matthew <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_init),
(rb_shell_player_finalize), (rb_shell_player_set_property),
(rb_shell_player_get_property), (rb_shell_player_sync_volume),
(rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
(rb_shell_player_set_volume_relative),
(rb_shell_player_get_volume), (rb_shell_player_set_mute),
(rb_shell_player_get_mute):
* shell/rb-shell-player.h:
* shell/rb-shell-player.xml:
Store volume as a property on RBShellPlayer, rather than in gconf.
Add some methods to control volume via dbus.
* shell/rb-shell.c: (rb_shell_constructor),
(rb_shell_volume_widget_changed_cb),
(rb_shell_player_volume_changed_cb):
* shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
Update volume using player properties rather than gconf, and sync the
volume with the volume control button when something else changes it.
Fixes #323840.
2006-01-07 William Jon McCann <
[email protected]>
* shell/rb-tray-icon.c (tray_popup_position_menu):
Make tray menu align with edge of panel.
patch from Jaap A. Haitsma <
[email protected]>
Fixes #319913
2006-01-07 William Jon McCann <
[email protected]>
* shell/rb-shell.c (sourcelist_drag_received_cb):
* shell/rb-playlist-manager.[ch] (create_name_from_selection_data)
(rb_playlist_manager_new_playlist_from_selection_data):
Make a reasonable default name for playlists created from
dropped data. Fixes #326116.
2006-01-07 William Jon McCann <
[email protected]>
* sources/rb-playlist-source-recorder.c (update_speed_combobox):
Use new gconf key.
(burn_cd): Always eject CD after burning. Too many drives
get confused if we don't. Save the speed used if the burn
was completed successfully.
* data/rhythmbox.schemas: Use our own speed instead of from
n-c-b. The situation is that the default_speed for n-c-b is most
likely the maximum write speed. This is fine for n-c-b because it
has burn-proof turned on. We can't turn it on for audio CDs
because the results are poor in quality. So we'll just pick a
default that should work for everyone (4).
2006-01-07 Jonathan Matthew <
[email protected]>
* shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
(rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
2006-01-07 Jonathan Matthew <
[email protected]>
* shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
in my previous commit. Fixes #326037.
2006-01-06 Ryan P Skadberg <
[email protected]>
patch by: Jonathan Matthew
* rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
error on Fedora Rawhide.
2006-01-07 Jonathan Matthew <
[email protected]>
* shell/rb-shell.c: (rb_shell_guess_type_for_uri):
Assume HTTP URLs ending with .xml or .rss are podcasts.
(rb_shell_add_uri): Handle adding podcast feeds.
* sources/rb-podcast-source.c: (rb_podcast_source_new):
Register as the source for podcast feeds.
2006-01-07 Jonathan Matthew <
[email protected]>
* shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
* shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
(rb_shell_preferences_append_view_page):
* shell/rb-shell-preferences.h:
Fix typo in function name. Fixes #325992.
2006-01-07 Jonathan Matthew <
[email protected]>
* shell/rb-audioscrobbler.c:
Add '+' to the list of characters to URI-encode, so it doesn't get
interpreted as a space.
2006-01-06 Jonathan Matthew <
[email protected]>
* daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
(rb_daap_connection_do_something): Don't crash if the DAAP server
goes away while we're still trying to log in.
2006-01-06 James Livingston <
[email protected]>
* rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
2006-01-06 James Livingston <
[email protected]>
Patch from: Alex Lancaster <
[email protected]> to add
support for Year to automatic playlists. Closes bug 321341.
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_set_property):
* 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_internal),
(rhythmdb_query_get_type), (rhythmdb_query_preprocess):
* rhythmdb/rhythmdb.h: Support special
RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
year in date.
* widgets/rb-query-creator-properties.c:
(yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
(yearCriteriaGetWidgetData): add Year to the list of criteria options.
2006-01-06 James Livingston <
[email protected]>
* configure.ac: make the playback backend selection work correctly
* daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
(rb_daap_src_class_init), (rb_daap_src_dispose),
(rb_daap_src_change_state), (rb_daap_src_initialize):
* daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
doesn't work for this class. Fixes bug 325934
2006-01-06 Jonathan Matthew <
[email protected]>
* configure.ac: Fix check for libnotify.
2006-01-05 William Jon McCann <
[email protected]>
* sources/rb-playlist-source.c (xml_get_and_trim_names):
Get name element for current lang and remove all name nodes
from the XML tree.
(get_playlist_name_from_xml): Try to get name element or
fall back to name attribute.
(rb_playlist_source_new_from_xml): Get name before turning over
to sub-types for parsing so that we can remove name elements
from the tree if necessary.
* shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
Load default playlists file if per user playlists are not found.
* data/playlists.xml.in:
* data/Makefile.am:
* data/.cvsignore: Add default set of playlists.
Fixes #323004
2006-01-05 Jonathan Matthew <
[email protected]>
* shell/main.c: (main): Don't use the dbus interface to show the
window if we're also going to use the bonobo interface.
2006-01-05 Jonathan Matthew <
[email protected]>
* shell/rb-history.c: (rb_history_set_playing):
Allow setting the playing song to NULL.
(rb_history_append), (rb_history_delete_link):
Don't randomly change position when entries are added and removed,
it confuses play orders.
* shell/rb-play-order-random.c: (rb_random_play_order_class_init):
Random orders always have a next entry if the model is not empty.
(rb_random_play_order_get_next), (rb_random_play_order_go_next):
Go back to the start of the history if we're past its end.
* shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
(rb_shuffle_play_order_go_next): Go back to the start of the history
if we're past its end.
(rb_shuffle_sync_history_with_query_model): Go back to the start of
the history if the current entry is removed.
* shell/rb-play-order.c: (rb_play_order_entry_added_cb),
(rb_play_order_entry_deleted_cb): Only update have next/previous for
the play order when the query has finished. This wasted about 10% CPU
while the query was running.
Fixes #324641: assertion failures when the query model was changed
such that the playing song was no longer present.
2006-01-05 James Livingston <
[email protected]>
* daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
(rb_daap_src_dispose), (rb_daap_src_change_state):
* rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
(rhythmdb_gda_finalize):
* widgets/rb-cell-renderer-pixbuf.c:
* widgets/rb-cell-renderer-rating.c:
(rb_cell_renderer_rating_class_init),
(rb_cell_renderer_rating_finalize):
* widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
* widgets/rb-load-failure-dialog.c:
(rb_load_failure_dialog_class_init),
(rb_load_failure_dialog_finalize):
* widgets/rb-rating.c: (rb_rating_class_init),
(rb_rating_finalize):
* widgets/rb-search-entry.c: (rb_search_entry_class_init),
(rb_search_entry_finalize): use G_DEFINE_TYPE
* widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
2006-01-05 James Livingston <
[email protected]>
patch by: Lubomir Marinov <
[email protected]>
* shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
the tarball.
* shell/rb-history.c: (rb_history_class_init),
(rb_history_finalize):
* shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
(rb_playlist_manager_finalize):
* shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
(rb_remote_init): use G_DEFINE_TYPE.
2006-01-05 James Livingston <
[email protected]>
* configure.ac: don't try to use libnotify >= 0.3.0 because of API
changes
2006-01-04 William Jon McCann <
[email protected]>
* shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
Disable burn action when source is not a playlist.
Fixes #323578.
2006-01-04 Jonathan Matthew <
[email protected]>
Optionally use libnotify to display song change and other
notifications, and provide an option to disable notifications.
Fixes #320355 and innumerable informal complaints.
* widgets/eggtrayicon.c: (egg_tray_icon_init),
(egg_tray_icon_unrealize), (egg_tray_icon_send_message),
(egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
(egg_tray_icon_notify):
* widgets/eggtrayicon.h:
* configure.ac:
* shell/Makefile.am:
Optionally use libnotify instead of eggnotificationbubble.
* shell/rb-tray-icon.c: (rb_tray_icon_class_init),
(rb_tray_icon_constructor),
(rb_tray_icon_show_notifications_changed_cb),
(rb_tray_icon_hide_notify_cb)
(rb_tray_icon_cancel_notify), (rb_tray_icon_notify):
Add 'show notifications' action handling, use G_DEFINE_TYPE, move
EggNotificationBubble pointer to eggtrayicon.
* data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
* lib/rb-preferences.h: Add #define for /ui/show_notifications key
* data/rhythmbox.schemas: Add schema for /ui/show_notification key
2006-01-04 William Jon McCann <
[email protected]>
* sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
Request a minimum size for the progress bar so that
the window doesn't shrink too small.
2006-01-03 Jonathan Matthew <
[email protected]>
* daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
(add_db_entry), (db_entry_deleted_cb):
Don't track the number of songs currently present, track the next ID
to assign. Fixes potential ID conflict problems.
(db_entry_changed_cb), (rb_daap_share_start_publish),
(rb_daap_share_stop_publish):
Watch for db entry changes, and when songs become non-hidden after
a successful stat, add them to the mapping tables. Fixes #325178,
making the DAAP server usable again.
2006-01-03 Jonathan Matthew <
[email protected]>
* shell/rb-statusbar.c: (rb_statusbar_class_init),
(rb_statusbar_construct), (rb_statusbar_init),
(rb_statusbar_finalize), (rb_statusbar_set_property),
(rb_statusbar_get_property), (rb_statusbar_new),
(rb_statusbar_sync_with_source):
* shell/rb-statusbar.h:
Remove visibility management code, stop watching for play order
changes (status bar doesn't show play order any more), remove unused
'player' property, and some other minor cleanup.
* shell/rb-shell.c: (rb_shell_constructor),
(rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
(rb_shell_sync_statusbar_visibility):
Manage status bar visibility here rather than in the status bar
itself, so we can take small mode into account. Fixes #323589.
2006-01-03 Jonathan Matthew <
[email protected]>
* widgets/eggnotificationbubble.c: (draw_bubble):
Move the bubble off the visible screen while setting up bevels.
Fixes #316810.
2006-01-01 Jonathan Matthew <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_init),
(rb_shell_player_finalize):
Remove unused structure members.
(do_next_idle), (rb_shell_player_error):
Only queue one call to do_next_idle, so we don't skip tracks if we get
two errors for the same song. Fixes #325216.
2006-01-01 Jonathan Matthew <
[email protected]>
* data/glade/podcast-feed-properties.glade,
podcast/rb-feed-podcast-properties-dialog.c:
(rb_feed_podcast_properties_dialog_init),
(rb_feed_podcast_properties_dialog_update):
Add 'last episode' field to the podcast feed properties dialog.
* podcast/rb-feed-podcast-properties-dialog.c:
(rb_feed_podcast_properties_dialog_update_last_update),
(rb_feed_podcast_properties_dialog_update_last_episode),
podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
Use last-seen property for the time at which we last updated the feed,
and post-time for the time the last episode was published.
* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
Handle upgrades from 0.9.2; if no post-time was found for a podcast
feed, use last-seen (which in 0.9.2 was the last post time).
Fixes #323894.
2006-01-01 James Livingston <
[email protected]>
patch by: Gunnar Steinn Magnusson <
[email protected]>
* sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
year from the ipod database.
2006-01-01 Jonathan Matthew <
[email protected]>
* metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
Only set the pipeline back to NULL state for really uninteresting
files. This was causing deadlocks with various video files.
Fixes #324912.
2006-01-01 Jonathan Matthew <
[email protected]>
* data/glade/song-info-multiple.glade:
Add disc number label and field.
* widgets/rb-song-info.c: (rb_song_info_construct_single),
(rb_song_info_constructor):
Handle widgets for disc number.
(rb_song_info_sync_entries_multiple):
Set disc number property on selected entries.
Fixes #324777.
2006-01-01 Jonathan Matthew <
[email protected]>
* iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
* podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
Activate the default widget when enter is pressed in these dialogs.
Fixes #322887.
2006-01-01 Jonathan Matthew <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
Use rb_shell_player_get_playing_entry, so we get the right entry
when playing from the queue. Fixes #325379.
2005-12-31 Jonathan Matthew <
[email protected]>
* podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
Include podcast posts with no publication date. Typically
seen in static collections rather than feeds.
2005-12-31 Jonathan Matthew <
[email protected]>
* shell/main.c: (main): Don't attempt to handle
bonobo-only arguments if we couldn't get a bonobo
client proxy.
2005-12-31 Jonathan Matthew <
[email protected]>
* daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
(rb_daap_mdns_publish_cancel): Clear our_service_name so we don't
abort if daap sharing is disabled and then re-enabled.
2005-12-29 William Jon McCann <
[email protected]>
* podcast/rb-podcast-parse.c (rb_insert_item):
Add debugging.
(rb_podcast_parser_start_element): Support itunes:image.
Add debugging. Don't abuse the break statement. Warn
if state is unknown.
(rb_podcast_parser_end_element): Add debugging. Warn
if state is unknown.
(rb_podcast_parser_characters): Warn if state is unknown.
Fixes parsing of feeds that use the itunes:image element.
Fixes #324632
2005-12-28 Jonathan Matthew <
[email protected]>
* sources/rb-iradio-source.c: (handle_playlist_entry_cb),
(stations_view_drag_data_received_cb):
Remove calls to rhythmdb_entry_lookup_by_location, as
rb_iradio_source_add_station does that anyway.
(rb_iradio_source_add_from_playlist):
If the URL doesn't point to a playlist, add it as the stream
URL instead.
2005-12-27 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
so we don't get an assertion failure.
Fixes #325025.
2005-12-24 Jonathan Matthew <
[email protected]>
* shell/main.c: (load_uri_args): don't compile this in if
neither bonobo nor dbus are enabled. Fixes #324890.
2005-12-22 Jonathan Matthew <
[email protected]>
* sources/rb-audiocd-source.c:
(rb_audiocd_scan_songs): Always return the pipeline to NULL state,
so it closes the device.
2005-12-20 James Livingston <
[email protected]>
* metadata/rb-metadata-gst.c: make the state changes time-out again,
so that it doesn't spend forever getting stuck on the one file. Don't
report errors for failing to change state on known non-audio files.
* player/rb-player-gst.c: (rb_player_construct): let playbin deal with
audio sink creation if we can't create the gconfaudiosink. This lets
it work with only gst-plugins-base on 0.10.
2005-12-20 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_set_sort_order):
Fix a tiny memory leak in the previous commit.
2005-12-20 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_set_sort_order):
Don't try to emit reorders for empty query models, since it doesn't
achieve anything and it results in a few warnings.
2005-12-19 William Jon McCann <
[email protected]>
* sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
Make burn dialog non-resizable so that the expander can shrink.
Fixes #308951.
2005-12-19 Jonathan Matthew <
[email protected]>
* rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
add entries without a location, rather than those with one.
2005-12-19 James Livingston <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
the error isn't set.
2005-12-19 James Livingston <
[email protected]>
* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
add entries without a location. Fixes bug 324290.
* rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
without a location.
* shell/main.c: (main): don't crash if dbus initialisation fails
without setting an error
2005-12-19 Jonathan Matthew <
[email protected]>
* sources/rb-library-source.c: Remove unused structure members
(rb_library_source_do_query): Actually use the cached 'all' query.
Fixes #324025.
2005-12-16 Jonathan Matthew <
[email protected]>
* sources/rb-audiocd-source.c
(rb_audiocd_get_cd_info): tab
(rb_audiocd_scan_songs): Return boolean success/failure,
fix error messages a bit.
(metadata_cb): Don't crash if we have no tracks
(rb_audiocd_load_songs): Don't try to read metadata if we can't read
the CD.
Fixes #324222.
2005-12-15 William Jon McCann <
[email protected]>
* shell/rb-shell.c (rb_shell_sync_fullscreen)
(rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
key.
Patch from Jonathan Matthew <
[email protected]>
Fixes #324157
2005-12-14 William Jon McCann <
[email protected]>
* shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize)
(rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen)
(fullscreen_changed_cb):
* lib/rb-preferences.h:
* data/ui/rhythmbox-ui.xml:
* data/rhythmbox.schemas:
Add fullscreen mode.
Fixes #324075.
2005-12-14 Ryan P Skadberg <
[email protected]>
* configure.ac: Removed DBUS_SERVICES_DIR from top-level
configure. It was not working with RPM.
* data/Makefile.am: Switched dbus directory location to use
datadir instead of variable that was not working.
2005-12-13 James Livingston <
[email protected]>
patch by: Alex Lancaster <
[email protected]>
* sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
the podcast browser work again. Closes bug 323856.
2005-12-12 William Jon McCann <
[email protected]>
* sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
Remove C99ism.
* lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
(rb_utf_friendly_time):
* lib/rb-cut-and-paste-code.h:
* podcast/rb-feed-podcast-properties-dialog.c:
(rb_feed_podcast_properties_dialog_parse_time):
* podcast/rb-podcast-properties-dialog.c:
(rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
to display the date in a more user friendly way.
For example, if the feed was updated yesterday it will say:
Last updated: Yesterday 10:00 AM
instead of printing the date.
2005-12-12 William Jon McCann <
[email protected]>
* podcast/rb-podcast-parse.c (rb_set_channel_value)
(rb_set_item_value, rb_insert_item, rb_validate_channel_propert)
(rb_validate_item_propert, rb_podcast_parser_start_element)
(rb_podcast_parser_end_element, rb_podcast_parser_characters):
Use RB style. Check for NULL before strcmp. No C++ comments.
(rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
Don't set invalid mime type when mime type is NULL. Fix leaks.
(rb_podcast_parse_date): Add support for some real world
date formats.
(rb_podcast_parse_time, rb_podcast_parse_channel_free)
(rb_podcast_parse_item_free): Style and no need to check
for NULL before g_free.
May fix #323742
2005-12-12 James Livingston <
[email protected]>
* player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
with gstreamer 0.10, which replaced audioscale.
* shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
function to free the SoupSession
* shell/rb-source-header.c: (rb_source_header_set_property),
(rb_source_header_disclosure_toggled_cb),
(rb_source_header_view_browser_changed_cb),
(rb_source_header_sync_control_state):
* sources/rb-iradio-source.c: (rb_iradio_source_class_init):
* sources/rb-library-source.c: (rb_library_source_class_init):
* sources/rb-source.c: (rb_source_class_init),
(rb_source_get_status), (default_get_browser_key),
(rb_source_get_browser_key), (rb_source_can_browse),
(rb_source_notify_status_changed),
(rb_source_notify_filter_changed):
* sources/rb-source.h: seperate the enabling of browsers from the use
of a gconf key.
2005-12-11 William Jon McCann <
[email protected]>
* data/glade/podcast-feed-properties.glade:
* data/glade/podcast-properties.glade: Use scrolled viewports
for description text. Fix regression of #320509.
2005-12-11 James Livingston <
[email protected]>
* sources/rb-auto-playlist-source.c:
(rb_auto_playlist_source_class_init), (impl_reset_filters),
(impl_search), (rb_auto_playlist_source_do_query),
(rb_auto_playlist_source_set_query),
(rb_auto_playlist_source_get_query): add support for the search box
to automatic playlists.
* sources/rb-library-source.c: (rb_library_source_dispose): fix minor
memory leak.
2005-12-11 James Livingston <
[email protected]>
* NEWS: update NEWS
2005-12-11 James Livingston <
[email protected]>
* rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
(rhythmdb_load), (monitor_subdirectory),
(rhythmdb_sync_library_location): start the library sync and
monitoring in an idle callback.
2005-12-10 William Jon McCann <
[email protected]>
* sources/rb-podcast-source.c (rb_podcast_source_class_init)
(rb_podcast_source_constructor): Remove unused pixbuf column.
(rb_podcast_source_set_property, rb_podcast_source_get_property):
Use consistent style.
Fixes #322961.
2005-12-11 James Livingston <
[email protected]>
* rhythmdb/rhythmdb-property-model.c:
(rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
(rhythmdb_property_model_insert),
(rhythmdb_property_model_delete_prop):
* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
(rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
(destroy_tree_property):
* rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
(rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
GMemChunks, they are crap and deprecated. Improves startup-time and
memory usage slightly.
2005-12-10 William Jon McCann <
[email protected]>
* shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
Added license and website info.
* MAINTAINERS.old: Add Colin.
* MAINTAINERS: Add James.
* AUTHORS: Put back in order. Add extra space between name and email
to make it easier to read. Add James and jonathan.
* widgets/rb-song-info.c (rb_song_info_init)
(rb_song_info_constructor): Make sure close button is primary/rightmost.
2005-12-10 Jonathan Matthew <
[email protected]>
Play queue implementation. Closes bug 107787.
* data/rhythmbox.schemas: add items for whether the queue should be
displayed as a sidebar, and the height of the sourcelist if it is.
* data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
playlist, and podcast popups; add 'view queue as sidebar' menu item,
add popups for queue as source and as sidebar. We need a separate
popup for the sidebar view because otherwise it's hard to tell which
of the visible entry views the action came from.
* lib/rb-preferences.h: Add constant for queue-as-sidebar preference
* po/POTFILES.in: Add new file
* podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
Add helper function for deciding if a podcast episode is available for
playback.
* rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
reorder entries in the query model.
(idle_process_update): Handle new update type used to insert entries
at a particular position in the query model.
(rhythmdb_query_model_add_entry): Use new update type, take an 'index'
parameter to specify the position (-1 meaning 'at the end').
(rhythmdb_query_model_insert_into_main_list): Handle the 'index'
parameter.
(rhythmdb_query_model_remove_from_main_list): Abort if we're getting
bad entry removal updates for entries that aren't in the model.
(rhythmdb_query_model_emit_reorder): Add helper function for
reordering rows.
(rhythmdb_query_model_move_entry): New method for moving entries
around in the model
(rhythmdb_query_model_entry_added_cb),
(rhythmdb_query_model_update_limited_entries),
(rhythmdb_query_model_do_reorder),
(rhythmdb_query_model_do_insert): Pass through the index parameter,
use rhythmdb_query_model_emit_reorder where appropriate.
* shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
Don't allow the queue to be deleted.
(handle_playlist_entry_cb): Update for method signature change
(rb_playlist_manager_save_playlists_async),
(rb_playlist_manager_get_playlists): Don't save the play queue,
don't report it as a playlist.
* shell/rb-play-order.c: Include queue play order in the list of
available orders.
* shell/rb-shell.c
(rb_shell_class_init), (rb_shell_get_property): Add new property
for access to the clipboard object.
(rb_shell_constructor): Handle playing-from-queue signal to update the
sourcelist display; add queue sidebar in to UI, listen for queue
sidebar pane changes, and read initial settings from gconf.
(rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb):
Only tell the sourcelist the source has changed if the new source is
not the queue, as we update the sourcelist differently in that case.
(rb_shell_set_window_title): Only use the cached window title if the
playing state was the same when it was created.
(rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
(rb_shell_sync_pane_visibility): Only hide the side pane if the
sourcelist is hidden and the queue is shown as a source.
(rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
mode, since it doesn't make any sense.
(sourcelist_visibility_changed_cb): Update the visibility of the pane
too.
(rb_shell_sync_paned): Update the queue sidebar pane separator too.
(sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
(rb_shell_jump_to_entry_with_source): Handle jump to entry when
playing from queue shown as sidebar.
* shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
MusicProperties action here from rb-shell-player.c, since it acts like
cut/copy/paste etc.
(rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
(rb_shell_clipboard_get_property): new property for queue source.
Watch for selection changes in the sidebar entry view as well as the
normal one.
(rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
actions and MusicProperties.
(rb_shell_clipboard_cmd_queue_delete),
(rb_shell_clipboard_cmd_add_song_to_queue),
(rb_shell_clipboard_cmd_song_info),
(rb_shell_clipboard_cmd_queue_song_info): New action handlers.
* shell/rb-shell-player.{c,h}: Track the source the current playing entry
actually came from (could be the playing source, or the queue), add a
new play order object for the queue, add a property for the queue
source, add a signal for when we switch between playing from the
source and from the queue.
(rb_shell_player_set_property): Handle playing directly from the
queue so we stop once the queue is empty. Create queue play order
when we get the queue source.
(rb_shell_player_get_playing_source): Return the source we're actually
playing from.
(rb_shell_player_get_playing_entry): Get playing entry from queue if
that's where it is.
(rb_shell_player_set_playing_entry): Update the queue play order if
that's where we're playing from.
(rb_shell_player_play_order_update_cb): Take has next/previous for the
queue into consideration too.
(swap_playing_source): Helper function for switching the playing
source.
(rb_shell_player_do_previous): Check the queue, even though there's
never a previous entry in it (yet), swap playing source if it changed.
(rb_shell_player_do_next): Check the queue for entries to play before
the normal play order, and swap playing source if it changed.
(rb_shell_player_do_previous_or_seek): Check the queue for previous
entries to go to as well.
(rb_shell_player_playpause): Check the queue before the selection and
the play order, and swap playing source if it changed.
(rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
(rb_shell_player_entry_activated_cb): Use
rb_podcast_manager_entry_downloaded, do some tapdancing to make
activating queue entries work properly (move the activated entry to
the start of the queue and then play it); if we were playing from the
queue, clear its playing entry so it'll start again from the start
after the activated entry.
(rb_shell_player_sync_buttons): MusicProperties action handler moved
to rb-shell-clipboard.c
(actually_set_playing_source): Add helper for updating the playing
source.
(rb_shell_player_set_playing_source_internal): Emit playing-from-queue
signal if we stop or start doing so; use actually_set_playing_source;
emit playing-source-changed if we actually did change source.
* sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
rb_static_playlist_source_add_location.
* sources/rb-library-source.c (rb_library_source_class_init): Allow
enqueueing of songs from the library.
* sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
enqueueing of sonsg from playlists.
(rb_playlist_source_entry_added_cb): Add extra parameter for
rhythmdb_query_model_add_entry.
* sources/rb-podcast-source.c (rb_podcast_source_class_init):
Implement (can_)add_to_queue for this class.
(rb_podcast_source_entry_activated): Use
rb_podcast_manager_entry_downloaded.
(impl_can_add_to_queue): Return TRUE if at least one entry that has
been downloaded is selected.
(impl_add_to_queue): Only add downloaded entries to the queue.
* sources/rb-source.{c,h}:
(rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual
methods.
(rb_source_class_init): Don't allow enqueueing by default; implement
add_to_queue though.
(default_add_to_queue): Add all selected entries to the queue.
* sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
would be playing if there wasn't anything in the queue).
(set_source_playing): Helper function for manipulating tree store.
(rb_sourcelist_set_playing_source): Use set_source_playing
(rb_sourcelist_preempt_playing_source): Update preempted source
pointer, manipulate source states.
* sources/rb-static-playlist-source.{c,h}:
(rb_static_playlist_source_add_location_internal),
(rb_static_playlist_source_add_location),
(rb_static_playlist_source_add_entry): Add index parameter for
specifying where in the playlist the new entry goes.
(rb_static_playlist_source_new_from_xml), (impl_paste),
(rb_static_playlist_source_add_list_uri),
(rb_static_playlist_source_add_location_swapped),
(rb_static_playlist_source_add_locations),
(rb_static_playlist_source_non_entry_dropped),
(rb_static_playlist_source_row_inserted):
Handle new index parameter everywhere it appears
(rb_static_playlist_source_move_entry): New method for moving entries
around in the playlist.
* widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
warnings when trying to scroll entry views that have never been
displayed.
* shell/rb-play-order-queue.{c,h}: New files, implementing a linear
play order that removes the old entry when switching to a new one.
* sources/rb-play-queue-source.{c,h}: New files, implementing a
static playlist subclass that has a second entry view for the sidebar
view using alternate formatting, and that displays the number of
entries it contains in its source list entry.
2005-12-10 James Livingston <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_add_entry),
(rhythmdb_query_model_drag_data_received):
* sources/rb-static-playlist-source.c:
(rb_static_playlist_source_non_entry_dropped): when things are
dropped, ignore any blank lines in the list of uris. Make the source
responsible for adding new items to the db.
* rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
empty string.
2005-12-10 James Livingston <
[email protected]>
* shell/rb-shell-player.c: (rb_shell_player_set_property),
(rb_shell_player_sync_buttons),
(rb_shell_player_selection_changed_cb): watch for the
"selection-changed" signal, so that the Song Properties get enabled.
Closes bug 323694.
2005-12-10 James Livingston <
[email protected]>
* data/rhythmbox.schemas: fix the gconf schema
2005-12-10 James Livingston <
[email protected]>
* metadata/rb-metadata-gst.c: don't set the state to NULL when inside
the decoded-pad callback with gstreamer 0.8, it causes problems.
2005-12-10 Jonathan Matthew <
[email protected]>
Remove more junk from RBEntryView. Closes bug 323640.
* widgets/rb-entry-view.{c,h}:
Remove unused private structure members, replace 'playing' boolean
with an enum (so we know if we're paused too), and store a pointer to
the RBShellPlayer too.
(rb_entry_view_class_init), (rb_entry_view_set_property),
(rb_entry_view_get_property):
Remove 'entry-selected' and 'changed' signals and
'playing-entry' property, add 'selection-changed' signal and
'shell-player' and 'playing-state' properties.
(rb_entry_view_new): Take the shell player object reference
(rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
(rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
No longer needed, shell player is the place to get this information.
(rb_entry_view_busy), (rb_entry_view_get_duration),
(rb_entry_view_get_total_size), (rb_entry_view_get_first_entry),
(rb_entry_view_get_next_from_entry),
(rb_entry_view_get_previous_from_entry),
(rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
(rb_entry_view_get_num_entries):
Removed, callers should go to the query model directly.
(rb_entry_view_playing_song_changed): Update active query model, emit
row changed signals to update pixbufs, and scroll to the playing song
when the playing song changes, based on a signal from the shell
player.
(queue_changed_sig), (rb_entry_view_row_changed_cb),
(emit_entry_changed): Evil, removed.
(rb_entry_view_selection_changed_cb): Remove old signals, add new
selection-changed signal.
(rb_entry_view_select_none), (rb_entry_view_select_entry):
Remove selection lock. It didn't work anyway.
(rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
(rb_entry_view_emit_row_changed): Simple helper function to emit
row-changed signals.
* widgets/Makefile.am: Entry view needs headers from the shell/
directory.
* widgets/rb-song-info.{c,h}: Use the query model for everything except
scrolling the entry view to show the entry being displayed.
(rb_song_info_class_init), (rb_song_info_get_property): Add new
'source' property so we can watch for query model changes.
(rb_song_info_finalize): Unref objects, disconnect signal handlers
(rb_song_info_set_property): Watch for query model changes, don't
watch for entry view changes.
(rb_song_info_new): Take source as a parameter, use the source's entry
view unless one was specifically supplied.
(rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
Use query model rather than entry view to move between songs.
(rb_song_info_update_buttons): Use query model.
(rb_song_info_query_model_changed_cb): Handle query model changes.
* shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
Only one copy of the code to enable/disable the CD burning action
(rb_playlist_manager_playlist_entries_changed):
Use the query model to get the number of entries, not the entry view.
* shell/rb-play-order-random-by-age-and-rating.c,
shell/rb-play-order-random-by-age.c,
shell/rb-play-order-random-by-rating.c,
shell/rb-play-order-random-equal-weights.c:
Use G_DEFINE_TYPE
* shell/rb-shell-player.{c,h}:
Remove a few unused entries from the structure.
(rb_shell_player_set_property):
Don't use the 'changed' signal on the entry view (it's evil)
(rb_shell_player_have_first): No longer needed
(rb_shell_player_play): Just tell the entry view it's playing
(rb_shell_player_playpause): Tell the entry view it's paused
when pausing.
(rb_shell_player_entry_view_changed_cb): No longer used, removed.
(rb_shell_player_property_row_activated_cb):
Get the entry to play using the query model, not the entry view.
(rb_shell_player_sync_buttons): Update entry view state while we're
here.
(rb_shell_player_set_playing_source_internal): Update entry view state
(rb_shell_player_get_playing): Ask the entry view, not the player.
This now returns TRUE when paused. This makes rb_shell_set_elapsed
and rb_shell_set_window_title work properly, so you get "(Paused)" in
the window title and tray icon tooltip.
(rb_shell_player_get_mm_player): Not used anywhere, so removed.
* sources/rb-iradio-source.c, sources/rb-library-source.c,
sources/rb-podcast-source.c, sources/rb-playlist-source.c:
(rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
view constructor, pass the source in to the song info widget
constructor.
* shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
Use 'selection-changed' instead of 'changed', since that's what the
clipboard cares about.
(rb_shell_clipboard_set_source): Don't die if source == NULL
2005-12-10 James Livingston <
[email protected]>
* player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
* sources/rb-playlist-source-recorder.c:
(_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
stuff not use the deprecated API when compiled against 2.13
2005-12-10 James Livingston <
[email protected]>
patch by: Alex Lancaster <
[email protected]>
* widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
problem where the genre tag was getting set to the artist. Closes bug
323642.
2005-12-09 William Jon McCann <
[email protected]>
* rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
Return NULL if can't get first iter.
Fixes #323663
2005-12-09 William Jon McCann <
[email protected]>
* sources/rb-iradio-source.[ch] (impl_song_properties): Use
updated rb_station_properties_dialog_new API.
(rb_iradio_source_add_from_playlist): New public function.
(rb_iradio_source_first_time_changed): Use add_from_playlist.
* shell/rb-shell.c (new_station_location_added): Handle
iradio location added signal.
(rb_shell_cmd_new_station): Use new iradio station dialog.
* iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button. Fix typo.
(rb_station_properties_dialog_new): Don't squeeze new
station functionality into this class.
(rb_station_properties_dialog_response_cb): ditto.
(rb_station_properties_dialog_update_title): Make
consistent with other properties dialogs.
(rb_station_properties_dialog_location_changed_cb): Do nothing.
* iradio/rb-new-station-dialog.[ch]:
* iradio/Makefile.am: Add new station dialog.
* data/glade/station-new.glade: New file based on
new podcast feed dialog.
* data/glade/station-properties.glade: Updated to
be consistent with song properties dialog.
Fixes #323306.
2005-12-10 James Livingston <
[email protected]>
patch by: Ståle Lyngaas <
[email protected]>
* shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
submit songs longer than 30 minutes. Fixes bug 323639.
2005-12-09 William Jon McCann <
[email protected]>
* shell/rb-shell.c (idle_save_playlist_manager): Use new
async save function.
(rb_shell_finalize): Remove save timeout sources. Reorder
steps a bit to make saving db and playlists a bit more
failsafe in case something goes wrong later.
(rb_shell_constructor): Keep track of save timeout source.
(add_to_library_response_cb): Keep track of db save timeout source.
* shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
g_atomic.
(rb_playlist_manager_shutdown): New function to shutdown
threads etc. before exit.
(rb_playlist_manager_finalize): Moved handling outstanding
threads stuff to shutdown since if there are outstanding threads
they hold a ref and finalize is never called.
(rb_playlist_manager_save_thread_main): Use cond broadcast instead
of signal which may be required for sync save.
(rb_playlist_manager_save_playlists_async): Renamed old
save_playlists to save_playlists_async. Use g_atomic.
(rb_playlist_manager_save_playlists): New function to
perform sync saves (symmetric with RhythmDB API).
(rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
* rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
Style consistency anality.
(rhythmdb_finalize): Remove save timeout source.
(rhythmdb_set_property, rhythmdb_get_property)
(rhythmdb_process_events): More anality and keep track of
save timeout source.
(action_thread_main): No need to call g_thread_exit.
(rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored)
(rhythmdb_query_parse_valist, rhythmdb_query_free)
(write_encoded_gvalue, read_encoded_property): La la la.
Fixes #322940.
2005-12-10 James Livingston <
[email protected]>
* metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
non-audio files.
2005-12-10 James Livingston <
[email protected]>
* Makefile.am:
* configure.ac: remove the rpm spec files, so that automake works.
oops
* rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
locking issue
2005-12-09 James Livingston <
[email protected]>
* debian/: try to get cvs to actually remove the files
2005-12-09 James Livingston <
[email protected]>
* rhythmbox.spec.in:
* debian/: remove the distro package stuff, they are *really* old, and
downstream manage it anyway.
2005-12-09 Jonathan Matthew <
[email protected]>
Rework play orders to work off query models rather than
entry views, and track the playing entry themselves rather
than relying on the entry view to do it. This makes the entry
view mostly just a widget. Closes bug 323612.
* daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
Use query model rather than entry view to get the number
of entries in playlists.
* rhythmdb/rhythmdb-query-model.{c.h}
(rhythmdb_query_model_tree_path_to_entry),
(rhythmdb_query_model_iter_to_entry),
(rhythmdb_query_model_get_next_from_entry),
(rhythmdb_query_model_get_previous_from_entry):
New utility functions for iterating through query models.
(rhythmdb_query_model_compute_status_normal):
Have one copy of this code, not four.
* shell/rb-play-order.{c,h}:
Add signals for when next/previous availability changes, and
when the playing entry is removed, and add a property for
the current playing entry. Add gtkdoc comments too.
(rb_play_order_class_init): Add new property and signals.
(rb_play_order_finalize), (rb_play_order_playing_source_changed),
(rb_play_orer_query_model_changed_cb),
(rb_play_order_query_model_changed):
Use query model rather than entry view.
(rb_play_order_set_property), (rb_play_order_get_property):
Handle new playing-entry property. Call playing_entry_changed virtual
method so subclasses can do any processing required.
(rb_play_order_is_playing), (rb_play_order_get_playing_entry),
(rb_play_order_set_playing_entry):
Just use the playing-entry property.
(rb_play_order_get_query_model), (rb_play_order_model_not_empty):
Utility methods for subclasses.
(rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
Update next/previous availability, check if the playing entry
was removed.
(default_playing_entry_removed):
Keep the current behaviour of just stopping playback when the
playing entry is deleted.
(rb_play_order_go_next), (rb_play_order_go_previous): Implement
these for subclasses that don't have go_next/go_previous, but do
have get_next/get_previous.
(rb_play_order_update_have_next_previous): Emit signal if the
availability of next/previous entries has changed.
* shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
Use G_DEFINE_TYPE, replace entry view iterator with query model
methods.
(rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
on the last song in the shuffled order, go back to the start. This
means if you press 'play' again you'll get the whole order again, not
just one song.
* shell/rb-shell-player.c:
(rb_shell_player_get_playing_entry), (info_available_cb): Ask the
play order rather than the entry view.
(rb_shell_player_set_property): Update the play order when the
selected source changes and we aren't playing anything.
(rb_shell_player_sync_play_order): Copy the playing entry across to
the new play order so playback continues from the same song, and watch
for updates to have_next/have_previous.
(rb_shell_player_play_order_update_cb): Enable/disable the
next/previous actions when next/previous entry availability changes.
(rb_shell_player_jump_to_current): Just use the play order's idea of
what's playing, not the entry view's; if not playing anything, clear
the selection, so when a playlist ends and you hit play again, it'll
start at the start rather than the end.
(rb_shell_player_do_previous): restructure a bit.
(rb_shell_player_do_next): restructure, jump to new playing entry in
an idle handler instead of directly.
(rb_shell_player_do_previous_or_seek): Only try to go to the previous
song if there is one.
(rb_shell_player_playpause): Jump to playing song, don't update the
play order if we got the song from the selection.
(rb_shell_player_playing_entry_deleted_cb): Not needed.
(rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
looks after next/previous actions now. Don't break if called while
there is no selected source.
(rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
(rb_shell_player_set_playing_source_internal),
(rb_shell_player_error): No need to track the attempted playing entry
any more, since the play order does that.
* shell/rb-shell.c:
(rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
rb_shell_player_get_playing_entry rather than going through the entry
view.
* shell/rb-statusbar.c (rb_statusbar_set_property),
(rb_statusbar_source_status_changed_cb): Listen to the source rather
than the entry view for status bar text changes.
(rb_statusbar_sync_status): Ask the query model directly
* sources/rb-source.{c}: Add query model property.
(default_get_status): Get status text from query model, should be
suitable for most sources.
(rb_source_set_property): Listen for changes to the query model
to update the status text.
(rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
(idle_emit_status_changed): Emit status-changed signals when query
model changes.
* sources/rb-library-source.c, sources/rb-podcast-source.c:
(impl_get_status): Not needed, RBSource does this now
(rb_library_source_do_query) (rb_podcast_source_do_query):
Update RBSource's query model reference.
* sources/rb-playlist-source.c:
Remove query-model property, since RBSource has one now
(impl_get_status): Not needed, RBSource does this now
(rb_playlist_source_row_deleted): Use query model iterator helper
function.
(rb_playlist_source_set_query_model): Update RBSource's query model
reference too.
* sources/rb-iradio-source.c:
(impl_get_status): Ask the query model directly.
(rb_iradio_source_do_query): Update RBSource's query model reference
when we create a new query.
* sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
Use query model rather than entry view.
* widgets/rb-entry-view.{c,h}:
Remove playing_entry_deleted signal (now in play order).
(entry_from_tree_path), (entry_from_tree_iter): Not needed
as RhythmDBQueryModel has equivalent helper functions.
(rb_entry_view_*): Use query model helpers instead of the above two
functions.
2005-12-09 James Livingston <
[email protected]>
* configure.ac:
* player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
(rb_recorder_enabled):
* shell/rb-removable-media-manager.c: (poll_tray_opened):
* sources/rb-playlist-source-recorder.c:
(_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
whether libnautilusburn has the _drive_unref function, and if so use
it. Stops it complaining about deprecated API.
2005-12-09 James Livingston <
[email protected]>
* configure.ac: drop the minimum gstreamer version back down, it
accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
2005-12-09 James Livingston <
[email protected]>
* widgets/rb-song-info.c: (rb_song_info_class_init),
(rb_song_info_show), (rb_song_info_constructor),
(rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
(rb_song_info_forward_clicked_cb): save metadata changes when the
Next/Previous buttons are pressed (closes bug 320952). use
G_DEFINE_TYPE.
2005-12-09 James Livingston <
[email protected]>
Patch by: <
[email protected]>
* sources/rb-iradio-source.c:
(stations_view_drag_data_received_cb):
* sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
of urls. Fixes bug 323610.
2005-12-09 James Livingston <
[email protected]>
patch by Jan Schmidt <
[email protected]> to add support for
GStreamer 0.10. DAAP support for 0.10 isn't done yet.
* configure.ac:
* metadata/rb-metadata-gst.c:
* player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
(rb_player_construct), (rb_player_new):
* player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
(rb_recorder_gst_signal_error), (pipe_message),
(rb_recorder_new_pad_cb), (rb_recorder_construct),
(rb_recorder_new):
* shell/main.c: (main):
* sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
(rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
2005-12-07 Jonathan Matthew <
[email protected]>
* data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
* shell/rb-playlist-manager.c:
(rb_playlist_manager_set_property), (handle_playlist_entry_cb),
(playlist_load_start_cb), (rb_playlist_manager_new_playlist)
(rb_playlist_manager_set_automatic_playlist),
(rb_playlist_manager_cmd_new_automatic_playlist),
(rb_playlist_manager_cmd_edit_automatic_playlist):
Use new playlist subclasses.
(rb_playlist_manager_save_playlists): Only read the dirty flag
for local playlists, minor pointless reformatting
* sources/Makefile.am: add new files
* sources/rb-playlist-source.c, sources/rb-playlist-source.h:
split lots of stuff out into two
new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
make RBPlaylistSource abstract, add virtual methods for showing a
popup for the entry view and saving the playlist to XML.
Other stuff is subclass-specific, or already virtual in RBSource.
* sources/rb-playlist-xml: Define playlist XML tags and attributes
in one place, since they're used across three source files now
* sources/rb-daap-source.c: (rb_daap_source_connection_cb):
Use new static playlist class
* sources/rb-ipod-source.c: (add_rb_playlist):
Use new static playlist class
* sources/rb-static-playlist-source.{c,h},
source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
files.
* po/POTFILES.in: add new files
2005-12-07 James Livingston <
[email protected]>
* rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
(rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
metadata loads not attempt to write changes to disk.
2005-12-07 James Livingston <
[email protected]>
patch by: Alex Lancaster <
[email protected]>
* data/glade/song-info-multiple.glade:
* widgets/rb-song-info.c: (rb_song_info_constructor),
(rb_song_info_sync_entries_multiple): allow the year to be changed on
multiple songs at once.
2005-12-06 James Livingston <
[email protected]>
* rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
(rhythmdb_entry_set_visibility): emit signal when visibility changes.
2005-12-06 James Livingston <
[email protected]>
* sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
names rather than adding a horizontal scroll bar.
2005-12-06 James Livingston <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_update_limited_entries),
(rhythmdb_query_model_drag_data_received): remove some pointless debug
messages
* rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
(rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
always hide rather than remove DB entries, which will make RB not lose
information when tag editing happens or people move files to trash and
then change their mind. Also fix some races where the monitoring code
would notice the temporary files generated by saving metadata.
2005-12-05 William Jon McCann <
[email protected]>
* widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
Hide internals and add tooltips.
(rb_song_display_box_size_allocate): Hide internals.
(sanitize_string, info_url): Copied from rb-header.
(rb_song_display_box_sync): New public function.
* widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
(rb_header_init): Use a separate row for the seek bar.
(rb_header_finalize): Don't unref widgets.
(rb_header_sync): Use rb_song_display_box_sync.
(rb_header_set_urldata)
(rb_header_set_show_artist_album): Hide instead of remove widgets.
(rb_header_set_show_position_slider): Set visibility of seek bar.
(rb_header_set_show_timeline): Set sensitivity of seek bar.
(rb_header_get_elapsed_string): Don't shift when you first start playback.
* shell/rb-statusbar.c (rb_statusbar_init)
(rb_statusbar_sync_state): Remove shuffle and repeat controls.
* shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
(rb_shell_constructor): Remove hseparator. Monitor
toolbar visibility settings. Add toolbar. Add
volume button to toolbar. Add tooltips for volume button.
(rb_shell_view_toolbar_changed_cb)
(rb_shell_sync_toolbar_visibility)
(toolbar_visibility_changed_cb): Set visibility of
toolbar.
(rb_shell_sync_smalldisplay): Set the toolbar style to
icons only when in small display mode.
(rb_shell_volume_widget_changed_cb): Save volume setting.
* shell/rb-shell-player.c (rb_shell_player_constructor):
Remove pause and stop actions. Make play action "important"
so that text is visible in horizontal toolbar position.
Remove control buttons.
(rb_shell_player_init)
(rb_shell_player_sync_song_position_slider_visibility):
Set visbibility of seek bar.
(rb_shell_player_cmd_play, rb_shell_player_playpause):
Make play action a toggle.
(rb_shell_player_sync_volume): Volume control moved
to player.
(gconf_song_position_slider_visibility_changed):
Set visbibility of seek bar.
(rb_shell_player_sync_buttons):
Set sensitivity of actions instead of buttons.
(rb_shell_player_playing_changed_cb): Add callback
for player notify::playing changes.
* lib/rb-preferences.h: Add hide toolbar and seek
bar key names.
* data/ui/rhythmbox-ui.xml: Add hide toolbar and
seek bar menu items. Remove pause and stop actions
from the control menu. Add a toolbar.
* data/rhythmbox.schemas: Add toolbar_hidden
song_position_slider_hidden keys.
Patch by: James Livingston <
[email protected]>
William Jon McCann <
[email protected]>
Fixes #316238.
2005-12-05 James Livingston <
[email protected]>
* data/glade/library-prefs.glade:
* data/rhythmbox.schemas:
* lib/rb-preferences.h:
* rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
(rhythmdb_sync_library_location):
* sources/rb-library-source.c: (rb_library_source_class_init),
(rb_library_source_finalize), (rb_library_source_constructor),
(impl_get_config_widget), (rb_library_source_preferences_sync),
(rb_library_source_watch_toggled_cb): allow people to disable library
monitoring, because with nothing set the file chooser button selects
the Home folder (and hence that will get monitored).
2005-12-04 Ryan P Skadberg <
[email protected]>
* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
attempt to fix problem with RSS parsing showing invalid feed types.
Fixes bug 323153
2005-12-04 James Livingston <
[email protected]>
* rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
(rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
importing a remote directory not block the UI.
2005-12-03 Dennis Cranston <
[email protected]>
* data/glade/podcast-feed-properties.glade:
* data/glade/podcast-properties.glade: HIG fix, closes bug 323131.
2005-12-04 James Livingston <
[email protected]>
patch by: Dennis Cranston <
[email protected]>
* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
to && to fix a mistake in the earlier podcast patch.
2005-12-03 James Livingston <
[email protected]>
* data/glade/podcast-new.glade:
* podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
(rb_new_podcast_dialog_text_changed): remove some unused stuff.
* player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
GValue, which stops occasional errors.
* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
compile issue.
2005-12-03 James Livingston <
[email protected]>
patch by: Dennis Cranston <
[email protected]>
* podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
crasher with some podcasts feeds.
2005-12-03 James Livingston <
[email protected]>
* data/rhythmbox.schemas: fix the gconf schema
2005-12-03 James Livingston <
[email protected]>
patch by: Thomas de Grenier de Latour <
[email protected]> to
add a selection timeout to the sourcelist. This lets you hold a track
over the playlist source, and then have the view switch so you can
insert the track in the middle of the playlist. Closes bug 323044.
* lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
(select_on_drag_timeout), (remove_select_on_drag_timeout),
(rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
(rb_tree_dnd_add_drag_dest_support):
* lib/rb-tree-dnd.h: Add an option for tree views to have a selection
timeout.
* sources/rb-sourcelist-model.c:
(rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
the source list.
2005-12-02 Bastien Nocera <
[email protected]>
* data/glade/audioscrobbler-prefs.glade: add a space before the web
links, so that the text doesn't touch the button
2005-12-02 James Livingston <
[email protected]>
Add full support for gnome-vfs remote files. Closes bug 140355.
* rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
(rhythmdb_execute_stat): perform stats asynchronously, so that waiting
for authentication information from the user doesn't block the UI.
(rhythmdb_entry_set_visibility): don't emit the signal twice.
* rhythmdb/rhythmdb.c: (rhythmdb_action_free),
(rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
(rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
(rhythmdb_process_stat_event), (emit_load_error_idle),
(rhythmdb_process_metadata_load),
(rhythmdb_process_queued_entry_set_event),
(rhythmdb_process_file_created_or_modified),
(rhythmdb_process_file_deleted), (rhythmdb_process_events),
(queue_stat_uri), (add_thread_main),
(emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
(rhythmdb_load), (rhythmdb_save_thread_main),
(threadsafe_entry_set), (rhythmdb_query_internal),
(query_thread_main), (rhythmdb_do_full_query_async_parsed),
(rhythmdb_do_full_query_internal),
(entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
(rhythmdb_volume_unmounted_cb),
(rhythmdb_check_changed_file): trivial changes to support the
asynchronous stats.
* shell/main.c: (main): activate the authentication manager.
* shell/rb-playlist-manager.c:
(rb_playlist_manager_cmd_load_playlist),
(rb_playlist_manager_cmd_save_playlist):
* shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
(rb_shell_cmd_add_file_to_library):
* sources/rb-playlist-source.c: (rb_playlist_source_add_location):
* widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
remote files.
2005-12-02 James Livingston <
[email protected]>
* shell/rb-playlist-manager.c: makes playlist menu items use the
elipses correctly. Fixes bug 322283.
2005-12-02 James Livingston <
[email protected]>
* shell/rb-playlist-manager.c:
(rb_playlist_manager_load_playlists): fix silly mistake
2005-12-02 James Livingston <
[email protected]>
* metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
print out metadata-write unless --debug was passed.
* rhythmdb/rhythmdb.c: (rhythmdb_load):
* shell/rb-playlist-manager.c:
(rb_playlist_manager_load_playlists): block writes to disk if they are
still being loaded.
2005-12-02 James Livingston <
[email protected]>
* shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
ctrl-T, because Ctrl-D is used by "small mode"
2005-12-02 James Livingston <
[email protected]>
* shell/rb-shell-preferences.c:
(rb_shell_preferences_append_view_page):
* sources/rb-library-source.c: (impl_get_config_widget):
* sources/rb-podcast-source.c: (impl_get_config_widget):
* sources/rb-source.c: (rb_source_get_config_widget):
* sources/rb-source.h: Make the preference actually work.
* shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
if Rhythmbox is being run for the first time.
2005-12-02 James Livingston <
[email protected]>
Add support for Rhythmbox to watch your library, and automatically add
new tracks. Fixes bug 160159.
* data/glade/library-prefs.glade: add "library location" preference
* data/rhythmbox.schemas: add gconf key for the library location
* rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
(rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
(rhythmdb_finalize), (rhythmdb_directory_change_cb),
(rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
(rhythmdb_process_metadata_load), (rhythmdb_process_events),
(rhythmdb_load_thread_main), (rhythmdb_load),
(monitor_subdirectory), (monitor_library_directory),
(monitor_entry_file), (rhythmdb_sync_library_location),
(library_location_changed_cb), (rhythmdb_check_changed_file),
(rhythmdb_process_changed_files): Let Rhythmbox watch the directories
specifiec in the gconf key for new additions. Also fix monitoring code
so that it works properly, and notices deletions.
* lib/rb-preferences.h:
* shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
(rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
* shell/rb-audioscrobbler.h:
* shell/rb-shell-preferences.c: (rb_shell_references_append_page),
(rb_shell_preferences_append_view_page),
(rb_shell_preferences_new):
* shell/rb-shell-preferences.h: rework the way audioscrobbler adds
it's preferences pane, so that we don't need #ifdef's through
rb-shell-preferences.
* shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
(rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
"preferences" property, so that sources can acccess it. This is needed
because the library location pref needs to take effect when the window
is closed.
* sources/rb-library-source.c:
(rb_library_source_library_location_changed),
(rb_library_source_dispose), (rb_library_source_finalize),
(rb_library_source_constructor), (impl_get_config_widget),
(rb_library_source_preferences_sync),
(rb_library_source_process_library_location_change),
(rb_library_source_prefs_update),
(rb_library_source_process_library_handle_selection),
(rb_library_source_library_location_cb): set up and control the
"library location" preference.
* sources/rb-audiocd-source.c:(rb_source_class_init):
* sources/rb-source.c: (rb_source_class_init): remove some pointless
code.
2005-12-01 William Jon McCann <
[email protected]>
* podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init)
(rb_feed_podcast_properties_dialog_update_title):
* data/glade/podcast-feed-properties.glade:
Make the feed properties dialog consistent with the podcast
properties dialog.
2005-12-01 William Jon McCann <
[email protected]>
* metadata/.cvsignore:
* po/.cvsignore:
* podcast/.cvsignore: Updated.
* shell/main.c (main): Support DBus 0.6 flags.
2005-11-30 Bastien Nocera <
[email protected]>
* data/ui/rhythmbox-ui.xml:
* rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
(rhythmbd_entry_move_to_trash_set_error),
(rhythmdb_entry_move_to_trash):
* rhythmdb/rhythmdb.h:
* shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
(rb_shell_clipboard_cmd_delete),
(rb_shell_clipboard_cmd_move_to_trash):
* sources/rb-library-source.c: (rb_library_source_class_init),
(impl_delete), (impl_move_to_trash):
* sources/rb-playlist-source.c: (rb_playlist_source_class_init),
(impl_delete), (impl_move_to_trash):
* sources/rb-removable-media-source.c:
(rb_removable_media_source_class_init):
* sources/rb-source.c: (rb_source_class_init),
(rb_source_can_move_to_trash), (rb_source_delete),
(rb_source_move_to_trash):
* sources/rb-source.h:
Add move_to_trash member for the sources, implement move to trash for
the library and playlists
Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
local files to the trash, and deleting them from the database
(Closes: #315389)
2005-11-30 William Jon McCann <
[email protected]>
* shell/rb-tray-icon.c (rb_tray_icon_class_init)
(rb_tray_icon_init, rb_tray_icon_finalize):
* shell/rb-statusbar.c (rb_statusbar_class_init)
(rb_statusbar_init, rb_statusbar_finalize):
* shell/rb-source-header.c (rb_source_header_class_init)
(rb_source_header_init, rb_source_header_finalize):
* shell/rb-shell.c (rb_shell_class_init, rb_shell_init)
(rb_shell_finalize):
* shell/rb-shell-preferences.c (rb_shell_preferences_class_init)
(rb_shell_preferences_init, rb_shell_preferences_finalize):
* shell/rb-shell-player.c (rb_shell_player_class_init)
(rb_shell_player_init, rb_shell_player_finalize):
* shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init)
(rb_shell_clipboard_init, rb_shell_clipboard_finalize):
* shell/rb-playlist-manager.c (rb_playlist_manager_class_init)
(rb_playlist_manager_init, rb_playlist_manager_finalize):
* shell/rb-play-order.c (rb_play_order_class_init)
(rb_play_order_init, rb_play_order_finalize):
* shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init)
(rb_shuffle_play_order_init, rb_shuffle_play_order_finalize):
* shell/rb-play-order-random.c (rb_random_play_order_class_init)
(rb_random_play_order_init, rb_random_play_order_finalize):
* shell/rb-history.c (rb_history_class_init, rb_history_init)
(rb_history_finalize):
* shell/rb-commander.c (rb_commander_class_init)
(rb_commander_init, rb_commander_finalize):
* shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init)
(rb_audioscrobbler_init, rb_audioscrobbler_finalize):
* remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init)
(rb_remote_bonobo_init, rb_remote_bonobo_finalize):
* podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init)
(rb_podcast_properties_dialog_init)
(rb_podcast_properties_dialog_finalize):
* podcast/rb-podcast-manager.c (rb_podcast_manager_class_init)
(rb_podcast_manager_init, rb_podcast_manager_finalize):
* podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init)
(rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize):
* podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init)
(rb_feed_podcast_properties_dialog_init)
(rb_feed_podcast_properties_dialog_finalize):
* metadata/rb-metadata-gst.c (rb_metadata_class_init)
(rb_metadata_init, rb_metadata_finalize):
* iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init)
(rb_station_properties_dialog_init)
(rb_station_properties_dialog_finalize):
* daapsharing/rb-daap-share.c (rb_daap_share_class_init)
(rb_daap_share_init, rb_daap_share_dispose):
Use g_type_class_add_private in all classes. Closes bug 313688.
2005-11-30 James Livingston <
[email protected]>
patch by: William Jon McCann <
[email protected]> to use
g_type_class_add_private in all classes. Closes bug 313688.
* lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
(rb_thread_finalize):
* player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
(rb_player_finalize):
* rhythmdb/rhythmdb-property-model.c:
(rhythmdb_property_model_class_init),
(rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
(rhythmdb_query_model_finalize):
* rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
(rhythmdb_tree_init), (rhythmdb_tree_finalize):
* rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
(rhythmdb_finalize):
* sources/rb-daap-source.c: (rb_daap_source_class_init),
(rb_daap_source_init), (rb_daap_source_dispose):
* sources/rb-iradio-source.c: (rb_iradio_source_class_init),
(rb_iradio_source_init), (rb_iradio_source_finalize):
* sources/rb-library-source.c: (rb_library_source_class_init),
(rb_library_source_init), (rb_library_source_finalize):
* sources/rb-playlist-source.c: (rb_playlist_source_class_init),
(rb_playlist_source_init), (rb_playlist_source_dispose):
* sources/rb-podcast-source.c: (rb_podcast_source_class_init),
(rb_podcast_source_init), (rb_podcast_source_finalize):
* sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
(rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
* sources/rb-sourcelist-model.h:
* sources/rb-sourcelist.c: (rb_sourcelist_class_init),
(rb_sourcelist_init), (rb_sourcelist_finalize):
* sources/rb-sourcelist.h:
* widgets/disclosure-widget.c: (finalize), (class_init), (init):
* widgets/rb-cell-renderer-rating.c:
(rb_cell_renderer_rating_init),
(rb_cell_renderer_rating_class_init),
(rb_cell_renderer_rating_finalize):
* widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
(rb_druid_finalize):
* widgets/rb-entry-view.c: (rb_entry_view_class_init),
(rb_entry_view_init), (rb_entry_view_finalize):
* widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
(rb_header_finalize):
* widgets/rb-load-failure-dialog.c:
(rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
(rb_load_failure_dialog_finalize):
* widgets/rb-property-view.c: (rb_property_view_class_init),
(rb_property_view_init), (rb_property_view_finalize):
* widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
(rb_rating_finalize):
* widgets/rb-search-entry.c: (rb_search_entry_class_init),
(rb_search_entry_init), (rb_search_entry_finalize):
* widgets/rb-simple-view.c: (rb_simple_view_class_init),
(rb_simple_view_init), (rb_simple_view_finalize):
* widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
(rb_song_display_box_init), (rb_song_display_box_finalize):
* widgets/rb-song-info.c: (rb_song_info_class_init),
(rb_song_info_init), (rb_song_info_finalize):
* widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
(rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
2005-11-30 James Livingston <
[email protected]>
* iradio/rb-station-properties-dialog.c:
(rb_station_properties_dialog_init),
(rb_station_properties_dialog_new):
* lib/rb-glade-helpers.c: (rb_glade_boldify_label):
* lib/rb-glade-helpers.h:
* podcast/rb-feed-podcast-properties-dialog.c:
(rb_feed_podcast_properties_dialog_init),
(rb_feed_podcast_properties_dialog_new):
* podcast/rb-podcast-properties-dialog.c:
(rb_podcast_properties_dialog_init),
(rb_podcast_properties_dialog_new):
* shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
* shell/rb-shell-preferences.c: (rb_shell_preferences_init):
* sources/rb-library-source.c: (impl_get_config_widget):
* sources/rb-playlist-source-recorder.c:
(rb_playlist_source_recorder_init):
* widgets/rb-song-info.c: (rb_song_info_construct_single),
(rb_song_info_constructor): create a single rb_glade_boldify_label()
in rb-glade-helpers, rather than having eight implementation
throughout the code.
2005-11-30 James Livingston <
[email protected]>
* lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
* lib/rb-util.h:
* widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
move the duration->string function into rb-utils, as it gets used in a
few places.
patch by: William Jon McCann <
[email protected]>
* data/glade/podcast-properties.glade:
* podcast/rb-podcast-properties-dialog.c:
(rb_podcast_properties_dialog_init),
(rb_podcast_properties_dialog_update),
(rb_podcast_properties_dialog_update_title),
(rb_podcast_properties_dialog_update_feed),
(rb_podcast_properties_dialog_update_duration),
(rb_podcast_properties_dialog_update_bitrate): Make the podcast
info dialog look more like the song info dialog. Use the same "Feed"
value that is displayed in the treeview (ie. the album field), displays
the duration, uses units in the bitrate field, and sort the fields in
the same order.
2005-11-29 James Livingston <
[email protected]>
* rhythmdb/rhythmdb-marshal.list:
* rhythmdb/rhythmdb.h:
* rhythmdb/rhythmdb.c: (rhythmdb_class_init),
(emit_load_error_idle), (rhythmdb_process_metadata_load),
(entry_to_rb_metadata), (emit_save_error_idle),
(action_thread_main): emit error signal when metadata write fails.
* shell/rb-shell.c: (rb_shell_constructor),
(rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
"metadata save" error and display it to the user.
2005-11-29 James Livingston <
[email protected]>
* data/ui/rhythmbox-ui.xml:
* sources/rb-podcast-source.c:
(rb_podcast_source_songs_show_popup_cb),
(rb_podcast_source_cmd_download_post),
(rb_podcast_source_cmd_cancel_download): split download and cancel
download commands. Replace usage of "Post" with "Esisode". Fixes bug
321653.
2005-11-18 William Jon McCann <
[email protected]>
* widgets/rb-dialog.c (rb_error_dialog): Don't use a
title on alert dialogs per the HIG.
* sources/rb-playlist-source-recorder.c (burn_cd): Don't use
the term Burn.
(free_song_list): Routine to free song list.
(rb_playlist_source_recorder_finalize): Use free_song_list.
(rb_playlist_source_recorder_add_from_model): Return FALSE
if unable to add all songs. Check that duration of all
songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
Fixes #321753.
* sources/rb-playlist-source-recorder.c (check_media_length)
(rb_playlist_source_recorder_start): Only check the duration
and current media if the playlist length is longer than a
standard CD (74 min). Otherwise, just let the Recorder do the
check.
* player/rb-recorder-gst.c (rb_recorder_init): Get a default
drive at init.
(rb_recorder_set_device): Don't leak drives.
(rb_recorder_get_media_length): Use drive that was already set.
(rb_recorder_burn): Let the recorder handle checking media type/size.
Fixes bug 321754.
2005-11-29 James Livingston <
[email protected]>
* rhythmdb/rhythmdb-query-model.c:
(rhythmdb_query_model_set_sort_order):
* rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
emitting the tree-model "resorted" signal.
* widgets/rb-entry-view.c: (rb_entry_view_class_init),
(rb_entry_view_finalize), (rb_entry_view_set_property),
(rb_entry_view_constructor), (rb_entry_view_resort_model):
* widgets/rb-entry-view.h: add a function to resort the entry view,
using the above function.
* sources/rb-iradio-source.c:
(rb_iradio_source_songs_view_sort_order_changed_cb):
* sources/rb-library-source.c: (rb_library_source_finalize),
(songs_view_sort_order_changed_cb), (rb_library_source_do_query):
* sources/rb-playlist-source.c:
(rb_playlist_source_songs_sort_order_changed_cb):
* sources/rb-podcast-source.c:
(rb_podcast_source_posts_view_sort_order_changed_cb),
(rb_podcast_source_do_query): use the above function instead of
re-creating the query model. This makes changing the sorting an order
of magnitude faster, as it uses a single resorted signal rather than
deleting and re-adding everything (which emits 2N signals). Closes bug
315389.
2005-11-29 James Livingston <
[email protected]>
patch by: Jonathan Matthew <
[email protected]> to disable column
autosizing, which results in large speedups. Closes bug 312122.
* po/ja.po: change the date format, so that it is a constant width
* sources/rb-playlist-source.c: (rb_playlist_source_constructor):
* sources/rb-podcast-source.c: (rb_podcast_source_constructor):
* widgets/rb-entry-view.c: (rb_entry_view_append_column),
(rb_entry_view_constructor): make columns use fixed widths,
disable column autosizing, and enable fixed-height mode.
* widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
(rb_entry_view_get_time_date_column_sample):
* widgets/rb-entry-view.h: functions to set a column to a fixed width,
and get the canonical date format for the locale.