1 2006-01-27 Jonathan Matthew <jonathan@kaolin.hn.org>
3 * daapsharing/rb-daap-connection.c: (http_response_handler):
4 Fix the sense of the overflow check so it'll accept valid input.
6 2006-01-27 James Livingston <jrl@ids.org.au>
8 Patch from Alex Lancaster <alexl@users.sourceforge.net>
10 * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
11 escape paths when using rb_uri_handle_recursively. Closes bug 139646.
13 2006-01-27 Jonathan Matthew <jonathan@kaolin.hn.org>
15 Patch by: Alex Lancaster <alexl@users.sourceforge.net>
17 * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
18 Don't include the artist field in the window title if it's blank.
21 2006-01-26 William Jon McCann <mccann@jhu.edu>
23 * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
24 Use stock delete icon for move to trash and stock remove
27 2006-01-26 Jonathan Matthew <jonathan@kaolin.hn.org>
29 * shell/rb-shell.c: (rb_shell_constructor),
30 (idle_handle_load_complete): Don't start the playlist save
31 timeout until we've loaded the playlists, otherwise we'll
32 write an empty playlist file if startup takes too long.
34 2006-01-25 William Jon McCann <mccann@jhu.edu>
36 * shell/rb-shell.c: Make view toolbar toggle use
37 shift+ctrl+t. Fixes #327585.
39 2006-01-25 James Livingston <jrl@ids.org.au>
41 patch by: Christope Fergeau <teuf@gnome.org>
43 * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
44 (http_response_handler): fix a potential buffer overflow issue.
46 2006-01-25 James Livingston <jrl@ids.org.au>
48 * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
49 Year column wide enough to display "Unknown"
51 2006-01-25 James Livingston <jrl@ids.org.au>
53 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
54 (rb_podcast_source_post_status_cell_data_func): make the episode
55 status wording better. Part of bug 321607.
57 2006-01-25 James Livingston <jrl@ids.org.au>
59 * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
60 others with a separator.
62 * shell/rb-shell-clipboard.c: Rename "Delete" to "Remove" and use the
65 2006-01-24 Jonathan Matthew <jonathan@kaolin.hn.org>
67 * data/rhythmbox.desktop.in: Add GTK to categories. Fixes #328047.
69 2006-01-23 James Livingston <jrl@ids.org.au>
71 * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
72 0.3.2. Fixed bug 328158.
74 2006-01-23 James Livingston <jrl@ids.org.au>
76 * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
77 (gulong_gst_date_transform), (rb_metadata_class_init):
78 * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
80 2006-01-23 Jonathan Matthew <jonathan@kaolin.hn.org>
82 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
83 (rhythmdb_commit_internal), (rhythmdb_entry_insert),
84 (record_entry_change): Protect added_entries and changed_entries with
85 a mutex, so it doesn't crash on startup on SMT/SMP machines.
87 2006-01-23 James Livingston <jrl@ids.org.au>
89 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
90 the browser for audio CDs.
92 2006-01-22 James Livingston <jrl@ids.org.au>
94 * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
95 NEVER_FAIL as it causes the daemon-not-running error to never be
96 reported, resulting in bug 319438 re-occurring.
98 2006-01-22 Jonathan Matthew <jonathan@kaolin.hn.org>
100 * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
101 Just call the podcast manager's update method. Unbreaks the 'update
104 2006-01-22 Jonathan Matthew <jonathan@kaolin.hn.org>
106 * sources/Makefile.am: Fix typo. Fixes bug #327970.
108 2006-01-21 Jonathan Matthew <jonathan@kaolin.hn.org>
110 * configure.ac: Don't disable DAAP with gstreamer 0.10
112 * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
113 (rb_daap_src_class_init), (rb_daap_src_init),
114 (rb_daap_src_finalize), (rb_daap_src_set_property),
115 (rb_daap_src_get_property), (rb_daap_src_write),
116 (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
117 (_split_uri), (rb_daap_src_open):
118 * daapsharing/rb-daap-src.h:
119 Mostly fix seeking, handle chunked transfer encoding, and port to
122 * player/rb-player-gst.c:
123 * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
124 Remove rb_daap_src_initialize and rb_daap_src_shutdown.
126 Fixes bugs #326738 and #318852, and brings #309609 one step closer to
129 2006-01-21 James Livingston <jrl@ids.org.au>
131 patch by: Alex Lancaster <alexl@users.sourceforge.net> to add support
132 for Year metadata in DAAP sources. Fixes bug 327700.
134 * daapsharing/rb-daap-connection.c: (handle_song_listing):
136 2006-01-20 William Jon McCann <mccann@jhu.edu>
138 * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
139 enum values instead of magic numbers.
141 * widgets/rb-property-view.c (rb_property_view_cell_data_func):
142 Add number of songs that match each property title into
143 the cell. Also show the number of properties that match
145 (rb_property_view_constructor): Use enum values instead of
148 * sources/rb-podcast-source.c (rb_podcast_source_constructor):
149 Query podcast posts instead of feeds for browser. Use
150 post SUBTITLE which is the location for the property view.
151 (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
152 (construct_query_from_selection)
153 (rb_podcast_source_cmd_delete_feed)
154 (rb_podcast_source_cmd_properties_feed)
155 (rb_podcast_source_cmd_update_feed): Use variable to make
156 it clear what the selection data represents.
157 (rb_podcast_source_feed_title_cell_data_func): Add number
158 of posts that belong to each feed in the browser.
160 * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
161 (rhythmdb_property_model_delete_prop): Decrement the refcount
163 (rhythmdb_property_model_get_column_type): Use column enum
164 values instead of magic numbers. Add NUMBER column.
165 (rhythmdb_property_model_get_value): Use enum.
166 Add NUMBER column that represents the refcount for
167 the title of that property.
168 (rhythmdb_property_model_perform_sync): Don't fake up
169 a title for All here.
173 2006-01-21 James Livingston <jrl@ids.org.au>
175 Make Rhythmbox start faster by not blocking the UI while database
176 initialisation and loading occurs. Closes bug 323348.
178 * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
179 start 10 seconds later instead of immediately.
181 (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
182 safe to call from any thread.
184 (rhythmdb_process_metadata_load), (rhythmdb_process_events),
185 (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
186 so the UI doesn't block.
188 2006-01-18 James Livingston <jrl@ids.org.au>
190 * sources/rb-static-playlist-source.c:
191 (rb_static_playlist_source_do_query): fix dumb mistake I made that would
192 cause crashes. Oops. fixes bug 327477.
194 2006-01-17 William Jon McCann <mccann@jhu.edu>
196 * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
197 Set GST element state to NULL before unreffing.
200 2006-01-18 James Livingston <jrl@ids.org.au>
202 * sources/rb-static-playlist-source.c:
203 (rb_static_playlist_source_do_query): don't filter on the SONG entry
204 type, since the playlists can contain non-song entries. Fixes bug
207 * sources/rb-play-queue-source.c:
208 (rb_play_queue_source_class_init): disable the search box for the
211 2006-01-18 James Livingston <jrl@ids.org.au>
213 * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
214 dragging of podcast episodes. Fixed bug 327450.
216 2006-01-18 James Livingston <jrl@ids.org.au>
218 * rhythmdb/rhythmdb-query-model.c:
219 (rhythmdb_query_model_drag_data_received): fix possible assertion when
220 dragging to an emoty playlist.
222 2006-01-18 Jonathan Matthew <jonathan@kaolin.hn.org>
224 * sources/rb-playlist-source-recorder.c:
225 Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
227 2006-01-17 James Livingston <jrl@ids.org.au>
229 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
231 * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
232 different number of tracks than exist on the cd, since that happens
233 with audio+data hybrid CDs. Part of bug 325046.
235 2006-01-17 Jonathan Matthew <jonathan@kaolin.hn.org>
237 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
238 Remove useless call to gtk_tree_view_column_set_clickable().
240 * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
241 Don't store sort data for columns if the sort function is NULL,
242 so only sortable columns will be in the column sort data map.
243 (rb_entry_view_set_columns_clickable): Only make columns we can sort
245 (rb_entry_view_constructor): The 'playing icon' column is never
246 clickable, so don't connect a signal handler for it.
250 2006-01-17 James Livingston <jrl@ids.org.au>
252 * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
253 are 0.8 only. Fix element detection.
255 * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
256 saving the new metadata failed
258 2006-01-17 James Livingston <jrl@ids.org.au>
260 * shell/rb-shell-player.c: (do_next_idle),
261 (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
262 (eos_cb): release audio device when a playlist finishes. Fixes bug
265 2006-01-17 James Livingston <jrl@ids.org.au>
267 * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
268 canonicalise the URIs when things are added via library watching.
270 2006-01-16 William Jon McCann <mccann@jhu.edu>
272 * sources/rb-playlist-source-recorder.c (update_speed_combobox):
273 Off by one error in default speed index.
275 2006-01-16 William Jon McCann <mccann@jhu.edu>
277 * sources/rb-playlist-source-recorder.c (get_write_speeds)
278 (update_speed_combobox, update_speed_combobox):
279 Get a list of the actually supported write speeds from
280 n-c-b >= 2.13.90. Otherwise use fallback list.
282 2006-01-17 James Livingston <jrl@ids.org.au>
284 * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
285 (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
286 don't get stuck on recursive symlinks. Fixed bug 125452.
288 2006-01-17 James Livingston <jrl@ids.org.au>
290 Add support for mass-storage audio players. Players are detected via
291 either the HAL "audio_player" capability, or a ".is_audio_player" file
292 in the root of the volume. Closes bug 325602.
294 * configure.ac: separate using HAL from ipod support.
296 * lib/rb-file-helpers.c: (rb_uri_is_local):
297 * lib/rb-file-helpers.h: add function to determine whether a URI is
300 * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
301 (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
302 (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
303 (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
304 (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
305 * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
306 directories can be scanned for files to add as non-SONG entries.
308 * shell/rb-removable-media-manager.c:
309 (rb_removable_media_manager_mount_volume): add checking for
310 mass-storage players.
312 * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
313 * sources/rb-ipod-source.c: (rb_ipod_source_new),
315 * sources/rb-removable-media-source.c:
316 (rb_removable_media_source_class_init),
317 (rb_removable_media_source_constructor): move some things up to the
318 RBRemovableMediaSource, rather than making subclasses do it.
320 * sources/Makefile.am:
321 * sources/rb-generic-player-source.c:
322 * sources/rb-generic-player-source.h: add mass-storage player source.
324 2006-01-16 James Livingston <jrl@ids.org.au>
326 patch by: William Jon McCann <mccann@jhu.edu>
328 * rhythmdb/rhythmdb-query-model.c:
329 (rhythmdb_query_model_base_row_deleted): fix build issue from last
332 2006-01-16 James Livingston <jrl@ids.org.au>
334 Patch to add support for "chained queries" and putting hidden tracks
335 in query models. Use chained queries to add search box support to
336 normal playlists, and to make hidden entries not get lost. Fixes bug
339 * rhythmdb/rhythmdb-query-model.h:
340 * rhythmdb/rhythmdb-query-model.c:
341 (rhythmdb_query_model_class_init),
342 (rhythmdb_query_model_set_property),
343 (rhythmdb_query_model_get_property):
344 (rhythmdb_query_model_finalize): add "show-hidden" and
345 "base-model" properties.
347 (rhythmdb_query_model_set_connected),
348 (rhythmdb_query_model_has_pending_changes),
349 (rhythmdb_query_model_entry_added_cb),
350 (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
351 (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
352 (rhythmdb_query_model_remove_entry),
353 (rhythmdb_query_model_drag_data_received),
354 (rhythmdb_query_model_base_row_inserted),
355 (rhythmdb_query_model_base_row_deleted),
356 (rhythmdb_query_model_base_non_entry_dropped),
357 (rhythmdb_query_model_base_complete),
358 (rhythmdb_query_model_base_entry_prop_changed),
359 (rhythmdb_query_model_base_rows_reordered),
360 (rhythmdb_query_model_row_drop_possible): handle base-model by
361 chaining events and operations where necessary. Make hidden entries
362 not get added only if "show-hidden" is false.
364 (rhythmdb_query_model_child_index_to_base_index),
365 (rhythmdb_query_model_base_index_to_child_index),
366 (rhythmdb_query_model_get_entry_index): utility functions for handling
369 (rhythmdb_query_model_reapply_query): apply the current query, and
370 remove entries that don't match it.
372 * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
375 * sources/rb-source.c: (rb_source_set_property): move the unref later
376 to fix problem if it is the last reference.
378 * sources/rb-static-playlist-source.c:
379 (rb_static_playlist_source_class_init),
380 (rb_static_playlist_source_init),
381 (rb_static_playlist_source_finalize),
382 (rb_static_playlist_source_constructor), (impl_reset_filters),
383 (impl_search), (rb_static_playlist_source_do_query),
384 (impl_save_contents_to_xml),
385 (rb_static_playlist_source_add_location_internal): use a chained query
386 model to filter out hidden entries and implement the search box.
388 2006-01-15 James Livingston <jrl@ids.org.au>
390 * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
391 the default playlist loading, which I broke earlier.
393 2006-01-15 James Livingston <jrl@ids.org.au>
395 patch by: William Jon McCann <mccann@jhu.edu>
397 * sources/rb-playlist-source.c: (playlist_iter_func): use
398 totem-plparser's new API version macros to check for API changes.
399 Handle the recent API change.
401 2006-01-15 Jonathan Matthew <jonathan@kaolin.hn.org>
403 * sources/rb-library-source.c: (impl_get_config_widget):
404 Ref the preferences object to match the unref in the
405 finalizer. Fixes some portion of #323505.
407 2006-01-15 Jonathan Matthew <jonathan@kaolin.hn.org>
409 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
410 * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
411 Fix valgrind warnings about accessing uninitialised values.
413 2006-01-14 William Jon McCann <mccann@jhu.edu>
415 * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
417 2006-01-14 Jonathan Matthew <jonathan@kaolin.hn.org>
419 * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
420 Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
421 Stops the 'now playing' icon from being displayed after the play
424 2006-01-14 Jonathan Matthew <jonathan@kaolin.hn.org>
426 * podcast/rb-podcast-manager.c:
427 (rb_podcast_manager_db_entry_deleted_cb):
428 Don't try to delete files we never downloaded, and cancel downloads
429 for deleted episodes. Fixes bug #326862.
430 * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
431 Don't complain about NULL data items in the selection list.
433 2006-01-14 James Livingston <jrl@ids.org.au>
435 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
436 Make the name ofthe queue non editable. Fixes bug 326918.
438 2006-01-13 William Jon McCann <mccann@jhu.edu>
440 * sources/rb-playlist-source-recorder.c (burn_cd)
441 (ask_rewrite_disc): Don't use our locally copied functions
442 if we have at least 2.13.
444 2006-01-13 William Jon McCann <mccann@jhu.edu>
446 * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
447 Correct the argument type for the process_error signal.
450 2006-01-13 James Livingston <jrl@ids.org.au>
452 save the queue to disk when exiting, and reload on startup. Fixed bug
455 * shell/rb-playlist-manager.c:
456 (rb_playlist_manager_load_playlists),
457 (rb_playlist_manager_save_playlists_async): don't disable saving of
460 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
461 add the queue source as a gobject property.
463 * sources/rb-play-queue-source.c:
464 (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
465 code to save the queue to xml
467 * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
468 load the queue from xml.
469 * sources/rb-playlist-xml.h:
471 * sources/rb-static-playlist-source.c:
472 (rb_static_playlist_source_load_from_xml),
473 (rb_static_playlist_source_new_from_xml):
474 * sources/rb-static-playlist-source.h: split the playlist xml loading
475 from the static playlist creation function, so the queue can use it.
477 2006-01-13 James Livingston <jrl@ids.org.au>
479 * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
480 assertion that should be there. Fixes bug 325923.
482 * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
483 return NULL if the entry already exists (e.g. as another type).
484 * daapsharing/rb-daap-connection.c: (handle_song_listing):
485 * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
486 (rb_podcast_manager_insert_feed):
487 * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
488 * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
489 * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
490 for the above function returning NULL.
492 2006-01-12 James Livingston <jrl@ids.org.au>
494 * doc/reference/Makefile.am: make gtk-docs build again when libnotify
495 is enabled. Fixes bug 326673.
497 * doc/reference/tmpl/eggtrayicon.sgml:
498 * doc/reference/tmpl/rb-daap-src.sgml:
499 * doc/reference/tmpl/rb-source.sgml:
500 * doc/reference/tmpl/rb-statusbar.sgml:
501 * doc/reference/tmpl/rb-tree-model-sort.sgml:
502 * doc/reference/tmpl/rhythmbox-unused.sgml:
503 * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
505 2006-01-11 James Livingston <jrl@ids.org.au>
507 * widgets/rb-song-info.c: (rb_song_info_constructor),
508 (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
509 (rb_song_info_populate_dialog): fill in the fields if all tracks have
510 the same value for properties. From bug 326054.
512 2006-01-11 James Livingston <jrl@ids.org.au>
514 * sources/rb-source.h:
515 * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
516 (rb_shell_player_set_playing_source_internal), (eos_cb):
517 add support for RB_SOURCE_EOF_STOP, so that playback will stop after
520 * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
521 source use this. Closes bug 322077.
523 2006-01-10 William Jon McCann <mccann@jhu.edu>
525 * widgets/eggtrayicon.c (egg_tray_icon_notify):
526 In order for set_icon_data_from_pixbuf() to be
527 effective, one must not set an icon in _new().
529 2006-01-10 William Jon McCann <mccann@jhu.edu>
531 * widgets/eggtrayicon.c (egg_tray_icon_init)
532 (egg_tray_icon_unrealize, egg_tray_icon_cancel_message)
533 (egg_tray_icon_notify): Add support for libnotify 0.3.
534 * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
535 * configure.ac: Determine the version of libnotify.
538 2006-01-08 James Livingston <jrl@ids.org.au>
540 * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
541 trying to share a track with unknown length.
543 2006-01-08 Jonathan Matthew <jonathan@kaolin.hn.org>
545 * shell/rb-shell-player.c: (rb_shell_player_init):
546 Sync volume on startup so it doesn't default to 0.
548 2006-01-08 Jonathan Matthew <jonathan@kaolin.hn.org>
550 * shell/rb-shell-player.c: (rb_shell_player_class_init),
551 (rb_shell_player_get_property), (rb_shell_player_open_location),
552 (info_available_cb): Add the iradio streamed song title as a
553 property, and emit a signal when it changes.
555 * shell/rb-shell.c: (rb_shell_constructor),
556 (rb_shell_player_elapsed_changed_cb),
557 (rb_shell_player_stream_song_changed_cb):
558 Issue a notification when the iradio song title changes.
561 2006-01-08 Jonathan Matthew <jonathan@kaolin.hn.org>
563 * shell/rb-shell-player.c: (rb_shell_player_init),
564 (rb_shell_player_finalize), (rb_shell_player_set_property),
565 (rb_shell_player_get_property), (rb_shell_player_sync_volume),
566 (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
567 (rb_shell_player_set_volume_relative),
568 (rb_shell_player_get_volume), (rb_shell_player_set_mute),
569 (rb_shell_player_get_mute):
570 * shell/rb-shell-player.h:
571 * shell/rb-shell-player.xml:
572 Store volume as a property on RBShellPlayer, rather than in gconf.
573 Add some methods to control volume via dbus.
575 * shell/rb-shell.c: (rb_shell_constructor),
576 (rb_shell_volume_widget_changed_cb),
577 (rb_shell_player_volume_changed_cb):
578 * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
579 Update volume using player properties rather than gconf, and sync the
580 volume with the volume control button when something else changes it.
583 2006-01-07 William Jon McCann <mccann@jhu.edu>
585 * shell/rb-tray-icon.c (tray_popup_position_menu):
586 Make tray menu align with edge of panel.
588 patch from Jaap A. Haitsma <jaap@haitsma.org>
591 2006-01-07 William Jon McCann <mccann@jhu.edu>
592 * shell/rb-shell.c (sourcelist_drag_received_cb):
593 * shell/rb-playlist-manager.[ch] (create_name_from_selection_data)
594 (rb_playlist_manager_new_playlist_from_selection_data):
595 Make a reasonable default name for playlists created from
596 dropped data. Fixes #326116.
598 2006-01-07 William Jon McCann <mccann@jhu.edu>
600 * sources/rb-playlist-source-recorder.c (update_speed_combobox):
602 (burn_cd): Always eject CD after burning. Too many drives
603 get confused if we don't. Save the speed used if the burn
604 was completed successfully.
606 * data/rhythmbox.schemas: Use our own speed instead of from
607 n-c-b. The situation is that the default_speed for n-c-b is most
608 likely the maximum write speed. This is fine for n-c-b because it
609 has burn-proof turned on. We can't turn it on for audio CDs
610 because the results are poor in quality. So we'll just pick a
611 default that should work for everyone (4).
613 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
615 * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
616 (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
618 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
620 * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
621 in my previous commit. Fixes #326037.
623 2006-01-06 Ryan P Skadberg <skadz@stigmata.org>
625 patch by: Jonathan Matthew
627 * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
628 error on Fedora Rawhide.
630 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
632 * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
633 Assume HTTP URLs ending with .xml or .rss are podcasts.
634 (rb_shell_add_uri): Handle adding podcast feeds.
636 * sources/rb-podcast-source.c: (rb_podcast_source_new):
637 Register as the source for podcast feeds.
639 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
641 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
642 * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
643 (rb_shell_preferences_append_view_page):
644 * shell/rb-shell-preferences.h:
645 Fix typo in function name. Fixes #325992.
647 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
649 * shell/rb-audioscrobbler.c:
650 Add '+' to the list of characters to URI-encode, so it doesn't get
651 interpreted as a space.
653 2006-01-06 Jonathan Matthew <jonathan@kaolin.hn.org>
655 * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
656 (rb_daap_connection_do_something): Don't crash if the DAAP server
657 goes away while we're still trying to log in.
659 2006-01-06 James Livingston <jrl@ids.org.au>
661 * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
663 2006-01-06 James Livingston <jrl@ids.org.au>
665 Patch from: Alex Lancaster <alexl@users.sourceforge.net> to add
666 support for Year to automatic playlists. Closes bug 321341.
668 * rhythmdb/rhythmdb-query-model.c:
669 (rhythmdb_query_model_set_property):
670 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
671 * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
672 (rhythmdb_query_free), (rhythmdb_query_serialize),
673 (rhythmdb_query_deserialize), (rhythmdb_query_internal),
674 (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
675 * rhythmdb/rhythmdb.h: Support special
676 RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
679 * widgets/rb-query-creator-properties.c:
680 (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
681 (yearCriteriaGetWidgetData): add Year to the list of criteria options.
683 2006-01-06 James Livingston <jrl@ids.org.au>
685 * configure.ac: make the playback backend selection work correctly
687 * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
688 (rb_daap_src_class_init), (rb_daap_src_dispose),
689 (rb_daap_src_change_state), (rb_daap_src_initialize):
690 * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
691 doesn't work for this class. Fixes bug 325934
693 2006-01-06 Jonathan Matthew <jonathan@kaolin.hn.org>
695 * configure.ac: Fix check for libnotify.
697 2006-01-05 William Jon McCann <mccann@jhu.edu>
699 * sources/rb-playlist-source.c (xml_get_and_trim_names):
700 Get name element for current lang and remove all name nodes
702 (get_playlist_name_from_xml): Try to get name element or
703 fall back to name attribute.
704 (rb_playlist_source_new_from_xml): Get name before turning over
705 to sub-types for parsing so that we can remove name elements
706 from the tree if necessary.
708 * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
709 Load default playlists file if per user playlists are not found.
711 * data/playlists.xml.in:
713 * data/.cvsignore: Add default set of playlists.
716 2006-01-05 Jonathan Matthew <jonathan@kaolin.hn.org>
718 * shell/main.c: (main): Don't use the dbus interface to show the
719 window if we're also going to use the bonobo interface.
721 2006-01-05 Jonathan Matthew <jonathan@kaolin.hn.org>
723 * shell/rb-history.c: (rb_history_set_playing):
724 Allow setting the playing song to NULL.
725 (rb_history_append), (rb_history_delete_link):
726 Don't randomly change position when entries are added and removed,
727 it confuses play orders.
729 * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
730 Random orders always have a next entry if the model is not empty.
731 (rb_random_play_order_get_next), (rb_random_play_order_go_next):
732 Go back to the start of the history if we're past its end.
734 * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
735 (rb_shuffle_play_order_go_next): Go back to the start of the history
736 if we're past its end.
737 (rb_shuffle_sync_history_with_query_model): Go back to the start of
738 the history if the current entry is removed.
740 * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
741 (rb_play_order_entry_deleted_cb): Only update have next/previous for
742 the play order when the query has finished. This wasted about 10% CPU
743 while the query was running.
745 Fixes #324641: assertion failures when the query model was changed
746 such that the playing song was no longer present.
748 2006-01-05 James Livingston <jrl@ids.org.au>
750 * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
751 (rb_daap_src_dispose), (rb_daap_src_change_state):
752 * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
753 (rhythmdb_gda_finalize):
754 * widgets/rb-cell-renderer-pixbuf.c:
755 * widgets/rb-cell-renderer-rating.c:
756 (rb_cell_renderer_rating_class_init),
757 (rb_cell_renderer_rating_finalize):
758 * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
759 * widgets/rb-load-failure-dialog.c:
760 (rb_load_failure_dialog_class_init),
761 (rb_load_failure_dialog_finalize):
762 * widgets/rb-rating.c: (rb_rating_class_init),
763 (rb_rating_finalize):
764 * widgets/rb-search-entry.c: (rb_search_entry_class_init),
765 (rb_search_entry_finalize): use G_DEFINE_TYPE
767 * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
769 2006-01-05 James Livingston <jrl@ids.org.au>
771 patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
773 * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
776 * shell/rb-history.c: (rb_history_class_init),
777 (rb_history_finalize):
778 * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
779 (rb_playlist_manager_finalize):
780 * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
781 (rb_remote_init): use G_DEFINE_TYPE.
783 2006-01-05 James Livingston <jrl@ids.org.au>
785 * configure.ac: don't try to use libnotify >= 0.3.0 because of API
788 2006-01-04 William Jon McCann <mccann@jhu.edu>
790 * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
791 Disable burn action when source is not a playlist.
794 2006-01-04 Jonathan Matthew <jonathan@kaolin.hn.org>
796 Optionally use libnotify to display song change and other
797 notifications, and provide an option to disable notifications.
798 Fixes #320355 and innumerable informal complaints.
800 * widgets/eggtrayicon.c: (egg_tray_icon_init),
801 (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
802 (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
803 (egg_tray_icon_notify):
804 * widgets/eggtrayicon.h:
807 Optionally use libnotify instead of eggnotificationbubble.
809 * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
810 (rb_tray_icon_constructor),
811 (rb_tray_icon_show_notifications_changed_cb),
812 (rb_tray_icon_hide_notify_cb)
813 (rb_tray_icon_cancel_notify), (rb_tray_icon_notify):
814 Add 'show notifications' action handling, use G_DEFINE_TYPE, move
815 EggNotificationBubble pointer to eggtrayicon.
817 * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
818 * lib/rb-preferences.h: Add #define for /ui/show_notifications key
819 * data/rhythmbox.schemas: Add schema for /ui/show_notification key
821 2006-01-04 William Jon McCann <mccann@jhu.edu>
823 * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
824 Request a minimum size for the progress bar so that
825 the window doesn't shrink too small.
827 2006-01-03 Jonathan Matthew <jonathan@kaolin.hn.org>
829 * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
830 (add_db_entry), (db_entry_deleted_cb):
831 Don't track the number of songs currently present, track the next ID
832 to assign. Fixes potential ID conflict problems.
834 (db_entry_changed_cb), (rb_daap_share_start_publish),
835 (rb_daap_share_stop_publish):
836 Watch for db entry changes, and when songs become non-hidden after
837 a successful stat, add them to the mapping tables. Fixes #325178,
838 making the DAAP server usable again.
840 2006-01-03 Jonathan Matthew <jonathan@kaolin.hn.org>
842 * shell/rb-statusbar.c: (rb_statusbar_class_init),
843 (rb_statusbar_construct), (rb_statusbar_init),
844 (rb_statusbar_finalize), (rb_statusbar_set_property),
845 (rb_statusbar_get_property), (rb_statusbar_new),
846 (rb_statusbar_sync_with_source):
847 * shell/rb-statusbar.h:
848 Remove visibility management code, stop watching for play order
849 changes (status bar doesn't show play order any more), remove unused
850 'player' property, and some other minor cleanup.
852 * shell/rb-shell.c: (rb_shell_constructor),
853 (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
854 (rb_shell_sync_statusbar_visibility):
855 Manage status bar visibility here rather than in the status bar
856 itself, so we can take small mode into account. Fixes #323589.
858 2006-01-03 Jonathan Matthew <jonathan@kaolin.hn.org>
860 * widgets/eggnotificationbubble.c: (draw_bubble):
861 Move the bubble off the visible screen while setting up bevels.
864 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
866 * shell/rb-shell-player.c: (rb_shell_player_init),
867 (rb_shell_player_finalize):
868 Remove unused structure members.
870 (do_next_idle), (rb_shell_player_error):
871 Only queue one call to do_next_idle, so we don't skip tracks if we get
872 two errors for the same song. Fixes #325216.
874 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
876 * data/glade/podcast-feed-properties.glade,
877 podcast/rb-feed-podcast-properties-dialog.c:
878 (rb_feed_podcast_properties_dialog_init),
879 (rb_feed_podcast_properties_dialog_update):
880 Add 'last episode' field to the podcast feed properties dialog.
882 * podcast/rb-feed-podcast-properties-dialog.c:
883 (rb_feed_podcast_properties_dialog_update_last_update),
884 (rb_feed_podcast_properties_dialog_update_last_episode),
885 podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
886 Use last-seen property for the time at which we last updated the feed,
887 and post-time for the time the last episode was published.
889 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
890 Handle upgrades from 0.9.2; if no post-time was found for a podcast
891 feed, use last-seen (which in 0.9.2 was the last post time).
895 2006-01-01 James Livingston <jrl@ids.org.au>
897 patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
899 * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
900 year from the ipod database.
902 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
904 * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
905 Only set the pipeline back to NULL state for really uninteresting
906 files. This was causing deadlocks with various video files.
909 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
911 * data/glade/song-info-multiple.glade:
912 Add disc number label and field.
913 * widgets/rb-song-info.c: (rb_song_info_construct_single),
914 (rb_song_info_constructor):
915 Handle widgets for disc number.
916 (rb_song_info_sync_entries_multiple):
917 Set disc number property on selected entries.
920 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
922 * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
923 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
924 Activate the default widget when enter is pressed in these dialogs.
927 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
929 * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
930 Use rb_shell_player_get_playing_entry, so we get the right entry
931 when playing from the queue. Fixes #325379.
933 2005-12-31 Jonathan Matthew <jonathan@kaolin.hn.org>
935 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
936 Include podcast posts with no publication date. Typically
937 seen in static collections rather than feeds.
939 2005-12-31 Jonathan Matthew <jonathan@kaolin.hn.org>
941 * shell/main.c: (main): Don't attempt to handle
942 bonobo-only arguments if we couldn't get a bonobo
945 2005-12-31 Jonathan Matthew <jonathan@kaolin.hn.org>
947 * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
948 (rb_daap_mdns_publish_cancel): Clear our_service_name so we don't
949 abort if daap sharing is disabled and then re-enabled.
951 2005-12-29 William Jon McCann <mccann@jhu.edu>
953 * podcast/rb-podcast-parse.c (rb_insert_item):
955 (rb_podcast_parser_start_element): Support itunes:image.
956 Add debugging. Don't abuse the break statement. Warn
958 (rb_podcast_parser_end_element): Add debugging. Warn
960 (rb_podcast_parser_characters): Warn if state is unknown.
962 Fixes parsing of feeds that use the itunes:image element.
965 2005-12-28 Jonathan Matthew <jonathan@kaolin.hn.org>
967 * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
968 (stations_view_drag_data_received_cb):
969 Remove calls to rhythmdb_entry_lookup_by_location, as
970 rb_iradio_source_add_station does that anyway.
972 (rb_iradio_source_add_from_playlist):
973 If the URL doesn't point to a playlist, add it as the stream
976 2005-12-27 Jonathan Matthew <jonathan@kaolin.hn.org>
978 * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
979 just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
980 so we don't get an assertion failure.
983 2005-12-24 Jonathan Matthew <jonathan@kaolin.hn.org>
985 * shell/main.c: (load_uri_args): don't compile this in if
986 neither bonobo nor dbus are enabled. Fixes #324890.
988 2005-12-22 Jonathan Matthew <jonathan@kaolin.hn.org>
990 * sources/rb-audiocd-source.c:
991 (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
992 so it closes the device.
994 2005-12-20 James Livingston <jrl@ids.org.au>
996 * metadata/rb-metadata-gst.c: make the state changes time-out again,
997 so that it doesn't spend forever getting stuck on the one file. Don't
998 report errors for failing to change state on known non-audio files.
1000 * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
1001 audio sink creation if we can't create the gconfaudiosink. This lets
1002 it work with only gst-plugins-base on 0.10.
1004 2005-12-20 Jonathan Matthew <jonathan@kaolin.hn.org>
1006 * rhythmdb/rhythmdb-query-model.c:
1007 (rhythmdb_query_model_set_sort_order):
1008 Fix a tiny memory leak in the previous commit.
1010 2005-12-20 Jonathan Matthew <jonathan@kaolin.hn.org>
1012 * rhythmdb/rhythmdb-query-model.c:
1013 (rhythmdb_query_model_set_sort_order):
1014 Don't try to emit reorders for empty query models, since it doesn't
1015 achieve anything and it results in a few warnings.
1017 2005-12-19 William Jon McCann <mccann@jhu.edu>
1019 * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
1020 Make burn dialog non-resizable so that the expander can shrink.
1023 2005-12-19 Jonathan Matthew <jonathan@kaolin.hn.org>
1025 * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
1026 add entries without a location, rather than those with one.
1028 2005-12-19 James Livingston <jrl@ids.org.au>
1030 * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
1031 the error isn't set.
1033 2005-12-19 James Livingston <jrl@ids.org.au>
1034 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
1035 add entries without a location. Fixes bug 324290.
1037 * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
1040 * shell/main.c: (main): don't crash if dbus initialisation fails
1041 without setting an error
1043 2005-12-19 Jonathan Matthew <jonathan@kaolin.hn.org>
1045 * sources/rb-library-source.c: Remove unused structure members
1046 (rb_library_source_do_query): Actually use the cached 'all' query.
1049 2005-12-16 Jonathan Matthew <jonathan@kaolin.hn.org>
1051 * sources/rb-audiocd-source.c
1052 (rb_audiocd_get_cd_info): tab
1053 (rb_audiocd_scan_songs): Return boolean success/failure,
1054 fix error messages a bit.
1055 (metadata_cb): Don't crash if we have no tracks
1056 (rb_audiocd_load_songs): Don't try to read metadata if we can't read
1060 2005-12-15 William Jon McCann <mccann@jhu.edu>
1062 * shell/rb-shell.c (rb_shell_sync_fullscreen)
1063 (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
1066 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1069 2005-12-14 William Jon McCann <mccann@jhu.edu>
1071 * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize)
1072 (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen)
1073 (fullscreen_changed_cb):
1074 * lib/rb-preferences.h:
1075 * data/ui/rhythmbox-ui.xml:
1076 * data/rhythmbox.schemas:
1077 Add fullscreen mode.
1081 2005-12-14 Ryan P Skadberg <skadz@stigmata.org>
1083 * configure.ac: Removed DBUS_SERVICES_DIR from top-level
1084 configure. It was not working with RPM.
1085 * data/Makefile.am: Switched dbus directory location to use
1086 datadir instead of variable that was not working.
1088 2005-12-13 James Livingston <jrl@ids.org.au>
1090 patch by: Alex Lancaster <alexl@users.sourceforge.net>
1092 * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
1093 the podcast browser work again. Closes bug 323856.
1095 2005-12-12 William Jon McCann <mccann@jhu.edu>
1097 * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
1100 * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
1101 (rb_utf_friendly_time):
1102 * lib/rb-cut-and-paste-code.h:
1104 * podcast/rb-feed-podcast-properties-dialog.c:
1105 (rb_feed_podcast_properties_dialog_parse_time):
1106 * podcast/rb-podcast-properties-dialog.c:
1107 (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
1108 to display the date in a more user friendly way.
1109 For example, if the feed was updated yesterday it will say:
1110 Last updated: Yesterday 10:00 AM
1111 instead of printing the date.
1113 2005-12-12 William Jon McCann <mccann@jhu.edu>
1115 * podcast/rb-podcast-parse.c (rb_set_channel_value)
1116 (rb_set_item_value, rb_insert_item, rb_validate_channel_propert)
1117 (rb_validate_item_propert, rb_podcast_parser_start_element)
1118 (rb_podcast_parser_end_element, rb_podcast_parser_characters):
1119 Use RB style. Check for NULL before strcmp. No C++ comments.
1120 (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
1121 Don't set invalid mime type when mime type is NULL. Fix leaks.
1122 (rb_podcast_parse_date): Add support for some real world
1124 (rb_podcast_parse_time, rb_podcast_parse_channel_free)
1125 (rb_podcast_parse_item_free): Style and no need to check
1126 for NULL before g_free.
1130 2005-12-12 James Livingston <jrl@ids.org.au>
1132 * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
1133 with gstreamer 0.10, which replaced audioscale.
1135 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
1136 function to free the SoupSession
1138 * shell/rb-source-header.c: (rb_source_header_set_property),
1139 (rb_source_header_disclosure_toggled_cb),
1140 (rb_source_header_view_browser_changed_cb),
1141 (rb_source_header_sync_control_state):
1142 * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
1143 * sources/rb-library-source.c: (rb_library_source_class_init):
1144 * sources/rb-source.c: (rb_source_class_init),
1145 (rb_source_get_status), (default_get_browser_key),
1146 (rb_source_get_browser_key), (rb_source_can_browse),
1147 (rb_source_notify_status_changed),
1148 (rb_source_notify_filter_changed):
1149 * sources/rb-source.h: seperate the enabling of browsers from the use
1152 2005-12-11 William Jon McCann <mccann@jhu.edu>
1154 * data/glade/podcast-feed-properties.glade:
1155 * data/glade/podcast-properties.glade: Use scrolled viewports
1156 for description text. Fix regression of #320509.
1158 2005-12-11 James Livingston <jrl@ids.org.au>
1160 * sources/rb-auto-playlist-source.c:
1161 (rb_auto_playlist_source_class_init), (impl_reset_filters),
1162 (impl_search), (rb_auto_playlist_source_do_query),
1163 (rb_auto_playlist_source_set_query),
1164 (rb_auto_playlist_source_get_query): add support for the search box
1165 to automatic playlists.
1167 * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
1170 2005-12-11 James Livingston <jrl@ids.org.au>
1174 2005-12-11 James Livingston <jrl@ids.org.au>
1176 * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
1177 (rhythmdb_load), (monitor_subdirectory),
1178 (rhythmdb_sync_library_location): start the library sync and
1179 monitoring in an idle callback.
1181 2005-12-10 William Jon McCann <mccann@jhu.edu>
1183 * sources/rb-podcast-source.c (rb_podcast_source_class_init)
1184 (rb_podcast_source_constructor): Remove unused pixbuf column.
1185 (rb_podcast_source_set_property, rb_podcast_source_get_property):
1186 Use consistent style.
1190 2005-12-11 James Livingston <jrl@ids.org.au>
1192 * rhythmdb/rhythmdb-property-model.c:
1193 (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
1194 (rhythmdb_property_model_insert),
1195 (rhythmdb_property_model_delete_prop):
1196 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1197 (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
1198 (destroy_tree_property):
1199 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
1200 (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
1201 GMemChunks, they are crap and deprecated. Improves startup-time and
1202 memory usage slightly.
1204 2005-12-10 William Jon McCann <mccann@jhu.edu>
1206 * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
1207 Added license and website info.
1209 * MAINTAINERS.old: Add Colin.
1210 * MAINTAINERS: Add James.
1211 * AUTHORS: Put back in order. Add extra space between name and email
1212 to make it easier to read. Add James and jonathan.
1214 * widgets/rb-song-info.c (rb_song_info_init)
1215 (rb_song_info_constructor): Make sure close button is primary/rightmost.
1217 2005-12-10 Jonathan Matthew <jonathan@kaolin.hn.org>
1219 Play queue implementation. Closes bug 107787.
1221 * data/rhythmbox.schemas: add items for whether the queue should be
1222 displayed as a sidebar, and the height of the sourcelist if it is.
1224 * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
1225 playlist, and podcast popups; add 'view queue as sidebar' menu item,
1226 add popups for queue as source and as sidebar. We need a separate
1227 popup for the sidebar view because otherwise it's hard to tell which
1228 of the visible entry views the action came from.
1230 * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
1232 * po/POTFILES.in: Add new file
1234 * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
1235 Add helper function for deciding if a podcast episode is available for
1238 * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
1239 reorder entries in the query model.
1240 (idle_process_update): Handle new update type used to insert entries
1241 at a particular position in the query model.
1242 (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
1243 parameter to specify the position (-1 meaning 'at the end').
1244 (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
1246 (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
1247 bad entry removal updates for entries that aren't in the model.
1248 (rhythmdb_query_model_emit_reorder): Add helper function for
1250 (rhythmdb_query_model_move_entry): New method for moving entries
1252 (rhythmdb_query_model_entry_added_cb),
1253 (rhythmdb_query_model_update_limited_entries),
1254 (rhythmdb_query_model_do_reorder),
1255 (rhythmdb_query_model_do_insert): Pass through the index parameter,
1256 use rhythmdb_query_model_emit_reorder where appropriate.
1258 * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
1259 Don't allow the queue to be deleted.
1260 (handle_playlist_entry_cb): Update for method signature change
1261 (rb_playlist_manager_save_playlists_async),
1262 (rb_playlist_manager_get_playlists): Don't save the play queue,
1263 don't report it as a playlist.
1265 * shell/rb-play-order.c: Include queue play order in the list of
1269 (rb_shell_class_init), (rb_shell_get_property): Add new property
1270 for access to the clipboard object.
1271 (rb_shell_constructor): Handle playing-from-queue signal to update the
1272 sourcelist display; add queue sidebar in to UI, listen for queue
1273 sidebar pane changes, and read initial settings from gconf.
1274 (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb):
1275 Only tell the sourcelist the source has changed if the new source is
1276 not the queue, as we update the sourcelist differently in that case.
1277 (rb_shell_set_window_title): Only use the cached window title if the
1278 playing state was the same when it was created.
1279 (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
1280 (rb_shell_sync_pane_visibility): Only hide the side pane if the
1281 sourcelist is hidden and the queue is shown as a source.
1282 (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
1283 mode, since it doesn't make any sense.
1284 (sourcelist_visibility_changed_cb): Update the visibility of the pane
1286 (rb_shell_sync_paned): Update the queue sidebar pane separator too.
1287 (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
1288 (rb_shell_jump_to_entry_with_source): Handle jump to entry when
1289 playing from queue shown as sidebar.
1291 * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
1292 MusicProperties action here from rb-shell-player.c, since it acts like
1294 (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
1295 (rb_shell_clipboard_get_property): new property for queue source.
1296 Watch for selection changes in the sidebar entry view as well as the
1298 (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
1299 actions and MusicProperties.
1300 (rb_shell_clipboard_cmd_queue_delete),
1301 (rb_shell_clipboard_cmd_add_song_to_queue),
1302 (rb_shell_clipboard_cmd_song_info),
1303 (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
1305 * shell/rb-shell-player.{c,h}: Track the source the current playing entry
1306 actually came from (could be the playing source, or the queue), add a
1307 new play order object for the queue, add a property for the queue
1308 source, add a signal for when we switch between playing from the
1309 source and from the queue.
1310 (rb_shell_player_set_property): Handle playing directly from the
1311 queue so we stop once the queue is empty. Create queue play order
1312 when we get the queue source.
1313 (rb_shell_player_get_playing_source): Return the source we're actually
1315 (rb_shell_player_get_playing_entry): Get playing entry from queue if
1317 (rb_shell_player_set_playing_entry): Update the queue play order if
1318 that's where we're playing from.
1319 (rb_shell_player_play_order_update_cb): Take has next/previous for the
1320 queue into consideration too.
1321 (swap_playing_source): Helper function for switching the playing
1323 (rb_shell_player_do_previous): Check the queue, even though there's
1324 never a previous entry in it (yet), swap playing source if it changed.
1325 (rb_shell_player_do_next): Check the queue for entries to play before
1326 the normal play order, and swap playing source if it changed.
1327 (rb_shell_player_do_previous_or_seek): Check the queue for previous
1328 entries to go to as well.
1329 (rb_shell_player_playpause): Check the queue before the selection and
1330 the play order, and swap playing source if it changed.
1331 (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
1332 (rb_shell_player_entry_activated_cb): Use
1333 rb_podcast_manager_entry_downloaded, do some tapdancing to make
1334 activating queue entries work properly (move the activated entry to
1335 the start of the queue and then play it); if we were playing from the
1336 queue, clear its playing entry so it'll start again from the start
1337 after the activated entry.
1338 (rb_shell_player_sync_buttons): MusicProperties action handler moved
1339 to rb-shell-clipboard.c
1340 (actually_set_playing_source): Add helper for updating the playing
1342 (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
1343 signal if we stop or start doing so; use actually_set_playing_source;
1344 emit playing-source-changed if we actually did change source.
1346 * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
1347 rb_static_playlist_source_add_location.
1349 * sources/rb-library-source.c (rb_library_source_class_init): Allow
1350 enqueueing of songs from the library.
1352 * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
1353 enqueueing of sonsg from playlists.
1354 (rb_playlist_source_entry_added_cb): Add extra parameter for
1355 rhythmdb_query_model_add_entry.
1357 * sources/rb-podcast-source.c (rb_podcast_source_class_init):
1358 Implement (can_)add_to_queue for this class.
1359 (rb_podcast_source_entry_activated): Use
1360 rb_podcast_manager_entry_downloaded.
1361 (impl_can_add_to_queue): Return TRUE if at least one entry that has
1362 been downloaded is selected.
1363 (impl_add_to_queue): Only add downloaded entries to the queue.
1365 * sources/rb-source.{c,h}:
1366 (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual
1368 (rb_source_class_init): Don't allow enqueueing by default; implement
1369 add_to_queue though.
1370 (default_add_to_queue): Add all selected entries to the queue.
1372 * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
1373 would be playing if there wasn't anything in the queue).
1374 (set_source_playing): Helper function for manipulating tree store.
1375 (rb_sourcelist_set_playing_source): Use set_source_playing
1376 (rb_sourcelist_preempt_playing_source): Update preempted source
1377 pointer, manipulate source states.
1379 * sources/rb-static-playlist-source.{c,h}:
1380 (rb_static_playlist_source_add_location_internal),
1381 (rb_static_playlist_source_add_location),
1382 (rb_static_playlist_source_add_entry): Add index parameter for
1383 specifying where in the playlist the new entry goes.
1384 (rb_static_playlist_source_new_from_xml), (impl_paste),
1385 (rb_static_playlist_source_add_list_uri),
1386 (rb_static_playlist_source_add_location_swapped),
1387 (rb_static_playlist_source_add_locations),
1388 (rb_static_playlist_source_non_entry_dropped),
1389 (rb_static_playlist_source_row_inserted):
1390 Handle new index parameter everywhere it appears
1391 (rb_static_playlist_source_move_entry): New method for moving entries
1392 around in the playlist.
1394 * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
1395 warnings when trying to scroll entry views that have never been
1398 * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
1399 play order that removes the old entry when switching to a new one.
1401 * sources/rb-play-queue-source.{c,h}: New files, implementing a
1402 static playlist subclass that has a second entry view for the sidebar
1403 view using alternate formatting, and that displays the number of
1404 entries it contains in its source list entry.
1406 2005-12-10 James Livingston <jrl@ids.org.au>
1408 * rhythmdb/rhythmdb-query-model.c:
1409 (rhythmdb_query_model_add_entry),
1410 (rhythmdb_query_model_drag_data_received):
1411 * sources/rb-static-playlist-source.c:
1412 (rb_static_playlist_source_non_entry_dropped): when things are
1413 dropped, ignore any blank lines in the list of uris. Make the source
1414 responsible for adding new items to the db.
1416 * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
1419 2005-12-10 James Livingston <jrl@ids.org.au>
1421 * shell/rb-shell-player.c: (rb_shell_player_set_property),
1422 (rb_shell_player_sync_buttons),
1423 (rb_shell_player_selection_changed_cb): watch for the
1424 "selection-changed" signal, so that the Song Properties get enabled.
1427 2005-12-10 James Livingston <jrl@ids.org.au>
1429 * data/rhythmbox.schemas: fix the gconf schema
1431 2005-12-10 James Livingston <jrl@ids.org.au>
1433 * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
1434 the decoded-pad callback with gstreamer 0.8, it causes problems.
1436 2005-12-10 Jonathan Matthew <jonathan@kaolin.hn.org>
1438 Remove more junk from RBEntryView. Closes bug 323640.
1440 * widgets/rb-entry-view.{c,h}:
1441 Remove unused private structure members, replace 'playing' boolean
1442 with an enum (so we know if we're paused too), and store a pointer to
1443 the RBShellPlayer too.
1444 (rb_entry_view_class_init), (rb_entry_view_set_property),
1445 (rb_entry_view_get_property):
1446 Remove 'entry-selected' and 'changed' signals and
1447 'playing-entry' property, add 'selection-changed' signal and
1448 'shell-player' and 'playing-state' properties.
1449 (rb_entry_view_new): Take the shell player object reference
1450 (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
1451 (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
1452 No longer needed, shell player is the place to get this information.
1453 (rb_entry_view_busy), (rb_entry_view_get_duration),
1454 (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry),
1455 (rb_entry_view_get_next_from_entry),
1456 (rb_entry_view_get_previous_from_entry),
1457 (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
1458 (rb_entry_view_get_num_entries):
1459 Removed, callers should go to the query model directly.
1460 (rb_entry_view_playing_song_changed): Update active query model, emit
1461 row changed signals to update pixbufs, and scroll to the playing song
1462 when the playing song changes, based on a signal from the shell
1464 (queue_changed_sig), (rb_entry_view_row_changed_cb),
1465 (emit_entry_changed): Evil, removed.
1466 (rb_entry_view_selection_changed_cb): Remove old signals, add new
1467 selection-changed signal.
1468 (rb_entry_view_select_none), (rb_entry_view_select_entry):
1469 Remove selection lock. It didn't work anyway.
1470 (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
1471 (rb_entry_view_emit_row_changed): Simple helper function to emit
1472 row-changed signals.
1474 * widgets/Makefile.am: Entry view needs headers from the shell/
1476 * widgets/rb-song-info.{c,h}: Use the query model for everything except
1478 scrolling the entry view to show the entry being displayed.
1479 (rb_song_info_class_init), (rb_song_info_get_property): Add new
1480 'source' property so we can watch for query model changes.
1481 (rb_song_info_finalize): Unref objects, disconnect signal handlers
1482 (rb_song_info_set_property): Watch for query model changes, don't
1483 watch for entry view changes.
1484 (rb_song_info_new): Take source as a parameter, use the source's entry
1485 view unless one was specifically supplied.
1486 (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
1487 Use query model rather than entry view to move between songs.
1488 (rb_song_info_update_buttons): Use query model.
1489 (rb_song_info_query_model_changed_cb): Handle query model changes.
1491 * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
1492 Only one copy of the code to enable/disable the CD burning action
1493 (rb_playlist_manager_playlist_entries_changed):
1494 Use the query model to get the number of entries, not the entry view.
1496 * shell/rb-play-order-random-by-age-and-rating.c,
1497 shell/rb-play-order-random-by-age.c,
1498 shell/rb-play-order-random-by-rating.c,
1499 shell/rb-play-order-random-equal-weights.c:
1502 * shell/rb-shell-player.{c,h}:
1503 Remove a few unused entries from the structure.
1504 (rb_shell_player_set_property):
1505 Don't use the 'changed' signal on the entry view (it's evil)
1506 (rb_shell_player_have_first): No longer needed
1507 (rb_shell_player_play): Just tell the entry view it's playing
1508 (rb_shell_player_playpause): Tell the entry view it's paused
1510 (rb_shell_player_entry_view_changed_cb): No longer used, removed.
1511 (rb_shell_player_property_row_activated_cb):
1512 Get the entry to play using the query model, not the entry view.
1513 (rb_shell_player_sync_buttons): Update entry view state while we're
1515 (rb_shell_player_set_playing_source_internal): Update entry view state
1516 (rb_shell_player_get_playing): Ask the entry view, not the player.
1517 This now returns TRUE when paused. This makes rb_shell_set_elapsed
1518 and rb_shell_set_window_title work properly, so you get "(Paused)" in
1519 the window title and tray icon tooltip.
1520 (rb_shell_player_get_mm_player): Not used anywhere, so removed.
1522 * sources/rb-iradio-source.c, sources/rb-library-source.c,
1523 sources/rb-podcast-source.c, sources/rb-playlist-source.c:
1524 (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
1525 view constructor, pass the source in to the song info widget
1528 * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
1529 Use 'selection-changed' instead of 'changed', since that's what the
1530 clipboard cares about.
1531 (rb_shell_clipboard_set_source): Don't die if source == NULL
1533 2005-12-10 James Livingston <jrl@ids.org.au>
1535 * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
1536 * sources/rb-playlist-source-recorder.c:
1537 (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
1538 stuff not use the deprecated API when compiled against 2.13
1540 2005-12-10 James Livingston <jrl@ids.org.au>
1542 patch by: Alex Lancaster <alexl@users.sourceforge.net>
1544 * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
1545 problem where the genre tag was getting set to the artist. Closes bug
1548 2005-12-09 William Jon McCann <mccann@jhu.edu>
1550 * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
1551 Return NULL if can't get first iter.
1555 2005-12-09 William Jon McCann <mccann@jhu.edu>
1557 * sources/rb-iradio-source.[ch] (impl_song_properties): Use
1558 updated rb_station_properties_dialog_new API.
1559 (rb_iradio_source_add_from_playlist): New public function.
1560 (rb_iradio_source_first_time_changed): Use add_from_playlist.
1562 * shell/rb-shell.c (new_station_location_added): Handle
1563 iradio location added signal.
1564 (rb_shell_cmd_new_station): Use new iradio station dialog.
1566 * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button. Fix typo.
1567 (rb_station_properties_dialog_new): Don't squeeze new
1568 station functionality into this class.
1569 (rb_station_properties_dialog_response_cb): ditto.
1570 (rb_station_properties_dialog_update_title): Make
1571 consistent with other properties dialogs.
1572 (rb_station_properties_dialog_location_changed_cb): Do nothing.
1574 * iradio/rb-new-station-dialog.[ch]:
1575 * iradio/Makefile.am: Add new station dialog.
1577 * data/glade/station-new.glade: New file based on
1578 new podcast feed dialog.
1579 * data/glade/station-properties.glade: Updated to
1580 be consistent with song properties dialog.
1584 2005-12-10 James Livingston <jrl@ids.org.au>
1586 patch by: Ståle Lyngaas <staale@lyngaas.com>
1588 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
1589 submit songs longer than 30 minutes. Fixes bug 323639.
1591 2005-12-09 William Jon McCann <mccann@jhu.edu>
1593 * shell/rb-shell.c (idle_save_playlist_manager): Use new
1594 async save function.
1595 (rb_shell_finalize): Remove save timeout sources. Reorder
1596 steps a bit to make saving db and playlists a bit more
1597 failsafe in case something goes wrong later.
1598 (rb_shell_constructor): Keep track of save timeout source.
1599 (add_to_library_response_cb): Keep track of db save timeout source.
1601 * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
1603 (rb_playlist_manager_shutdown): New function to shutdown
1604 threads etc. before exit.
1605 (rb_playlist_manager_finalize): Moved handling outstanding
1606 threads stuff to shutdown since if there are outstanding threads
1607 they hold a ref and finalize is never called.
1608 (rb_playlist_manager_save_thread_main): Use cond broadcast instead
1609 of signal which may be required for sync save.
1610 (rb_playlist_manager_save_playlists_async): Renamed old
1611 save_playlists to save_playlists_async. Use g_atomic.
1612 (rb_playlist_manager_save_playlists): New function to
1613 perform sync saves (symmetric with RhythmDB API).
1614 (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
1616 * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
1617 Style consistency anality.
1618 (rhythmdb_finalize): Remove save timeout source.
1619 (rhythmdb_set_property, rhythmdb_get_property)
1620 (rhythmdb_process_events): More anality and keep track of
1621 save timeout source.
1622 (action_thread_main): No need to call g_thread_exit.
1623 (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored)
1624 (rhythmdb_query_parse_valist, rhythmdb_query_free)
1625 (write_encoded_gvalue, read_encoded_property): La la la.
1629 2005-12-10 James Livingston <jrl@ids.org.au>
1631 * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
1634 2005-12-10 James Livingston <jrl@ids.org.au>
1637 * configure.ac: remove the rpm spec files, so that automake works.
1640 * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
1643 2005-12-09 James Livingston <jrl@ids.org.au>
1645 * debian/: try to get cvs to actually remove the files
1647 2005-12-09 James Livingston <jrl@ids.org.au>
1649 * rhythmbox.spec.in:
1650 * debian/: remove the distro package stuff, they are *really* old, and
1651 downstream manage it anyway.
1653 2005-12-09 Jonathan Matthew <jonathan@kaolin.hn.org>
1655 Rework play orders to work off query models rather than
1656 entry views, and track the playing entry themselves rather
1657 than relying on the entry view to do it. This makes the entry
1658 view mostly just a widget. Closes bug 323612.
1660 * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
1661 Use query model rather than entry view to get the number
1662 of entries in playlists.
1664 * rhythmdb/rhythmdb-query-model.{c.h}
1665 (rhythmdb_query_model_tree_path_to_entry),
1666 (rhythmdb_query_model_iter_to_entry),
1667 (rhythmdb_query_model_get_next_from_entry),
1668 (rhythmdb_query_model_get_previous_from_entry):
1669 New utility functions for iterating through query models.
1670 (rhythmdb_query_model_compute_status_normal):
1671 Have one copy of this code, not four.
1673 * shell/rb-play-order.{c,h}:
1674 Add signals for when next/previous availability changes, and
1675 when the playing entry is removed, and add a property for
1676 the current playing entry. Add gtkdoc comments too.
1677 (rb_play_order_class_init): Add new property and signals.
1678 (rb_play_order_finalize), (rb_play_order_playing_source_changed),
1679 (rb_play_orer_query_model_changed_cb),
1680 (rb_play_order_query_model_changed):
1681 Use query model rather than entry view.
1682 (rb_play_order_set_property), (rb_play_order_get_property):
1683 Handle new playing-entry property. Call playing_entry_changed virtual
1684 method so subclasses can do any processing required.
1685 (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
1686 (rb_play_order_set_playing_entry):
1687 Just use the playing-entry property.
1688 (rb_play_order_get_query_model), (rb_play_order_model_not_empty):
1689 Utility methods for subclasses.
1690 (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
1691 Update next/previous availability, check if the playing entry
1693 (default_playing_entry_removed):
1694 Keep the current behaviour of just stopping playback when the
1695 playing entry is deleted.
1696 (rb_play_order_go_next), (rb_play_order_go_previous): Implement
1697 these for subclasses that don't have go_next/go_previous, but do
1698 have get_next/get_previous.
1699 (rb_play_order_update_have_next_previous): Emit signal if the
1700 availability of next/previous entries has changed.
1702 * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
1703 shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
1704 Use G_DEFINE_TYPE, replace entry view iterator with query model
1706 (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
1707 on the last song in the shuffled order, go back to the start. This
1708 means if you press 'play' again you'll get the whole order again, not
1711 * shell/rb-shell-player.c:
1712 (rb_shell_player_get_playing_entry), (info_available_cb): Ask the
1713 play order rather than the entry view.
1714 (rb_shell_player_set_property): Update the play order when the
1715 selected source changes and we aren't playing anything.
1716 (rb_shell_player_sync_play_order): Copy the playing entry across to
1717 the new play order so playback continues from the same song, and watch
1718 for updates to have_next/have_previous.
1719 (rb_shell_player_play_order_update_cb): Enable/disable the
1720 next/previous actions when next/previous entry availability changes.
1721 (rb_shell_player_jump_to_current): Just use the play order's idea of
1722 what's playing, not the entry view's; if not playing anything, clear
1723 the selection, so when a playlist ends and you hit play again, it'll
1724 start at the start rather than the end.
1725 (rb_shell_player_do_previous): restructure a bit.
1726 (rb_shell_player_do_next): restructure, jump to new playing entry in
1727 an idle handler instead of directly.
1728 (rb_shell_player_do_previous_or_seek): Only try to go to the previous
1729 song if there is one.
1730 (rb_shell_player_playpause): Jump to playing song, don't update the
1731 play order if we got the song from the selection.
1732 (rb_shell_player_playing_entry_deleted_cb): Not needed.
1733 (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
1734 looks after next/previous actions now. Don't break if called while
1735 there is no selected source.
1736 (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
1737 (rb_shell_player_set_playing_source_internal),
1738 (rb_shell_player_error): No need to track the attempted playing entry
1739 any more, since the play order does that.
1742 (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
1743 rb_shell_player_get_playing_entry rather than going through the entry
1746 * shell/rb-statusbar.c (rb_statusbar_set_property),
1747 (rb_statusbar_source_status_changed_cb): Listen to the source rather
1748 than the entry view for status bar text changes.
1749 (rb_statusbar_sync_status): Ask the query model directly
1751 * sources/rb-source.{c}: Add query model property.
1752 (default_get_status): Get status text from query model, should be
1753 suitable for most sources.
1754 (rb_source_set_property): Listen for changes to the query model
1755 to update the status text.
1756 (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
1757 (idle_emit_status_changed): Emit status-changed signals when query
1760 * sources/rb-library-source.c, sources/rb-podcast-source.c:
1761 (impl_get_status): Not needed, RBSource does this now
1762 (rb_library_source_do_query) (rb_podcast_source_do_query):
1763 Update RBSource's query model reference.
1765 * sources/rb-playlist-source.c:
1766 Remove query-model property, since RBSource has one now
1767 (impl_get_status): Not needed, RBSource does this now
1768 (rb_playlist_source_row_deleted): Use query model iterator helper
1770 (rb_playlist_source_set_query_model): Update RBSource's query model
1773 * sources/rb-iradio-source.c:
1774 (impl_get_status): Ask the query model directly.
1775 (rb_iradio_source_do_query): Update RBSource's query model reference
1776 when we create a new query.
1778 * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
1779 Use query model rather than entry view.
1781 * widgets/rb-entry-view.{c,h}:
1782 Remove playing_entry_deleted signal (now in play order).
1783 (entry_from_tree_path), (entry_from_tree_iter): Not needed
1784 as RhythmDBQueryModel has equivalent helper functions.
1785 (rb_entry_view_*): Use query model helpers instead of the above two
1788 2005-12-09 James Livingston <jrl@ids.org.au>
1791 * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
1792 (rb_recorder_enabled):
1793 * shell/rb-removable-media-manager.c: (poll_tray_opened):
1794 * sources/rb-playlist-source-recorder.c:
1795 (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
1796 whether libnautilusburn has the _drive_unref function, and if so use
1797 it. Stops it complaining about deprecated API.
1799 2005-12-09 James Livingston <jrl@ids.org.au>
1801 * configure.ac: drop the minimum gstreamer version back down, it
1802 accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
1804 2005-12-09 James Livingston <jrl@ids.org.au>
1806 * widgets/rb-song-info.c: (rb_song_info_class_init),
1807 (rb_song_info_show), (rb_song_info_constructor),
1808 (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
1809 (rb_song_info_forward_clicked_cb): save metadata changes when the
1810 Next/Previous buttons are pressed (closes bug 320952). use
1813 2005-12-09 James Livingston <jrl@ids.org.au>
1815 Patch by: <jonathan@kaolin.hn.org>
1817 * sources/rb-iradio-source.c:
1818 (stations_view_drag_data_received_cb):
1819 * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
1820 of urls. Fixes bug 323610.
1822 2005-12-09 James Livingston <jrl@ids.org.au>
1824 patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
1825 GStreamer 0.10. DAAP support for 0.10 isn't done yet.
1828 * metadata/rb-metadata-gst.c:
1829 * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
1830 (rb_player_construct), (rb_player_new):
1831 * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
1832 (rb_recorder_gst_signal_error), (pipe_message),
1833 (rb_recorder_new_pad_cb), (rb_recorder_construct),
1835 * shell/main.c: (main):
1836 * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
1837 (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
1839 2005-12-07 Jonathan Matthew <jonathan@kaolin.hn.org>
1841 * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
1843 * shell/rb-playlist-manager.c:
1844 (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
1845 (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
1846 (rb_playlist_manager_set_automatic_playlist),
1847 (rb_playlist_manager_cmd_new_automatic_playlist),
1848 (rb_playlist_manager_cmd_edit_automatic_playlist):
1849 Use new playlist subclasses.
1850 (rb_playlist_manager_save_playlists): Only read the dirty flag
1851 for local playlists, minor pointless reformatting
1853 * sources/Makefile.am: add new files
1855 * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
1856 split lots of stuff out into two
1857 new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
1858 make RBPlaylistSource abstract, add virtual methods for showing a
1859 popup for the entry view and saving the playlist to XML.
1860 Other stuff is subclass-specific, or already virtual in RBSource.
1862 * sources/rb-playlist-xml: Define playlist XML tags and attributes
1863 in one place, since they're used across three source files now
1865 * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
1866 Use new static playlist class
1868 * sources/rb-ipod-source.c: (add_rb_playlist):
1869 Use new static playlist class
1871 * sources/rb-static-playlist-source.{c,h},
1872 source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
1875 * po/POTFILES.in: add new files
1877 2005-12-07 James Livingston <jrl@ids.org.au>
1879 * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
1880 (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
1881 metadata loads not attempt to write changes to disk.
1883 2005-12-07 James Livingston <jrl@ids.org.au>
1885 patch by: Alex Lancaster <alexl@users.sourceforge.net>
1887 * data/glade/song-info-multiple.glade:
1888 * widgets/rb-song-info.c: (rb_song_info_constructor),
1889 (rb_song_info_sync_entries_multiple): allow the year to be changed on
1890 multiple songs at once.
1892 2005-12-06 James Livingston <jrl@ids.org.au>
1894 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
1895 (rhythmdb_entry_set_visibility): emit signal when visibility changes.
1897 2005-12-06 James Livingston <jrl@ids.org.au>
1899 * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
1900 names rather than adding a horizontal scroll bar.
1902 2005-12-06 James Livingston <jrl@ids.org.au>
1904 * rhythmdb/rhythmdb-query-model.c:
1905 (rhythmdb_query_model_update_limited_entries),
1906 (rhythmdb_query_model_drag_data_received): remove some pointless debug
1909 * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
1910 (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
1911 always hide rather than remove DB entries, which will make RB not lose
1912 information when tag editing happens or people move files to trash and
1913 then change their mind. Also fix some races where the monitoring code
1914 would notice the temporary files generated by saving metadata.
1916 2005-12-05 William Jon McCann <mccann@jhu.edu>
1918 * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
1919 Hide internals and add tooltips.
1920 (rb_song_display_box_size_allocate): Hide internals.
1921 (sanitize_string, info_url): Copied from rb-header.
1922 (rb_song_display_box_sync): New public function.
1924 * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
1925 (rb_header_init): Use a separate row for the seek bar.
1926 (rb_header_finalize): Don't unref widgets.
1927 (rb_header_sync): Use rb_song_display_box_sync.
1928 (rb_header_set_urldata)
1929 (rb_header_set_show_artist_album): Hide instead of remove widgets.
1930 (rb_header_set_show_position_slider): Set visibility of seek bar.
1931 (rb_header_set_show_timeline): Set sensitivity of seek bar.
1932 (rb_header_get_elapsed_string): Don't shift when you first start playback.
1934 * shell/rb-statusbar.c (rb_statusbar_init)
1935 (rb_statusbar_sync_state): Remove shuffle and repeat controls.
1937 * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
1938 (rb_shell_constructor): Remove hseparator. Monitor
1939 toolbar visibility settings. Add toolbar. Add
1940 volume button to toolbar. Add tooltips for volume button.
1941 (rb_shell_view_toolbar_changed_cb)
1942 (rb_shell_sync_toolbar_visibility)
1943 (toolbar_visibility_changed_cb): Set visibility of
1945 (rb_shell_sync_smalldisplay): Set the toolbar style to
1946 icons only when in small display mode.
1947 (rb_shell_volume_widget_changed_cb): Save volume setting.
1949 * shell/rb-shell-player.c (rb_shell_player_constructor):
1950 Remove pause and stop actions. Make play action "important"
1951 so that text is visible in horizontal toolbar position.
1952 Remove control buttons.
1953 (rb_shell_player_init)
1954 (rb_shell_player_sync_song_position_slider_visibility):
1955 Set visbibility of seek bar.
1956 (rb_shell_player_cmd_play, rb_shell_player_playpause):
1957 Make play action a toggle.
1958 (rb_shell_player_sync_volume): Volume control moved
1960 (gconf_song_position_slider_visibility_changed):
1961 Set visbibility of seek bar.
1962 (rb_shell_player_sync_buttons):
1963 Set sensitivity of actions instead of buttons.
1964 (rb_shell_player_playing_changed_cb): Add callback
1965 for player notify::playing changes.
1967 * lib/rb-preferences.h: Add hide toolbar and seek
1970 * data/ui/rhythmbox-ui.xml: Add hide toolbar and
1971 seek bar menu items. Remove pause and stop actions
1972 from the control menu. Add a toolbar.
1974 * data/rhythmbox.schemas: Add toolbar_hidden
1975 song_position_slider_hidden keys.
1977 Patch by: James Livingston <jrl@ids.org.au>
1978 William Jon McCann <mccann@jhu.edu>
1981 2005-12-05 James Livingston <jrl@ids.org.au>
1983 * data/glade/library-prefs.glade:
1984 * data/rhythmbox.schemas:
1985 * lib/rb-preferences.h:
1986 * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
1987 (rhythmdb_sync_library_location):
1988 * sources/rb-library-source.c: (rb_library_source_class_init),
1989 (rb_library_source_finalize), (rb_library_source_constructor),
1990 (impl_get_config_widget), (rb_library_source_preferences_sync),
1991 (rb_library_source_watch_toggled_cb): allow people to disable library
1992 monitoring, because with nothing set the file chooser button selects
1993 the Home folder (and hence that will get monitored).
1995 2005-12-04 Ryan P Skadberg <skadz@stigmata.org>
1997 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
1998 attempt to fix problem with RSS parsing showing invalid feed types.
2001 2005-12-04 James Livingston <jrl@ids.org.au>
2003 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
2004 (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
2005 importing a remote directory not block the UI.
2007 2005-12-03 Dennis Cranston <dennis_cranston@yahoo.com>
2009 * data/glade/podcast-feed-properties.glade:
2010 * data/glade/podcast-properties.glade: HIG fix, closes bug 323131.
2012 2005-12-04 James Livingston <jrl@ids.org.au>
2014 patch by: Dennis Cranston <dennis_cranston@yahoo.com>
2016 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
2017 to && to fix a mistake in the earlier podcast patch.
2019 2005-12-03 James Livingston <jrl@ids.org.au>
2021 * data/glade/podcast-new.glade:
2022 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2023 (rb_new_podcast_dialog_text_changed): remove some unused stuff.
2025 * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
2026 GValue, which stops occasional errors.
2028 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
2031 2005-12-03 James Livingston <jrl@ids.org.au>
2033 patch by: Dennis Cranston <dennis_cranston@yahoo.com>
2035 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
2036 crasher with some podcasts feeds.
2038 2005-12-03 James Livingston <jrl@ids.org.au>
2040 * data/rhythmbox.schemas: fix the gconf schema
2042 2005-12-03 James Livingston <jrl@ids.org.au>
2044 patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
2045 add a selection timeout to the sourcelist. This lets you hold a track
2046 over the playlist source, and then have the view switch so you can
2047 insert the track in the middle of the playlist. Closes bug 323044.
2049 * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
2050 (select_on_drag_timeout), (remove_select_on_drag_timeout),
2051 (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
2052 (rb_tree_dnd_add_drag_dest_support):
2053 * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
2056 * sources/rb-sourcelist-model.c:
2057 (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
2060 2005-12-02 Bastien Nocera <hadess@hadess.net>
2062 * data/glade/audioscrobbler-prefs.glade: add a space before the web
2063 links, so that the text doesn't touch the button
2065 2005-12-02 James Livingston <jrl@ids.org.au>
2067 Add full support for gnome-vfs remote files. Closes bug 140355.
2069 * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
2070 (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
2071 for authentication information from the user doesn't block the UI.
2073 (rhythmdb_entry_set_visibility): don't emit the signal twice.
2075 * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2076 (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
2077 (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
2078 (rhythmdb_process_stat_event), (emit_load_error_idle),
2079 (rhythmdb_process_metadata_load),
2080 (rhythmdb_process_queued_entry_set_event),
2081 (rhythmdb_process_file_created_or_modified),
2082 (rhythmdb_process_file_deleted), (rhythmdb_process_events),
2083 (queue_stat_uri), (add_thread_main),
2084 (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
2085 (rhythmdb_load), (rhythmdb_save_thread_main),
2086 (threadsafe_entry_set), (rhythmdb_query_internal),
2087 (query_thread_main), (rhythmdb_do_full_query_async_parsed),
2088 (rhythmdb_do_full_query_internal),
2089 (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
2090 (rhythmdb_volume_unmounted_cb),
2091 (rhythmdb_check_changed_file): trivial changes to support the
2094 * shell/main.c: (main): activate the authentication manager.
2096 * shell/rb-playlist-manager.c:
2097 (rb_playlist_manager_cmd_load_playlist),
2098 (rb_playlist_manager_cmd_save_playlist):
2099 * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
2100 (rb_shell_cmd_add_file_to_library):
2101 * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
2102 * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
2105 2005-12-02 James Livingston <jrl@ids.org.au>
2107 * shell/rb-playlist-manager.c: makes playlist menu items use the
2108 elipses correctly. Fixes bug 322283.
2110 2005-12-02 James Livingston <jrl@ids.org.au>
2112 * shell/rb-playlist-manager.c:
2113 (rb_playlist_manager_load_playlists): fix silly mistake
2115 2005-12-02 James Livingston <jrl@ids.org.au>
2117 * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
2118 print out metadata-write unless --debug was passed.
2120 * rhythmdb/rhythmdb.c: (rhythmdb_load):
2121 * shell/rb-playlist-manager.c:
2122 (rb_playlist_manager_load_playlists): block writes to disk if they are
2125 2005-12-02 James Livingston <jrl@ids.org.au>
2127 * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
2128 ctrl-T, because Ctrl-D is used by "small mode"
2130 2005-12-02 James Livingston <jrl@ids.org.au>
2132 * shell/rb-shell-preferences.c:
2133 (rb_shell_preferences_append_view_page):
2134 * sources/rb-library-source.c: (impl_get_config_widget):
2135 * sources/rb-podcast-source.c: (impl_get_config_widget):
2136 * sources/rb-source.c: (rb_source_get_config_widget):
2137 * sources/rb-source.h: Make the preference actually work.
2139 * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
2140 if Rhythmbox is being run for the first time.
2142 2005-12-02 James Livingston <jrl@ids.org.au>
2144 Add support for Rhythmbox to watch your library, and automatically add
2145 new tracks. Fixes bug 160159.
2147 * data/glade/library-prefs.glade: add "library location" preference
2148 * data/rhythmbox.schemas: add gconf key for the library location
2150 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
2151 (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
2152 (rhythmdb_finalize), (rhythmdb_directory_change_cb),
2153 (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
2154 (rhythmdb_process_metadata_load), (rhythmdb_process_events),
2155 (rhythmdb_load_thread_main), (rhythmdb_load),
2156 (monitor_subdirectory), (monitor_library_directory),
2157 (monitor_entry_file), (rhythmdb_sync_library_location),
2158 (library_location_changed_cb), (rhythmdb_check_changed_file),
2159 (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
2160 specifiec in the gconf key for new additions. Also fix monitoring code
2161 so that it works properly, and notices deletions.
2163 * lib/rb-preferences.h:
2164 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
2165 (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
2166 * shell/rb-audioscrobbler.h:
2167 * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
2168 (rb_shell_preferences_append_view_page),
2169 (rb_shell_preferences_new):
2170 * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
2171 it's preferences pane, so that we don't need #ifdef's through
2172 rb-shell-preferences.
2174 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2175 (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
2176 "preferences" property, so that sources can acccess it. This is needed
2177 because the library location pref needs to take effect when the window
2180 * sources/rb-library-source.c:
2181 (rb_library_source_library_location_changed),
2182 (rb_library_source_dispose), (rb_library_source_finalize),
2183 (rb_library_source_constructor), (impl_get_config_widget),
2184 (rb_library_source_preferences_sync),
2185 (rb_library_source_process_library_location_change),
2186 (rb_library_source_prefs_update),
2187 (rb_library_source_process_library_handle_selection),
2188 (rb_library_source_library_location_cb): set up and control the
2189 "library location" preference.
2191 * sources/rb-audiocd-source.c:(rb_source_class_init):
2192 * sources/rb-source.c: (rb_source_class_init): remove some pointless
2195 2005-12-01 William Jon McCann <mccann@jhu.edu>
2197 * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init)
2198 (rb_feed_podcast_properties_dialog_update_title):
2199 * data/glade/podcast-feed-properties.glade:
2200 Make the feed properties dialog consistent with the podcast
2203 2005-12-01 William Jon McCann <mccann@jhu.edu>
2205 * metadata/.cvsignore:
2207 * podcast/.cvsignore: Updated.
2209 * shell/main.c (main): Support DBus 0.6 flags.
2211 2005-11-30 Bastien Nocera <hadess@hadess.net>
2213 * data/ui/rhythmbox-ui.xml:
2214 * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
2215 (rhythmbd_entry_move_to_trash_set_error),
2216 (rhythmdb_entry_move_to_trash):
2217 * rhythmdb/rhythmdb.h:
2218 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
2219 (rb_shell_clipboard_cmd_delete),
2220 (rb_shell_clipboard_cmd_move_to_trash):
2221 * sources/rb-library-source.c: (rb_library_source_class_init),
2222 (impl_delete), (impl_move_to_trash):
2223 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2224 (impl_delete), (impl_move_to_trash):
2225 * sources/rb-removable-media-source.c:
2226 (rb_removable_media_source_class_init):
2227 * sources/rb-source.c: (rb_source_class_init),
2228 (rb_source_can_move_to_trash), (rb_source_delete),
2229 (rb_source_move_to_trash):
2230 * sources/rb-source.h:
2231 Add move_to_trash member for the sources, implement move to trash for
2232 the library and playlists
2233 Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
2234 local files to the trash, and deleting them from the database
2237 2005-11-30 William Jon McCann <mccann@jhu.edu>
2239 * shell/rb-tray-icon.c (rb_tray_icon_class_init)
2240 (rb_tray_icon_init, rb_tray_icon_finalize):
2241 * shell/rb-statusbar.c (rb_statusbar_class_init)
2242 (rb_statusbar_init, rb_statusbar_finalize):
2243 * shell/rb-source-header.c (rb_source_header_class_init)
2244 (rb_source_header_init, rb_source_header_finalize):
2245 * shell/rb-shell.c (rb_shell_class_init, rb_shell_init)
2246 (rb_shell_finalize):
2247 * shell/rb-shell-preferences.c (rb_shell_preferences_class_init)
2248 (rb_shell_preferences_init, rb_shell_preferences_finalize):
2249 * shell/rb-shell-player.c (rb_shell_player_class_init)
2250 (rb_shell_player_init, rb_shell_player_finalize):
2251 * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init)
2252 (rb_shell_clipboard_init, rb_shell_clipboard_finalize):
2253 * shell/rb-playlist-manager.c (rb_playlist_manager_class_init)
2254 (rb_playlist_manager_init, rb_playlist_manager_finalize):
2255 * shell/rb-play-order.c (rb_play_order_class_init)
2256 (rb_play_order_init, rb_play_order_finalize):
2257 * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init)
2258 (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize):
2259 * shell/rb-play-order-random.c (rb_random_play_order_class_init)
2260 (rb_random_play_order_init, rb_random_play_order_finalize):
2261 * shell/rb-history.c (rb_history_class_init, rb_history_init)
2262 (rb_history_finalize):
2263 * shell/rb-commander.c (rb_commander_class_init)
2264 (rb_commander_init, rb_commander_finalize):
2265 * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init)
2266 (rb_audioscrobbler_init, rb_audioscrobbler_finalize):
2267 * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init)
2268 (rb_remote_bonobo_init, rb_remote_bonobo_finalize):
2269 * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init)
2270 (rb_podcast_properties_dialog_init)
2271 (rb_podcast_properties_dialog_finalize):
2272 * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init)
2273 (rb_podcast_manager_init, rb_podcast_manager_finalize):
2274 * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init)
2275 (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize):
2276 * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init)
2277 (rb_feed_podcast_properties_dialog_init)
2278 (rb_feed_podcast_properties_dialog_finalize):
2279 * metadata/rb-metadata-gst.c (rb_metadata_class_init)
2280 (rb_metadata_init, rb_metadata_finalize):
2281 * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init)
2282 (rb_station_properties_dialog_init)
2283 (rb_station_properties_dialog_finalize):
2284 * daapsharing/rb-daap-share.c (rb_daap_share_class_init)
2285 (rb_daap_share_init, rb_daap_share_dispose):
2287 Use g_type_class_add_private in all classes. Closes bug 313688.
2289 2005-11-30 James Livingston <jrl@ids.org.au>
2291 patch by: William Jon McCann <mccann@jhu.edu> to use
2292 g_type_class_add_private in all classes. Closes bug 313688.
2294 * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
2295 (rb_thread_finalize):
2296 * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
2297 (rb_player_finalize):
2298 * rhythmdb/rhythmdb-property-model.c:
2299 (rhythmdb_property_model_class_init),
2300 (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
2301 * rhythmdb/rhythmdb-query-model.c:
2302 (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
2303 (rhythmdb_query_model_finalize):
2304 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
2305 (rhythmdb_tree_init), (rhythmdb_tree_finalize):
2306 * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
2307 (rhythmdb_finalize):
2308 * sources/rb-daap-source.c: (rb_daap_source_class_init),
2309 (rb_daap_source_init), (rb_daap_source_dispose):
2310 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2311 (rb_iradio_source_init), (rb_iradio_source_finalize):
2312 * sources/rb-library-source.c: (rb_library_source_class_init),
2313 (rb_library_source_init), (rb_library_source_finalize):
2314 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2315 (rb_playlist_source_init), (rb_playlist_source_dispose):
2316 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2317 (rb_podcast_source_init), (rb_podcast_source_finalize):
2318 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
2319 (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
2320 * sources/rb-sourcelist-model.h:
2321 * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
2322 (rb_sourcelist_init), (rb_sourcelist_finalize):
2323 * sources/rb-sourcelist.h:
2324 * widgets/disclosure-widget.c: (finalize), (class_init), (init):
2325 * widgets/rb-cell-renderer-rating.c:
2326 (rb_cell_renderer_rating_init),
2327 (rb_cell_renderer_rating_class_init),
2328 (rb_cell_renderer_rating_finalize):
2329 * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
2330 (rb_druid_finalize):
2331 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2332 (rb_entry_view_init), (rb_entry_view_finalize):
2333 * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
2334 (rb_header_finalize):
2335 * widgets/rb-load-failure-dialog.c:
2336 (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
2337 (rb_load_failure_dialog_finalize):
2338 * widgets/rb-property-view.c: (rb_property_view_class_init),
2339 (rb_property_view_init), (rb_property_view_finalize):
2340 * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
2341 (rb_rating_finalize):
2342 * widgets/rb-search-entry.c: (rb_search_entry_class_init),
2343 (rb_search_entry_init), (rb_search_entry_finalize):
2344 * widgets/rb-simple-view.c: (rb_simple_view_class_init),
2345 (rb_simple_view_init), (rb_simple_view_finalize):
2346 * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
2347 (rb_song_display_box_init), (rb_song_display_box_finalize):
2348 * widgets/rb-song-info.c: (rb_song_info_class_init),
2349 (rb_song_info_init), (rb_song_info_finalize):
2350 * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
2351 (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
2353 2005-11-30 James Livingston <jrl@ids.org.au>
2355 * iradio/rb-station-properties-dialog.c:
2356 (rb_station_properties_dialog_init),
2357 (rb_station_properties_dialog_new):
2358 * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
2359 * lib/rb-glade-helpers.h:
2360 * podcast/rb-feed-podcast-properties-dialog.c:
2361 (rb_feed_podcast_properties_dialog_init),
2362 (rb_feed_podcast_properties_dialog_new):
2363 * podcast/rb-podcast-properties-dialog.c:
2364 (rb_podcast_properties_dialog_init),
2365 (rb_podcast_properties_dialog_new):
2366 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
2367 * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
2368 * sources/rb-library-source.c: (impl_get_config_widget):
2369 * sources/rb-playlist-source-recorder.c:
2370 (rb_playlist_source_recorder_init):
2371 * widgets/rb-song-info.c: (rb_song_info_construct_single),
2372 (rb_song_info_constructor): create a single rb_glade_boldify_label()
2373 in rb-glade-helpers, rather than having eight implementation
2374 throughout the code.
2376 2005-11-30 James Livingston <jrl@ids.org.au>
2378 * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
2380 * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
2381 move the duration->string function into rb-utils, as it gets used in a
2384 patch by: William Jon McCann <mccann@jhu.edu>
2386 * data/glade/podcast-properties.glade:
2387 * podcast/rb-podcast-properties-dialog.c:
2388 (rb_podcast_properties_dialog_init),
2389 (rb_podcast_properties_dialog_update),
2390 (rb_podcast_properties_dialog_update_title),
2391 (rb_podcast_properties_dialog_update_feed),
2392 (rb_podcast_properties_dialog_update_duration),
2393 (rb_podcast_properties_dialog_update_bitrate): Make the podcast
2394 info dialog look more like the song info dialog. Use the same "Feed"
2395 value that is displayed in the treeview (ie. the album field), displays
2396 the duration, uses units in the bitrate field, and sort the fields in
2399 2005-11-29 James Livingston <jrl@ids.org.au>
2401 * rhythmdb/rhythmdb-marshal.list:
2402 * rhythmdb/rhythmdb.h:
2403 * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2404 (emit_load_error_idle), (rhythmdb_process_metadata_load),
2405 (entry_to_rb_metadata), (emit_save_error_idle),
2406 (action_thread_main): emit error signal when metadata write fails.
2408 * shell/rb-shell.c: (rb_shell_constructor),
2409 (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
2410 "metadata save" error and display it to the user.
2412 2005-11-29 James Livingston <jrl@ids.org.au>
2414 * data/ui/rhythmbox-ui.xml:
2415 * sources/rb-podcast-source.c:
2416 (rb_podcast_source_songs_show_popup_cb),
2417 (rb_podcast_source_cmd_download_post),
2418 (rb_podcast_source_cmd_cancel_download): split download and cancel
2419 download commands. Replace usage of "Post" with "Esisode". Fixes bug
2422 2005-11-18 William Jon McCann <mccann@jhu.edu>
2424 * widgets/rb-dialog.c (rb_error_dialog): Don't use a
2425 title on alert dialogs per the HIG.
2427 * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
2429 (free_song_list): Routine to free song list.
2430 (rb_playlist_source_recorder_finalize): Use free_song_list.
2431 (rb_playlist_source_recorder_add_from_model): Return FALSE
2432 if unable to add all songs. Check that duration of all
2433 songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
2436 * sources/rb-playlist-source-recorder.c (check_media_length)
2437 (rb_playlist_source_recorder_start): Only check the duration
2438 and current media if the playlist length is longer than a
2439 standard CD (74 min). Otherwise, just let the Recorder do the
2441 * player/rb-recorder-gst.c (rb_recorder_init): Get a default
2443 (rb_recorder_set_device): Don't leak drives.
2444 (rb_recorder_get_media_length): Use drive that was already set.
2445 (rb_recorder_burn): Let the recorder handle checking media type/size.
2448 2005-11-29 James Livingston <jrl@ids.org.au>
2450 * rhythmdb/rhythmdb-query-model.c:
2451 (rhythmdb_query_model_set_sort_order):
2452 * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
2453 emitting the tree-model "resorted" signal.
2455 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2456 (rb_entry_view_finalize), (rb_entry_view_set_property),
2457 (rb_entry_view_constructor), (rb_entry_view_resort_model):
2458 * widgets/rb-entry-view.h: add a function to resort the entry view,
2459 using the above function.
2461 * sources/rb-iradio-source.c:
2462 (rb_iradio_source_songs_view_sort_order_changed_cb):
2463 * sources/rb-library-source.c: (rb_library_source_finalize),
2464 (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
2465 * sources/rb-playlist-source.c:
2466 (rb_playlist_source_songs_sort_order_changed_cb):
2467 * sources/rb-podcast-source.c:
2468 (rb_podcast_source_posts_view_sort_order_changed_cb),
2469 (rb_podcast_source_do_query): use the above function instead of
2470 re-creating the query model. This makes changing the sorting an order
2471 of magnitude faster, as it uses a single resorted signal rather than
2472 deleting and re-adding everything (which emits 2N signals). Closes bug
2475 2005-11-29 James Livingston <jrl@ids.org.au>
2477 patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
2478 autosizing, which results in large speedups. Closes bug 312122.
2480 * po/ja.po: change the date format, so that it is a constant width
2482 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2483 * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
2484 * widgets/rb-entry-view.c: (rb_entry_view_append_column),
2485 (rb_entry_view_constructor): make columns use fixed widths,
2486 disable column autosizing, and enable fixed-height mode.
2488 * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
2489 (rb_entry_view_get_time_date_column_sample):
2490 * widgets/rb-entry-view.h: functions to set a column to a fixed width,
2491 and get the canonical date format for the locale.
2493 ============ Version 0.9.2
2495 2005-11-28 James Livingston <jrl@ids.org.au>
2497 * configure.ac: bump version to 0.9.2
2498 * NEWS: update with changes for 0.9.2
2500 2005-11-28 James Livingston <jrl@ids.org.au>
2502 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
2504 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
2505 Disable saving, renaming and delting for DAAP playlists.
2508 2005-11-28 James Livingston <jrl@ids.org.au>
2510 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
2511 gnome_vfs_get_file_info is returning NULL for the mime-type. Should
2514 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
2515 * sources/rb-removable-media-source.c:
2516 (rb_removable_media_source_class_init): fix ipod browser visibility
2519 2005-11-28 James Livingston <jrl@ids.org.au>
2521 * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
2522 Avahi 0.6 support actually work. Fixes bug 322519.
2524 2005-11-26 Ryan P Skadberg <skadz@stigmata.org>
2526 * configure.ac: Fix configure check for Avahi 0.6/0.5 when
2527 avahi is specified in --with-mdns
2529 2005-11-27 James Livingston <jrl@ids.org.au>
2531 patch by: Bastien Nocera <hadess@hadess.net>
2533 * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
2534 not the private one. Fixes bug 322485.
2536 2005-11-26 James Livingston <jrl@ids.org.au>
2538 patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
2539 Avahi 0.6, as well as 0.5.
2542 * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
2543 (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
2546 2005-11-25 James Livingston <jrl@ids.org.au>
2548 * configure.ac: Make --enable-ipod not confuse configure. Closes bug
2551 2005-11-25 James Livingston <jrl@ids.org.au>
2553 * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
2554 correct type for checking the date against 0. Stops a warning when
2557 2005-11-25 James Livingston <jrl@ids.org.au>
2559 * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
2560 adjustment to be inside the element's limits. Without this songs that
2561 have large ReplayGain values will recieve no increase because they are
2562 outside the acceptable range, causing them to remain quiet.
2564 2005-11-25 James Livingston <jrl@ids.org.au>
2566 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
2567 * sources/rb-daap-source.c: (rb_daap_source_class_init):
2568 * sources/rb-ipod-source.c:
2569 * sources/rb-source.h:
2570 * sources/rb-library-source.h:
2571 * sources/rb-library-source.c: (rb_library_source_class_init),
2572 (rb_library_source_constructor),
2573 (rb_library_source_has_first_added_column),
2574 (rb_library_source_has_drop_support):
2575 * sources/rb-removable-media-source.c:
2576 (rb_removable_media_source_class_init): Make library-derived sources
2577 not show the Date Added column, as it doesn't make sense. Fixes bug
2579 Move some of the feature funcs from the ipod and audio cd sources up to
2580 the removable media source.
2582 2005-11-24 James Livingston <jrl@ids.org.au>
2584 * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
2587 2005-11-24 James Livingston <jrl@ids.org.au>
2589 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2590 (rb_iradio_source_dispose), (rb_iradio_source_finalize),
2591 (rb_iradio_source_constructor): Chain up dispose method and use
2594 2005-11-24 James Livingston <jrl@ids.org.au>
2596 * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
2597 mistake in the last commit that can cause crashes.
2599 2005-11-24 James Livingston <jrl@ids.org.au>
2601 * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
2602 instead of g_printerr.
2604 * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
2605 rb_debug instead of g_warning. The message happens every time for
2606 removable media/daap shares, so it's not unusual.
2608 2005-11-24 James Livingston <jrl@ids.org.au>
2610 patch by: Tom Parker <palfrey@tevp.net>
2612 * configure.ac: fix libsoup test for enabling daap
2614 2005-11-23 James Livingston <jrl@ids.org.au>
2616 * widgets/rb-query-creator.c: (rb_query_creator_class_init),
2617 (rb_query_creator_init), (rb_query_creator_constructor),
2618 (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
2619 empty row to queries with no criteria. Fixes bug 322078. use
2622 2005-11-23 James Livingston <jrl@ids.org.au>
2624 patch by: <baptiste.millemathias@gmail.com>
2626 * help/C/quick-reference.xml: update the quick reference to have the
2627 correct key bindings.
2629 2005-11-22 James Livingston <jrl@ids.org.au>
2631 * sources/rb-library-source.c: (genres_selection_reset_cb),
2632 (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
2633 reset the query when all browser selections are removed.
2635 2005-11-22 Jonathan Matthew <jonathan@kaolin.hn.org>
2637 * podcast/rb-podcast-manager.c:
2638 (rb_podcast_manager_db_entry_deleted_cb):
2639 Use a custom loop to remove podcast posts, rather than
2640 gtk_tree_model_foreach(), as deleting the entries within
2641 that loop causes the iterator to return the first entry
2642 twice. Instead, we need to find the next entry before
2643 removing the current one. Fixes bug 321956.
2644 (rb_podcast_manager_entry_remove_cb): No longer needed.
2646 2005-11-22 James Livingston <jrl@ids.org.au>
2648 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2649 (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
2650 up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
2652 2005-11-22 James Livingston <jrl@ids.org.au>
2654 * sources/rb-podcast-source.c:
2655 (rb_podcast_source_post_date_cell_sort_func),
2656 (rb_podcast_source_post_status_cell_sort_func),
2657 (rb_podcast_source_post_feed_cell_sort_func):
2658 * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
2659 (rb_entry_view_album_sort_func),
2660 (rb_entry_view_double_ceiling_sort_func),
2661 (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
2662 the entry's location as a last resort when sorting, so the sort order
2663 is stable. This will stop entries moving around when two entries have
2664 the same sorting, and one of them gets played.
2666 2005-11-22 James Livingston <jrl@ids.org.au>
2668 * daapsharing/rb-daap-connection.c:
2669 (rb_daap_connection_class_init), (rb_daap_connection_init),
2670 (connection_get_password), (build_message),
2671 (http_response_handler), (http_get), (handle_server_info),
2672 (handle_login), (handle_update), (handle_database_info),
2673 (handle_song_listing), (handle_playlists),
2674 (handle_playlist_entries), (rb_daap_connection_new),
2675 (rb_daap_connection_constructor), (rb_daap_connection_logout),
2676 (rb_daap_connection_state_done), (rb_daap_connection_do_something),
2677 (rb_daap_connection_get_headers),
2678 (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
2679 (rb_daap_connection_set_property),
2680 (rb_daap_connection_get_property):
2681 * daapsharing/rb-daap-connection.h:
2682 * sources/rb-daap-source.c: (rb_daap_source_dispose),
2683 (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
2684 (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
2685 of destroying the object when it is going to be used by a callback and
2686 fixes a double-free. Fixes bugs 321930 and 322007.
2688 2005-11-22 James Livingston <jrl@ids.org.au>
2690 * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
2691 (rb_podcast_manager_insert_feed): Don't show the "new episodes"
2692 notification if there aren't any. Fixes bug 321968.
2694 2005-11-22 James Livingston <jrl@ids.org.au>
2696 * rhythmdb/rhythmdb-property-model.c:
2697 (rhythmdb_property_model_set_property),
2698 (rhythmdb_property_model_finalize),
2699 (rhythmdb_property_model_compare),
2700 (rhythmdb_property_model_insert),
2701 (rhythmdb_property_model_delete_prop): Fix property model sorting
2702 where the display and sort keys are different. Fixes bug 321980.
2704 2005-11-22 James Livingston <jrl@ids.org.au>
2706 * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
2707 when import as a file or passed on the command line, and load them as
2710 2005-11-22 James Livingston <jrl@ids.org.au>
2712 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
2714 * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
2715 (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
2716 a broken daap server. Fixes bug 321919.
2718 2005-11-22 James Livingston <jrl@ids.org.au>
2720 * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
2721 drag-and-drop for both the episodes and feeds list.
2723 (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
2724 consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
2725 From Jonathan Matthew <jonathan@kaolin.hn.org>.
2727 * widgets/rb-property-view.c: (rb_property_view_class_init),
2728 (rb_property_view_set_property), (rb_property_view_get_property),
2729 (rb_property_view_new), (rb_property_view_constructor):
2730 * widgets/rb-simple-view.c: (rb_simple_view_class_init),
2731 (rb_simple_view_new), (rb_simple_view_constructor):
2732 * widgets/rb-simple-view.h: add a "draggable" property to property
2733 views and set it to false for the feed list. Fixes bug 321284.
2735 2005-11-22 James Livingston <jrl@ids.org.au>
2737 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
2739 * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
2740 * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
2741 * sources/rb-ipod-source.c: (add_rb_playlist):
2742 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
2743 (rb_playlist_source_set_property),
2744 (rb_playlist_source_get_property), (rb_playlist_source_new),
2745 (impl_receive_drag), (rb_playlist_source_add_location),
2746 (rb_playlist_source_new_from_xml):
2747 * sources/rb-playlist-source.h: give playlists and (optional)
2748 entry-type, and reject entries that don't match. Fixes bug 322006.
2750 2005-11-21 James Livingston <jrl@ids.org.au>
2752 * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
2753 (rb_source_header_finalize): remove the weak references when the
2754 source header is finalised. Stops the callbacks being called after the
2755 object is destroyed.
2757 2005-11-21 James Livingston <jrl@ids.org.au>
2759 * shell/main.c: (main): don't try to acquite bonobo/dbus when
2760 --no-registration was passed. It causes warnings that make it
2761 impossible to run with --no-registration --g-fatal-warnings
2763 2005-11-21 James Livingston <jrl@ids.org.au>
2765 * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
2766 of strings when they are still in use. Fixes bug 321547.
2768 (rb_daap_connection_destroy): fix memory leak
2770 2005-11-21 James Livingston <jrl@ids.org.au>
2772 * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
2773 (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
2774 (rb_daap_mdns_resolve_cancel), (publish_cb),
2775 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
2778 2005-11-21 James Livingston <jrl@ids.org.au>
2780 * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
2783 2005-11-20 James Livingston <jrl@ids.org.au>
2785 * podcast/rb-podcast-manager.c:
2786 (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
2787 that we don't leak thread structures. Fixes bug 321636, and probably
2790 2005-11-20 James Livingston <jrl@ids.org.au>
2792 * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
2794 * podcast/rb-podcast-manager.c: (start_job),
2795 (rb_podcast_manager_db_entry_deleted_cb),
2796 (rb_podcast_manager_entry_remove_cb):
2797 * podcast/rb-podcast-parse.c: (rb_insert_item),
2798 (rb_podcast_parse_load_feed):
2799 * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
2800 * shell/rb-removable-media-manager.c:
2801 (rb_removable_media_manager_append_media_source):
2802 * shell/rb-shell.c: (add_to_library_response_cb):
2803 * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
2804 * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
2805 * sources/rb-iradio-source.c:
2806 (stations_view_drag_data_received_cb):
2807 * sources/rb-library-source.c: (string_list_equal),
2808 (impl_get_extra_views), (impl_receive_drag):
2809 * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
2810 * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
2811 (impl_receive_drag):
2812 * widgets/rb-entry-view.c: (rb_entry_view_finalize),
2813 (rb_entry_view_append_column_custom), (harvest_entries):
2814 * widgets/rb-property-view.c:
2815 (rb_property_view_selection_changed_cb):
2816 * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
2817 switch from using g_list_append to g_list_prepend. This changes
2818 operations from O(n^2) to O(n), which in cases like deleting a lot of
2819 tracks can give huge improvements in speed. Closes bug 321696.
2821 2005-11-20 James Livingston <jrl@ids.org.au>
2823 * sources/rb-sourcelist.c: (rb_sourcelist_init),
2824 (rb_sourcelist_update_expander_visibility): fix indenting of child
2827 2005-11-20 James Livingston <jrl@ids.org.au>
2829 * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
2830 (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
2831 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
2832 (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
2833 (add_service), (entry_group_cb): dynamically allocate memory, rather
2834 than using static variables.
2836 * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
2837 re-enable the daap share if the name hasn't changed.
2838 * shell/rb-shell-preferences.c:
2839 (share_name_entry_focus_out_event_cb): don't ask the daap share to
2840 change it's name when the checkbox is disabled. Fixed bug 321748.
2842 2005-11-18 James Livingston <jrl@ids.org.au>
2844 * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
2845 as hidden if it is on the current workspace.
2847 2005-11-17 William Jon McCann <mccann@jhu.edu>
2849 * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func):
2850 * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date)
2851 (rb_podcast_properties_dialog_parse_time):
2852 * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update)
2853 (rb_feed_podcast_properties_dialog_parse_time):
2854 Rework the way the last mod time strings are created. It was using
2855 thread unsafe functions, not creating value UTF, and not not checking
2856 the value of the result before modifying it. This new method fixes
2859 2005-11-18 James Livingston <jrl@ids.org.au>
2861 Don't reset the search box when viewing a different source, because it
2862 will change what is being played. Closes 321593.
2864 * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
2867 * shell/rb-source-header.c: (rb_source_header_class_init),
2868 (rb_source_header_init), (rb_source_header_finalize): use
2871 (rb_source_header_set_property),
2872 (rb_source_header_source_weak_destroy_cb),
2873 (rb_source_header_search_cb): store the search text when leaving a
2874 source and put it in the search box when viewing it again.
2876 2005-11-18 James Livingston <jrl@ids.org.au>
2878 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
2880 * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
2881 (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
2882 * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
2885 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
2886 last-seen as the timestamp of the last update of the feed. Don't
2887 re-add episodes that have been deleted. Closes 319759.
2889 2005-11-18 James Livingston <jrl@ids.org.au>
2891 * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
2892 that don't have the day name at the start. Closes 321645.
2894 2005-11-18 James Livingston <jrl@ids.org.au>
2896 * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
2897 (rb_podcast_manager_copy_post),
2898 (rb_podcast_manager_get_podcast_dir):
2899 * podcast/rb-podcast-manager.h:
2900 * sources/rb-podcast-source.c: (impl_get_config_widget),
2901 (rb_podcast_source_btn_file_change_cb): fix problem of podcast
2902 download location switching to / if the prefs were opened before
2903 downloading an episode. Closes 321611.
2905 2005-11-18 James Livingston <jrl@ids.org.au>
2907 * data/glade/podcast-new.glade:
2908 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2909 (rb_new_podcast_dialog_set_property),
2910 (rb_new_podcast_dialog_get_property),
2911 (rb_new_podcast_dialog_response_cb),
2912 (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
2913 for entering new podcast urls in. Closes bug 321610.
2915 2005-11-18 James Livingston <jrl@ids.org.au>
2917 * sources/rb-podcast-source.c: (construct_query_from_selection),
2918 (rb_podcast_source_do_query): allow podcast list to be re-sorted
2919 without restarting RB. Closes bug 321612.
2921 2005-11-18 James Livingston <jrl@ids.org.au>
2923 * widgets/rb-entry-view.c: (set_column_visibility),
2924 (rb_entry_view_sync_columns_visible): when changing visibility of one
2925 column, don't hide and re-show all the others. Makes a show/hide
2926 column operation a lot faster.
2928 2005-11-17 Jonathan Matthew <jonathan@kaolin.hn.org>
2932 * iradio/rb-station-properties-dialog.c
2933 (rb_station_properties_dialog_update_bitrate):
2934 Mark the bitrate value as being kbps, using the same
2935 translatable format string as rb-song-info.c
2937 * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
2938 as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
2940 * shell/rb-shell-player.c (info_available_cb):
2941 Use RB_METADATA_FIELD_BITRATE to update the iradio
2942 station's bitrate value.
2944 2005-11-17 James Livingston <jrl@ids.org.au>
2946 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
2948 * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
2951 2005-11-17 James Livingston <jrl@ids.org.au>
2953 Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
2955 * lib/rb-stock-icons.c: emit a single warning rather than multiple
2956 assertions. Lookup the icon size correctly.
2958 2005-11-16 William Jon McCann <mccann@jhu.edu>
2960 * daapsharing/rb-daap-mdns.c (get_sw_discovery)
2961 (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
2964 2005-11-16 James Livingston <jrl@ids.org.au>
2966 * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
2967 (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
2968 (rb_shell_preferences_sync_column_button): block the toggle signal of
2969 the column checkboxes while setting their initial state. This stops
2970 the visibility being re-set, which causes a lot of time being spent
2971 measuring the columns aagin when opening the prefs window.
2975 2005-11-16 James Livingston <jrl@ids.org.au>
2977 * sources/rb-sourcelist.c: (rb_sourcelist_init),
2978 (rb_sourcelist_edit_source_name): don't assume that the editable
2979 source name is in the first column, because it isn't. Fixes bug
2982 2005-11-16 James Livingston <jrl@ids.org.au>
2984 * daapsharing/rb-daap-mdns.h:
2985 * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
2986 (get_sw_discovery), (get_avahi_client): use GErrors, so that other
2987 parts can know why operations failed. Avahi can report that the daemon
2988 was not running. Howl doesn't do this (yet).
2990 (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
2991 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
2992 (browse_cb): don't display mdns errors to the user, if it wa because
2993 the daemon was not running.
2995 2005-11-16 James Livingston <jrl@ids.org.au>
2997 * rhythmdb/rhythmdb-property-model.c:
2998 (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
2999 (rhythmdb_property_model_compare),
3000 (rhythmdb_property_model_insert),
3001 (rhythmdb_property_model_insert_prop),
3002 (rhythmdb_property_model_delete),
3003 (rhythmdb_property_model_delete_prop),
3004 (rhythmdb_property_model_get_value): use RBRefStrings rather than
3005 copying the string and re-creating the sort key. Saves a little bit of
3008 (rhythmdb_property_model_perform_sync),
3009 (rhythmdb_property_model_sync): perform the count sync in an idle
3010 callback, so that it doesn't have to be re-run once per value when
3013 2005-11-16 James Livingston <jrl@ids.org.au>
3015 * rhythmdb/rhythmdb-query-model.c:
3016 (rhythmdb_query_model_entry_deleted_cb),
3017 (rhythmdb_query_model_remove_entry): remove deleted entries from the
3018 limited list. Stops problems if they are deleted, and then things on
3021 2005-11-16 James Livingston <jrl@ids.org.au>
3025 * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
3026 button's minimise-to-tray action
3028 2005-11-16 James Livingston <jrl@ids.org.au>
3030 * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
3031 leak. Disable adding newly created files for now, because it doesn't
3034 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
3035 (rb_sourcelist_model_finalize):
3036 * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
3037 (rb_sourcelist_finalize): use G_DEFINE_TYPE,
3039 2005-11-16 James Livingston <jrl@ids.org.au>
3041 * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
3042 problem where a GError* wasn't being set to NULL. Actually check the
3045 2005-11-16 James Livingston <jrl@ids.org.au>
3047 * doc/reference/tmpl/rb-entry-view.sgml:
3048 * doc/reference/tmpl/rhythmbox-unused.sgml:
3049 * doc/reference/tmpl/rhythmdb-query-model.sgml:
3050 * doc/reference/tmpl/rhythmdb.sgml:
3051 * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
3052 docs, including the patch that was on bug
3054 * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
3055 API, because it should only be used by RhythmDB itself.
3057 2005-11-16 James Livingston <jrl@ids.org.au>
3059 * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
3060 pausing by middle clicking on the tray icon.
3062 2005-11-15 James Livingston <jrl@ids.org.au>
3064 * configure.ac: enable audioscrobbler support by default, if libsoup
3067 2005-11-15 James Livingston <jrl@ids.org.au>
3069 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3073 * daapsharing/rb-daap-connection.c: (build_message),
3074 (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
3075 support gzip encoded daap connections.
3077 (handle_song_listing): fix leak
3079 2005-11-15 James Livingston <jrl@ids.org.au>
3081 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3082 * sources/rb-podcast-source.c:
3083 (rb_podcast_source_post_date_cell_data_func): make the date format
3084 translatable again, so that translators can choose the best format for
3085 their locale (%x is huge in some locales)
3087 2005-11-15 James Livingston <jrl@ids.org.au>
3089 * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
3090 (end_job): mark podcast episodes as failed, if the metadata load
3091 fails. This will prevent people playing non-audio enclosures, helping
3094 2005-11-14 James Livingston <jrl@ids.org.au>
3096 * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
3097 video sink to fakesink. This will stop problems (potentially crashers)
3098 that will occur if the file contains a video stream.
3100 * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
3101 rather than using magic numbers everywhere.
3103 * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
3104 * sources/rb-podcast-source.c:
3105 (rb_podcast_source_songs_show_popup_cb),
3106 (rb_podcast_source_cmd_download_post),
3107 (rb_podcast_source_post_status_cell_data_func),
3108 (rb_podcast_source_entry_activated_cb): use the above constants.
3110 * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
3111 (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
3112 (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
3113 (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
3114 (cancel_job), (download_progress_cb),
3115 (rb_podcast_manager_cancel_download),
3116 (rb_podcast_manager_insert_feed): use the constants, and fix a
3117 trhead-safety issue.
3119 2005-11-14 Bastien Nocera <hadess@hadess.net>
3121 * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from
3122 Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
3123 entry-changed events after stats on startup, fixes entry deleted from
3124 filtered views not disappearing
3126 2005-11-14 Jonathan Matthew <jonathan@kaolin.hn.org>
3128 Fix rhythmdb query model refcount and polling problems. Closes bug
3131 * rhythmdb/rhythmdb-property-model.c:
3132 (rhythmdb_property_model_finalize):
3133 Unref the query model if we have one.
3135 * rhythmdb/rhythmdb-query-model.h:
3136 Remove poll and cancel methods. Query cancellation
3137 never did anything anyway.
3139 * rhythmdb/rhythmdb-query-model.c:
3140 (rhythmdb_query_model_init): Remove GAsyncQueues.
3141 Replace the GAsyncQueue-based update processing
3142 with a simpler g_idle_add approach; still has the
3143 same queueing properties, but now we don't poll the
3144 model forever and updates are processed immediately.
3146 (_unref_entry), (rhythmdb_query_model_finalize):
3147 Unref DB entries when finalized
3149 (rhythmdb_query_model_has_pending_changes):
3150 Use our own counter to decide if there are updates pending
3152 (rhythmdb_query_model_process_update), (idle_process_update):
3153 Process updates using g_idle_add, or directly if possible
3155 (rhythmdb_query_model_signal_complete),
3156 (rhythmdb_query_model_add_entries):
3157 Change to new update processing method
3159 (idle_poll_model), (rhythmdb_query_model_poll):
3160 Remove GAsyncQueue-based update processing.
3162 * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
3163 No need to poll the model any more - updates are processed
3164 directly for synchronous queries.
3166 * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
3167 Property model needs to be unref'd here
3169 * sources/rb-library-source.c: (rb_library_source_do_query):
3170 Don't try to cancel the active query (it never worked anyway),
3171 remove obsolete poll call, unref property models as required,
3172 and don't unref the cached 'all' query, since hold on to it.
3173 We unref it when the sort order changes, which forces the query
3176 * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
3177 Unref the property model as required
3179 (rb_podcast_source_do_query):
3180 Treat any query with no selected feeds and no search text as
3181 an 'all' query. Unref query models except for the cached
3182 'all' query, since we hold on to that.
3184 (rb_podcast_source_cmd_update_all):
3185 Unref the property model as required.
3187 * widgets/rb-entry-view.c: (rb_entry_view_set_property):
3188 Don't try to cancel the query (it never worked anyway)
3190 (rb_entry_view_poll_model):
3191 No need for this any more.
3193 * widgets/rb-entry-view.h:
3194 Remove obsolete function rb_entry_view_poll_model
3196 * widgets/rb-property-view.c: (rb_property_view_set_property):
3197 Ref and unref the property model as required.
3199 2005-11-14 James Livingston <jrl@ids.org.au>
3201 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3203 * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
3204 for error. Closes bug 321416.
3206 2005-11-14 James Livingston <jrl@ids.org.au>
3208 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3210 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
3211 a crasher if a feed's last-post value isn't set. Closes bug 321353.
3213 2005-11-14 James Livingston <jrl@ids.org.au>
3215 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
3216 * shell/rb-removable-media-manager.c:
3217 (rb_removable_media_manager_set_uimanager):
3218 * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
3219 translation domain for GTK action groups.
3221 2005-11-12 James Livingston <jrl@ids.org.au>
3223 * po/POTFILES.in: remove the old station-new files
3225 2005-11-12 James Livingston <jrl@ids.org.au>
3227 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3228 (rhythmdb_tree_parser_end_element), (save_entry_ulong),
3229 (save_entry): cause Rhythmbox to re-read the metadata from a file,
3230 when upgrading from a pre-Date-supporting version to a version that
3231 supports Date metadata. Closes bug 320760.
3233 2005-11-12 James Livingston <jrl@ids.org.au>
3235 Add "update all podcast feeds" command. Closes bug 319954.
3237 * data/ui/rhythmbox-ui.xml: add to source context menu.
3239 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
3240 (register_action_group), (rb_podcast_source_cmd_download_post),
3241 (rb_podcast_source_cmd_delete_feed),
3242 (rb_podcast_source_cmd_properties_feed),
3243 (rb_podcast_source_cmd_update_feed): pass the source to the actions,
3244 rather than the shell.
3246 (rb_podcast_source_update_feed_func),
3247 (rb_podcast_source_cmd_update_all): update every feed.
3249 2005-11-11 James Livingston <jrl@ids.org.au>
3251 * shell/rb-shell-player.c: (rb_shell_player_class_init),
3252 (rb_shell_player_constructor), (rb_shell_player_finalize):
3253 * shell/rb-shell.c: fix some conflicting keybindings, and mak some
3254 others follow the HIG recommentations.
3256 2005-11-11 James Livingston <jrl@ids.org.au>
3258 * podcast/rb-podcast-manager.c:
3259 (rb_podcast_manager_subscribe_feed): check that the url is valid,
3260 before trying to use it.
3262 2005-11-11 James Livingston <jrl@ids.org.au>
3264 * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
3265 (rb_entry_view_append_column): When sorting by year, sort by album
3266 within a particular year.
3268 2005-11-11 James Livingston <jrl@ids.org.au>
3272 2005-11-10 Charles Schmidt <cschmidt2@emich.edu>
3273 * daapsharing/rb-daap-connection.c: (build_message): Fixed the
3274 spelling of "Language."
3276 2005-11-11 James Livingston <jrl@ids.org.au>
3278 * rhythmdb/rhythmdb-property-model.c:
3279 (rhythmdb_property_model_row_inserted_cb),
3280 (rhythmdb_property_model_prop_changed_cb),
3281 (rhythmdb_property_model_entry_removed_cb),
3282 (rhythmdb_property_model_insert_prop),
3283 (rhythmdb_property_model_sync): display the count after the "All"
3284 entry of a property model.
3286 * widgets/rb-property-view.c: (rb_property_view_class_init),
3287 (rb_property_view_finalize), (rb_property_view_constructor): use
3290 2005-11-10 James Livingston <jrl@ids.org.au>
3292 * rhythmdb/rhythmdb-query-model.c:
3293 (rhythmdb_query_model_remove_entry):
3294 * rhythmdb/rhythmdb-query-model.h: make
3295 rhythmdb_query_model_remove_entry return whether the entry was in the
3298 * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
3299 don't add non-SONG entries, as it doesn't really work and can cause
3302 (rb_playlist_source_remove_location): assert if the playlist and model
3303 differ on whether the entry is in the playlist
3305 2005-11-10 James Livingston <jrl@ids.org.au>
3307 * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
3308 (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
3309 (rb_podcast_manager_thread_parse_feed),
3310 (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
3311 (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
3312 emulating one with a list and mutex. Fixes a couple of threading
3315 (rb_podcast_manager_insert_feed): fix some problems with ignoring
3318 (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
3319 (rb_podcast_manager_copy_post), (end_job), (cancel_job),
3320 (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
3321 * podcast/rb-podcast-parse.c: (rb_insert_item),
3322 (rb_podcast_parse_channel_free):
3323 * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
3324 fix some typos, and make a bit of code clearer.
3326 2005-11-10 Dennis Cranston <dennis_cranston@yahoo.com>
3328 Make the "delete podcast" dialog better. Closes bug 320899.
3330 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
3331 Add PROP_WINDOW for rb_shell_get_property so we can access the
3332 GtkWindow widget of the main window.
3333 * sources/rb-podcast-source.c: (impl_delete): Set parent window &
3334 fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the
3335 podcast feed delete dialog less confusing as well.
3337 2005-11-09 James Livingston <jrl@ids.org.au>
3339 * shell/rb-removable-media-manager.c:
3340 (rb_removable_media_manager_mount_volume),
3341 (rb_removable_media_manager_scan): Fix a crasher where we were getting
3342 NULL for a cd volume.
3344 2005-11-08 Jonathan Matthew <jonathan@kaolin.hn.org>
3346 * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
3347 method return a gboolean indicating whether the changes
3348 to the entry have already been applied.
3350 * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
3351 only modify the entry if impl_entry_set returns FALSE.
3353 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
3354 When setting the location of an entry, update the
3355 hash table mapping locations to entries.
3357 2005-11-08 Jonathan Matthew <jonathan@kaolin.hn.org>
3359 * data/glade/Makefile.am:
3360 * iradio/Makefile.am:
3361 Remove 'new station' dialog.
3363 * iradio/rb-station-properties-dialog.h:
3364 * sources/rb-iradio-source.c: (impl_song_properties):
3365 * shell/rb-shell.c: (rb_shell_cmd_new_station):
3366 Add 'new station' mode parameter to
3367 rb_station_properties_dialog_new.
3369 * (rb_station_properties_dialog_response_cb),
3370 (rb_station_properties_dialog_create_station):
3371 When in 'new station' mode, create the station
3372 when OK button is pressed.
3374 * iradio/rb-station-properties-dialog.c:
3375 (rb_station_properties_dialog_location_changed_cb):
3376 Only enable OK button if a location is specified
3377 (rb_station_properties_dialog_init),
3378 (rb_station_properties_dialog_new),
3379 (rb_station_properties_dialog_update),
3380 (rb_station_properties_dialog_update_title),
3381 (rb_station_properties_dialog_rated_cb),
3382 (rb_station_properties_dialog_update_play_count),
3383 (rb_station_properties_dialog_update_bitrate),
3384 (rb_station_properties_dialog_update_last_played),
3385 (rb_station_properties_dialog_update_rating),
3386 (rb_station_properties_dialog_update_playback_error),
3387 (rb_station_properties_dialog_show):
3388 Handle 'new station' mode, where there's no current
3391 2005-11-08 James Livingston <jrl@ids.org.au>
3393 * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3394 keybinding for track columns consistent between library and playlist
3397 2005-11-07 James Livingston <jrl@ids.org.au>
3399 * data/ui/rhythmbox-ui.xml:
3400 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
3401 "Edit" item to playlist menu. Closes bug 311470.
3403 2005-11-07 James Livingston <jrl@ids.org.au>
3405 patch by: Jaap A. Haitsma <jaap@haitsma.org>
3407 * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
3408 confirmation to save dialogs, with gtk 2.8 or higher.
3410 2005-11-07 James Livingston <jrl@ids.org.au>
3411 * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
3412 requirement to a general on, because people are going to have it for
3413 the other dependencies.
3415 2005-11-06 Dennis Cranston <dennis_cranston@yahoo.com>
3417 * sources/rb-podcast-source.c: (impl_delete): Make the podcast
3418 delete dialog less confusing. Use HIG recommended button order.
3421 2005-11-06 James Livingston <jrl@ids.org.au>
3423 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
3424 drag-and-drop error.
3426 * sources/rb-library-source.c: (rb_library_source_constructor): only
3427 add drag-and-drop for the Library itself, subclasses can add support
3428 themselves if they want it.
3430 * sources/rb-removable-media-source.c:
3431 (rb_removable_media_source_class_init): by default removable media
3432 sources do not support dnd
3434 2005-11-05 Jonathan Matthew <jonathan@kaolin.hn.org>
3436 * data/glade/station-properties.glade:
3437 Add box containing error icon and error message label
3438 * iradio/rb-station-properties-dialog.c:
3439 (rb_station_properties_dialog_class_init),
3440 (rb_station_properties_dialog_finalize):
3441 Change this class to use G_DEFINE_TYPE
3442 (rb_station_properties_dialog_init),
3443 (rb_station_properties_dialog_update),
3444 (rb_station_properties_dialog_update_playback_error):
3445 Display error icon and message when there is one, and hide the error
3447 (rb_station_properties_dialog_show): Hack widget show
3448 method to update the visibility of the error info box when showing
3449 the widget. Otherwise the icon is displayed all the time (same thing
3450 is done in rb-song-info). Closes bug 320749.
3452 2005-11-04 Dennis Cranston <dennis_cranston@yahoo.com>
3454 * podcast/rb-podcast-parse.c: (rb_podcast_parse_time): Fix the
3455 parsing of the duration of podcast episodes from the feed. Closes bug
3458 2005-11-05 James Livingston <jrl@ids.org.au>
3460 patch by Christophe Fergeau <teuf@gnome.org> to add support for the
3461 release date metadata ("Year"). Closes bug 166093.
3463 * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
3464 * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
3465 (rb_metadata_gst_add_tag_data):
3466 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3468 * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3469 (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
3470 (set_props_from_metadata), (rhythmdb_entry_set_internal),
3471 (rhythmdb_prop_get_type):
3472 * rhythmdb/rhythmdb.h: add support for "date" property
3474 * data/glade/general-prefs.glade:
3475 * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
3476 * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
3477 (rb_entry_view_append_column):
3478 * widgets/rb-entry-view.h:
3479 * sources/rb-library-source.c: (rb_library_source_constructor):
3480 * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
3483 * data/glade/song-info.glade:
3484 * widgets/rb-song-info.c: (rb_song_info_boldify_label),
3485 (rb_song_info_construct_single), (rb_song_info_constructor),
3486 (rb_song_info_populate_dialog), (rb_song_info_update_year),
3487 (rb_song_info_sync_entry_single): Add "Year" to song info window
3489 * widgets/rb-query-creator-properties.c: Allow auto playlists to be
3492 2005-11-05 James Livingston <jrl@ids.org.au>
3494 * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
3495 description if it's very long.
3497 2005-11-05 James Livingston <jrl@ids.org.au>
3499 pathc by: Artem Baguinski <femistofel@gmail.com>
3501 * help/C/Makefile.am:
3502 * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
3505 2005-11-05 James Livingston <jrl@ids.org.au>
3507 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3509 * daapsharing/rb-daap-share.c: (write_next_chunk),
3510 (message_finished), (databases_cb): Use chunked file loading and
3511 sending in the DAAP server. This should reduce the amount of memory
3512 required to send files to the client.
3514 2005-11-05 James Livingston <jrl@ids.org.au>
3516 * configure.ac: make the nautilus_burn_drive_door_is_open detection
3517 work better on some systems. Closes 320622.
3519 2005-11-05 James Livingston <jrl@ids.org.au>
3521 * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
3522 homepage, so that users can find out what AudioScrobbler is. Add
3525 * data/glade/daap-prefs.glade:
3526 * data/glade/general-prefs.glade:
3527 * data/glade/library-prefs.glade: make the indent be more consistent
3529 * data/glade/podcast-prefs.glade:
3530 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
3531 (impl_get_config_widget): move thing out of code into glade, where
3534 2005-11-05 James Livingston <jrl@ids.org.au>
3536 * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
3537 related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
3539 2005-11-04 James Livingston <jrl@ids.org.au>
3541 * configure.ac: don't print DAAP configure info twice
3543 2005-11-04 James Livingston <jrl@ids.org.au>
3545 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
3546 * sources/rb-playlist-source.c: (burn_playlist_iter_func),
3547 (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
3548 #ifdefs, since we removed the symbol. Oops
3550 2005-11-04 James Livingston <jrl@ids.org.au>
3552 * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
3553 after the connect line, not before. Oops.
3555 2005-11-04 James Livingston <jrl@ids.org.au>
3557 * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
3560 2005-11-03 James Livingston <jrl@ids.org.au>
3562 * NEWS: update the news file
3564 * data/glade/general-prefs.glade: make the prefs refer to "time" not
3567 * data/ui/rhythmbox-ui.xml:
3568 * shell/rb-playlist-manager.c:
3569 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
3570 (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
3571 and "delete" for feeds.
3573 2005-11-03 James Livingston <jrl@ids.org.au>
3575 * sources/rb-podcast-source.c: (impl_delete),
3576 (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
3577 feed. Closes 319760.
3579 2005-11-03 James Livingston <jrl@ids.org.au>
3581 Don't start playing from the remote site when a un-downloaded podcast
3582 is activated. Closes 319983.
3585 * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
3586 (write_job_data), (download_progress_cb): write the local location as
3587 soon as any data is recieved
3589 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
3590 the mountpoint to NULL for podcast episodes that haven't yet been
3593 * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
3594 start playing a podcast if it hasn't been downloaded.
3596 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
3597 (rb_podcast_source_entry_activated_cb): begin downloading when the
3598 podcast is activated.
3600 2005-11-03 Dennis Cranston <dennis_cranston@yahoo.com>
3602 * data/glade/general-prefs.glade: Fix capitalization.
3603 * shell/rb-removable-media-manager.c: Add a mnemonic.
3604 * sources/rb-podcast-source.c:
3605 (rb_podcast_source_songs_show_popup_cb),
3606 (rb_podcast_source_feeds_show_popup_cb): Add mnemonics.
3608 2005-11-03 James Livingston <jrl@ids.org.au>
3610 patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
3612 * shell/rb-removable-media-manager.c:
3613 (rb_removable_media_manager_mount_volume): don't check network or
3614 autofs mounts, as they're not going to be removable media. Stops
3615 sending lots of warnings to syslog. Closes 320571.
3617 * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
3618 DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
3621 2005-11-03 James Livingston <jrl@ids.org.au>
3623 Add support for playing audio CDs. Metadata lookup is done using
3624 SoundJuicer's MusicBrainz lookup code, which can be switched to using
3625 the library when it gets broken out of S-J.
3627 Add a "rescan media" menu item, and commands for ejecting removable
3630 Move nautilus-cd-burner from optional to required depenency.
3633 * data/ui/rhythmbox-ui.xml:
3634 * metadata/Makefile.am:
3635 + metadata/sj-error.c:
3636 + metadata/sj-error.h:
3637 + metadata/sj-metadata-marshal.list:
3638 + metadata/sj-metadata-musicbrainz.c:
3639 + metadata/sj-metadata-musicbrainz.h:
3640 + metadata/sj-metadata.c:
3641 + metadata/sj-metadata.h:
3642 + metadata/sj-structures.c:
3643 + metadata/sj-structures.h:
3644 * player/Makefile.am:
3645 * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
3647 * shell/Makefile.am:
3648 * shell/rb-removable-media-manager.c:
3649 (rb_removable_media_manager_dispose), (poll_tray_opened),
3650 (end_cd_drive_monitor), (begin_cd_drive_monitor),
3651 (rb_removable_media_manager_load_media),
3652 (rb_removable_media_manager_mount_volume),
3653 (rb_removable_media_manager_cmd_eject_medium),
3654 (rb_removable_media_manager_cmd_scan_media),
3655 (rb_removable_media_manager_check_volume),
3656 (rb_removable_media_manager_unmount_volume_swap),
3657 (rb_removable_media_manager_scan):
3658 * sources/Makefile.am:
3659 + sources/rb-audiocd-source.c:
3660 + sources/rb-audiocd-source.h:
3661 * tests/Makefile.am:
3663 2005-11-02 James Livingston <jrl@ids.org.au>
3665 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3667 * sources/rb-iradio-source.c:
3668 (stations_view_drag_data_received_cb):
3669 * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
3670 don't crash when the second uri is missing frm the drop, which
3671 browsers sometimes do.
3673 2005-11-01 James Livingston <jrl@ids.org.au>
3675 * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
3676 (rb_podcast_manager_insert_feed):
3677 * podcast/rb-podcast-manager.h:
3678 * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
3679 (rb_set_item_value), (rb_validate_item_propert),
3680 (rb_podcast_parse_date), (rb_podcast_parse_time):
3681 * podcast/rb-podcast-parse.h: get the duration of podcast episodes
3684 2005-10-31 James Livingston <jrl@ids.org.au>
3687 * ChangeLog0.8: break off the older Changelog entries, so it isn't so
3690 2005-10-31 James Livingston <jrl@ids.org.au>
3692 * sources/rb-podcast-source.c:
3693 (rb_podcast_source_post_date_cell_data_func): generate the date string
3694 in a way that is correct in all locales.
3696 * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3697 (rhythmdb_entry_sync_mirrored): make the last played/date added
3698 columns use the same format.
3700 2005-10-30 James Livingston <jrl@ids.org.au>
3703 * podcast/rb-podcast-manager.c:
3704 (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
3706 * shell/rb-shell-player.c: (rb_shell_player_open_location): report
3707 iradio errors better.
3709 2005-10-30 James Livingston <jrl@ids.org.au>
3711 patch by: Artem Baguinski <femistofel@gmail.com>
3713 * metadata/rb-metadata-gst.c: (rb_metadata_init):
3715 2005-10-30 James Livingston <jrl@ids.org.au>
3717 * podcast/rb-podcast-manager.c:
3718 (rb_podcast_manager_subscribe_feed),
3719 (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
3720 already been added, usually as a radio station. Closes 319434.
3722 2005-10-29 Dennis Cranston <dennis_cranston@yahoo.com>
3724 * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
3725 mnemonics & resize issues)
3726 * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
3728 * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
3729 widget for the "download location" label.
3733 2005-10-29 James Livingston <jrl@ids.org.au>
3735 Allow the search box to match words from multiple properties. Closes
3736 bug 139196. Thanks to the person from IRC who did a lot of the initial
3740 * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
3741 * lib/rb-util.h: Add functions to split a string into words, and one
3742 to perform "search folding" which is currently like casefolding but
3743 also strips punctuation
3745 * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
3746 (rhythmdb_query_preprocess):
3747 * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
3748 against title, artist, album and genre (for the search box)
3750 * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
3751 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3752 (save_entry), (search_match_properties),
3753 (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
3754 splitting into words and matching across multiple properties.
3756 * sources/rb-library-source.c: (construct_query_from_selection): use
3757 the new SEARCH_MATCH property for the search box
3759 * widgets/rb-entry-view.c: (type_ahead_search_func):
3761 2005-10-29 James Livingston <jrl@ids.org.au>
3763 * lib/rb-stock-icons.c: (rb_stock_icons_init):
3764 * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
3766 * shell/rb-playlist-manager.c:
3767 * shell/rb-shell.c: use the above stock ids, so that the icons get set
3770 * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
3771 initial state of the shuffle/repeat menu items correctly. Patch from
3772 Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
3774 2005-10-29 James Livingston <jrl@ids.org.au>
3776 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
3779 * widgets/rb-cell-renderer-pixbuf.c:
3780 (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
3781 icon go black when row is not selected
3783 * doc/reference/tmpl/rb-daap-connection.sgml:
3784 * doc/reference/tmpl/rhythmdb.sgml: doc updates
3786 2005-10-29 James Livingston <jrl@ids.org.au>
3788 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
3789 silly mistake, where it could think partial downloads has been
3792 2005-10-29 James Livingston <jrl@ids.org.au>
3794 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3796 * data/glade/song-info.glade:
3797 * widgets/rb-song-info.c: (rb_song_info_construct_single),
3798 (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
3799 (rb_song_info_sync_entry_single): show the disc number in the song
3800 info window. From bug 311199.
3802 2005-10-29 James Livingston <jrl@ids.org.au>
3804 * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
3805 (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
3806 regularly. Closes 155306.
3808 2005-10-29 James Livingston <jrl@ids.org.au>
3810 * podcast/rb-podcast-manager.c:
3811 (rb_podcast_manager_download_entry),
3812 (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
3813 (rb_podcast_manager_insert_feed):
3814 * podcast/rb-podcast-manager.h:
3815 * podcast/rb-podcast-parse.c: (rb_set_item_value),
3816 (rb_podcast_parser_start_element):
3817 * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
3818 don't download them again. However, it can't resume
3819 partially-downloaded ones.
3821 2005-10-28 James Livingston <jrl@ids.org.au>
3823 * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
3824 (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
3825 work. Don't attempt to write duration as a tag.
3827 Thanks to Artem Baguinski <femistofel@gmail.com>
3829 2005-10-28 James Livingston <jrl@ids.org.au>
3831 * shell/rb-source-header.c: (rb_source_header_sync_control_state):
3832 don't disable the status-bar menu item when the current source doesn't
3835 2005-10-28 James Livingston <jrl@ids.org.au>
3837 * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
3838 crash if the file has unknown length
3840 2005-10-27 James Livingston <jrl@ids.org.au>
3842 * daapsharing/rb-daap-connection.c:
3843 (rb_daap_connection_state_done): don't assert when a daap server
3844 doesn't have any playlists
3846 2005-10-27 James Livingston <jrl@ids.org.au>
3848 * sources/rb-sourcelist-model.c:
3849 (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
3850 source for the sourcelist. Closes bug 319817.
3852 2005-10-26 Ryan P Skadberg <skadz@stigmata.org>
3854 Patch by: Renato Araujo <renatox@gmail.com>
3856 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
3857 Fix for a crasher caused by previous patch.
3859 2005-10-26 James Livingston <jrl@ids.org.au>
3861 * data/glade/podcast-prefs.glade:
3862 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
3863 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
3864 * sources/rb-podcast-source.c: (rb_podcast_source_new):
3865 * podcast/rb-podcast-manager.c:
3866 (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
3867 (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
3868 * shell/rb-shell.c: Change some strings to make them more consistent.
3869 "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
3870 makes it clearer which is which. "Episode" may not be the best term,
3871 but it seems to be widely used.
3873 Also fix some strings that weren't marked as translatable.
3875 * podcast/rb-feed-podcast-properties-dialog.c:
3876 (rb_feed_podcast_properties_dialog_class_init),
3877 (rb_feed_podcast_properties_dialog_finalize):
3878 * podcast/rb-new-podcast-dialog.c:
3879 (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
3880 * widgets/rb-simple-view.c: (rb_simple_view_class_init),
3881 (rb_simple_view_finalize), (rb_simple_view_constructor):
3882 * podcast/rb-podcast-properties-dialog.c:
3883 (rb_podcast_properties_dialog_class_init),
3884 (rb_podcast_properties_dialog_finalize):
3885 * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
3886 (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
3887 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3888 (rb_podcast_source_finalize), (rb_podcast_source_constructor):
3889 use G_DEFINE_TYPE, instead of doing it manually.
3891 2005-10-26 James Livingston <jrl@ids.org.au>
3893 Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
3896 * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
3897 (rb_metadata_init): Check that the necessary plugins are present to do
3899 (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
3900 corrupted before replacing the original.
3902 2005-10-25 Jonathan Matthew <jonathan@kaolin.hn.org>
3904 reviewed by: James Livingston <jrl@ids.org.au>
3906 Assign sequential IDs to playlists for DAAP rather than using the
3907 address of the playlist object. Less flaky, and should work on 64bit
3908 platforms. Closes bug 319304.
3910 * daapsharing/rb-daap-share.c:
3911 (rb_daap_share_set_property): watch for playlist creation
3912 (_find_by_id), (_find_by_source): playlist list search functions
3913 (rb_daap_share_playlist_created),
3914 (rb_daap_share_process_playlist),
3915 (rb_daap_share_playlist_destroyed):
3916 update playlist list as it changes, use weak refs on
3917 playlists to get notified on destroy.
3918 (rb_daap_share_forget_playlist), (rb_daap_share_dispose):
3919 destroy playlist list on shutdown
3920 (add_playlist_to_mlcl): use playlist ID rather than pointer in
3922 (databases_cb): search for playlist ID in list rather than just
3923 converting it to a pointer; return HTTP 404 if playlist not
3925 (rb_daap_share_start_publish): playlist IDs start at 2, since 1
3926 is already used for the main library
3928 2005-10-26 James Livingston <jrl@ids.org.au>
3930 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3932 * daapsharing/rb-daap-connection.c: (build_message),
3933 (http_response_handler), (http_get), (handle_server_info),
3934 (handle_login), (handle_update), (handle_database_info),
3935 (handle_song_listing), (handle_playlists),
3936 (handle_playlist_entries), (handle_logout),
3937 (rb_daap_connection_new), (rb_daap_connection_logout),
3938 (rb_daap_connection_state_done), (rb_daap_connection_do_something),
3939 (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
3940 * daapsharing/rb-daap-connection.h:
3941 * sources/rb-daap-source.c: (rb_daap_source_activate),
3942 (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
3943 (rb_daap_source_disconnect): Make connecting to DAAP sources
3944 asynchronous, so that non-responsive servers don't hang the UI. Closes
3947 2005-10-26 James Livingston <jrl@ids.org.au>
3949 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
3951 * rhythmdb/rhythmdb-query-model.c:
3952 (rhythmdb_query_model_do_reorder): generate the row re-order map
3955 * widgets/rb-entry-view.c: (rb_entry_view_set_property),
3956 (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
3957 Update selection when rows get re-ordered. Closes 319718.
3959 2005-10-26 James Livingston <jrl@ids.org.au>
3961 patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3963 * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
3964 actually set the db pointer in play orders. Closes 319818.
3966 2005-10-25 Ryan P Skadberg <skadz@stigmata.org>
3968 Patch by: Renato Araujo <renatox@gmail.com>
3970 * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
3971 (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
3972 (rb_podcast_manager_update_synctime),
3973 (rb_podcast_manager_config_changed),
3974 (rb_podcast_manager_insert_feed):
3975 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3977 * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
3978 (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
3979 * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
3981 2005-10-25 James Livingston <jrl@ids.org.au>
3983 * daapsharing/rb-daap-share.c: (db_entry_added_cb),
3984 (db_entry_deleted_cb): don't share tracks that are hidden because the
3987 2005-10-22 James Livingston <jrl@ids.org.au>
3989 * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
3990 crash if an entry couldn't be playerd, without streamer setting an
3994 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
3996 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
3997 (rb_new_podcast_dialog_text_changed): enable the add button when a url
3998 is pasted into the dialog.
4000 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
4001 * podcast/rb-podcast-parse.c: (rb_set_channel_value),
4002 (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
4003 (rb_podcast_parse_channel_free):
4004 * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
4007 2005-10-22 James Livingston <jrl@ids.org.au>
4009 * sources/rb-iradio-source.c:
4010 (rb_iradio_source_first_time_changed): Make merging the default
4011 stations actually work.
4013 * sources/rb-podcast-source.c:
4014 (rb_podcast_source_post_status_cell_data_func): fix problem where some
4015 people weren't seing the percentages in the stats column.
4017 2005-10-21 James Livingston <jrl@ids.org.au>
4019 Patch from Caio Marcelo <cmarcelo@gmail.com>
4021 * shell/rb-shell.c: (rb_shell_window_state_cb),
4022 (rb_shell_get_visibility), (idle_hide_mainwindow),
4023 (rb_shell_set_visibility): Make the "show window" item in the tray
4024 icon menu show the toggle state correctly. Use a better policy on
4025 deciding whether the window is "visible" or not. Closes bug 308053.
4027 2005-10-21 James Livingston <jrl@ids.org.au>
4029 * doc/reference/tmpl/rb-shell-preferences.sgml:
4030 * shell/Makefile.am: fix building with gtk-doc
4032 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
4033 don't submit podcasts to audioscrobbler
4036 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4038 * podcast/rb-podcast-parse.c: (rb_set_channel_value),
4039 (rb_set_item_value): strip spaces surrounding podcast urls
4042 Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
4044 * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
4046 2005-10-20 Ryan P Skadberg <skadz@stigmata.org>
4048 Patch from Ruben Vermeersch <ruben@lambda1.be> to add
4049 Audioscrobbler/Last.fm support
4052 * data/glade/Makefile.am:
4053 * data/glade/audioscrobbler-prefs.glade:
4054 * data/rhythmbox.schemas:
4056 * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
4058 * lib/rb-preferences.h:
4060 * shell/Makefile.am:
4061 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
4062 (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
4063 (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
4064 (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
4065 (rb_audioscrobbler_timeout_cb), (mkmd5),
4066 (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
4067 (rb_audioscrobbler_do_handshake),
4068 (rb_audioscrobbler_do_handshake_cb),
4069 (rb_audioscrobbler_submit_queue),
4070 (rb_audioscrobbler_submit_queue_cb),
4071 (rb_audioscrobbler_import_settings),
4072 (rb_audioscrobbler_preferences_sync),
4073 (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
4074 (rb_audioscrobbler_gconf_changed_cb),
4075 (rb_audioscrobbler_song_changed_cb),
4076 (rb_audioscrobbler_username_entry_changed_cb),
4077 (rb_audioscrobbler_username_entry_activate_cb),
4078 (rb_audioscrobbler_password_entry_changed_cb),
4079 (rb_audioscrobbler_password_entry_activate_cb),
4080 (rb_audioscrobbler_enabled_check_changed_cb),
4081 (audioscrobbler_entry_init), (audioscrobbler_entry_free),
4082 (rb_audioscrobbler_load_entry_from_string),
4083 (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
4084 (rb_audioscrobbler_print_queue),
4085 (rb_audioscrobbler_free_queue_entries):
4086 * shell/rb-audioscrobbler.h:
4087 * shell/rb-shell-preferences.c:
4088 (rb_shell_preferences_append_audioscrobbler_config):
4089 * shell/rb-shell-preferences.h:
4090 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4091 (rb_shell_select_source), (rb_shell_cmd_preferences):
4092 * sources/Makefile.am:
4094 2005-10-21 James Livingston <jrl@ids.org.au>
4096 Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
4101 * data/art/Makefile.am:
4102 * data/glade/Makefile.am:
4103 * data/rhythmbox.schemas:
4104 * data/ui/rhythmbox-ui.xml:
4105 * doc/reference/Makefile.am:
4106 * doc/reference/tmpl/rhythmdb.sgml:
4107 * lib/rb-stock-icons.c: (rb_stock_icons_init):
4108 * lib/rb-stock-icons.h:
4110 * podcast/Makefile.am:
4111 + podcast/rb-feed-podcast-properties-dialog.c:
4112 + podcast/rb-feed-podcast-properties-dialog.h:
4113 + podcast/rb-new-podcast-dialog.c:
4114 + podcast/rb-new-podcast-dialog.h:
4115 + podcast/rb-podcast-manager.c:
4116 + podcast/rb-podcast-manager.h:
4117 + podcast/rb-podcast-marshal.list:
4118 + podcast/rb-podcast-parse.c:
4119 + podcast/rb-podcast-parse.h:
4120 + podcast/rb-podcast-properties-dialog.c:
4121 + podcast/rb-podcast-properties-dialog.h:
4122 * rhythmdb/rhythmdb-property-model.c:
4123 (rhythmdb_property_model_set_property),
4124 (rhythmdb_property_model_enable_drag):
4125 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4126 (rhythmdb_tree_parser_end_element), (save_entry),
4127 (rhythmdb_tree_save):
4128 * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
4129 (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
4130 (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
4131 (rhythmdb_entry_podcast_feed_get_type):
4132 * rhythmdb/rhythmdb.h:
4133 * shell/Makefile.am:
4134 * shell/rb-shell-player.c: (rb_shell_player_open_entry):
4135 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4136 (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
4138 * sources/Makefile.am:
4139 + sources/rb-podcast-source.c:
4140 + sources/rb-podcast-source.h:
4141 * widgets/Makefile.am:
4142 * widgets/rb-property-view.c: (rb_property_view_class_init),
4143 (rb_property_view_constructor),
4144 (rb_property_view_selection_changed_cb),
4145 (rb_property_view_get_treeview):
4146 * widgets/rb-property-view.h:
4147 + widgets/rb-simple-view.c:
4148 + widgets/rb-simple-view.h:
4150 2005-10-20 James Livingston <jrl@ids.org.au>
4152 * NEWS: update with changes since 0.9.1
4154 * configure.ac: check whether collate_key_for_filename is available
4155 * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
4156 * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
4157 it if it isn't available in glib (i.e. building against 2.6)
4158 * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
4159 collation to get "natural sorting". Closes bug 158599.
4161 2005-10-20 James Livingston <jrl@ids.org.au>
4163 Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
4165 * doc/reference/tmpl/rb-shell-player.sgml:
4166 * shell/rb-shell-player.c: (rb_shell_player_class_init),
4167 (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
4168 (rb_shell_player_get_playing),
4169 (rb_shell_player_get_playing_time_string),
4170 (rb_shell_player_get_playing_time),
4171 (rb_shell_player_set_playing_time), (tick_cb),
4172 (rb_shell_player_get_playing_path), (filter_mmkeys):
4173 * shell/rb-shell-player.h:
4174 * shell/rb-shell-player.xml:
4175 * shell/rb-shell.c: (rb_shell_constructor),
4176 (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
4177 (rb_shell_set_window_title), (rb_shell_playing_impl),
4178 (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
4179 Merge the duration_changed and elapsed_changed DBUS signals into one
4180 elapsed_changed signal. Check that the output argument isn't NULL
4181 before trying to put things in it.
4183 2005-10-20 James Livingston <jrl@ids.org.au>
4185 * rhythmdb/rhythmdb-query-model.c:
4186 (rhythmdb_query_model_entry_added_cb),
4187 (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
4188 problem where hidden entries could be shown in playlists.
4190 * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
4191 issues when switching in and out of small mode.
4193 2005-10-19 James Livingston <jrl@ids.org.au>
4195 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
4196 (rb_shell_constructor), (rb_shell_window_state_cb),
4197 (rb_shell_set_visibility), (rb_shell_window_configure_cb),
4198 (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
4199 (rb_shell_view_smalldisplay_changed_cb),
4200 (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
4201 (rb_shell_sync_paned): remove gconf window-state races, prevent
4202 changing small mode too often, fix window event races. Closes 122806.
4205 Patch from Caio Marcelo <cmarcelo@gmail.com>
4207 * data/rhythmbox.schemas:
4208 * shell/rb-shell.c: (rb_shell_window_state_cb),
4209 (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
4210 Remember the position of the window. Closes 315289.
4212 2005-10-19 James Livingston <jrl@ids.org.au>
4214 Patch from Christophe Fergeau <teuf@gnome.org>
4216 * configure.ac: determine whether libgpod is present when neither
4217 --with-ipod nor --without-ipod is passed
4219 2005-10-19 James Livingston <jrl@ids.org.au>
4221 Patch from Caio Marcelo <cmarcelo@gmail.com>
4223 * shell/rb-shell-player.c: (do_next_idle),
4224 (rb_shell_player_do_previous), (rb_shell_player_do_next),
4225 (rb_shell_player_do_previous_or_seek),
4226 (rb_shell_player_previous_button_cb),
4227 (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
4228 (rb_shell_player_cmd_next), (eos_cb):
4229 * widgets/rb-header.c: (rb_header_sync): Stop playback when the
4230 end of the playlist is reached.
4232 2005-10-19 Christopher Aillon <caillon@redhat.com>
4234 * lib/rb-thread.c: fix a few GSource leaks
4236 2005-10-19 James Livingston <jrl@ids.org.au>
4238 * doc/reference/tmpl/bacon-volume.sgml:
4239 * doc/reference/tmpl/disclosure-widget.sgml:
4240 * doc/reference/tmpl/eel-gconf-extensions.sgml:
4241 * doc/reference/tmpl/eggnotificationbubble.sgml:
4242 * doc/reference/tmpl/eggtrayicon.sgml:
4243 * doc/reference/tmpl/gsequence.sgml:
4244 * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
4245 * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
4246 * doc/reference/tmpl/rb-daap-connection.sgml:
4247 * doc/reference/tmpl/rb-daap-dialog.sgml:
4248 * doc/reference/tmpl/rb-daap-mdns.sgml:
4249 * doc/reference/tmpl/rb-daap-share.sgml:
4250 * doc/reference/tmpl/rb-daap-sharing.sgml:
4251 * doc/reference/tmpl/rb-daap-source.sgml:
4252 * doc/reference/tmpl/rb-daap-src.sgml:
4253 * doc/reference/tmpl/rb-daap-structure.sgml:
4254 * doc/reference/tmpl/rb-debug.sgml:
4255 * doc/reference/tmpl/rb-dialog.sgml:
4256 * doc/reference/tmpl/rb-druid.sgml:
4257 * doc/reference/tmpl/rb-entry-view.sgml:
4258 * doc/reference/tmpl/rb-enums.sgml:
4259 * doc/reference/tmpl/rb-file-helpers.sgml:
4260 * doc/reference/tmpl/rb-glade-helpers.sgml:
4261 * doc/reference/tmpl/rb-header.sgml:
4262 * doc/reference/tmpl/rb-history.sgml:
4263 * doc/reference/tmpl/rb-ipod-source.sgml:
4264 * doc/reference/tmpl/rb-iradio-source.sgml:
4265 * doc/reference/tmpl/rb-library-source.sgml:
4266 * doc/reference/tmpl/rb-load-failure-dialog.sgml:
4267 * doc/reference/tmpl/rb-metadata.sgml:
4268 * doc/reference/tmpl/rb-new-station-dialog.sgml:
4269 * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
4270 * doc/reference/tmpl/rb-play-order-linear.sgml:
4271 * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
4272 * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
4273 * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
4274 * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
4275 * doc/reference/tmpl/rb-play-order-random.sgml:
4276 * doc/reference/tmpl/rb-play-order-shuffle.sgml:
4277 * doc/reference/tmpl/rb-play-order.sgml:
4278 * doc/reference/tmpl/rb-player.sgml:
4279 * doc/reference/tmpl/rb-playlist-manager.sgml:
4280 * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
4281 * doc/reference/tmpl/rb-playlist-source.sgml:
4282 * doc/reference/tmpl/rb-preferences.sgml:
4283 * doc/reference/tmpl/rb-property-view.sgml:
4284 * doc/reference/tmpl/rb-query-creator-private.sgml:
4285 * doc/reference/tmpl/rb-query-creator.sgml:
4286 * doc/reference/tmpl/rb-rating-helper.sgml:
4287 * doc/reference/tmpl/rb-rating.sgml:
4288 * doc/reference/tmpl/rb-recorder.sgml:
4289 * doc/reference/tmpl/rb-refstring.sgml:
4290 * doc/reference/tmpl/rb-removable-media-manager.sgml:
4291 * doc/reference/tmpl/rb-removable-media-source.sgml:
4292 * doc/reference/tmpl/rb-search-entry.sgml:
4293 * doc/reference/tmpl/rb-shell-clipboard.sgml:
4294 * doc/reference/tmpl/rb-shell-glue.sgml:
4295 * doc/reference/tmpl/rb-shell-player-glue.sgml:
4296 * doc/reference/tmpl/rb-shell-player.sgml:
4297 * doc/reference/tmpl/rb-shell-preferences.sgml:
4298 * doc/reference/tmpl/rb-shell.sgml:
4299 * doc/reference/tmpl/rb-song-display-box.sgml:
4300 * doc/reference/tmpl/rb-song-info.sgml:
4301 * doc/reference/tmpl/rb-source-header.sgml:
4302 * doc/reference/tmpl/rb-source.sgml:
4303 * doc/reference/tmpl/rb-sourcelist-model.sgml:
4304 * doc/reference/tmpl/rb-sourcelist.sgml:
4305 * doc/reference/tmpl/rb-station-properties-dialog.sgml:
4306 * doc/reference/tmpl/rb-statusbar.sgml:
4307 * doc/reference/tmpl/rb-stock-icons.sgml:
4308 * doc/reference/tmpl/rb-string-helpers.sgml:
4309 * doc/reference/tmpl/rb-thread.sgml:
4310 * doc/reference/tmpl/rb-tray-icon.sgml:
4311 * doc/reference/tmpl/rb-tree-dnd.sgml:
4312 * doc/reference/tmpl/rb-tree-model-sort.sgml:
4313 * doc/reference/tmpl/rb-util.sgml:
4314 * doc/reference/tmpl/rhythmbox-unused.sgml:
4315 * doc/reference/tmpl/rhythmdb-property-model.sgml:
4316 * doc/reference/tmpl/rhythmdb-query-model.sgml:
4317 * doc/reference/tmpl/rhythmdb-tree.sgml:
4318 * doc/reference/tmpl/rhythmdb.sgml: update for changes
4320 * doc/reference/Makefile.am: make docs build with changed ipod support
4322 * po/POTFILES.in: remove sources/itunesdb
4324 2005-10-18 Christophe Fergeau <teuf@gnome.org>
4326 * sources/itunesdb.c:
4327 * sources/itunesdb.h: removed now useless files
4329 2005-10-03 Christophe Fergeau <teuf@gnome.org>
4332 * shell/Makefile.am:
4333 * sources/Makefile.am:
4334 * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
4336 [1]: http://www.gtkpod.org/libgpod.html
4339 2005-10-18 James Livingston <jrl@ids.org.au>
4341 patch from Funda Wang <fundawang@linux.net.cn>
4343 * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
4344 the notification bubble string translatable.
4346 ============ Version 0.9.1
4348 2005-10-16 James Livingston <jrl@ids.org.au>
4350 * configure.ac: bump version to 0.9.1
4351 * NEWS: update translation credits
4353 2005-10-16 James Livingston <jrl@ids.org.au>
4355 * rhythmdb/rhythmdb-query-model.c:
4356 (rhythmdb_query_model_class_init),
4357 (rhythmdb_query_model_drag_data_received):
4358 * rhythmdb/rhythmdb-query-model.h: Allow sources to be
4359 notified when things are dropped into the entry view.
4361 * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
4362 (rb_playlist_source_add_location_swapped),
4363 (rb_playlist_source_add_location), (rb_playlist_source_do_query),
4364 (rb_playlist_source_non_entry_dropped),
4365 (rb_playlist_source_row_inserted): Use the new signal so that dropping
4366 things onto a playlist's entry view work correctly, and doesn't cause
4367 crashes. Allow folders to be dropped as well. (Closes 318308)
4369 2005-10-16 James Livingston <jrl@ids.org.au>
4371 * NEWS: Update some more
4373 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4374 (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
4375 with the paned size, so that it doesn't move when the window is
4376 maximised/restored. Closes bug 315852.
4378 * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
4379 display the playcount column, as it's useless (it never get changed).
4381 2005-10-14 James Livingston <jrl@ids.org.au>
4385 * doc/reference/Makefile.am: get "make distcheck" to pass again
4387 2005-10-11 James Livingston <jrl@ids.org.au>
4389 * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
4390 destroy the connection when retrieving the playlists fails, because
4391 tracks have already been added. Closes 318380.
4393 2005-10-11 James Livingston <jrl@ids.org.au>
4395 * sources/rb-sourcelist.c: (rb_sourcelist_append),
4396 (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
4397 (source_name_edited_cb): Ask for the columns to be resized when a
4398 source is added, deleted or changes name.
4400 2005-10-11 James Livingston <jrl@ids.org.au>
4402 * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
4403 create a thread when processing a directory. This stops up created one
4404 thread for each file in a playlist we're trying to load. Closes
4407 * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
4408 typo that made sort-by-artist not work correctly.
4410 2005-10-11 James Livingston <jrl@ids.org.au>
4412 * doc/reference/Makefile.am: Make gtk-doc generation work when daap
4415 2005-10-11 James Livingston <jrl@ids.org.au>
4417 * lib/rb-file-helpers.c: (rb_canonicalise_uri):
4418 * lib/rb-file-helpers.h: add a function to turn uris into our
4419 canonical path-escaped form
4420 * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
4421 above function when import playlists. This will fix the problem of
4422 duplicate entries due to different representations of the uri (bug
4425 2005-10-11 James Livingston <jrl@ids.org.au>
4427 * shell/rb-shell.c: (rb_shell_get_visibility),
4428 (rb_shell_set_visibility), (rb_shell_window_delete_cb),
4429 (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
4430 window hiding so that Alt-F4 works again.
4432 * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
4433 (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
4434 (rb_entry_view_string_sort_func): Stop some crashes where a string
4435 property was set to NULL.
4437 2005-10-10 James Livingston <jrl@ids.org.au>
4439 * doc/reference/rhythmbox.types: fix gtk-doc generation
4441 2005-10-09 James Livingston <jrl@ids.org.au>
4443 * sources/rb-sourcelist.c: (rb_sourcelist_init):
4444 * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
4445 accelerators, so that we don't have as many conflicting keys.
4447 2005-10-08 James Livingston <jrl@ids.org.au>
4449 * data/iradio-initial.pls: Update the list of radio stations. Thanks
4450 to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
4453 2005-10-07 James Livingston <jrl@ids.org.au>
4455 * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
4456 local path names in the same way as every other URI. This should stop
4457 duplicates occurring due to different escapings. Closes bug 158211.
4459 2005-10-06 James Livingston <jrl@ids.org.au>
4461 * NEWS: more updates
4463 patch from Jaap Haitsma <jaap@haitsma.org>:
4467 * data/art/Makefile.am:
4468 - data/art/rhythmbox-paused.png:
4469 - data/art/rhythmbox-playback-error.png:
4470 - data/art/rhythmbox-playing.png:
4471 - data/art-clearlooks/:
4472 * lib/rb-file-helpers.c: (rb_file):
4473 * lib/rb-stock-icons.c: (rb_stock_icons_init):
4474 * lib/rb-stock-icons.h:
4475 * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
4476 * widgets/rb-cell-renderer-pixbuf.c:
4477 (rb_cell_renderer_pixbuf_render):
4478 * widgets/rb-entry-view.c: (rb_entry_view_init),
4479 (rb_entry_view_set_playing):
4480 * widgets/rb-rating-helper.c: (rb_rating_render_stars): use more
4481 stock icons instead of custom art. Drop remanents of art-clearlooks.
4483 2005-10-04 Pawan Chitrakar <pchitrakar@gmail.com>
4485 * configure.ac: Added ne in ALL_LINGUAS
4487 2005-10-02 James Livingston <jrl@ids.org.au>
4489 * data/glade/Makefile.am: actually install the daap prefs glade file
4491 2005-09-30 James Livingston <jrl@ids.org.au>
4493 * po/POTFILES.in: mremove rb-string-helper.c from the list of
4494 translatable files, so that make check works and we don't annoy the
4497 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
4498 sanity checking, in case a db entry is missing some properties.
4500 2005-09-29 James Livingston <jrl@ids.org.au>
4502 - lib/rb-string-helpers.c:
4503 - lib/rb-string-helpers.h:
4505 * rhythmdb/rhythmdb-tree.c:
4506 * rhythmdb/rhythmdb.c:
4507 * shell/main.c: (main):
4509 * widgets/rb-entry-view.c:
4510 * widgets/rb-property-view.c: remove rb-string-helpers, as they
4511 utility functions haven't been used in a while.
4513 2005-09-27 James Livingston <jrl@ids.org.au>
4515 * data/art-clearlooks/Makefile.am:
4516 - data/art-clearlooks/rhythmbox-album.png:
4517 - data/art-clearlooks/rhythmbox-audiocd.png:
4518 - data/art-clearlooks/rhythmbox-automatic-playlist.png:
4519 - data/art-clearlooks/rhythmbox-dnd.png:
4520 - data/art-clearlooks/rhythmbox-ipod.png:
4521 - data/art-clearlooks/rhythmbox-iradio.png:
4522 - data/art-clearlooks/rhythmbox-library.png:
4523 - data/art-clearlooks/rhythmbox-next.png:
4524 - data/art-clearlooks/rhythmbox-pause.png:
4525 - data/art-clearlooks/rhythmbox-play.png:
4526 - data/art-clearlooks/rhythmbox-playlist-menu.png:
4527 - data/art-clearlooks/rhythmbox-playlist.png:
4528 - data/art-clearlooks/rhythmbox-previous.png:
4529 - data/art-clearlooks/rhythmbox-repeat.png:
4530 - data/art-clearlooks/rhythmbox-rewind.png:
4531 - data/art-clearlooks/rhythmbox-shuffle.png:
4532 - data/art-clearlooks/rhythmbox-stop.png:
4533 - data/art-clearlooks/rhythmbox-visuals.png:
4534 - data/art-clearlooks/rhythmbox-volume-max.png:
4535 - data/art-clearlooks/rhythmbox-volume-medium.png:
4536 - data/art-clearlooks/rhythmbox-volume-min.png:
4537 - data/art-clearlooks/rhythmbox-volume-mute.png:
4538 - data/art-clearlooks/rhythmbox-volume-zero.png:
4539 * data/art/Makefile.am:
4540 - data/art/rhythmbox-album.png:
4541 - data/art/rhythmbox-audiocd.png:
4542 - data/art/rhythmbox-automatic-playlist.png:
4543 - data/art/rhythmbox-dnd.png:
4544 - data/art/rhythmbox-ipod.png:
4545 - data/art/rhythmbox-iradio.png:
4546 - data/art/rhythmbox-library.png:
4547 - data/art/rhythmbox-next.png:
4548 - data/art/rhythmbox-pause.png:
4549 - data/art/rhythmbox-play.png:
4550 - data/art/rhythmbox-playlist-menu.png:
4551 - data/art/rhythmbox-playlist.png:
4552 - data/art/rhythmbox-previous.png:
4553 - data/art/rhythmbox-repeat.png:
4554 - data/art/rhythmbox-rewind.png:
4555 - data/art/rhythmbox-shuffle.png:
4556 - data/art/rhythmbox-stop.png:
4557 - data/art/rhythmbox-visuals.png:
4558 - data/art/rhythmbox-volume-max.png:
4559 - data/art/rhythmbox-volume-medium.png:
4560 - data/art/rhythmbox-volume-min.png:
4561 - data/art/rhythmbox-volume-mute.png:
4562 - data/art/rhythmbox-volume-zero.png:
4563 * lib/rb-stock-icons.c: (rb_stock_icons_init):
4564 * lib/rb-stock-icons.h:
4565 * shell/rb-playlist-manager.c:
4566 * shell/rb-shell-player.c:
4567 * sources/rb-daap-source.c: (rb_daap_get_icon):
4568 * sources/rb-ipod-source.c:
4569 * sources/rb-iradio-source.c: (rb_iradio_source_init):
4570 * sources/rb-library-source.c: (rb_library_source_new):
4571 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4572 * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
4573 that hasn't been used in a LONG time, and also remove art that are
4576 2005-09-27 James Livingston <jrl@ids.org.au>
4578 * README: point to the gnome.org web sites, and update the example
4579 gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
4581 * rhythmdb/rhythmdb-query-model.c:
4582 (rhythmdb_query_model_set_property),
4583 (rhythmdb_query_model_get_property),
4584 (rhythmdb_query_model_finalize):
4585 * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
4586 (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
4587 * rhythmdb/rhythmdb.h:
4588 * sources/rb-iradio-source.c: (impl_search):
4589 * sources/rb-library-source.c: (impl_search): Add query
4590 "preprocessing", which performs operations such as casefolding any
4591 strings that will be compared to any of the *_FOLDED properties.
4594 2005-09-27 James Livingston <jrl@ids.org.au>
4596 * data/glade/daap-prefs.glade:
4597 * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
4598 file for the daap preferences pane
4600 * sources/rb-sourcelist.c: (rb_sourcelist_init),
4601 (rb_sourcelist_append), (rb_sourcelist_remove),
4602 (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
4603 don't display the column for source expanders unless there is an
4606 2005-09-24 Raphael Slinckx <rslinckx@cvs.gnome.org>
4613 * doc/reference/.cvsignore:
4614 * doc/reference/Makefile.am:
4615 * doc/reference/rhythmbox-docs.sgml:
4616 * doc/reference/rhythmbox-sections.txt:
4617 * doc/reference/rhythmbox.types:
4618 * doc/reference/tmpl/bacon-volume.sgml:
4619 * doc/reference/tmpl/disclosure-widget.sgml:
4620 * doc/reference/tmpl/eel-gconf-extensions.sgml:
4621 * doc/reference/tmpl/eggnotificationbubble.sgml:
4622 * doc/reference/tmpl/eggtrayicon.sgml:
4623 * doc/reference/tmpl/gsequence.sgml:
4624 * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
4625 * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
4626 * doc/reference/tmpl/rb-daap-connection.sgml:
4627 * doc/reference/tmpl/rb-daap-dialog.sgml:
4628 * doc/reference/tmpl/rb-daap-mdns.sgml:
4629 * doc/reference/tmpl/rb-daap-share.sgml:
4630 * doc/reference/tmpl/rb-daap-sharing.sgml:
4631 * doc/reference/tmpl/rb-daap-source.sgml:
4632 * doc/reference/tmpl/rb-daap-src.sgml:
4633 * doc/reference/tmpl/rb-daap-structure.sgml:
4634 * doc/reference/tmpl/rb-debug.sgml:
4635 * doc/reference/tmpl/rb-dialog.sgml:
4636 * doc/reference/tmpl/rb-druid.sgml:
4637 * doc/reference/tmpl/rb-entry-view.sgml:
4638 * doc/reference/tmpl/rb-enums.sgml:
4639 * doc/reference/tmpl/rb-file-helpers.sgml:
4640 * doc/reference/tmpl/rb-glade-helpers.sgml:
4641 * doc/reference/tmpl/rb-header.sgml:
4642 * doc/reference/tmpl/rb-history.sgml:
4643 * doc/reference/tmpl/rb-ipod-source.sgml:
4644 * doc/reference/tmpl/rb-iradio-source.sgml:
4645 * doc/reference/tmpl/rb-library-source.sgml:
4646 * doc/reference/tmpl/rb-load-failure-dialog.sgml:
4647 * doc/reference/tmpl/rb-metadata.sgml:
4648 * doc/reference/tmpl/rb-new-station-dialog.sgml:
4649 * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
4650 * doc/reference/tmpl/rb-play-order-linear.sgml:
4651 * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
4652 * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
4653 * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
4654 * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
4655 * doc/reference/tmpl/rb-play-order-random.sgml:
4656 * doc/reference/tmpl/rb-play-order-shuffle.sgml:
4657 * doc/reference/tmpl/rb-play-order.sgml:
4658 * doc/reference/tmpl/rb-player.sgml:
4659 * doc/reference/tmpl/rb-playlist-manager.sgml:
4660 * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
4661 * doc/reference/tmpl/rb-playlist-source.sgml:
4662 * doc/reference/tmpl/rb-preferences.sgml:
4663 * doc/reference/tmpl/rb-property-view.sgml:
4664 * doc/reference/tmpl/rb-query-creator-private.sgml:
4665 * doc/reference/tmpl/rb-query-creator.sgml:
4666 * doc/reference/tmpl/rb-rating-helper.sgml:
4667 * doc/reference/tmpl/rb-rating.sgml:
4668 * doc/reference/tmpl/rb-recorder.sgml:
4669 * doc/reference/tmpl/rb-refstring.sgml:
4670 * doc/reference/tmpl/rb-removable-media-manager.sgml:
4671 * doc/reference/tmpl/rb-removable-media-source.sgml:
4672 * doc/reference/tmpl/rb-search-entry.sgml:
4673 * doc/reference/tmpl/rb-shell-clipboard.sgml:
4674 * doc/reference/tmpl/rb-shell-glue.sgml:
4675 * doc/reference/tmpl/rb-shell-player-glue.sgml:
4676 * doc/reference/tmpl/rb-shell-player.sgml:
4677 * doc/reference/tmpl/rb-shell-preferences.sgml:
4678 * doc/reference/tmpl/rb-shell.sgml:
4679 * doc/reference/tmpl/rb-song-display-box.sgml:
4680 * doc/reference/tmpl/rb-song-info.sgml:
4681 * doc/reference/tmpl/rb-source-header.sgml:
4682 * doc/reference/tmpl/rb-source.sgml:
4683 * doc/reference/tmpl/rb-sourcelist-model.sgml:
4684 * doc/reference/tmpl/rb-sourcelist.sgml:
4685 * doc/reference/tmpl/rb-station-properties-dialog.sgml:
4686 * doc/reference/tmpl/rb-statusbar.sgml:
4687 * doc/reference/tmpl/rb-stock-icons.sgml:
4688 * doc/reference/tmpl/rb-string-helpers.sgml:
4689 * doc/reference/tmpl/rb-thread.sgml:
4690 * doc/reference/tmpl/rb-tray-icon.sgml:
4691 * doc/reference/tmpl/rb-tree-dnd.sgml:
4692 * doc/reference/tmpl/rb-tree-model-sort.sgml:
4693 * doc/reference/tmpl/rb-util.sgml:
4694 * doc/reference/tmpl/rhythmdb-property-model.sgml:
4695 * doc/reference/tmpl/rhythmdb-query-model.sgml:
4696 * doc/reference/tmpl/rhythmdb-tree.sgml:
4697 * doc/reference/tmpl/rhythmdb.sgml:
4698 * macros/.cvsignore:
4699 * shell/Makefile.am:
4700 * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
4701 (rb_source_finalize), (rb_source_set_property),
4702 (rb_source_get_property), (default_get_pixbuf),
4703 (_rb_source_show_popup):
4704 * sources/rb-source.h:
4705 Add support for gtk-doc in rhythmbox.
4706 Convert RBSource to use newer glib functions, such as add_private.
4707 Gives RBSource a default get_pixbuf implementation.
4709 2005-09-25 James Livingston <jrl@ids.org.au>
4711 * NEWS: Update with about a months worth of changes
4713 * data/glade/song-info-multiple.glade:
4714 * data/glade/song-info.glade:
4715 * data/rhythmbox.schemas:
4716 * lib/rb-preferences.h:
4717 * rhythmdb/rhythmdb.h:
4718 * shell/rb-shell-player.c:
4719 * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
4720 few remaining parts of autorating.
4722 2005-09-24 James Livingston <jrl@ids.org.au>
4724 * shell/rb-shell.c: (rb_shell_constructor),
4725 (rb_shell_window_state_cb), (rb_shell_set_visibility),
4726 (rb_shell_window_configure_cb): store window state in the gconf keys,
4727 so that it gets used. Closes bugs 313893 and 137068.
4729 2005-09-20 James Livingston <jrl@ids.org.au>
4731 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
4732 crash if the entry has a NULL string in a property
4734 * shell/rb-removable-media-manager.c:
4735 (rb_removable_media_manager_load_media): fix some memory leaks
4737 (rb_removable_media_manager_mount_volume),
4738 (rb_removable_media_manager_eject_medium_cb),
4739 (rb_removable_media_manager_cmd_eject_medium): use
4740 gnome_vfs_volume_ref/unref instead of g_object_ref/unref
4742 * sources/rb-removable-media-source.c:
4743 (rb_removable_media_source_set_property),
4744 (rb_removable_media_source_get_property): use
4745 gnome_vfs_volume_ref/unref instead of g_object_ref/unref
4747 2005-09-18 James Livingston <jrl@ids.org.au>
4749 Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
4752 * data/glade/general-prefs.glade:
4753 * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
4754 (rb_shell_preferences_column_check_changed_cb),
4755 (rb_shell_preferences_sync): add checkbox to control visibility
4759 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4761 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
4762 (rhythmdb_prop_get_type):
4763 * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
4764 was as "last played" is handled
4766 * sources/rb-library-source.c: (rb_library_source_constructor):
4767 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4768 Make the column show in the library and playlists
4770 * widgets/rb-entry-view.c: (rb_entry_view_append_column):
4771 * widgets/rb-entry-view.h: add the column
4773 * widgets/rb-query-creator-properties.c: allow automatic playlists to
4774 be sorted by the column
4776 2005-09-16 James Livingston <jrl@ids.org.au>
4778 * shell/rb-shell-player.c: (rb_shell_player_init),
4779 (rb_shell_player_do_previous_or_seek),
4780 (rb_shell_player_previous_button_cb),
4781 (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
4782 (rb_shell_player_playpause_button_cb): Make the previous button act
4783 the same as the menu item. Fix an inversion of the "previous track or
4786 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4788 (rb_shell_player_playpause): make --play-pause stop source that can't
4791 2005-09-15 James Livingston <jrl@ids.org.au>
4793 * configure.ac: increase totem-plparser requirements to 1.1.5
4795 * shell/rb-playlist-manager.c: (playlist_load_start_cb),
4796 (playlist_load_end_cb), (rb_playlist_manager_parse_file):
4797 * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
4798 use the newer playlist APIs to save the name of the playlist, and use
4799 the name of a loaded playlist.
4803 2005-09-15 James Livingston <jrl@ids.org.au>
4805 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4807 * shell/Makefile.am: stop some linker warnings
4809 * shell/main.c: (main): make --no-registration work with dbus
4811 2005-09-15 James Livingston <jrl@ids.org.au>
4813 * daapsharing/rb-daap-sharing.c: (create_share):
4814 * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
4815 reference sinking and counting issues that I caused.
4817 2005-09-15 James Livingston <jrl@ids.org.au>
4819 * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
4820 playing" icon in the "now playing" column header.
4822 2005-09-14 James Livingston <jrl@ids.org.au>
4824 * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
4825 daap shares, when sharing is turned off.
4827 2005-09-12 Bastien Nocera <hadess@hadess.net>
4829 * sources/rb-daap-source.c: (rb_daap_sources_init): Check
4830 the GConf value's default, especially for badly installed schema
4833 2005-09-12 James Livingston <jrl@ids.org.au>
4835 * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
4837 Patch from Paolo Borelli <pborelli@katamail.com>
4839 * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
4840 grip when maximised. Closes bug 316055.
4842 2005-09-11 James Livingston <jrl@ids.org.au>
4844 Patch from William Jon McCann <mccann@jhu.edu>
4846 * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE. Make a
4847 subclass of GtkStatusbar instead of GtkHBox.
4848 (rb_statusbar_construct): Don't set border width.
4849 (rb_statusbar_init): Use resize grip. Don't use
4851 (set_statusbar_tooltip, unset_statusbar_tooltip)
4852 (rb_statusbar_connect_action_group, rb_statusbar_set_property):
4853 Connect tooltips for actions.
4854 (rb_statusbar_sync_status): Push new message to statusbar.
4855 (rb_statusbar_set_progress): Don't use markup.
4856 (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
4857 flag here since it prevents actually showing or hiding.
4858 (rb_statusbar_sync_with_source): Push new message to statusbar.
4860 2005-09-11 Charles Schmidt <cschmidt2@emich.edu>
4862 * daapsharing/rb-daap-structure.c:
4863 (rb_daap_structure_parse_container_buffer: Forgot to remove comments
4864 around debugging definition.
4866 2005-09-11 Charles Schmidt <cschmidt2@emich.edu>
4868 * daapsharing/rb-daap-structure.c:
4869 (rb_daap_structure_parse_container_buffer): Read the patch from daap
4872 * daapsharing/rb-daap-mdns.c/h:
4873 (resolve_cb): Updated mDNS resolve callback to send service-name &
4874 name (read from Machine Name in the TXT data or equal to service-name
4877 * daapsharing/rb-daap-source.c:
4878 (rb_daap_source_class_init), (rb_daap_source_set_property),
4879 (rb_daap_source_get_property), (rb_daap_source_new),
4880 (find_source_by_service_name), (resolve_cb), (browse_cb),
4881 (stop_resolver), (start_browsing), (stop_browsing),
4882 (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
4883 and added 'host' and 'port' gobject properties. Updated to use new
4884 mDNS resolve callback sending service-name & name arguments.
4886 2005-09-11 Charles Schmidt <cschmidt2@emich.edu>
4888 * daapsharing/rb-daap-mdns.c:
4889 (howl_strerror): New function to report errors from Howl
4890 (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish),
4891 (get_sw_discovery), (get_avahi_client): Better error reporting from
4894 * sources/rb-daap-source.:
4895 (start_browsing), (stop_browsing): Fixed a bug where browsing would
4896 not get started or stopped in some situations.
4898 2005-09-12 James Livingston <jrl@ids.org.au>
4900 * shell/rb-removable-media-manager.c: add a missing include, that
4901 would stop compilation if ipod support wasn't turned on
4903 2005-09-11 James Livingston <jrl@ids.org.au>
4905 * daapsharing/rb-daap-dialog.c: (encode_base64),
4906 (rb_daap_password_dialog_new_run),
4907 (rb_daap_collision_dialog_new_run): fix a translatable string, so that
4908 it is no broken in to two pieces, and remove a use of a goto
4910 * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
4911 (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
4912 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
4913 (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
4914 (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
4915 memory leaks, and some code style things.
4917 * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
4918 (rb_daap_share_init), (rb_daap_share_set_property),
4919 (rb_daap_share_dispose), (rb_daap_share_new),
4920 (rb_daap_share_get_property): make the DB and the playlist manager
4923 (message_add_standard_headers),
4924 (message_set_from_rb_daap_structure), (server_info_cb),
4925 (content_codes_cb), (login_cb), (update_cb), (databases_cb),
4926 (server_cb), (add_db_entry), (db_entry_added_cb),
4927 (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
4928 (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
4929 style and use CONF_PREFIX in the gconf keys
4931 * daapsharing/rb-daap-sharing.c: (create_share),
4932 (enable_sharing_changed_cb), (share_name_changed_cb),
4933 (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
4934 * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
4935 (rb_daap_src_instance_init), (rb_daap_src_dispose),
4936 (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
4937 (rb_daap_src_get_property), (rb_daap_src_getcaps),
4938 (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
4939 (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
4940 (rb_daap_src_get_time): Deal with gconf callbacks where the key
4941 hasn't actually changed, fix some memory leaks, code style and release
4942 gconf notifications when the object is destroyed.
4944 * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
4945 (rb_daap_source_class_init), (rb_daap_source_init),
4946 (rb_daap_source_dispose), (rb_daap_source_set_property),
4947 (rb_daap_source_get_property), (rb_daap_source_new),
4948 (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
4949 (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
4950 (rb_daap_sources_init), (rb_daap_sources_shutdown),
4951 (rb_daap_source_activate), (rb_daap_source_disconnect),
4952 (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
4953 (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
4954 release gconf notifications, handle gconf callbacks where the key
4955 hasn't changed, make "real name" and "password protected" gobject
4956 properties, fix some code style and fix a memory leak.
4958 2005-09-11 James Livingston <jrl@ids.org.au>
4960 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4962 * shell/rb-playlist-manager.c:
4963 (rb_playlist_manager_save_playlists),
4964 (rb_playlist_manager_get_playlists): don't unref the sourcelist model
4965 when we aren't supposed to. (Closes bug 315886)
4967 2005-09-11 James Livingston <jrl@ids.org.au>
4969 * shell/rb-removable-media-manager.c:
4970 (rb_removable_media_manager_class_init),
4971 (rb_removable_media_manager_init),
4972 (rb_removable_media_manager_dispose),
4973 (rb_removable_media_manager_set_property),
4974 (rb_removable_media_manager_get_property),
4975 (rb_removable_media_manager_new),
4976 (rb_removable_media_manager_load_media),
4977 (rb_removable_media_manager_volume_mounted_cb),
4978 (rb_removable_media_manager_volume_unmounted_cb),
4979 (rb_removable_media_manager_mount_volume),
4980 (rb_removable_media_manager_unmount_volume),
4981 (rb_removable_media_manager_source_deleted_cb),
4982 (rb_removable_media_manager_append_media_source),
4983 (rb_removable_media_manager_set_uimanager),
4984 (rb_removable_media_manager_eject_medium_cb),
4985 (rb_removable_media_manager_cmd_eject_medium):
4986 * shell/rb-removable-media-manager.h:
4987 * sources/rb-removable-media-source.c:
4988 (rb_removable_media_source_class_init),
4989 (rb_removable_media_source_init),
4990 (rb_removable_media_source_dispose),
4991 (rb_removable_media_source_set_property),
4992 (rb_removable_media_source_get_property), (impl_get_pixbuf),
4993 (impl_delete_thyself):
4994 * sources/rb-removable-media-source.h: Add the four files that I
4995 somehow managed not to add to cvs in the last commit. Oops.
4997 2005-09-11 James Livingston <jrl@ids.org.au>
4999 * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
5000 * sources/Makefile.am: Add rb-removable-media-source.{c,h}
5002 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
5003 (rb_shell_medium_added_cb), (rb_shell_select_source): create the
5004 removable-media-manager on startup, and handle creation of sources.
5006 * sources/rb-ipod-source.h:
5007 * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
5008 (rb_ipod_source_init), (rb_ipod_source_constructor),
5009 (rb_ipod_source_dispose), (rb_ipod_source_new),
5010 (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
5011 the iPod source over to the removable media framework.
5013 * sources/rb-library-source.c: (paned_size_allocate_cb),
5014 (rb_library_source_get_paned_key): fix a potential bug is a
5015 library-derived source doesn't have a paned-key
5017 2005-09-11 Bastien Nocera <hadess@hadess.net>
5019 * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
5020 mp3 when we can't get the suffix of a file (Closes: #315941)
5022 2005-09-10 James Livingston <jrl@ids.org.au>
5024 * configure.ac: fix the mdns tests, so that it doesn't complain about
5025 not finding one, if daap support isn't being compiled in
5027 2005-09-10 Charles Schmidt <cschmidt2@emich.edu>
5029 * configure.ac: Updated to require avahi >= 0.5. Small fixes.
5031 * daapsharing/rb-daap-dialog.c:
5032 (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
5033 HIG compliancy & images.
5035 * daapsharing/rb-daap-mdns.c:
5036 (browse_cb), (resolve_cb): Better detection of local services.
5037 Requries avahi 0.5. Still doesn't work quite right with Howl, due to
5038 Howl's limitations. Fix the way collision handling is done under
5041 * daapsharing/rb-daap-share.c:
5042 (publish_cb): Better name collision handling (at least for Avahi).
5044 2005-09-10 James Livingston <jrl@ids.org.au>
5046 * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
5047 Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
5048 preferences more HIG compliant (Closes #315889)
5050 * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
5051 list of files to be translated
5053 2005-09-10 James Livingston <jrl@ids.org.au>
5055 * configure.ac: fix it so that --enable-daap=no works
5056 * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
5059 2005-09-10 James Livingston <jrl@ids.org.au>
5061 Patch from Christophe Fergeau <teuf@gnome.org>
5063 * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
5066 2005-09-09 Charles Schmidt <cschmidt2@emich.edu>
5067 * README.daap: Updating documentation
5069 2005-09-09 Charles Schmidt <cschmidt2@emich.edu>
5070 * AUTHORS: Added myself.
5072 * daapsharing/rb-daap-connection.c:
5073 (connection_login), (rb_connection_new): Reorganized password
5076 * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
5079 (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
5081 * sources/rb-daap-source.c:
5082 (rb_daap_source_activate): Better error handling when we are unable to
5085 2005-09-09 Charles Schmidt <cschmidt2@emich.edu>
5086 * README.daap: Fixed some terminology.
5088 * configure.ac: Better automatic detection of mDNS/DNS-SD library.
5089 New --with-mdns=auto|howl|avahi flag to specify.
5091 * daapsharing/rb-daap-dialog.c/h: New files to handle password &
5092 name collision dialogs.
5094 * daapsharing/rb-daap-connection.c:
5095 (connection_get_password), (build_message), (http_get)
5096 (connection_login): Ask for & use a password if the share demands it.
5098 * daapsharing/rb-daap-connection.h: Changed prototype of
5099 rb_daap_connection_new.
5101 * daapsharing/rb-daap-mdns.c:
5102 (resolve_cb): Better detection of your own music share so it doesn't
5103 appear in the sourcelist.
5105 * daapsharing/rb-daap-share.c:
5106 (rb_daap_share_start_publish): Attempt to start on port 3689, failing
5107 that start on any available port.
5109 * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
5111 * sources/rb-daap-source.c:
5112 (find_source_by_name), (rb_daap_source_new), (resolve_cb),
5113 (browse_cb): Handle passworded shares. Resolve the host immediately
5114 instead of when activated.
5115 (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
5116 (rb_daap_source_new): New GConf keys for UI state.
5117 (rb_daap_source_activate): Use RBPlaylistSource instead of
5118 RBDAAPPlaylistSource
5120 * sources/rb-daap-playlist-source.c/h: Removed
5122 * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
5123 if the playlist is local (i.e. not DAAP or iPod).
5125 * shell/rb-playlist-manager.c:
5126 (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
5127 wouldn't get saved if the last playlist hadn't changed. Only save
5130 2005-09-09 James Livingston <jrl@ids.org.au>
5132 * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
5133 iPod preferences pane, as it already uses the browser views as the
5136 2005-09-09 James Livingston <jrl@ids.org.au>
5138 * sources/rb-library-source.c: (rb_library_source_finalize),
5139 (rb_library_source_constructor): fix gconf monitoring of library
5141 * sources/rb-library-source.h: remove declaration of function that
5144 2005-09-08 Charles Schmidt <cschmidt2@emich.edu>
5146 * player/rb-player-gst.c:
5147 (rb_player_set_time): Fix seeking in daap streams.
5149 2005-09-08 Charles Schmidt <cschmidt2@emich.edu>
5151 * data/rhythmbox.schemas: Turn music share browsing on by default.
5153 2005-09-07 James Livingston <jrl@ids.org.au>
5155 * configure.ac: include daapsharing/Makefile in AC_OUTPUT
5157 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
5158 * player/rb-player-gst.c:
5159 (rb_player_get_time): Fix for extra << & == that accidentally made
5162 * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
5164 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
5165 * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
5166 it in last time. Sorry.
5168 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
5170 * player/rb-player-gst.c:
5171 (rb_player_get_time): Fix a small crash appearing when
5172 the uri isn't set in the player, but rb_player_get_time() is
5175 * configure.ac: Also check for libsoup 2.4, which is what ships with
5178 * po/POTFILES.in: Added music sharing files that have translatable
5181 * README.daap: New file explaining "How Music Sharing Works"
5183 2005-09-06 Bastien Nocera <hadess@hadess.net>
5185 * daapsharing/.cvsignore: added
5187 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
5189 * daapsharing/*: Music sharing library.
5191 * sources/rb-daap-source.c/h: Music share RBSource.
5192 * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
5194 * configure.ac: --enable-daap flag to turn on music sharing. Requires
5195 libsoup and a mutlicast DNS implementation (howl or avahi).
5197 * data/rhythmbox.schemas: New GConf keys for music sharing.
5199 * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
5200 source right click menu.
5202 * player/rb-player-gst.c: Changes to properly play & seek in remote
5205 * shell/rb-playlist-manager.c/h:
5206 (rb_playlist_manager_get_playlists): New function to get a GList * of
5208 (rb_playlist_manager_save_playlists): Don't save music share playlists
5209 and fixed a GObject reference leak.
5211 * shell/rb-shell.c/h:
5212 (rb_shell_append_source): No longer a local function. Now takes a
5213 parent RBSource * argument, NULL to append a toplevel source.
5214 (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
5215 source (useful for disconnecting from remote music share,
5217 (rb_shell_quit): Stop music sharing/browsing.
5218 (rb_shell_playlist_added_cb): Work with tree source structure.
5219 (rb_shell_get_property): "playlist-manager" property accessor.
5220 (rb_shell_class_init): New "playlist-manager" property.
5221 (rb_shell_construor): Append sources as toplevel sources. Initialize
5222 daap sharing/browsing.
5223 (rb_shell_select_source): Notify source of activation/deactivation.
5225 * shell/rb-shell-prefernces.c: Music sharing preferences.
5227 * sources/rb-source.c/h: New activate, deactivate and disconnect
5228 class functions. Activate & deactivate are notification style
5229 functions that will tell a source when it is selected/unselected.
5230 Disconnect can be hooked up to a UI object to disconnect the source.
5232 * sources/rb-sourcelist-model.c:
5233 * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
5234 (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
5235 append a toplevel source.
5237 2005-09-05 James Livingston <jrl@ids.org.au>
5239 * rhythmdb/rhythmdb-query-model.c:
5240 (rhythmdb_query_model_entry_changed_cb),
5241 (rhythmdb_query_model_do_reorder): Update the query model's totals if
5242 the duration of filesize of an entry changes. Emit the row-changed
5243 signals that I forgot to put back in, when I was doing query sorting.
5245 * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
5246 out "0 minutes" or "0 bytes".
5248 2005-09-04 James Livingston <jrl@ids.org.au>
5250 * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
5251 remove a leftover bit of the "internal-name" property of sources.
5253 2005-09-03 James Livingston <jrl@ids.org.au>
5255 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
5256 extraneous debug message
5257 * sources/rb-library-source.c: (rb_library_source_do_query): fix a
5258 crasher would affect any library-derived sources (which was also a
5261 2005-09-02 Colin Walters <walters@verbum.org>
5263 * configure.ac: Fix sytnax error.
5265 * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
5266 code to disable minimization icons - need to figure out
5267 why it doesn't work...
5269 2005-09-01 Dennis Cranston <dennis_cranston@yahoo.com>
5271 * data/glade/song-info-multiple.glade:
5272 * data/glade/song-info.glade:
5273 * widgets/rb-song-info.c: (rb_song_info_constructor):
5274 Add a mnemonic to the newly added "Automatically rate" label
5275 in the properties dialog and use a bold typeface like all the
5276 other labels in the dialog. (Closes bug 315089)
5278 2005-09-03 James Livingston <jrl@ids.org.au>
5280 * sources/rb-library-source.c: (rb_library_source_class_init),
5281 (rb_library_source_finalize), (rb_library_source_constructor),
5282 (rb_library_source_set_property), (rb_library_source_get_property),
5283 (impl_get_paned_key), (paned_size_allocate_cb),
5284 (rb_library_source_state_prefs_sync), (impl_show_popup),
5285 (rb_library_source_get_paned_key):
5286 * sources/rb-library-source.h: Allow sources derived from
5287 RBLibrarySource to use different gconf keys for sort order, browser
5288 visibility and browser pane position. Fix a crasher if a derived
5289 source overrides _get_pixbuf.
5291 2005-09-02 Colin Walters <walters@verbum.org>
5293 * shell/rb-shell.c (rb_shell_set_visibility): Move
5294 hint setting which seems to avoid races more.
5296 2005-09-03 James Livingston <jrl@ids.org.au>
5298 * shell/rb-shell.c: fix compilation with iPod support enabled
5300 2005-09-02 Colin Walters <walters@verbum.org>
5302 * shell/rb-shell.c (struct RBShellPrivate): Add
5303 idle_hide_mainwindow_id.
5304 (rb_shell_constructor): Move taskbar skipping hint into
5305 rb_shell_set_visibility.
5306 (idle_hide_mainwindow): New function.
5307 (rb_shell_set_visibility): Taskbar hinting moved here; add evil
5308 racy hack to avoid rb appearing in taskbar when minimized.
5310 2005-09-01 Colin Walters <walters@verbum.org>
5312 * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
5314 * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
5315 from gtkstatusicion.c.
5317 * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
5319 * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
5320 TrayShowWindow entry.
5321 (rb_tray_icon_class_init): Make GtkActionGroup readable only.
5322 (rb_tray_icon_constructor): Create action group here.
5323 (rb_tray_icon_finalize): Destroy action group.
5324 (rb_tray_icon_set_property): Don't take an action group.
5325 (rb_tray_icon_new): Ditto.
5326 (tray_popup_position_menu): Some mostly boilerplate code
5328 (rb_tray_icon_button_press_event_cb): Position menu.
5329 (rb_tray_icon_get_geom): New function used for the shell
5330 to set minimization hints.
5332 * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
5334 * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
5335 (struct RBShellPrivate): Change visible to iconified.
5336 (set_icon_geometry): New function from Søren Sandmann to
5337 tell Metacity where to draw the minimization animiation.
5338 (rb_shell_window_state_cb): Update iconified.
5339 (rb_shell_get_visibility): New function to say whether
5340 or not we're currently visible.
5341 (rb_shell_set_visibility): Update to minimize to
5342 tray or present as appropriate.
5343 (rb_shell_window_delete_cb): On window close, just
5344 minimize to tray if we're deleted.
5345 (rb_shell_set_window_title): Kill old notification code.
5346 (rb_shell_toggle_visibility): Nwe function.
5347 (rb_shell_cmd_toggle_visibility): Call it.
5348 (rb_shell_constructor): Skip the taskbar.
5349 (tray_destroy_cb): Better debugging.
5351 2005-09-01 Colin Walters <walters@verbum.org>
5353 * data/ui/rhythmbox-ui.xml: Add MusicClose.
5355 * configure.ac: Enable bonobo by default.
5357 2005-09-01 Colin Walters <walters@verbum.org>
5359 * configure.ac: Default to old art. Add macros subdir.
5361 * Makefile.am (SUBDIRS): Add macros.
5363 * macros/Makefile.am: New.
5365 2005-09-01 Colin Walters <walters@verbum.org>
5367 * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
5368 rb-shell-player.xml.
5370 * remote/dbus/rb-remote-dbus.h: Deleted.
5372 * remote/dbus/Makefile.am: Delete all the junk, just dist
5373 rb-print-playing.py and rb-set-rating.py.
5375 * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
5377 * data/Makefile.am (EXTRA_DIST): Add service_in_files.
5379 2005-09-02 James Livingston <jrl@ids.org.au>
5381 - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
5384 * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
5385 (rb_shell_constructor): Patches from Jonathan Matthew
5386 <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
5387 a crash when using "browse this artist".
5389 2005-08-31 Colin Walters <walters@verbum.org>
5391 * configure.ac: Add --with-old-art configure switch. Also
5392 add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
5393 but it doesn't work.
5395 * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
5396 Don't use eel_create_colorized_pixbuf for new art.
5397 * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
5399 * data/art-clearlooks: New artwork.
5401 2005-08-31 Colin Walters <walters@verbum.org>
5403 * shell/main.c (main): Fix Bastien's commit to continue to focus
5404 the window with GTK+ 2.8 at least.
5406 2005-08-31 Colin Walters <walters@verbum.org>
5408 * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
5411 * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
5413 2005-08-31 Bastien Nocera <hadess@hadess.net>
5415 * README: remove mentions of the xine-lib backend
5416 * shell/main.c: (main): make it compilable with gtk+ < 2.8
5418 2005-08-30 Colin Walters <walters@verbum.org>
5420 * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page):
5421 Make non-visible sources insensitive.
5423 2005-08-30 Colin Walters <walters@verbum.org>
5425 * shell/rb-shell.c: Don't use GConf for selected source; it's
5426 confusing to have the selected source change after startup,
5427 and since we don't save other things it's not worth saving this.
5429 * sources/rb-playlist-source.c:
5430 * sources/rb-library-source.c:
5431 * sources/rb-iradio-source.c:
5432 * sources/rb-ipod-source.c: Delete internal-name property usage.
5433 * sources/rb-source.c: Delete internal-name property.
5435 * data/rhythmbox.schemas: Delete selected_source.
5437 2005-08-30 Colin Walters <walters@verbum.org>
5439 * sources/rb-sourcelist.c: Make playing source bold instead of
5440 displaying a pixbuf; it's much less ugly.
5442 2005-08-30 Colin Walters <walters@verbum.org>
5444 * sources/rb-source.c:
5445 * sources/rb-source.h: New virtual method try_playlist.
5447 * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
5449 (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
5450 (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
5451 (handle_playlist_entry_cb): Don't check for iradio uris, we don't
5453 (stations_view_drag_data_received_cb): Don't check for iradio uris;
5454 in theory we should though...
5456 * shell/rb-shell.c (known_sources): Delete; we just hardcode the
5457 list in rb_shell_construct now.
5458 (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
5460 (rb_shell_constructor): Create library, iradio, ipod here.
5461 (rb_shell_source_deleted_cb): Use source directly instead of
5462 indirecting through type.
5463 (rb_shell_sync_selected_source): Ditto.
5464 (rb_shell_jump_to_entry_with_source): Just use the source reutrned
5465 from the type instead of special-casing.
5466 (rb_shell_guess_type_for_uri)
5468 (handle_one_uri_with_possible_metadata): New functions.
5469 (rb_shell_load_uri): Refactor to allow loading playlists again,
5470 also use other URI infrastructure.
5472 * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
5473 (rb_shell_player_error): Always set entry error on error, instead
5474 of depending on EOF behavior.
5476 * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
5477 to just invoke rb_shell_add_uri.
5478 (rb_playlist_manager_parse_file): Return error instead of tossing
5479 up dialog box directly.
5480 (load_playlist_response_cb): Display error here.
5481 (add_uri_to_playlist): Delete.
5482 (handle_playlist_entry_into_playlist_cb): Renamed to
5483 handle_playlist_entry_cb.
5485 * shell/rb-playlist-manager.h: Add error, update prototype.
5487 * lib/rb-file-helpers.c:
5488 * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
5490 2005-08-29 Colin Walters <walters@verbum.org>
5492 * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
5493 if entry already exists. Use rhythmdb_entry_set_uninserted.
5495 * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
5496 needlessly duping string, and use rhythmdb_entry_set_uninserted.
5497 (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
5499 * shell/rb-shell.h (enum RBShellError): Add some more errors.
5500 Prototype rb_shell_set_song_property.
5502 * shell/rb-shell.xml: Export setSongProperty.
5504 * shell/rb-shell.c (rb_shell_set_song_property): New function.
5505 (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
5506 rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
5508 * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
5509 rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
5510 want to notify of the change.
5511 (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
5513 * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
5514 logic error; idle functions would be enqueued for each set.
5515 (rhythmdb_entry_set): Fix assertion logic error.
5517 * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
5518 Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
5519 Return if the entry already exists.
5521 2005-08-29 Colin Walters <walters@verbum.org>
5523 * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
5524 "inserted" member which we use to keep track of
5525 whether or not an entry is in the DB. Prototype
5526 rhythmdb_entry_set_uninserted.
5528 * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
5530 (rhythmdb_entry_insert): Assert entry is not already inserted.
5531 (rhythmdb_process_metadata_load): Update to call _set_uninserted
5532 just after creating entry.
5533 (rhythmdb_entry_set): Document, and fail on uninserted entries.
5534 (rhythmdb_entry_set_nonotify): Ditto.
5535 (rhythmdb_entry_set_uninserted): Document, and fail on inserted
5537 (rhythmdb_entry_set_internal): Change notify flag to
5538 notify_if_inserted. Also move notification after assertions.
5540 Update all existing callers of rhythmdb_entry_set_internal
5541 to give TRUE for notify_if_inserted; this should be what
5542 we want but may be an efficiency hit.
5544 2005-08-30 Raphael Slinckx <rslinckx@cvs.gnome.org>
5546 * shell/rb-shell-player.c: (rb_shell_player_init),
5547 (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
5548 (rb_shell_player_set_playing_source_internal),
5549 (rb_shell_player_sync_with_selected_source): Notify the player when an
5550 entry has updated the title, album or artist field, and resync the big
5553 * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
5554 * sources/rb-library-source.c: (rb_library_source_class_init),
5555 (impl_get_config_widget):
5556 * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
5557 * sources/rb-source.c:
5558 * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
5559 get_album functions in rb-source and adapted other sources accordingly.
5561 2005-08-29 Colin Walters <walters@verbum.org>
5563 * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
5564 signal_change member.
5565 (threadsafe_entry_set): New function.
5566 (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
5567 (rhythmdb_entry_set_nonotify): New function; just call
5568 threadsafe_entry_set with FALSE.
5569 (rhythmdb_entry_set_internal): Take a notify flag; if true
5570 add the change to our pending set.
5572 Also update all internal callers of rhythmdb_entry_set_internal
5573 to pass FALSE. Some of these may be bugs however and need to
5576 * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
5577 rhythmdb_entry_set, and rename rhythmdb_entry_set to
5578 rhythmdb_entry_set_nonotify.
5580 * rhythmdb/rhythmdb.h (enum RhythmDBProp)
5581 (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
5583 * widgets/rb-song-info.c: Kill off vestiges of auto rating.
5585 * widgets/rb-entry-view.c (rb_entry_view_rated_cb):
5586 * sources/rb-source.c (rb_source_update_play_statistics):
5587 * sources/rb-iradio-source.c (rb_iradio_source_add_station):
5588 * sources/rb-ipod-source.c (entry_set_string_prop)
5589 (load_ipod_db_idle_cb):
5590 * shell/rb-shell.c (rb_shell_set_rating_impl):
5591 * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error)
5592 (info_available_cb):
5593 * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb)
5594 (rb_station_properties_dialog_sync_entries):
5595 * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
5597 Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
5598 and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
5600 2005-08-29 Colin Walters <walters@verbum.org>
5602 * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
5604 * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
5607 * widgets/rb-header.c (sanitize_string): New function, extracted
5608 from old info_url. Be sure to always strip the string.
5609 (info_url): Rewrite to take artist/album, and generate a sane
5610 URL for them from last.fm, which is better than allmusic.com in
5611 that they support Rhythmbox, and have a *SANE* URL scheme.
5612 (artist_info_url, album_info_url): Delete.
5613 (rb_header_sync): Use info_url.
5615 2005-08-29 James Livingston <jrl@ids.org.au>
5617 * sources/rb-source.c: (rb_source_search): Check to ensure that this
5618 is implemented before calling it. Many sources don't implement the
5621 2005-08-28 Dennis Cranston <dennis_cranston@yahoo.com>
5623 * data/glade/create-playlist.glade: Cleanup the layout,
5624 and add a few more mnemonics.
5625 * shell/rb-playlist-manager.c:
5626 (rb_playlist_manager_cmd_load_playlist),
5627 (rb_playlist_manager_cmd_save_playlist): HIG fix, use title
5628 capitalization for window titles.
5629 * widgets/rb-query-creator-properties.c: Add mnemonics
5630 to checkbutton labels.
5631 * widgets/rb-query-creator.c: (rb_query_creator_constructor),
5632 (limit_toggled_cb): Toggle the sortLabel sensitivity.
5634 2005-08-28 Colin Walters <walters@verbum.org>
5636 * data/rhythmbox.schemas: Delete search_text for library
5637 and iradio; this isn't a persistent value anymore.
5640 * sources/rb-source.h:
5641 * sources/rb-source.c: Delete impl_can_search.
5643 * sources/rb-iradio-source.c: Delete search_text usage.
5644 * sources/rb-library-source.c: Ditto.
5646 * shell/rb-source-header.c: Don't use GConf for search key. Reset
5647 search when source is set, and just do rb_source_search in
5648 rb_source_header_search_cb.
5650 * shell/rb-shell.c (rb_shell_append_source): Don't
5653 * shell/Makefile.am: Don't dist dashboard.c.
5655 2005-08-28 Colin Walters <walters@verbum.org>
5657 * shell/main.c: Remove include of dead file rb-remote-dbus.h.
5659 2005-08-28 Colin Walters <walters@verbum.org>
5661 * data/org.gnome.Rhythmbox.service.in: New.
5663 * data/Makefile.am: Install service file.
5665 * configure.ac: Define DBUS_SERVICES_DIR.
5667 * autogen.sh: Set ACLOCAL_FLAGS.
5669 * macros/acinclude.m4: New.
5671 2005-08-28 Colin Walters <walters@verbum.org>
5673 Initial patch from Jonathan Matthew; closes 313684.
5675 * rhythmdb/rhythmdb-tree.c:
5676 (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
5677 (save_entry): Return on error.
5678 (rhythmdb_tree_save): Handle error when saving the
5679 db; additionally, handle errors from fclose and unlink,
5680 and print error too.
5682 2005-08-28 Colin Walters <walters@verbum.org>
5684 * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
5687 2005-08-28 Colin Walters <walters@verbum.org>
5689 * configure.ac: Change iPod support to --with-ipod;
5690 automatically enable it if we have HAL. Try to
5691 support both HAL 0.5 and HAL 0.2. Break out
5692 totem-plparser into its own check so later we
5693 can do version tests there too.
5694 Kill dashboard support.
5696 * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
5697 to support HAL > 0.5, but preserve the old code for HAL < 0.5
5700 * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
5701 (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
5703 * sources/Makefile.am: Also handle
5704 TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
5706 * shell/dashboard.c: Delete; someone should just write a little
5707 python shim which lists on the D-BUS interface and writes the
5708 stuff to Dashboard. Even better Dashboard should be ported
5709 to D-BUS and do the listening itself, perhaps on an abstract
5710 "org.gnome.MusicPlayer" interface or something.
5712 * shell/rb-shell.c: Kill dashboard support.
5714 2005-08-28 Colin Walters <walters@verbum.org>
5716 * remote/dbus/rb-print-playing.py: New file.
5718 2005-08-28 Colin Walters <walters@verbum.org>
5720 * rhythmdb/rhythmdb.c (rhythmdb_entry_get):
5721 * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
5723 * shell/rb-shell-player.h:
5724 * shell/rb-shell-player.c: Add playing-uri-changed signal.
5725 * shell/rb-shell-player.xml: Export it.
5727 * shell/rb-shell.c (rb_shell_get_song_properties): New function.
5728 (rb_shell_error_quark): New.
5730 * shell/rb-shell.h: Prototype. Also add RBShellError.
5731 * shell/rb-shell.xml: Export rb_shell_get_song_properties.
5733 2005-08-28 Colin Walters <walters@verbum.org>
5735 * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
5736 (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
5738 (rb_remote_bonobo_preinit): Lock setting moved here.
5739 (rb_remote_bonobo_init): From here.
5741 * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
5742 Also invoke handle_cmdline in the right place.
5743 (handle_cmdline): Remove some unused vars. Cast bonobo_load_uri to
5746 2005-08-28 James Livingston <jrl@ids.org.au>
5748 * NEWS: keep the NEWS file up to date, so we don't have to do it all
5749 when 0.9.1 comes around.
5751 2005-08-28 James Livingston <jrl@ids.org.au>
5753 * iradio/rb-new-station-dialog.c:
5754 (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
5757 2005-08-28 James Livingston <jrl@ids.org.au>
5759 Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
5761 * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
5762 * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
5763 is a song is longer than 60 minutes. Closes bug 313311.
5765 2005-08-27 James Livingston <jrl@ids.org.au>
5767 * data/glade/create-playlist.glade:
5768 * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5769 (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
5770 "minutes" as an option in the playlist limit menu.
5772 * rhythmdb/rhythmdb-query-model.c:
5773 (rhythmdb_query_model_class_init),
5774 (rhythmdb_query_model_set_property),
5775 (rhythmdb_query_model_get_property),
5776 (rhythmdb_query_model_update_limited_entries): Allow query models to
5779 * shell/rb-playlist-manager.c:
5780 (rb_playlist_manager_set_automatic_playlist),
5781 (rb_playlist_manager_cmd_edit_automatic_playlist):
5782 * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
5783 (rb_playlist_source_get_query), (impl_receive_drag),
5784 (rb_playlist_source_new_from_xml),
5785 (rb_playlist_source_save_to_xml),
5786 (rb_playlist_source_songs_sort_order_changed_cb),
5787 (rb_playlist_source_do_query):
5788 * sources/rb-playlist-source.h:
5789 * widgets/rb-query-creator.h: Allow playlists to be limited by time
5791 2005-08-27 James Livingston <jrl@ids.org.au>
5793 Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
5796 * shell/Makefile.am: work correctly if dbus-binding-tool is in a
5797 non-standard location. Closes bug 314640.
5799 2005-08-26 Colin Walters <walters@verbum.org>
5801 Patch from Olivier Blin <oblin@mandriva.com>
5803 * widgets/eggnotificationbubble.c (draw_bubble):
5804 Handle extreme-left case as well.
5806 2005-08-26 Colin Walters <walters@verbum.org>
5808 * shell/rb-shell.c (idle_save_state): Don't do this.
5809 (rb_shell_construct): Remove idle calls to idle_save_state.
5810 We should save the playlists automatically when they're
5812 (rb_shell_load_uri): Don't try to re-stat entry if it already
5815 * shell/rb-shell-player.c: Keep track of entry we are attempting
5817 (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
5818 Don't double-free error.
5819 (rb_shell_player_play_entry): Signal errors.
5820 (rb_shell_player_entry_activated_cb): Ditto.
5821 (rb_shell_player_property_row_activated_cb): Ditto.
5822 (rb_shell_player_set_playing_source_internal): Unset attempted
5824 (rb_shell_player_error): Refactor to be usable both sync and
5825 async. Handle case where displayed entry differs from entry.
5826 (error_cb): Move GDK locking here.
5828 * shell/main.c (main): Drop most commandline arguments for D-BUS;
5829 people can just use dbus-send or python. We only support focusing
5831 (load_uri_args): New function, extracted from handle_cmdline.
5832 (dbus_load_uri, bonobo_load_uri): New functions.
5834 * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
5837 * remote/Makefile.am: Don't compile dbus subdir, it's not used.
5838 * remote/dbus/rb-remote-dbus.c: Deleted.
5840 * player/rb-player-gst.c: Clear any pending idle handlers when we
5841 close the player. Signal errors generated during open/play etc
5842 as synchronous errors.
5844 * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
5846 2005-08-26 Colin Walters <walters@verbum.org>
5848 * shell/rb-shell.c (rb_shell_present): Try harder.
5850 2005-08-26 Colin Walters <walters@verbum.org>
5852 * shell/rb-shell.c (rb_shell_present): Try to handle
5853 GTK_MINOR_VERSION < 8.
5855 2005-08-26 James Livingston <jrl@ids.org.au>
5857 * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
5858 <pbrobinson@gmail.com>
5860 2005-08-26 Colin Walters <walters@verbum.org>
5862 * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
5864 2005-08-25 Colin Walters <walters@verbum.org>
5866 * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
5868 (rb_shell_player_do_next_with_rating): Move back into
5869 rb_shell_player_do_next.
5870 (rb_shell_player_entry_activated_cb): Remove call to
5871 rb_shell_player_auto_adjust_rating.
5872 (do_next_idle): Just call rb_shell_player_do_next.
5874 * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
5876 2005-08-25 Colin Walters <walters@verbum.org>
5878 * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
5879 before gtk_window_present_with_time.
5881 2005-08-25 Colin Walters <walters@verbum.org>
5883 * configure.ac: Require D-BUS 0.35. Bonobo is disabled by
5886 * shell/rb-shell.c (rb_shell_constructor): Adapted from
5887 rb_shell_construct. This is so we only have to do g_object_new.
5888 (rb_shell_get_player): New function.
5889 (rb_shell_get_player_path): Ditto.
5890 (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
5892 * shell/rb-shell.h: Prototype them.
5894 * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
5896 (reemit_playing_signal): New function.
5897 (rb_shell_player_open_playlist_location): Use return values from
5898 rb_player_open, rb_player_close, etc. instead of checking "error".
5899 Return a gboolean on failure.
5900 (rb_shell_player_open_entry): Just open entry location, don't
5902 (rb_shell_player_play): Handle retval from rb_player_play. Return
5904 (do_next_idle): Move logic for handling of end of playlist here.
5905 (rb_shell_player_set_playing_entry): Take a GError, return a
5906 gboolean. Update to use gboolean return values.
5907 (rb_shell_player_do_previous): Delete lots of crazy duplicate
5908 logic. Signal an error on end of playlist. Also signal error if
5909 we're not playing. Move heuristic for replaying the song into
5910 rb_shell_player_cmd_previous.
5911 (rb_shell_player_do_next_with_rating): Signal error on end of
5913 (rb_shell_player_do_next): Return errors.
5914 (rb_shell_player_cmd_previous): Heuristic for restarting song
5915 moved here; the idea is you generally only want that from the GUI.
5916 (rb_shell_player_cmd_play): Handle error.
5917 (rb_shell_player_playpause): Signal errors.
5918 (filter_mmkeys): Use rb_shell_player_cmd_previous and
5919 rb_shell_player_cmd_next in favor of the internal _do functions.
5921 * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
5922 errors. Update prototypes for above changes.
5924 * shell/main.c: More tightly integrate D-BUS; register various
5925 major singleton objects here. Fix handle_cmdline so we only
5926 process extra arguments, not every argument.
5928 * shell/Makefile.am: Generate D-BUS glue headers.
5930 * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
5931 into shell/main.c. Now this file just acts as a client library.
5934 * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
5936 (rb_remote_bonobo_init): Move long CORBA rant here along with
5937 setting of lock functions.
5939 * player/rb-player-gst.c (rb_player_construct)
5940 (rb_player_play, rb_player_open, rb_player_close): Return gboolean
5943 * player/rb-player.h: Update prototypes.
5945 * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
5947 (rb_threads_init): Don't set gdk lock functions here.
5949 2005-08-25 James Livingston <jrl@ids.org.au>
5951 Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
5953 * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
5954 * lib/rb-tree-dnd.h:
5955 * rhythmdb/rhythmdb-property-model.c:
5956 (rhythmdb_property_model_class_init),
5957 (rhythmdb_property_model_drag_source_init),
5958 (rhythmdb_property_model_iter_parent),
5959 (rhythmdb_property_model_row_draggable),
5960 (rhythmdb_property_model_drag_data_delete), (query_model_cb),
5961 (rhythmdb_property_model_drag_data_get),
5962 (rhythmdb_property_model_enable_drag):
5963 * rhythmdb/rhythmdb-property-model.h:
5964 * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
5965 (rb_playlist_manager_set_property), (append_new_playlist_source),
5966 (rb_playlist_manager_save_playlists):
5967 * shell/rb-shell.c: (rb_shell_construct),
5968 (sourcelist_drag_received_cb):
5969 * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
5970 * sources/rb-playlist-source.c: (impl_receive_drag):
5971 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
5972 (rb_sourcelist_model_drag_dest_init),
5973 (rb_sourcelist_model_set_dnd_targets),
5974 (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
5975 (rb_sourcelist_model_row_drop_position),
5976 (rb_sourcelist_model_get_drag_target),
5977 (rb_sourcelist_model_drag_data_get):
5978 * sources/rb-sourcelist-model.h:
5979 * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
5980 (rb_sourcelist_init), (rb_sourcelist_get_property),
5981 (rb_sourcelist_selection_changed_cb):
5982 * sources/rb-sourcelist.h:
5983 * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
5984 improve drag-n-drop support. Allow dragging of item from property
5985 views to the source list, to create new automatic playlists. Allow
5986 playlist re-ordering. Fix dragging from Rhythmbox to other
5987 applications. (Closes bug 147337)
5989 2005-08-24 Colin Walters <walters@verbum.org>
5991 Patch from Olivier Blin <oblin@mandriva.com>
5993 * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
5994 correctly in the case where the window is next to monitor edge.
5996 2005-08-24 James Livingston <jrl@ids.org.au>
5998 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5999 (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
6000 a gobject property to get the query model that backs the playlist.
6002 2005-08-24 James Livingston <jrl@ids.org.au>
6004 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
6005 (handle_playlist_entry_into_playlist_cb),
6006 (rb_playlist_manager_playlist_entries_changed): Disable the "create
6007 audio cd" menu item when a non-playlist source is selected, or the
6008 playlist is empty. (Closes Bug 313253)
6010 2005-08-24 James Livingston <jrl@ids.org.au>
6012 * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
6013 Fix the playlist length checkso it doesn't report 0 for automatic
6014 playlists. This was stopping automati playlists being burnt to cd.
6016 2005-08-24 James Livingston <jrl@ids.org.au>
6019 * sources/rb-playlist-source-recorder.c: (burn_cd):
6020 * sources/rb-playlist-source.c:
6021 (rb_playlist_source_songs_sort_order_changed_cb):
6022 * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
6023 more warnings that occur when compiling RPMs on Fedora.
6025 2005-08-24 James Livingston <jrl@ids.org.au>
6027 * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
6028 was stopping some distros gcc version compiling.
6030 2005-08-24 James Livingston <jrl@ids.org.au>
6033 * data/glade/create-playlist.glade:
6034 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
6035 * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
6036 (rhythmdb_query_free), (rhythmdb_query_serialize),
6037 (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
6038 * rhythmdb/rhythmdb.h:
6039 * shell/rb-playlist-manager.c:
6040 (rb_playlist_manager_set_automatic_playlist),
6041 (rb_playlist_manager_cmd_edit_automatic_playlist):
6042 * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
6043 (rb_playlist_source_set_query), (rb_playlist_source_get_query),
6044 (impl_receive_drag), (rb_playlist_source_new_from_xml),
6045 (rb_playlist_source_save_to_xml),
6046 (rb_playlist_source_songs_sort_order_changed_cb),
6047 (rb_playlist_source_do_query):
6048 * sources/rb-playlist-source.h:
6049 * widgets/Makefile.am:
6050 * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
6051 (rb_entry_view_set_sorting_order):
6052 * widgets/rb-query-creator-private.h:
6053 * widgets/rb-query-creator-properties.c:
6054 (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
6055 (stringCriteriaGetWidgetData),
6056 (escapedStringCriteriaSetWidgetData),
6057 (escapedStringCriteriaGetWidgetData), (set_rating_score),
6058 (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
6059 (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
6060 (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
6061 (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
6062 (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
6063 (relativeTimeCriteriaCreateWidget),
6064 (relativeTimeCriteriaSetWidgetData),
6065 (relativeTimeCriteriaGetWidgetData):
6066 * widgets/rb-query-creator.c: (rb_query_creator_get_type),
6067 (rb_query_creator_class_init), (rb_query_creator_constructor),
6068 (rb_query_creator_dispose), (rb_query_creator_set_property),
6069 (rb_query_creator_get_property), (rb_query_creator_load_query),
6070 (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
6071 (get_entry_for_property), (rb_query_creator_get_query),
6072 (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
6073 (limit_toggled_cb), (lookup_row_by_widget),
6074 (remove_button_click_cb), (append_row),
6075 (get_property_index_from_proptype), (select_criteria_from_value),
6076 (property_option_menu_changed), (create_property_option_menu),
6077 (create_criteria_option_menu), (sort_option_menu_changed),
6078 (setup_sort_option_menu):
6079 * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
6080 playlists. The two most notable improvements are 1) adding more
6081 properties to the query creator, making it much easier to add more in
6082 the future, and 2) allow playlists to be sorted, from the query editor
6083 if they gave limits, and by clicking on column headers if they don't.
6085 Files added: widgets/rb-query-creator-private.h,
6086 sources/rb-query-creator-properties.c
6088 2005-08-21 James Livingston <jrl@ids.org.au>
6090 * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
6091 error=NULL. This stops some crashes.
6093 2005-08-19 Colin Walters <walters@verbum.org>
6095 Patch from Olivier Blin <oblin@mandriva.com>
6097 * widgets/eggnotificationbubble.c (force_window): Support top
6099 * widgets/eggnotificationbubble.h: Remove
6100 egg_notification_bubble_force_window from header.
6102 2005-08-18 James Livingston <jrl@ids.org.au>
6104 * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
6105 with the changes since then.
6107 2005-08-17 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
6109 * shell/rb-shell-player.c: (rb_shell_player_init),
6110 (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
6111 (rb_shell_player_volume_widget_changed_cb):
6112 * sources/rb-iradio-source.c:
6113 * sources/rb-library-source.c:
6114 * sources/rb-playlist-source.c:
6115 * widgets/Makefile.am:
6116 * widgets/bacon-volume.c: (bacon_volume_button_get_type),
6117 (bacon_volume_button_class_init), (bacon_volume_button_init),
6118 (bacon_volume_button_dispose), (bacon_volume_button_new),
6119 (bacon_volume_button_get_value), (bacon_volume_button_set_value),
6120 (bacon_volume_button_scroll), (bacon_volume_button_press),
6121 (cb_button_timeout), (cb_button_press), (cb_button_release),
6122 (bacon_volume_release_grab), (cb_dock_press),
6123 (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
6124 (bacon_volume_scale_new), (bacon_volume_scale_press),
6125 (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
6126 * widgets/bacon-volume.h:
6127 * widgets/rb-volume.c:
6128 * widgets/rb-volume.h:
6129 Use BaconVolumeButton (#300867).
6131 2005-08-17 James Livingston <jrl@ids.org.au>
6133 * rhythmdb/rhythmdb.c: (set_props_from_metadata),
6134 (rhythmdb_process_metadata_load): don't reset the First Seen time
6135 whenever we recheck the metadata.
6137 2005-08-17 James Livingston <jrl@ids.org.au>
6139 * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
6140 temporary workaround to stop crashes when trying to burn an empty
6141 playlist. Doesn't disable the menu item which is the better solution
6144 2005-08-15 James Livingston <jrl@ids.org.au>
6146 * shell/rb-source-header.c: (rb_source_header_init),
6147 (rb_source_header_sync_control_state),
6148 (rb_source_header_search_activate_cb):
6149 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
6150 (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
6151 * widgets/rb-search-entry.c: (rb_search_entry_class_init),
6152 (rb_search_entry_init), (rb_search_entry_searching),
6153 (rb_search_entry_activate_cb):
6154 * widgets/rb-search-entry.h: Move focus to the entry view when user
6155 presses enter in the search box. Patch from Paolo Borelli
6156 <pborelli@katamail.com> (Closes bug 128110)
6158 2005-08-15 James Livingston <jrl@ids.org.au>
6160 * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
6161 (rb_playlist_manager_new_playlist):
6162 * shell/rb-playlist-manager.h:
6163 * shell/rb-shell.c: (rb_shell_construct),
6164 (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
6165 the source list to be shown when a new playlist is created. (Closes
6168 2005-08-15 James Livingston <jrl@ids.org.au>
6170 * widgets/rb-header.c: (rb_header_init),
6171 (rb_header_set_show_timeline): disable the seek slider, rather than
6172 hiding it, which more closely follows the HIG. (Closes bug 139102)
6174 2005-08-13 Colin Walters <walters@verbum.org>
6176 * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
6177 rb_shell_hidden_notify.
6178 (rb_shell_hidden_notify): Notify if the shell is hidden.
6179 (rb_shell_set_visibility_impl): Debug goo.
6181 * shell/rb-shell.h: Export rb_shell_hidden_notify.
6183 * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
6184 when the user clicks on notification.
6186 * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
6187 CD burn is complete.
6188 (rb_playlist_source_recorder_finalize): Unref shell.
6189 (rb_playlist_source_recorder_new): Take shell.
6191 * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
6192 Pass shell to RBPlaylistSourceRecorder.
6194 2005-08-13 Colin Walters <walters@verbum.org>
6197 * lib/rb-thread.h: Not used yet, but put in CVS in case we get
6200 2005-08-13 Colin Walters <walters@verbum.org>
6202 * widgets/eggnotificationbubble.h:
6203 * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
6204 * widgets/eggtrayicon.c:
6205 * widgets/eggtrayicon.h: Add notification API.
6206 * shell/rb-tray-icon.c:
6207 * shell/rb-tray-icon.h: Add notification API.
6208 * shell/rb-shell.c: Notify on song change.
6210 2005-08-12 Raphael Slinckx <rslinckx@cvs.gnome.org>
6212 * sources/rb-ipod-source.c: (rb_ipod_unplugged):
6213 Correct an inversion of two lines causing NULL to be unreffed
6215 ============ Version 0.9.0
6217 2005-08-10 Bastien Nocera <hadess@hadess.net>
6219 * configure.ac: 0.9.0, whee!
6220 * NEWS: badly updated
6221 * remote/bonobo/Makefile.am:
6222 * remote/bonobo/rb-remote-bonobo.h:
6223 * shell/Makefile.am:
6224 * shell/main.c: make distcheck fixes