1 2006-05-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
3 * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4 Fix creation of ignored-file db entries - need to check for
5 RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
7 2006-05-25 James Livingston <doclivingston@gmail.com>
10 * MAINTAINERS: update my email address
12 2006-05-25 James Livingston <doclivingston@gmail.com>
14 * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
15 "(... mix)" when searching for lyrics. Cache the lyrics under
16 ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
18 2006-05-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
20 * sources/rb-import-errors-source.c:
21 (rb_import_errors_source_class_init):
22 * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
23 * sources/rb-browser-source.c: (rb_browser_source_class_init):
24 * sources/rb-source.c: (rb_source_class_init),
25 (default_move_to_trash):
26 Implement the basic move-to-trash operation once in rb-source.c,
27 rather than in each source type that supports it.
29 * plugins/ipod/rb-ipod-plugin.c:
30 * shell/rb-removable-media-manager.c:
31 * shell/rb-shell.c: (rb_shell_constructor):
32 Only scan removable media once after loading plugins. Add a flag
33 plugins can use to check if the initial scan has been done.
35 * data/rhythmbox.schemas:
36 Enable ipod and generic-player plugins by default.
39 * data/ui/Makefile.am:
40 * data/ui/generic-player-ui.xml:
41 * data/ui/rhythmbox-ui.xml:
42 * plugins/Makefile.am:
43 * plugins/generic-player/Makefile.am:
44 * plugins/generic-player/generic-player.rb-plugin.desktop.in:
45 * plugins/generic-player/rb-generic-player-plugin.c:
46 * sources/Makefile.am:
47 * sources/rb-generic-player-source.c:
48 * sources/rb-generic-player-source.h:
49 * sources/rb-nokia770-source.c:
50 * sources/rb-nokia770-source.h:
51 * sources/rb-psp-source.c: (visit_playlist_dirs):
52 * sources/rb-psp-source.h:
53 Pluginise generic player (and nokia770 and PSP) support and add
54 move-to-trash for players not mounted read-only.
57 2006-05-24 William Jon McCann <mccann@jhu.edu>
59 * daapsharing/rb-daap-connection.c (handle_song_listing):
60 Lower bound check for batch commit. Fixes #342848
62 * sources/rb-daap-source.c (rb_daap_source_get_status):
63 Always set output variables if provided.
65 2006-05-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
67 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
68 (rhythmdb_tree_entry_delete), (remove_one_song):
69 * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
70 Fix two db entry reference counting problems.
71 The initial reference on the entry is held by the db backend, but it
72 was never being dropped. The reference count was incremented when
73 adding an entry to the deleted_entries map and to the
74 deleted_entries_to_emit list, but only decremented for one of those.
76 2006-05-24 William Jon McCann <mccann@jhu.edu>
78 * daapsharing/rb-daap-connection.c (http_response_handler)
79 (rb_daap_connection_dispose):
80 Call soup_session_abort to make sure there are no outstanding
81 requests when we dispose of the connection. Ignore cancelled
82 messages in the callback.
84 2006-05-24 William Jon McCann <mccann@jhu.edu>
86 * sources/rb-daap-source.c (rb_daap_source_connection_cb)
87 (rb_daap_source_disconnect): Set a flag when disconnecting
88 the source. Check this flag in connection callback
89 to see if we should release the connection.
91 2006-05-24 William Jon McCann <mccann@jhu.edu>
93 * daapsharing/Makefile.am:
94 * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
95 (rb_daap_connection_class_init), (connection_connected),
96 (connection_disconnected), (connection_operation_done),
97 (build_message), (connection_set_error_message),
98 (actual_http_response_handler), (http_get),
99 (entry_set_string_prop), (emit_progress_idle),
100 (handle_server_info), (handle_login), (handle_update),
101 (handle_database_info), (handle_song_listing), (handle_playlists),
102 (handle_playlist_entries), (handle_logout),
103 (rb_daap_connection_new), (rb_daap_connection_is_connected),
104 (connection_response_data_free), (connected_cb),
105 (rb_daap_connection_connect), (disconnected_cb),
106 (rb_daap_connection_finish), (rb_daap_connection_disconnect),
107 (rb_daap_connection_state_done), (rb_daap_connection_do_something),
108 (rb_daap_connection_dispose), (rb_daap_connection_set_property),
109 (rb_daap_connection_get_property):
110 * daapsharing/rb-daap-connection.h:
111 * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
112 (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
113 (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
114 (rb_daap_hash_generate):
115 * daapsharing/rb-daap-hash.h:
116 * sources/rb-daap-source.c: (rb_daap_source_class_init),
117 (rb_daap_get_icon), (remove_source), (stop_browsing),
118 (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
119 (connection_connecting_cb), (connection_disconnected_cb),
120 (release_connection), (rb_daap_source_connection_cb),
121 (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
122 (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
124 Adds a better async API for connect and disconnect. Doesn't share
125 callback data for every async call. Adds a connect signal. Uses
126 an operation-done signal to trigger the callbacks. Displays an
127 error when connections fail. A few refcounting fixes to fix
128 crashes. Uses a weak pointer to set the connection to NULL so we
129 don't clobber references. Wait for each disconnect when shutting
130 down sources. Split out DAAP hash stuff into its own file. Fix
135 2006-05-24 Jonathan Matthew <jonathan@kaolin.wh9.net>
137 * sources/rb-auto-playlist-source.c:
138 (rb_auto_playlist_source_new_from_xml):
139 Initialize the gvalue used to hold the size limit correctly.
142 2006-05-23 Jonathan Matthew <jonathan@kaolin.wh9.net>
144 * shell/rb-shell.c: (rb_shell_window_delete_cb),
145 (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
147 * shell/rb-shell.xml:
148 Convert rb_shell_quit into a dbus method, and add visibility dbus
151 2006-05-22 James Livingston <doclivingston@gmail.com>
153 * rhythmdb/rhythmdb.h:
154 * rhythmdb/rhythmdb.c: (sync_entry_changed),
155 (rhythmdb_entry_is_editable), (action_thread_main),
156 (song_can_sync_metadata), (default_sync_metadata): Add entry-type
157 vfuncs for can_sync_metadata, and sync_metadata. The default is always
158 false, and syncing into the file.
160 (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
161 (rhythmdb_entry_iradio_get_type),
162 (rhythmdb_entry_import_error_get_type):
163 * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
164 vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
167 2006-05-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
169 * rhythmdb/Makefile.am:
170 * rhythmdb/rhythmdb-monitor.c:
171 * rhythmdb/rhythmdb-private.h:
172 * rhythmdb/rhythmdb-query.c:
173 * rhythmdb/rhythmdb.c:
174 Split up rhythmdb.c a bit.
176 2006-05-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
178 * data/glade/audioscrobbler-prefs.glade:
179 Add a link to the last.fm server status page.
181 2006-05-20 Dennis Cranston <dennis_cranston@yahoo.com>
183 * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
185 * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
186 (impl_create_configure_dialog): UI layout fixes, remove
187 dialog separator, and capitalization fix for window title.
188 * shell/rb-shell.c: (rb_shell_cmd_plugins): UI layout fixes,
189 and remove dialog separator.
190 * data/glade/plugins.glade: UI layout fixes.
191 * data/glade/audioscrobbler-prefs.glade: UI layout fixes,
192 and capitalization fix. Fixes #342438.
194 2006-05-20 Dennis Cranston <dennis_cranston@yahoo.com>
196 * data/glade/podcast-properties.glade: Fix layout of the download
197 location. Fixes #342431.
199 2006-05-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
201 * data/ui/rhythmbox-ui.xml:
202 We only need one copy of the 'add to queue' action in the edit menu.
204 2006-05-20 James Livingston <doclivingston@gmail.com>
206 * data/ui/rhythmbox-ui.xml:
207 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
208 (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
209 (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
210 (rb_shell_clipboard_sync),
211 (rb_shell_clipboard_cmd_add_to_playlist_new),
212 (rb_shell_clipboard_cmd_queue_song_info),
213 (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
214 (rb_shell_clipboard_playlist_deleted_cb),
215 (rb_shell_clipboard_playlist_renamed_cb),
216 (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
217 (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
218 * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
219 dynamically generated with all the static playlists. Fixes bug 323364.
221 * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
222 right child, so it doesn't go weird when art appears and disappears.
224 2006-05-20 James Livingston <doclivingston@gmail.com>
226 patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
228 * rhythmdb/rhythmdb-query-model.c:
229 (rhythmdb_query_model_set_property),
230 (rhythmdb_query_model_finalize),
231 (rhythmdb_query_model_reapply_query_cb):
232 * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
233 (rhythmdb_query_append_prop_multiple),
234 (rhythmdb_query_is_time_relative):
235 * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
236 time-based criteria, fixes bug 341131.
238 2006-05-20 James Livingston <doclivingston@gmail.com>
240 * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
241 we have already changed playing entries. Interpolate the art size so
242 it doesn't jump when the old and new images have different aspect
245 2006-05-20 Jonathan Matthew <jonathan@kaolin.wh9.net>
247 * rhythmdb/rhythmdb-private.h:
248 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
250 * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
251 (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
252 (rhythmdb_entry_get_ulong):
253 Include the GDate directly in RhythmDBEntry (it's only 8 bytes)
254 and elsewhere, use them on the stack rather than allocating on
255 the heap. From bug #342333.
257 2006-05-19 William Jon McCann <mccann@jhu.edu>
259 * player/rb-recorder-gst.c: (rb_recorder_error_quark),
260 (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
261 (add_track), (eos_cb), (error_signal_idle),
262 (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
263 (rb_recorder_construct), (recorder_track_free),
264 (rb_recorder_finalize):
265 * sources/rb-playlist-source-recorder.c:
266 Support libnautilus-burn size -> capacity API change. Add
267 some braces to blocks.
269 2006-05-19 William Jon McCann <mccann@jhu.edu>
271 * metadata/sj-metadata-musicbrainz.c:
272 (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
273 Sync with sound-juicer in CVS. Fixes #342177
274 * sources/rb-audiocd-source.c: Don't declare variables
275 in the middle of a block (c99ism). Fix order of #includes.
276 Use gi18n.h. Don't include rhythmdb.h twice. Declare
277 one variable per line. Update copyright date.
279 2006-05-19 James Livingston <doclivingston@gmail.com>
281 patch by: Hendrik Richter <hendi@gnome-de.org>
283 * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
284 "translator_credits" to a hyphen, so it doesn't cause problems for
285 tools that check access keys. Fixes bug 341832.
287 2006-05-19 James Livingston <doclivingston@gmail.com>
289 * po/POTFILES.in: remove references to files that don't exist any more
290 (fixes make distcheck).
292 2006-05-19 Dennis Cranston <dennis_cranston@yahoo.com>
294 * plugins/lyrics/lyrics.py: Fix layout close button in
295 Song Lyrics dialog. Fixes bug 342322.
297 2006-05-19 James Livingston <doclivingston@gmail.com>
299 patch by: Loïc Minier <lool+gnome@via.ecp.fr>
301 * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
302 (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
303 version checks not break when libnotify goes to 1.0.0. Fixes bug
306 2006-05-18 James Livingston <doclivingston@gmail.com>
308 * shell/rb-shell-clipboard.c:
310 * sources/rb-podcast-source.c: Fix some conflicting keybindings.
312 2006-05-17 William Jon McCann <mccann@jhu.edu>
314 * sources/rb-playlist-source-recorder.c (get_song_description):
315 Reverse artist and title in song description. This
316 is useful because at least the title will be visible
317 when there is limited space.
319 2006-05-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
321 * daapsharing/rb-daap-connection.c: (connection_get_password):
322 Take gdk lock before emitting authenticate signal.
323 * sources/rb-daap-source.c: (connection_connecting_cb):
324 Get rid of the unnecessary idle handler (it's already called from one)
325 Fixes #342047 once more.
327 2006-05-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
329 * shell/rb-shell.c: (rb_shell_class_init):
331 * widgets/rb-song-info.c: (rb_song_info_class_init),
332 (rb_song_info_construct_single), (rb_song_info_construct_multiple),
333 (rb_song_info_constructor), (rb_song_info_get_property),
334 (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
335 (rb_song_info_forward_clicked_cb):
336 * widgets/rb-song-info.h:
337 * data/glade/song-info-multiple.glade:
338 * lib/rb-marshal.list:
339 * bindings/python/Makefile.am:
340 * bindings/python/rb.defs:
341 * bindings/python/rb.override:
342 Allow plugins to add pages to the notebooks used in song info windows,
343 and to track the current song displayed in single-entry windows.
346 * plugins/Makefile.am:
347 * plugins/lyrics/Loader.py:
348 * plugins/lyrics/Makefile.am:
349 * plugins/lyrics/lyrics.py:
350 * plugins/lyrics/lyrics.rb-plugin.desktop.in:
351 Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
352 as a separate window (for the playing song) or as a page in the song
353 info window. A few TODO items left, but this fixes #319320.
355 2006-05-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
357 Patch by: Roozbeh Pournader
360 * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
361 Update eel_strdup_strftime from eel CVS HEAD. Fixes #341938.
363 2006-05-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
365 * sources/rb-daap-source.c: (update_connection_status):
366 Correct return value. Fixes #342047 again.
368 2006-05-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
370 * sources/rb-daap-source.c: (update_connection_status),
371 (connection_connecting_cb):
372 Update status in an idle handler so we don't rely on the gdk lock
373 being recursive (because it isn't any more). Fixes #342047.
375 2006-05-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
377 * lib/rb-util.c: (rb_make_duration_string),
378 (rb_make_elapsed_time_string):
380 Add a function for formatting an elapsed time string.
382 * shell/rb-shell-player.c: (rb_shell_player_init),
383 (rb_shell_player_sync_with_source),
384 (rb_shell_player_get_playing_time_string), (tick_cb):
385 Store elapsed time in the private data structure, and use the above
388 * widgets/rb-header.c:
389 * widgets/rb-header.h:
390 Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
391 object, so everything has the same idea of the elapsed time.
394 2006-05-16 James Livingston <doclivingston@gmail.com>
396 * bindings/python/rhythmdb.defs:
397 * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
398 some parametre defaults, so you don't have to pass None, False for the
401 2006-05-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
403 * bindings/python/rhythmdb.defs:
404 * rhythmdb/rhythmdb-query-model.c:
405 (rhythmdb_query_model_compute_status_normal):
406 * rhythmdb/rhythmdb-query-model.h:
407 * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
408 * rhythmdb/rhythmdb.h:
409 Change the various compute_status methods to accept a singular/plural
410 pair to use in the status string.
412 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
413 (rb_podcast_source_cmd_new_podcast), (impl_get_status):
414 * sources/rb-source.c: (default_get_status):
415 Call entries 'songs' by default, and 'episodes' in the podcast source.
418 2006-05-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
422 * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
425 2006-05-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
427 * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
428 Generate reorder maps correctly.
429 * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
430 Scroll to the first entry from the old selection.
433 2006-05-15 William Jon McCann <mccann@jhu.edu>
435 * data/ui/rhythmbox-ui.xml:
436 * lib/rb-preferences.h:
437 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
438 (rb_shell_playlist_created_cb),
439 (rb_shell_view_sidepane_changed_cb),
440 (rb_shell_sync_sidepane_visibility),
441 (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
442 (sidepane_visibility_changed_cb):
443 * sources/rb-podcast-source.c:
444 Convert sourcelist visibility to side-pane visbility.
447 2006-05-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
449 * widgets/rb-header.c:
450 * widgets/rb-header.h: Stop RBHeader from referring to itself as
451 'player', and make it use the private data structure allocated for it.
453 2006-05-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
455 * configure.ac: enable metadata helper with dbus < 0.35.
457 2006-05-15 James Livingston <doclivingston@gmail.com>
459 patch by: Alex Lancaster <alexl@users.sourceforge.net>
461 * data/glade/song-info.glade:
462 * widgets/rb-song-info.c: (rb_song_info_construct_single),
463 (rb_song_info_populate_dialog), (rb_song_info_update_duration),
464 (rb_song_info_update_filesize): Add the file size into the song info
465 window. Fixes bug 340861.
467 2006-05-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
469 * bindings/python/rhythmdb.defs:
470 * rhythmdb/rhythmdb-query-model.c:
471 (rhythmdb_query_model_set_property),
472 (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
473 * rhythmdb/rhythmdb-query-model.h:
474 Add a new method to chain query models without importing entries from
475 the parent into the child. This is useful when the subset of entries
476 in the child can be more easily determined by running a query than by
477 filtering entries from the parent.
479 * bindings/python/rb.defs:
480 * widgets/rb-library-browser.c: (rb_library_browser_class_init),
481 (rb_library_browser_set_property),
482 (rb_library_browser_get_property), (rb_library_browser_new),
483 (rebuild_child_model):
484 * widgets/rb-library-browser.h:
485 * sources/rb-auto-playlist-source.c:
486 (rb_auto_playlist_source_constructor):
487 * sources/rb-static-playlist-source.c:
488 (rb_static_playlist_source_constructor):
489 * sources/rb-browser-source.c: (rb_browser_source_constructor):
490 Use more efficient queries for constructing the browser query model
491 chain. Include the entry type at each level (allowing the rhythmdb-tree
492 backend to optimise the query) and run new queries rather than
493 filtering entries from the parent. Fixes #341402.
495 * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
497 2006-05-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
501 * shell/main.c: (main), (load_uri_args), (send_present_message),
502 (unregister_dbus_handler), (handle_dbus_message),
503 (register_dbus_handler):
504 Add minimal support for dbus 0.31 - 0.35.
506 * doc/reference/Makefile.am:
507 * doc/reference/rhythmbox.types:
509 * data/GNOME_Rhythmbox.server.in:
510 * data/rhythmbox.pc.in:
513 Remove remaining bonobo and generic remote interface files.
515 2006-05-14 James Livingston <doclivingston@gmail.com>
517 * shell/rb-shell.c: (construct_widgets):
518 * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
519 resize the browser and queue-sidebar section of their panes, unless
520 the other section is below the minimum size. Fixes bug 331927.
522 2006-05-13 James Livingston <doclivingston@gmail.com>
524 * rhythmdb/rhythmdb-query-model.c:
525 (rhythmdb_query_model_class_init),
526 (rhythmdb_query_model_set_property),
527 (rhythmdb_query_model_get_property),
528 (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
529 (rhythmdb_query_model_insert_into_main_list),
530 (rhythmdb_query_model_insert_into_limited_list),
531 (rhythmdb_query_model_do_reorder),
532 (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
533 (rhythmdb_query_model_location_sort_func),
534 (rhythmdb_query_model_title_sort_func),
535 (rhythmdb_query_model_album_sort_func),
536 (rhythmdb_query_model_artist_sort_func),
537 (rhythmdb_query_model_genre_sort_func),
538 (rhythmdb_query_model_track_sort_func),
539 (rhythmdb_query_model_double_ceiling_sort_func),
540 (rhythmdb_query_model_ulong_sort_func),
541 (rhythmdb_query_model_date_sort_func),
542 (rhythmdb_query_model_string_sort_func):
543 * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
544 instead of a RhythmDBPropType (which can be put in a gpointer). Add a
545 "data destroy" property. Fixed bug 341543.
547 * bindings/python/rhythmdb.defs:
548 * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
549 rhythmdb_query_model_set_sorting_order
551 * rhythmdb/rhythmdb-property-model.c:
552 (rhythmdb_property_model_drag_data_get):
553 * sources/rb-import-errors-source.c:
554 (rb_import_errors_source_constructor):
555 * sources/rb-missing-files-source.c:
556 (rb_missing_files_source_constructor):
557 * widgets/rb-entry-view.c: (rb_entry_view_append_column),
558 (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
559 * widgets/rb-entry-view.h: adapt to the above change.
561 2006-05-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
563 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
564 (rhythmdb_tree_load):
565 Commit loaded entries in batches, rather than individually.
566 More startup time reduction.
568 2006-05-12 Ryan P Skadberg <skadz@stigmata.org>
570 * doc/reference/Makefile.am: fix gtk-doc compilation
572 2006-05-12 William Jon McCann <mccann@jhu.edu>
574 * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
575 * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
576 * plugins/artdisplay/artdisplay/Loader.py:
577 Correct fallback to medium size. Convert & to "and" when doing comparisons.
578 Only call the first artist the best match when album==Unknown.
579 Don't perform each query twice if album doesn't include "Vol N".
580 Fix searching for compilations. Fix blacklisting.
583 2006-05-12 William Jon McCann <mccann@jhu.edu>
586 * bindings/python/Makefile.am:
587 * bindings/python/rb.defs:
588 * bindings/python/rb.override:
590 * doc/reference/Makefile.am:
591 * plugins/Makefile.am:
592 * plugins/audioscrobbler/Makefile.am:
593 * plugins/ipod/Makefile.am:
594 * plugins/lirc/Makefile.am:
595 * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
596 (impl_activate), (impl_deactivate):
597 * plugins/sample/Makefile.am:
598 * remote/Makefile.am:
600 * shell/main.c: (main), (main_shell_weak_ref_cb):
601 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
602 (rb_shell_get_property), (rb_shell_window_state_cb),
603 (idle_hide_mainwindow), (rb_shell_set_visibility),
604 (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
605 (rb_shell_set_song_property):
607 * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
608 (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
609 (rb_tray_icon_get_property), (rb_tray_icon_new),
610 (rb_tray_icon_button_press_event_cb),
611 (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
612 (rb_tray_icon_show_window_changed_cb):
613 * shell/rb-tray-icon.h:
615 Remove bonobo, require DBUS.
616 Patch from Jonathan Matthew <jonathan@kaolin.wh9.net>
619 2006-05-13 James Livingston <doclivingston@gmail.com>
621 * bindings/python/rb.override: fix some pointer-type warnings
623 2006-05-12 James Livingston <doclivingston@gmail.com>
625 * lib/rb-util.c: (rb_value_free):
626 * lib/rb-util.h: Add function to unset and free a GValue* that was
627 allocated in the heap.
629 * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
630 the metadata hastable values
631 * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
632 leak the metadata hashtable structure
633 * metadata/rb-metadata-dbus.c:
634 (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
635 using g_strdup and then _take_string
637 * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
638 (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
641 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
642 leak the encoded string
644 * widgets/rb-property-view.c:
645 (rb_property_view_selection_changed_cb): set some variables to have
646 inital values, because some code paths may not set them before we use
649 * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
650 don't have python warning into a debug message".
652 2006-05-10 William Jon McCann <mccann@jhu.edu>
654 * data/rhythmbox.schemas: Use zero instead of null for
655 default burn speed. Fixes #341283.
657 2006-05-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
659 * bindings/python/rb.defs:
660 * widgets/rb-library-browser.c:
661 (rb_library_browser_get_property_view):
662 * widgets/rb-library-browser.h:
663 Add a method to get the property view for a given property.
665 * sources/rb-browser-source.c:
666 (rb_browser_source_cmd_choose_genre),
667 (rb_browser_source_cmd_choose_artist),
668 (rb_browser_source_cmd_choose_album):
669 Change the browser selection by changing the property view selection.
670 Makes the selection change visible, fixing #331740.
672 2006-05-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
674 * bindings/python/rb.defs:
675 * bindings/python/rb.override:
676 * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
677 * shell/rb-statusbar.c: (*),
678 * sources/rb-import-errors-source.c: (impl_get_status):
679 * sources/rb-iradio-source.c: (impl_get_status):
680 * sources/rb-missing-files-source.c: (impl_get_status):
681 * sources/rb-source.c: (default_get_status),
682 (rb_source_get_status):
683 * sources/rb-source.h:
684 Allow sources to provide a progress value for the status bar.
685 Simplify status bar processing (much less polling).
686 Consider rhythmdb busy while it's still loading the database.
688 * daapsharing/rb-daap-connection.c: (*)
689 * daapsharing/rb-daap-connection.h:
690 * lib/rb-marshal.list:
691 * sources/rb-daap-source.c: (rb_daap_source_class_init),
692 (rb_daap_source_init), (connection_connecting_cb),
693 (rb_daap_source_activate), (rb_daap_source_get_paned_key),
694 (rb_daap_source_get_status):
695 Provide status information for DAAP connections, and move processing
696 of large responses into a separate thread.
697 Fixes bugs #322020 and #338978.
699 2006-05-09 James Livingston <doclivingston@gmail.com>
701 Split the artdisplay plugin into several files.
702 Fix loader and amazon-search re-use issues.
703 Add some better search heuristics.
706 * plugins/artdisplay/Makefile.am:
707 * plugins/artdisplay/artdisplay.py:
708 * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
709 * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
710 * plugins/artdisplay/artdisplay/Loader.py:
711 * plugins/artdisplay/artdisplay/Makefile.am:
712 * plugins/artdisplay/artdisplay/__init__.py:
714 2006-05-09 James Livingston <doclivingston@gmail.com>
716 * sources/rb-browser-source.h: remove the _has_first_added_column
717 stuff since it isn't actually used anywhere. Sources that want it
718 should just add it themselves, as the library already does
720 * bindings/python/rb.defs:
721 * sources/rb-daap-source.c: (rb_daap_source_class_init):
722 * sources/rb-library-source.c: (rb_library_source_class_init):
723 * sources/rb-removable-media-source.c:
724 (rb_removable_media_source_class_init): Remove the remanants of the
727 2006-05-09 James Livingston <doclivingston@gmail.com>
729 * bindings/python/rb.defs:
730 * sources/rb-browser-source.h: remove a function that was declared in
731 the header, but not defined anywhere.
733 2006-05-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
735 * plugins/artdisplay/.cvsignore:
736 * plugins/ipod/.cvsignore: Added.
738 2006-05-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
740 * sources/rb-auto-playlist-source.c:
741 (rb_auto_playlist_source_new_from_xml):
742 Fix reading of older playlist files where all three limits were
743 specified so we take the first nonzero limit. From #341053.
745 2006-05-09 James Livingston <doclivingston@gmail.com>
747 * bindings/python/Makefile.am:
748 * bindings/python/rb.defs:
749 * bindings/python/rb.override: bind RBBrowserSource,
750 RBRemovableMediaSource and RBRemovableMediamanager.
752 2006-05-09 James Livingston <doclivingston@gmail.com>
754 patch by: Baptiste Mille-Mathias <bmm80@free.fr>
756 * data/glade/plugins.glade: make the plugin dialog look a bit better.
759 2006-05-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
761 * widgets/rb-query-creator.c: (rb_query_creator_load_query):
762 Don't explode when trying to edit a query with no limit set.
764 2006-05-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
766 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
767 Clear the should_queue flag when switching to a non-submittable entry,
768 so we don't submit songs that played for three seconds before
769 switching to a podcast episode.
771 * rhythmdb/rhythmdb-query-model.c
772 (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
773 in the drag data list.
775 2006-05-08 James Livingston <doclivingston@gmail.com>
777 * lib/rb-util.c: (rb_value_array_append_data):
778 * lib/rb-util.h: add function which is basically a combination of
779 G_VALUE_COLLECT and g_value_array_append.
781 * rhythmdb/rhythmdb-query-model.h:
782 * rhythmdb/rhythmdb-query-model.c:
783 (rhythmdb_query_model_class_init),
784 (rhythmdb_query_model_set_property),
785 (rhythmdb_query_model_get_property),
786 (rhythmdb_query_model_finalize),
787 (rhythmdb_query_model_update_limited_entries),
788 (rhythmdb_query_model_set_sort_order),
789 (rhythmdb_query_model_within_limit),
790 (rhythmdb_query_model_limit_type_get_type): Make query model limits
791 saner. Rather than having <count=N, time=N, size=N> we now have a
792 <type, value> pair. This will also make it much easier to add new
793 limit types in the future.
795 * shell/rb-playlist-manager.c:
796 (rb_playlist_manager_set_automatic_playlist),
797 (rb_playlist_manager_cmd_edit_automatic_playlist):
798 * sources/rb-auto-playlist-source.c:
799 (rb_auto_playlist_source_finalize),
800 (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
801 (_save_write_ulong), (_save_write_uint64),
802 (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
803 (rb_auto_playlist_source_set_query),
804 (rb_auto_playlist_source_get_query):
805 * sources/rb-auto-playlist-source.h:
806 * sources/rb-library-source.c:
807 (rb_library_source_add_child_source):
808 * sources/rb-psp-source.c: (visit_playlist_dirs):
809 * widgets/rb-query-creator.c: (rb_query_creator_load_query),
810 (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
811 * widgets/rb-query-creator.h: Adapt to the above change.
813 2006-05-08 James Livingston <doclivingston@gmail.com>
815 * shell/rb-playlist-manager.c:
816 (rb_playlist_manager_cmd_edit_automatic_playlist):
817 * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
818 (rb_auto_playlist_source_set_query),
819 (rb_auto_playlist_source_get_query): copy the query in the _get method
820 and free it in things calling that. Fixes a crasher.
822 2006-05-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
824 * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
825 Make entries on newly mounted volumes visible immediately, hiding them
826 later if they turn out to be missing. Fixes #340068.
828 2006-05-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
830 * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
831 Ignore zip files and ignore errors for files we've decided to ignore.
833 2006-05-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
835 * sources/rb-ipod-source.c: (hal_udi_is_ipod):
836 Add missing }, should fix #340844.
838 2006-05-06 James Livingston <doclivingston@gmail.com>
840 * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
843 2006-05-06 James Livingston <doclivingston@gmail.com>
845 * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
846 that we work with libnotify >= 0.4
848 2006-05-06 James Livingston <doclivingston@gmail.com>
850 patch by: Joe Barnett <thejoe@gmail.com>
852 * configure.ac: check if we're using a version of libgpod that
853 supports the Motorola ROKR
855 * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
856 for the db path, if we using the newer version.
858 (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
860 2006-05-05 Jonathan Matthew <jonathan@kaolin.wh9.net>
862 * rhythmdb/rhythmdb-query-model.c:
863 (rhythmdb_query_model_drag_data_get):
864 Use playback URI, not location, for drag data. Fixes #322597.
866 2006-05-03 Dennis Cranston <dennis_cranston@yahoo.com>
868 * data/glade/general-prefs.glade: HIG fixes from bug 340588.
870 2006-05-03 James Livingston <doclivingston@gmail.com>
872 * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
873 (rb_add_id3_tagger), (rb_metadata_save):
874 Set the tags on the tagging element when it is
875 created, not during pipeline creation - which is required for
876 dynamically created elements.
878 (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
879 support for using the "vorbistag" element to re-tag ogg vorbis files.
882 2006-05-03 James Livingston <doclivingston@gmail.com>
884 patch by: Martin Szulecki <gnomebugzilla@sukimashita.com>
886 * plugins/artdisplay/artdisplay.py:
887 - Fix small bug callback of data loader getting overwritten on fast
889 - Add asynchronous loading with gnomevfs and urllib fallback (thx to
891 - Fix Rhythmbox UI blocking while loading/searching cover art
892 - Split logic into CoverArtDatabase, AmazonCoverArtSearch
893 - Initial approach to allow additional "art search engines"
894 - Further modularization in a couple of places
895 - Minor fixes for empty entries (iradio, album, artist etc.)
897 2006-05-03 James Livingston <doclivingston@gmail.com>
899 * shell/rb-playlist-manager.c:
900 (rb_playlist_manager_playlist_entries_changed),
901 (rb_playlist_manager_set_source): don't show the edit/delete/rename
902 options for non-local sources, rather than showing disabled ones.
904 * sources/rb-library-source.c: (add_child_sources_idle),
905 (rb_library_source_constructor), (rb_library_source_new),
906 (rb_library_source_library_location_changed),
907 (rb_library_source_add_child_source),
908 (rb_library_source_sync_child_sources): Create "child library" sources
909 when the user has multiple library locations set. Fixes bug 100552.
911 2006-05-03 Jonathan Matthew <jonathan@kaolin.wh9.net>
913 * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
914 * plugins/sample/sample.rb-plugin.desktop.in:
915 Finish changing 'Author' to 'Authors'
917 * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
918 (rhythmdb_entry_import_error_get_type):
919 Implement get_playback_uri for import errors (returns NULL)
921 * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
922 Use rhythmdb_entry_get_playback_uri to figure out if we can play the
923 entry, rather than doing entry type checks.
925 2006-05-02 James Livingston <doclivingston@gmail.com>
927 patch from Alessandro Decina <alessandro@nnva.org>
929 * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
930 the signal emission in the case of fatal-on-init errors. From bug
933 2006-05-02 James Livingston <doclivingston@gmail.com>
935 * rhythmdb/rhythmdb.h:
936 * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
937 (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
938 (rhythmdb_entry_podcast_post_get_type),
939 (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
940 virtual function to entry-types for getting the playback URI. From bug
943 * backends/gstreamer/rb-encoder-gst.c:
944 (create_pipeline_and_source), (extract_track):
945 * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
948 2006-05-02 James Livingston <doclivingston@gmail.com>
950 patch by: Brian Cameron <brian.cameron@sun.com>
952 * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
955 2006-05-01 William Jon McCann <mccann@jhu.edu>
957 * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
958 instead of clear. Use regex matching to strip "disc N"
959 from album. Match titles in ProductName. Perform
960 fallback queries including various artist compilations.
961 Include "us" locale. Improve queries when artist or album
962 is unknown. Use medium size image if large is unavailable.
964 patch by: Alex Lancaster <alexl@users.sourceforge.net>,
965 William Jon McCann <mccann@jhu.edu>
967 2006-04-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
969 * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
970 RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
971 (conjunctive_query): Sanity check.
972 (evaluate_conjunctive_subquery):
973 Don't return TRUE immediately when a relative-time query criterion
974 matches. Fixes #339972.
976 2006-04-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
978 * widgets/eggtrayicon.c: (egg_tray_icon_notify):
979 Don't crash if primary or secondary are NULL.
981 2006-04-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
983 * doc/reference/Makefile.am: fix gtk-doc build yet again
985 2006-04-28 James Livingston <doclivingston@gmail.com>
987 * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
988 python console. Fixes bug 339934.
990 2006-04-27 Jonathan Matthew <jonathan@kaolin.wh9.net>
992 * rhythmdb/rhythmdb-property-model.c:
993 (rhythmdb_property_model_drag_data_get):
994 When creating uri list drag data, create a new query model based on
995 the query model the property model is attached to. Makes the
996 resulting query use the right entry type and include the upstream
997 query criteria. Fixes half of #327540.
999 2006-04-27 James Livingston <doclivingston@gmail.com>
1001 * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
1002 (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
1005 2006-04-27 James Livingston <doclivingston@gmail.com>
1007 * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
1009 2006-04-27 Jonathan Matthew <jonathan@kaolin.wh9.net>
1011 * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
1012 (rb_playlist_manager_save_data),
1013 (rb_playlist_manager_save_playlists):
1014 * shell/rb-playlist-manager.h:
1015 * shell/rb-shell.c: (rb_shell_sync_state),
1016 (idle_save_playlist_manager):
1017 Remove a bit more threading insanity from the playlist manager.
1019 2006-04-27 Jonathan Matthew <jonathan@kaolin.wh9.net>
1021 * shell/rb-playlist-manager.c:
1022 * shell/rb-playlist-manager.h:
1023 Remove dead code, add gtk-doc, remove threading insanity (mostly).
1025 * shell/rb-shell.c: (rb_shell_sync_state),
1026 (idle_save_playlist_manager), (construct_sources),
1027 (rb_shell_select_source), (rb_shell_sync_party_mode):
1028 Adjustments for above changes.
1030 2006-04-26 William Jon McCann <mccann@jhu.edu>
1032 * sources/rb-browser-source.c (impl_browser_toggled):
1033 Reset browser when hidden. Fixes #339617.
1035 2006-04-26 James Livingston <doclivingston@gmail.com>
1037 * backends/Makefile.am:
1038 * backends/gstreamer/Makefile.am: work again with separated
1041 2006-04-26 James Livingston <doclivingston@gmail.com>
1043 * shell/rb-removable-media-manager.c:
1044 (rb_removable_media_manager_set_uimanager): fix compilation with
1045 -Werror and --enable-track-transfer.
1047 2006-04-26 James Livingston <doclivingston@gmail.com>
1049 Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
1050 implementing class. In theory allows alternate player implementations
1051 to be selected at run-time rather than compile-time. Fixes bug 338667.
1054 * backends/Makefile.am:
1055 * backends/gstreamer/Makefile.am:
1056 * backends/gstreamer/rb-player-gst.h:
1057 * backends/rb-player.c: (rb_player_interface_init),
1058 (rb_player_get_type), (rb_player_open), (rb_player_opened),
1059 (rb_player_close), (rb_player_play), (rb_player_pause),
1060 (rb_player_playing), (rb_player_set_volume),
1061 (rb_player_get_volume), (rb_player_set_replaygain),
1062 (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
1063 (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
1064 (_rb_player_emit_buffering), (_rb_player_emit_error),
1065 (_rb_player_emit_tick), (rb_player_error_quark):
1066 * player/Makefile.am:
1067 * player/rb-player-gst.c: (rb_player_gst_class_init),
1068 (rb_player_init), (tick_timeout), (rb_player_gst_init),
1069 (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
1070 (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
1071 (process_tag), (found_tag_cb), (buffering_cb),
1072 (rb_player_gst_bus_cb), (rb_player_gst_construct),
1073 (rb_player_gst_new):
1074 * player/rb-player.h:
1075 * shell/Makefile.am:
1076 * sources/rb-audiocd-source.c:
1077 * widgets/Makefile.am:
1078 * widgets/rb-header.c: (rb_header_class_init):
1080 2006-04-26 James Livingston <doclivingston@gmail.com>
1082 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
1083 don't try to download an episode if it couldn't be parsed. Fixes bug
1086 * shell/rb-removable-media-manager.c:
1087 (rb_removable_media_manager_set_uimanager): don't show the "Copy to
1088 Library" option when track transfer is disabled. Fixes bug 339728.
1090 2006-04-26 James Livingston <doclivingston@gmail.com>
1092 * data/ui/Makefile.am:
1093 * data/ui/daap-ui.xml:
1094 * data/ui/rhythmbox-ui.xml:
1095 * sources/rb-daap-source.c: (rb_daap_sources_init),
1096 (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
1097 way that the ipod ui is. Fixes bug 339743.
1099 2006-04-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
1101 * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
1102 (process_added_entries_cb), (process_deleted_entries_cb),
1103 (rhythmdb_commit_internal):
1104 Combine the idle functions to emit entry-added and entry-deleted,
1105 and combine as many invocations of same as possible. Another
1106 significant reduction in startup time.
1108 (rhythmdb_process_events), (rhythmdb_idle_poll_events):
1109 Delay the next call to rhythmdb_process_events if the queue is
1110 empty or if we can't process any of the events in the queue because
1111 the database is read only.
1113 This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
1115 2006-04-25 William Jon McCann <mccann@jhu.edu>
1117 * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
1119 * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
1120 Don't special case errors quite so much.
1122 2006-04-25 William Jon McCann <mccann@jhu.edu>
1124 * data/rhythmbox.schemas: Remove default speed.
1126 * sources/rb-playlist-source-recorder.c (update_speed_combobox):
1127 Add n-c-b 2.15 support. Make the default speed to slowest since
1128 that is all that works reliably.
1130 2006-04-25 William Jon McCann <mccann@jhu.edu>
1132 * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
1133 Fix compiler error from last commit.
1135 2006-04-25 James Livingston <doclivingston@gmail.com>
1137 patch by Alessandro Decina <alessandro@nnva.org> to fix some
1138 transcoding-related issues. From bug 322268.
1140 * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
1141 don't emit the signal, since the object is being finalised, which os a
1144 (profile_bin_find_encoder), (get_profile_from_mime_type),
1145 (transcode_track): find the encoding element by iterating looking for
1146 element in the class Codec/Encoder/Audio rather than the one named
1149 2006-04-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
1151 * shell/rb-shell-player.xml:
1152 * shell/rb-shell.xml:
1153 Add signal argument information.
1154 Patch by Tim Moloney <t.moloney@verizon.net>
1156 * shell/rb-shell.c: (rb_shell_window_state_cb):
1157 Use the right value for the visibility_changed signal. Most of the
1160 2006-04-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
1162 * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
1163 * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1164 (impl_create_configure_dialog):
1165 * data/glade/audioscrobbler-prefs.glade:
1166 * shell/rb-audioscrobbler.c (*):
1167 * lib/rb-preferences.h:
1168 * data/rhythmbox.schemas:
1169 Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
1170 Add status information (# tracks submitted, # queued, last submit
1171 time, result of last submission) to the plugin config window.
1172 Remove 'enabled' setting, since it's easier to just disable the
1173 plugin. Call the plugin 'last.fm profile', to distinguish it from the
1174 nonexistant (so far) 'last.fm streaming' plugin.
1176 * help/C/rhythmbox.xml: Update documentation for last.fm profile
1179 Fixes some of #325848. We still don't provide a way to view the
1182 2006-04-25 James Livingston <doclivingston@gmail.com>
1184 patch by: Anders Petersson <demitar@worldforge.org>
1186 * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
1187 the YY-MM-DD format.
1189 2006-04-23 James Livingston <doclivingston@gmail.com>
1191 * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
1192 (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
1193 * bindings/python/override_common.h:
1194 * bindings/python/rb.override: python binding fixes
1196 2006-04-23 James Livingston <doclivingston@gmail.com>
1198 * shell/rb-statusbar.c: (rb_statusbar_finalize),
1199 (rb_statusbar_sync_with_source),
1200 (rb_statusbar_source_status_changed_cb): do the sync in an idle
1201 callback, rather than immediately every time. Takes ~5% off my warm-cache
1204 * bindings/python/rhythmdb.defs: fix the types using for
1207 2006-04-22 James Livingston <doclivingston@gmail.com>
1209 * data/ui/rhythmbox-ui.xml:
1211 * sources/rb-daap-source.c: (rb_daap_source_class_init),
1212 (remove_source), (rb_daap_sources_init),
1213 (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
1214 (rb_daap_source_disconnect):
1215 * sources/rb-source.c: (rb_source_class_init),
1216 (rb_source_deactivate):
1217 * sources/rb-source.h: move the "disconnect" functionality from into
1218 RBSource to RBDaapSource where it belongs. Fixes bug 338464.
1220 2006-04-22 James Livingston <doclivingston@gmail.com>
1222 * widgets/rb-library-browser.c: (rb_library_browser_constructor):
1223 actually get the translated strings for browser headers (they were
1224 already marked as translatable). Fixes bug 339380.
1226 2006-04-22 James Livingston <doclivingston@gmail.com>
1228 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
1229 submission timeout when the object is finalised.
1231 * bindings/python/Makefile.am:
1232 * bindings/python/rb.defs:
1233 * bindings/python/rb.override:
1234 * bindings/python/rhythmdb.defs: fix some python binding stuff.
1236 * widgets/rb-library-browser.c:
1237 (rb_library_browser_construct_query), (rebuild_output_model),
1238 (rebuild_child_model):
1239 * widgets/rb-library-browser.h: change from GPtrArray to
1240 RhythmDBQuery (which in C is the same thing).
1242 2006-04-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
1244 * shell/rb-shell.c: (rb_shell_get_song_properties):
1245 Don't try to include entry-type (or anything else not easily
1246 marshallable) in the song properties hash table.
1248 * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
1250 * sources/rb-playlist-source.c: (rb_playlist_source_init),
1251 (rb_playlist_source_constructor): Fix entry-type initialization as
1252 with previous commit.
1254 2006-04-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
1256 * sources/rb-iradio-source.c: (rb_iradio_source_init),
1257 (rb_iradio_source_constructor), (rb_iradio_source_do_query):
1258 * sources/rb-podcast-source.c: (rb_podcast_source_init),
1259 (rb_podcast_source_constructor):
1260 Set default values for entry-type after base class construction,
1261 rather than in _init, because gobject will set the entry-type property
1262 to NULL after _init if no value is provided. Fixes #339206.
1264 2006-04-20 Ryan P Skadberg <skadz@stigmata.org>
1266 patch by: Gunnar Steinn Magnusson
1269 * backends/gstreamer/rb-encoder-gst.c:
1270 * backends/gstreamer/rb-encoder-gst.h:
1271 * backends/rb-encoder.c:
1272 * backends/rb-encoder.h:
1273 * bindings/python/override_common.c:
1274 * bindings/python/override_common.h:
1275 * daapsharing/rb-daap-connection.c:
1276 * daapsharing/rb-daap-connection.h:
1277 * daapsharing/rb-daap-dialog.c:
1278 * daapsharing/rb-daap-dialog.h:
1279 * daapsharing/rb-daap-mdns-browser-avahi.c:
1280 * daapsharing/rb-daap-mdns-browser-howl.c:
1281 * daapsharing/rb-daap-mdns-browser.h:
1282 * daapsharing/rb-daap-mdns-publisher-avahi.c:
1283 * daapsharing/rb-daap-mdns-publisher-howl.c:
1284 * daapsharing/rb-daap-mdns-publisher.h:
1285 * daapsharing/rb-daap-share.c:
1286 * daapsharing/rb-daap-share.h:
1287 * daapsharing/rb-daap-sharing.c:
1288 * daapsharing/rb-daap-sharing.h:
1289 * daapsharing/rb-daap-src.c:
1290 * daapsharing/rb-daap-src.h:
1291 * daapsharing/rb-daap-structure.c:
1292 * daapsharing/rb-daap-structure.h:
1293 * help/C/fdl-appendix.xml:
1295 * help/ja/fdl-appendix.xml:
1296 * iradio/rb-new-station-dialog.c:
1297 * iradio/rb-new-station-dialog.h:
1298 * iradio/rb-station-properties-dialog.c:
1299 * iradio/rb-station-properties-dialog.h:
1302 * lib/rb-cut-and-paste-code.c:
1303 * lib/rb-cut-and-paste-code.h:
1306 * lib/rb-file-helpers.c:
1307 * lib/rb-file-helpers.h:
1308 * lib/rb-glade-helpers.c:
1309 * lib/rb-glade-helpers.h:
1310 * lib/rb-preferences.h:
1311 * lib/rb-proxy-config.c:
1312 * lib/rb-stock-icons.c:
1313 * lib/rb-stock-icons.h:
1316 * lib/rb-tree-dnd.c:
1317 * lib/rb-tree-dnd.h:
1320 * metadata/rb-metadata-common.c:
1321 * metadata/rb-metadata-dbus-client.c:
1322 * metadata/rb-metadata-dbus-service.c:
1323 * metadata/rb-metadata-dbus.c:
1324 * metadata/rb-metadata-dbus.h:
1325 * metadata/rb-metadata-gst.c:
1326 * metadata/rb-metadata.h:
1327 * metadata/sj-error.c:
1328 * metadata/sj-error.h:
1329 * metadata/sj-metadata-musicbrainz.c:
1330 * metadata/sj-metadata-musicbrainz.h:
1331 * metadata/sj-metadata.c:
1332 * metadata/sj-metadata.h:
1333 * metadata/sj-structures.c:
1334 * metadata/sj-structures.h:
1335 * metadata/test-metadata.c:
1336 * player/rb-player-gst.c:
1337 * player/rb-player.h:
1338 * player/rb-recorder-gst.c:
1339 * player/rb-recorder.h:
1340 * plugins/artdisplay/artdisplay.py:
1341 * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
1342 * plugins/ipod/rb-ipod-plugin.c:
1343 * plugins/lirc/rb-lirc-plugin.c:
1344 * plugins/pythonconsole/pythonconsole.py:
1345 * plugins/rb-module.c:
1346 * plugins/rb-module.h:
1347 * plugins/rb-plugin-manager.c:
1348 * plugins/rb-plugin-manager.h:
1349 * plugins/rb-plugin.c:
1350 * plugins/rb-plugin.h:
1351 * plugins/rb-plugins-engine.c:
1352 * plugins/rb-plugins-engine.h:
1353 * plugins/rb-python-module.c:
1354 * plugins/rb-python-module.h:
1355 * plugins/rb-python-plugin.c:
1356 * plugins/rb-python-plugin.h:
1357 * plugins/sample/rb-sample-plugin.c:
1369 * podcast/rb-feed-podcast-properties-dialog.c:
1370 * podcast/rb-feed-podcast-properties-dialog.h:
1371 * podcast/rb-new-podcast-dialog.c:
1372 * podcast/rb-new-podcast-dialog.h:
1373 * podcast/rb-podcast-manager.c:
1374 * podcast/rb-podcast-manager.h:
1375 * podcast/rb-podcast-parse.c:
1376 * podcast/rb-podcast-parse.h:
1377 * podcast/rb-podcast-properties-dialog.c:
1378 * podcast/rb-podcast-properties-dialog.h:
1379 * remote/bonobo/libmain.c:
1380 * remote/bonobo/rb-nautilus-context-menu.c:
1381 * remote/bonobo/rb-nautilus-context-menu.h:
1382 * remote/bonobo/rb-remote-bonobo.c:
1383 * remote/bonobo/rb-remote-bonobo.h:
1384 * remote/rb-remote-client-proxy.c:
1385 * remote/rb-remote-client-proxy.h:
1386 * remote/rb-remote-common.c:
1387 * remote/rb-remote-common.h:
1388 * remote/rb-remote-proxy.c:
1389 * remote/rb-remote-proxy.h:
1390 * rhythmdb/gsequence.c:
1391 * rhythmdb/gsequence.h:
1392 * rhythmdb/rb-refstring.c:
1393 * rhythmdb/rb-refstring.h:
1394 * rhythmdb/rhythmdb-gda.c:
1395 * rhythmdb/rhythmdb-gda.h:
1396 * rhythmdb/rhythmdb-private.h:
1397 * rhythmdb/rhythmdb-property-model.c:
1398 * rhythmdb/rhythmdb-property-model.h:
1399 * rhythmdb/rhythmdb-query-model.c:
1400 * rhythmdb/rhythmdb-query-model.h:
1401 * rhythmdb/rhythmdb-query-results.c:
1402 * rhythmdb/rhythmdb-query-results.h:
1403 * rhythmdb/rhythmdb-tree.c:
1404 * rhythmdb/rhythmdb-tree.h:
1405 * rhythmdb/rhythmdb.c:
1406 * rhythmdb/rhythmdb.h:
1408 * shell/rb-audioscrobbler.c:
1409 * shell/rb-audioscrobbler.h:
1410 * shell/rb-history.c:
1411 * shell/rb-history.h:
1412 * shell/rb-play-order-linear-loop.c:
1413 * shell/rb-play-order-linear-loop.h:
1414 * shell/rb-play-order-linear.c:
1415 * shell/rb-play-order-linear.h:
1416 * shell/rb-play-order-queue.c:
1417 * shell/rb-play-order-queue.h:
1418 * shell/rb-play-order-random-by-age-and-rating.c:
1419 * shell/rb-play-order-random-by-age-and-rating.h:
1420 * shell/rb-play-order-random-by-age.c:
1421 * shell/rb-play-order-random-by-age.h:
1422 * shell/rb-play-order-random-by-rating.c:
1423 * shell/rb-play-order-random-by-rating.h:
1424 * shell/rb-play-order-random-equal-weights.c:
1425 * shell/rb-play-order-random-equal-weights.h:
1426 * shell/rb-play-order-random.c:
1427 * shell/rb-play-order-random.h:
1428 * shell/rb-play-order-shuffle.c:
1429 * shell/rb-play-order-shuffle.h:
1430 * shell/rb-play-order.c:
1431 * shell/rb-play-order.h:
1432 * shell/rb-playlist-manager.c:
1433 * shell/rb-playlist-manager.h:
1434 * shell/rb-removable-media-manager.c:
1435 * shell/rb-removable-media-manager.h:
1436 * shell/rb-shell-clipboard.c:
1437 * shell/rb-shell-clipboard.h:
1438 * shell/rb-shell-player.c:
1439 * shell/rb-shell-player.h:
1440 * shell/rb-shell-preferences.c:
1441 * shell/rb-shell-preferences.h:
1444 * shell/rb-source-header.c:
1445 * shell/rb-source-header.h:
1446 * shell/rb-statusbar.c:
1447 * shell/rb-statusbar.h:
1448 * shell/rb-tray-icon.c:
1449 * shell/rb-tray-icon.h:
1450 * sources/rb-audiocd-source.c:
1451 * sources/rb-audiocd-source.h:
1452 * sources/rb-auto-playlist-source.c:
1453 * sources/rb-auto-playlist-source.h:
1454 * sources/rb-browser-source.c:
1455 * sources/rb-browser-source.h:
1456 * sources/rb-daap-source.c:
1457 * sources/rb-daap-source.h:
1458 * sources/rb-generic-player-source.c:
1459 * sources/rb-generic-player-source.h:
1460 * sources/rb-import-errors-source.c:
1461 * sources/rb-import-errors-source.h:
1462 * sources/rb-ipod-source.c:
1463 * sources/rb-ipod-source.h:
1464 * sources/rb-iradio-source.c:
1465 * sources/rb-iradio-source.h:
1466 * sources/rb-library-source.c:
1467 * sources/rb-library-source.h:
1468 * sources/rb-missing-files-source.c:
1469 * sources/rb-missing-files-source.h:
1470 * sources/rb-nokia770-source.c:
1471 * sources/rb-nokia770-source.h:
1472 * sources/rb-play-queue-source.c:
1473 * sources/rb-play-queue-source.h:
1474 * sources/rb-playlist-source-recorder.c:
1475 * sources/rb-playlist-source-recorder.h:
1476 * sources/rb-playlist-source.c:
1477 * sources/rb-playlist-source.h:
1478 * sources/rb-playlist-xml.h:
1479 * sources/rb-podcast-source.c:
1480 * sources/rb-podcast-source.h:
1481 * sources/rb-psp-source.c:
1482 * sources/rb-psp-source.h:
1483 * sources/rb-removable-media-source.c:
1484 * sources/rb-removable-media-source.h:
1485 * sources/rb-source.c:
1486 * sources/rb-source.h:
1487 * sources/rb-sourcelist-model.c:
1488 * sources/rb-sourcelist-model.h:
1489 * sources/rb-sourcelist.c:
1490 * sources/rb-sourcelist.h:
1491 * sources/rb-static-playlist-source.c:
1492 * sources/rb-static-playlist-source.h:
1494 * tests/test-cmdline.c:
1495 * tests/test-rhythmdb-indexing.c:
1496 * tests/test-rhythmdb-query.c:
1497 * tests/test-rhythmdb-simple.c:
1498 * tests/test-rhythmdb-tree-deserialization.c:
1499 * tests/test-rhythmdb-tree-serialization.c:
1500 * tests/test-rhythmdb-view.c:
1501 * widgets/bacon-volume.c:
1502 * widgets/bacon-volume.h:
1503 * widgets/disclosure-widget.c:
1504 * widgets/disclosure-widget.h:
1505 * widgets/eel-gconf-extensions.c:
1506 * widgets/eel-gconf-extensions.h:
1507 * widgets/eggtrayicon.c:
1508 * widgets/eggtrayicon.h:
1509 * widgets/libsexy/sexy-icon-entry.c:
1510 * widgets/libsexy/sexy-icon-entry.h:
1511 * widgets/rb-cell-renderer-pixbuf.c:
1512 * widgets/rb-cell-renderer-pixbuf.h:
1513 * widgets/rb-cell-renderer-rating.c:
1514 * widgets/rb-cell-renderer-rating.h:
1515 * widgets/rb-dialog.c:
1516 * widgets/rb-dialog.h:
1517 * widgets/rb-druid.c:
1518 * widgets/rb-druid.h:
1519 * widgets/rb-entry-view.c:
1520 * widgets/rb-entry-view.h:
1521 * widgets/rb-header.c:
1522 * widgets/rb-header.h:
1523 * widgets/rb-library-browser.c:
1524 * widgets/rb-library-browser.h:
1525 * widgets/rb-property-view.c:
1526 * widgets/rb-property-view.h:
1527 * widgets/rb-query-creator-private.h:
1528 * widgets/rb-query-creator-properties.c:
1529 * widgets/rb-query-creator.c:
1530 * widgets/rb-query-creator.h:
1531 * widgets/rb-rating-helper.c:
1532 * widgets/rb-rating-helper.h:
1533 * widgets/rb-rating.c:
1534 * widgets/rb-rating.h:
1535 * widgets/rb-search-entry.c:
1536 * widgets/rb-search-entry.h:
1537 * widgets/rb-song-display-box.c:
1538 * widgets/rb-song-display-box.h:
1539 * widgets/rb-song-info.c:
1540 * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
1542 2006-04-20 Ryan P Skadberg <skadz@stigmata.org>
1544 patch by: Gareth Murphy, James Livingston
1546 * bindings/python/rb.defs:
1548 * plugins/Makefile.am:
1549 * plugins/artdisplay/Makefile.am:
1550 * plugins/artdisplay/artdisplay.py:
1551 * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
1552 * plugins/rb-python-module.c: (rb_python_module_init_python):
1553 * shell/rb-shell.c: (construct_widgets),
1554 (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
1555 (rb_shell_add_widget), (rb_shell_remove_widget),
1556 (rb_shell_ui_location_get_type):
1557 * shell/rb-shell.h: Initial Art Display (and Download) Plugin Support
1559 2006-04-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
1561 * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
1562 Fix build failure caused by the combination of the previous two
1565 2006-04-20 James Livingston <doclivingston@gmail.com>
1567 patch by: Christophe Fergeau <teuf@gnome.org> to make
1568 RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
1569 table to the entry types, which will allow us to get rid of some of
1570 the "if entry type == WHATEVER" code everywhere. From bug
1572 * bindings/python/rb.defs:
1573 * bindings/python/rb.override:
1574 * bindings/python/rhythmdb.defs:
1575 * bindings/python/rhythmdb.override:
1576 * daapsharing/rb-daap-connection.c:
1577 (rb_daap_connection_class_init), (rb_daap_connection_init),
1578 (rb_daap_connection_set_property),
1579 (rb_daap_connection_get_property):
1580 * daapsharing/rb-daap-share.c: (db_entry_added_cb):
1581 * podcast/rb-podcast-manager.c:
1582 (rb_podcast_manager_entry_downloaded),
1583 (rb_podcast_manager_subscribe_feed),
1584 (rb_podcast_manager_db_entry_added_cb),
1585 (rb_podcast_manager_db_entry_deleted_cb),
1586 (rb_podcast_manager_insert_feed):
1587 * rhythmdb/rhythmdb-private.h:
1588 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
1589 (conjunctive_query):
1590 * rhythmdb/rhythmdb.c: (sync_entry_changed),
1591 (process_added_entries_cb), (rhythmdb_entry_allocate),
1592 (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1593 (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1594 (rhythmdb_process_metadata_load),
1595 (rhythmdb_process_file_created_or_modified), (action_thread_main),
1596 (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
1597 (write_encoded_gvalue), (read_encoded_property),
1598 (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
1599 (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
1600 (rhythmdb_entry_iradio_get_type),
1601 (rhythmdb_entry_podcast_post_get_type),
1602 (rhythmdb_entry_podcast_feed_get_type),
1603 (rhythmdb_entry_import_error_get_type),
1604 (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1605 (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
1606 (rhythmdb_entry_type_get_type):
1607 * rhythmdb/rhythmdb.h:
1608 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
1609 * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1610 * shell/rb-shell-player.c: (rb_shell_player_open_entry),
1611 (rb_shell_player_entry_activated_cb), (info_available_cb):
1612 * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
1613 (rb_shell_register_entry_type_for_source),
1614 (rb_shell_playing_from_queue_cb),
1615 (rb_shell_playing_entry_changed_cb),
1616 (rb_shell_player_stream_song_changed_cb),
1617 (rb_shell_jump_to_entry_with_source),
1618 (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
1619 (handle_playlist_entry_cb), (rb_shell_load_uri):
1621 * sources/rb-auto-playlist-source.c: (impl_receive_drag):
1622 * sources/rb-browser-source.c: (rb_browser_source_class_init),
1623 (rb_browser_source_init), (rb_browser_source_set_property),
1624 (rb_browser_source_get_property):
1625 * sources/rb-ipod-source.c: (impl_paste):
1626 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1627 (rb_iradio_source_init), (rb_iradio_source_set_property),
1628 (rb_iradio_source_get_property):
1629 * sources/rb-library-source.c: (impl_paste):
1630 * sources/rb-missing-files-source.c:
1631 (rb_missing_files_source_class_init),
1632 (rb_missing_files_source_init),
1633 (rb_missing_files_source_set_property),
1634 (rb_missing_files_source_get_property):
1635 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
1636 (rb_playlist_source_init), (rb_playlist_source_set_property),
1637 (rb_playlist_source_get_property):
1638 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1639 (rb_podcast_source_init), (rb_podcast_source_set_property),
1640 (rb_podcast_source_get_property):
1641 * sources/rb-static-playlist-source.c:
1642 (rb_static_playlist_source_add_location_internal):
1644 2006-04-20 Jonathan Matthew <jonathan@kaolin.wh9.net>
1646 * rhythmdb/rhythmdb.c: (rhythmdb_init),
1647 (rhythmdb_add_import_error_entry),
1648 (entry_volume_mounted_or_unmounted),
1649 (rhythmdb_volume_unmounted_cb):
1650 When a volume is unmounted, delete import errors for files stored on
1651 it. When a volume is mounted, stat all tracks stored on it, rather
1652 than assuming they're present. Fixes #339023.
1654 2006-04-20 James Livingston <doclivingston@gmail.com>
1656 patch by: Alex Lancaster <alexl@users.sourceforge.net> to remember
1657 browser visibility for non-gconf-using sources (like playlists). Part
1660 * shell/rb-source-header.c: (sourcestate_free),
1661 (rb_source_header_init), (rb_source_header_finalize),
1662 (rb_source_header_source_weak_destroy_cb): switch from storing the
1663 search string to storing a "source state" structure
1665 (rb_source_header_set_source_internal), (rb_source_state_sync),
1666 (rb_source_header_search_cb), (rb_source_header_clear_search),
1667 (rb_source_header_disclosure_toggled_cb): as well as storing the
1668 string, stop the visibility of the source's browser.
1670 2006-04-20 James Livingston <doclivingston@gmail.com>
1672 * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
1673 library entries back into the library. Fixes bug 339065.
1675 2006-04-20 James Livingston <doclivingston@gmail.com>
1677 * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
1678 only exists in glib 2.10.
1680 2006-04-20 James Livingston <doclivingston@gmail.com>
1682 patch by Brian Cameron <brian.cameron@sun.com> to fix building on
1683 Solaris. From bug 335318.
1685 * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
1686 * shell/rb-audioscrobbler.c:
1687 * sources/rb-psp-source.c:
1689 2006-04-20 James Livingston <doclivingston@gmail.com>
1691 * data/glade/Makefile.am: remove the use of $(NULL) since it causes
1692 issues for some people.
1694 * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
1695 accidental s/suffix/prefix/
1697 * sources/rb-auto-playlist-source.c:
1698 (rb_auto_playlist_source_set_query): fix the invered logic preventing
1699 you from sorting playlists which aren't limited by time.
1701 2006-04-19 James Livingston <doclivingston@gmail.com>
1703 * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
1704 duration or bitrate back to the file, since they are properties of the
1705 audio data, not tags we can set.
1707 2006-04-19 James Livingston <doclivingston@gmail.com>
1709 patch by: Götz Waschk <waschk@mandriva.org> to use $(LIBTOOL) instead
1710 of libtool, to fix builds which are using a different version. Fixes
1713 * shell/Makefile.am:
1715 2006-04-19 James Livingston <doclivingston@gmail.com>
1717 * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
1718 to sync data to a file which is uneditable.
1720 2006-04-19 James Livingston <doclivingston@gmail.com>
1722 patch by: Gavin Stewart <gavin@brokentrain.net>
1724 * data/glade/playlist-save.glade:
1725 * data/glade/Makefile.am:
1726 * po/POTFILES.in: add the playlist saving dialog.
1728 * shell/rb-playlist-manager.c: (save_playlist_response_cb),
1729 (export_set_extension_cb), (filter_get_export_filter_label),
1730 (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
1731 * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
1732 formats (PLS and M3U at the moment). Fixes bug 316295.
1734 2006-04-19 James Livingston <doclivingston@gmail.com>
1736 * shell/rb-playlist-manager.c:
1737 (rb_playlist_manager_set_source_internal): don't let you edit remove
1740 * sources/rb-auto-playlist-source.c:
1741 (rb_auto_playlist_source_set_query): correctly handle time-limited
1744 2006-04-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
1746 Patch by: Mikael Olenfalk <mikael.olenfalk@gmail.com>
1748 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
1749 Don't crash if the queue file contains no newlines.
1752 2006-04-18 Christophe Fergeau <teuf@gnome.org>
1754 * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
1757 2006-04-18 Christophe Fergeau <teuf@gnome.org>
1759 * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
1760 case. Moreover, they may not exist yet, so take that into account when
1761 generating the iPod filename.
1763 2006-04-18 Christophe Fergeau <christophe@anevia.com>
1765 * sources/rb-ipod-source.c: added support for drag and drop from the
1766 library to the iPod (only enabled if --enable-track-transfer was
1767 passed to configure)
1769 2006-04-17 Christophe Fergeau <teuf@gnome.org>
1772 * lib/rb-marshal.list:
1775 * plugins/Makefile.am:
1776 * plugins/ipod/Makefile.am:
1777 * plugins/ipod/ipod.rb-plugin.desktop.in:
1778 * plugins/ipod/rb-ipod-plugin.c:
1779 * plugins/rb-plugin.h:
1780 * shell/Makefile.am:
1781 * shell/rb-removable-media-manager.c:
1782 * shell/rb-removable-media-manager.h:
1784 * sources/Makefile.am:
1785 * sources/rb-ipod-source.c:
1786 * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
1787 various iPod related files should be moved to plugins/ipod/ now...
1789 2006-04-17 James Livingston <doclivingston@gmail.com>
1791 Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
1794 * help/C/figures/rb-iradio-main.png:
1795 * help/C/figures/rb-notification-area-menu.png:
1796 * help/C/figures/rb-notification-window.png:
1797 * help/C/figures/rb-notification-zone.png:
1798 * help/C/figures/rb-podcast-main.png:
1799 * help/C/figures/rb-statusbar.png:
1800 * help/C/figures/rb-volume-changer.png:
1801 * help/C/figures/rb-window-small.png:
1802 * help/C/figures/rb-window.png:
1803 * help/C/rhythmbox.xml:
1805 2006-04-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
1807 * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
1810 * metadata/rb-metadata-gst.c: (rb_metadata_init),
1811 (make_undecodable_error), (rb_metadata_gst_error_cb),
1812 (rb_metadata_gst_new_decoded_pad_cb),
1813 (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
1814 Ignore really small files (<4kB) for which typefinding fails.
1815 Always link decoded pads from decodebin to fakesink.
1816 Shut the pipeline down by posting an error on the bus when decodebin
1817 emits unknown-type signals. Fixes bug #338062.
1819 2006-04-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
1821 * shell/rb-shell.c: (rb_shell_load_uri):
1822 Fix glaring mistakes in previous commit: actually pass arguments to
1823 rb_debug, and specify the right entry type when adding a new iradio
1824 station so we don't try to add local playlist files to the library.
1826 2006-04-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
1828 * shell/main.c: (load_uri_args): Don't check that remote URLs exist
1829 before trying to add them, as iradio streams often fail rb_uri_exists().
1831 * shell/rb-shell-player.c: (notify_playing_idle),
1832 (rb_shell_player_open_playlist_url), (playlist_entry_cb),
1833 (open_location_thread), (rb_shell_player_open_location),
1834 (rb_shell_player_play), (rb_shell_player_set_playing_entry),
1835 (eos_cb): When playing an iradio stream using a playlist, keep a list
1836 of all the stream URLs, and try them in turn. If we get through the
1837 whole playlist too quickly, error out. Various other fixes that make
1838 iradio work a lot better.
1840 * shell/rb-shell.c: (add_to_library_response_cb),
1841 (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
1842 (handle_playlist_entry_cb), (rb_shell_load_uri):
1843 Add playlists containing streams as iradio stations. If the playlist
1844 is local, add each stream URL, but if the playlist is remote, just add
1847 * sources/rb-iradio-source.c: (new_station_location_added):
1848 Add new station URLs as-is, rather than parsing the playlist and
1851 * rhythmdb/rhythmdb-query-model.c:
1852 (rhythmdb_query_model_entry_changed_cb),
1853 (rhythmdb_query_model_emit_reorder),
1854 (rhythmdb_query_model_do_reorder):
1855 Emit row-changed notifications when an entry changes but is not
1858 * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
1859 Display the playback error icon when the entry has an error and
1860 there's nothing else to display.
1862 Fixes bug #320336 and some of #324402.
1864 2006-04-16 Christophe Fergeau <teuf@gnome.org>
1866 * sources/rb-ipod-source.c: use a GHashTable for the
1867 RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
1868 time, this fixes compilation breakage for people not having libgpod
1871 2006-04-16 Ryan P Skadberg <skadz@stigmata.org>
1873 patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
1875 * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
1876 (rb_podcast_manager_insert_feed):
1877 * podcast/rb-podcast-manager.h: Actually automatically podcasts,
1880 2006-04-16 James Livingston <doclivingston@gmail.com>
1882 * sources/rb-library-source.c:
1883 (rb_library_source_library_location_cb): return FALSE like we are
1884 supposed to, not void.
1886 patch by: FreeBSD GNOME Project
1887 * configure.ac: fix some bash-isms.
1889 patch by: Pawel Worach <pawel.worach@gmail.com>
1890 * metadata/rb-metadata-dbus-client.c:
1891 * rhythmdb/rhythmdb-query-model.c:
1892 (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
1895 2006-04-16 James Livingston <doclivingston@gmail.com>
1897 Patch from: Alessandro Decina <alessandro@nnva.org> to add support
1898 for transcoding to RBEncoderGst.
1900 * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
1901 (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
1902 (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
1903 (add_decoding_pipeline), (encoder_match_mime),
1904 (get_profile_from_mime_type), (extract_track), (transcode_track),
1905 (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
1907 2006-04-16 Christophe Fergeau <teuf@gnome.org>
1909 * sources/rb-ipod-source.c: (add_ipod_song_to_db),
1910 (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
1911 load_ipod_db_idle_cb to a new separate function
1913 2006-04-16 Christophe Fergeau <teuf@gnome.org>
1915 * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
1918 2006-04-16 Christophe Fergeau <teuf@gnome.org>
1920 * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
1923 2006-04-16 Christophe Fergeau <teuf@gnome.org>
1925 * data/ui/Makefile.am:
1926 * data/ui/ipod-ui.xml: added new ui file containing the iPod context
1928 * lib/rb-util.c: check if the widget we got from the UI manager isn't
1929 NULL before using it as a popup menu
1930 * sources/rb-ipod-source.c: added the possibility to 'rename' and
1933 2006-04-16 Christophe Fergeau <teuf@gnome.org>
1935 * sources/rb-ipod-source.c: when hal tells us a partition is on an
1936 iPod, check if it contains an iPod database before using it (in case
1937 the iPod was repartitionned somehow). Should fix bug #325034
1939 2006-04-16 Steve Frécinaux <steve@istique.net>
1941 * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
1943 * data/Makefile.am: install application icon into the default theme.
1945 * data/rhythmbox.desktop.in: don't specify icon file extension.
1947 * shell/main.c: (main): set default window icon from theme.
1949 * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
1950 code concerning window icon, and fix leak by unreferencing the about
1951 logo pixbuf once it's not used anymore.
1953 2006-04-16 James Livingston <doclivingston@gmail.com>
1955 * configure.ac: bump version to 0.9.4
1956 * NEWS: update NEWS and 0.9.4 insert translations
1958 2006-04-16 James Livingston <doclivingston@gmail.com>
1960 * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
1961 namespace automatically.
1963 2006-04-16 James Livingston <doclivingston@gmail.com>
1965 * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
1967 * doc/reference/Makefile.am:
1968 * doc/reference/rhythmbox.types: make distcheck work again
1970 * doc/reference/tmpl/eggnotificationbubble.sgml:
1971 * doc/reference/tmpl/eggtrayicon.sgml:
1972 * doc/reference/tmpl/rb-debug.sgml:
1973 * doc/reference/tmpl/rb-entry-view.sgml:
1974 * doc/reference/tmpl/rb-enums.sgml:
1975 * doc/reference/tmpl/rb-metadata.sgml:
1976 * doc/reference/tmpl/rb-new-station-dialog.sgml:
1977 * doc/reference/tmpl/rb-playlist-manager.sgml:
1978 * doc/reference/tmpl/rb-refstring.sgml:
1979 * doc/reference/tmpl/rb-shell-player.sgml:
1980 * doc/reference/tmpl/rb-shell-preferences.sgml:
1981 * doc/reference/tmpl/rb-shell.sgml:
1982 * doc/reference/tmpl/rb-song-info.sgml:
1983 * doc/reference/tmpl/rb-station-properties-dialog.sgml:
1984 * doc/reference/tmpl/rb-statusbar.sgml:
1985 * doc/reference/tmpl/rhythmbox-unused.sgml:
1986 * doc/reference/tmpl/rhythmdb-query-model.sgml:
1987 * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
1989 2006-04-16 James Livingston <doclivingston@gmail.com>
1991 patch by: Christian Kirbach <Christian.Kirbach@student.uni-siegen.de>
1993 * po/LINGUAS: don't split the variable across two lines, as it breaks
1994 the build. Fixes bug 338625.
1996 2006-04-15 James Livingston <doclivingston@gmail.com>
1998 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
1999 add a "sourcelist-model" gobject property.
2001 2006-04-14 William Jon McCann <mccann@jhu.edu>
2004 * backends/.cvsignore:
2005 * backends/gstreamer/.cvsignore:
2006 * bindings/.cvsignore:
2007 * bindings/python/.cvsignore:
2008 * help/es/.cvsignore:
2009 * metadata/.cvsignore:
2010 * plugins/.cvsignore:
2011 * plugins/audioscrobbler/.cvsignore:
2012 * plugins/lirc/.cvsignore:
2013 * plugins/pythonconsole/.cvsignore:
2014 * plugins/sample-python/.cvsignore:
2015 * plugins/sample/.cvsignore:
2017 * widgets/libsexy/.cvsignore:
2018 Make CVS ignore files.
2020 2006-04-14 James Livingston <doclivingston@gmail.com>
2022 * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
2023 the track-loading thread hold a reference on the source, so it doesn't
2024 explode if the cd is removed before it is done. Fixes bug 337237.
2026 2006-04-14 James Livingston <doclivingston@gmail.com>
2028 * bindings/python/override_common.c:
2029 (_helper_unwrap_pointer_pylist):
2030 * bindings/python/override_common.h:
2031 * bindings/python/rb.override:
2032 * bindings/python/rhythmdb.override: Bind some more functions and
2035 * shell/rb-shell.c: (rb_shell_select_source):
2036 * shell/rb-source-header.c: (rb_source_header_set_source_internal):
2037 * sources/rb-audiocd-source.c:
2038 * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
2039 * sources/rb-browser-source.c: (impl_get_search_actions):
2040 * sources/rb-iradio-source.c: (impl_get_ui_actions):
2041 * sources/rb-play-queue-source.c: (impl_get_ui_actions):
2042 * sources/rb-playlist-source.c: (impl_get_ui_actions):
2043 * sources/rb-podcast-source.c: (impl_get_ui_actions),
2044 (impl_get_search_actions):
2045 * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
2046 the impl_get_ui_actions and impl_get_search_actions functions return
2047 lists that contain copies of the strings, instead of constant ones.
2050 2006-04-14 James Livingston <doclivingston@gmail.com>
2052 * bindings/python/rhythmdb.defs:
2053 * bindings/python/rhythmdb.override: fix the method argument format
2056 2006-04-14 James Livingston <doclivingston@gmail.com>
2058 * bindings/python/rhythmdb.defs:
2059 * bindings/python/rhythmdb.override:
2060 * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
2061 (entry_to_rb_metadata), (record_entry_change),
2062 (rhythmdb_entry_set_visibility):
2063 * rhythmdb/rhythmdb.h:
2064 * shell/rb-shell.c: (rb_shell_get_song_properties): change
2065 rhythmdb_entry_get to take the db as the first parameter. Fixes the
2066 python bindings of it. The rhythmdb_entry_get_* ones are left the same
2067 since they are used in too many places, and not in the Python
2070 2006-04-13 William Jon McCann <mccann@jhu.edu>
2072 * lib/rb-debug.c: (_rb_profile_log):
2073 * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
2074 * rhythmdb/rhythmdb.c: (rhythmdb_load):
2075 * shell/main.c: (main):
2076 * shell/rb-shell.c: (rb_shell_constructor),
2077 (rb_shell_set_visibility), (rb_shell_sync_window_state),
2079 Fix profile output indentation. Add more profiling points.
2080 Fixes part of #338114
2082 2006-04-13 James Livingston <doclivingston@gmail.com>
2084 * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
2085 library source being deleted, by setting the active source to NULL.
2088 2006-04-12 Jonathan Matthew <jonathan@kaolin.wh9.net>
2090 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
2091 Update the last-seen string when hiddenness changes.
2093 2006-04-12 James Livingston <doclivingston@gmail.com>
2095 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
2096 which caused the first-seen time to be reset when a metadata load was
2097 done. Fixes bug 336874.
2099 * shell/rb-shell.h: remove old function declaration.
2101 * bindings/python/rhythmdb.defs:
2102 * bindings/python/rhythmdb.override: Fix some python binding stuff.
2104 2006-04-11 James Livingston <doclivingston@gmail.com>
2106 * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
2107 (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
2108 interaction. Fixes bug 337999.
2110 2006-04-11 James Livingston <doclivingston@gmail.com>
2112 patch by: Christohpe Fergeau <teuf@gnome.org> to fix building without
2113 track transfer. Fixes bug 338056.
2115 * shell/Makefile.am:
2117 2006-04-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
2119 * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
2121 2006-04-10 William Jon McCann <mccann@jhu.edu>
2123 * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
2126 * shell/rb-shell.c: (construct_db), (construct_widgets),
2127 (construct_sources), (construct_load_ui), (rb_shell_constructor):
2128 Add profiling. Fixes #337387
2130 2006-04-10 William Jon McCann <mccann@jhu.edu>
2132 * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func):
2133 * widgets/rb-header.c:
2134 Use italics for artist and album. Fixes #336748
2136 2006-04-10 James Livingston <doclivingston@gmail.com>
2139 * backends/gstreamer/Makefile.am:
2141 * data/glade/library-prefs.glade:
2142 * shell/Makefile.am:
2143 * shell/rb-removable-media-manager.c:
2144 * shell/rb-removable-media-manager.h:
2145 * sources/Makefile.am:
2146 * sources/rb-audiocd-source.c:
2147 * sources/rb-library-source.c: (rb_library_source_class_init),
2148 (rb_library_source_finalize), (impl_get_config_widget),
2149 (rb_library_source_preferences_sync), (impl_can_paste): add a
2150 --enable-track-transfer configure option, abd make cd ripping disabled
2153 * shell/rb-source-header.c:
2154 * sources/rb-source.c: (rb_source_class_init),
2155 (rb_source_delete_thyself), (default_get_entry_view):
2156 * lib/rb-glade-helpers.c:
2157 * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
2158 some compiler warnings, and also bug 337427.
2160 2006-04-10 James Livingston <doclivingston@gmail.com>
2162 * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
2163 (rb_shell_player_repeat_changed_cb): don't fail to set the play order
2164 if the gconf key is missing. Fixes bug 337742.
2166 2006-04-10 James Livingston <doclivingston@gmail.com>
2168 patch by: Alex Lancaster <alexl@users.sourceforge.net>
2169 to fix build problems I caused with a commit yesterday. Fixed bug
2172 * daapsharing/rb-daap-mdns-browser-howl.c:
2173 (rb_daap_mdns_browser_class_init):
2174 * podcast/Makefile.am:
2175 * rhythmdb/Makefile.am:
2176 * widgets/eggtrayicon.h:
2178 2006-04-09 Steve Frécinaux <steve@istique.net>
2183 Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
2184 translators' life easier.
2186 2006-04-09 James Livingston <doclivingston@gmail.com>
2188 * bindings/python/rb.defs:
2189 * bindings/python/rb.override: add bindings for most RBSource virtual
2192 * sources/rb-source.h:
2193 * sources/rb-source.c: (rb_source_class_init): make
2194 impl_get_browser_key return a non-consht string, since Python can't
2195 really give us constant strings.
2197 * shell/rb-source-header.c: (rb_source_header_finalize),
2198 (rb_source_header_set_source_internal):
2199 * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
2200 * sources/rb-iradio-source.c: (impl_get_browser_key):
2201 * sources/rb-library-source.c: (impl_get_browser_key):
2202 * sources/rb-playlist-source.c:
2203 * sources/rb-browser-source.c: (rb_browser_source_constructor),
2204 (rb_browser_source_state_prefs_sync):
2205 * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
2208 * plugins/sample-python/sample-python.py: show how to add a new
2211 2006-04-09 James Livingston <doclivingston@gmail.com>
2213 * daapsharing/Makefile.am:
2214 * daapsharing/rb-daap-connection.c:
2215 (rb_daap_connection_class_init):
2216 * daapsharing/rb-daap-marshal.list:
2217 * daapsharing/rb-daap-mdns-browser-avahi.c:
2218 (rb_daap_mdns_browser_class_init):
2219 * lib/rb-marshal.list:
2220 * player/Makefile.am:
2221 * player/rb-recorder-gst.c: (rb_recorder_class_init):
2222 * player/rb-recorder-marshal.list:
2223 * podcast/Makefile.am:
2224 * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
2225 * podcast/rb-podcast-marshal.list:
2226 * rhythmdb/Makefile.am:
2227 * rhythmdb/rhythmdb-marshal.list:
2228 * rhythmdb/rhythmdb-query-model.c:
2229 (rhythmdb_query_model_class_init):
2230 * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
2231 into one file, as there is no point having several of them.
2233 2006-04-09 James Livingston <doclivingston@gmail.com>
2237 * widgets/Makefile.am:
2238 * widgets/eggnotificationbubble.c:
2239 * widgets/eggnotificationbubble.h:
2240 * widgets/rb-song-info.c: remove lib/rb-enums.h and
2241 widgets/eggnotificationbubble.{c,h}, since they aren't used any more
2243 * rhythmdb/rhythmdb-property-model.h:
2244 * rhythmdb/rhythmdb-query-model.h:
2245 * rhythmdb/rhythmdb.h:
2246 * shell/rb-playlist-manager.h:
2247 * widgets/rb-cell-renderer-pixbuf.h:
2248 * widgets/rb-cell-renderer-rating.h:
2249 * widgets/rb-rating.h: fix the prototypes of various class-closures.
2251 2006-04-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
2253 * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
2254 so we can build without a system-wide installed copy.
2256 2006-04-09 James Livingston <doclivingston@gmail.com>
2258 * data/glade/general-prefs.glade:
2259 * data/rhythmbox.schemas:
2260 * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
2261 (rb_combo_box_hyphen_separator_func):
2262 * lib/rb-glade-helpers.h:
2263 * lib/rb-preferences.h:
2264 * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2265 (rb_shell_preferences_sync),
2266 (rb_shell_preferences_toolbar_style_cb),
2267 (rb_shell_preferences_browser_views_activated_cb):
2268 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
2269 (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
2270 overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
2272 2006-04-09 James Livingston <doclivingston@gmail.com>
2274 * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
2275 data that MusicBrainz returns to us. Last part of bug 334167.
2277 2006-04-09 James Livingston <doclivingston@gmail.com>
2279 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
2280 crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
2282 2006-04-09 James Livingston <doclivingston@gmail.com>
2284 * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
2285 the entry view properly when the rows are reordered. Fixes bug 337019.
2287 2006-04-09 James Livingston <doclivingston@gmail.com>
2290 * widgets/Makefile.am:
2291 * widgets/libsexy/Makefile.am:
2292 * widgets/libsexy/sexy-icon-entry.c:
2293 * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
2294 libsexy, and allow building against it or a system-wide installed
2298 * widgets/rb-search-entry.c: (rb_search_entry_init),
2299 (rb_search_entry_changed_cb): use libsexy to add a clear button to the
2300 search box. Fixes bug 128109.
2302 2006-04-09 James Livingston <doclivingston@gmail.com>
2304 patch by: Alex Lancaster <alexl@users.sourceforge.net>
2306 * widgets/rb-entry-view.c: (rb_entry_view_init),
2307 (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
2308 and Pause icons rather than the volume ones in the Now Playing column.
2311 2006-04-08 James Livingston <doclivingston@gmail.com>
2313 * bindings/python/override_common.h:
2314 * bindings/python/rb.override:
2315 * bindings/python/rhythmdb.override: bind some more functions
2317 2006-04-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
2319 * metadata/rb-metadata-dbus-service.c: (_send_error):
2320 Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
2321 are sent properly and we don't get 'method doesn't exist' messages
2324 2006-04-08 James Livingston <doclivingston@gmail.com>
2326 * bindings/python/override_common.h:
2327 * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
2328 (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
2329 more utility functions for C<->Python conversions
2331 * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
2332 (rb_entry_view_state_get_type):
2333 * widgets/rb-entry-view.h: make the colume type and entry view state
2336 * bindings/python/Makefile.am:
2337 * bindings/python/rb.defs:
2338 * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
2341 2006-04-08 James Livingston <doclivingston@gmail.com>
2343 * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
2344 initialiser for a GError
2346 * sources/rb-source.c: (rb_source_eof_type_get_type):
2347 * sources/rb-source.h: add a GType for RBSourceEOFType
2349 * bindings/python/Makefile.am:
2350 * bindings/python/rb.defs:
2351 * bindings/python/rb.override: bind RBSource and RBSourceList
2353 2006-04-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
2355 * shell/rb-shell-player.c: (rb_shell_player_class_init),
2356 (rb_shell_player_get_property),
2357 (rb_shell_player_get_active_source),
2358 (rb_shell_player_set_playing_source_internal):
2359 * shell/rb-shell-player.h:
2360 Change 'playing-from-queue' from being a signal to being a property.
2362 * shell/rb-shell.c: (rb_shell_constructor),
2363 (rb_shell_playing_from_queue_cb),
2364 (rb_shell_view_queue_as_sidebar_changed_cb),
2365 (rb_shell_jump_to_entry_with_source):
2366 When the queue side pane is used, make 'jump to current' jump to the
2367 entry in the registered source for its type, rather than in the queue,
2368 and show it as playing in that source.
2370 * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
2371 * sources/rb-sourcelist.h:
2372 Remove the 'preempted source' stuff, since it wasn't doing anything
2375 2006-04-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
2377 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
2378 (download_progress_cb): Canonicalise downloaded file location before
2379 setting the mountpoint property of the corresponding entry.
2380 Fixes #337287 and a couple of memory leaks.
2382 2006-04-06 Jonathan Matthew <jonathan@kaolin.wh9.net>
2384 * metadata/rb-metadata-dbus-service.c: (test_can_save),
2385 (test_load), (main): Call g_set_prgname, report errors more
2386 usefully in test mode.
2387 * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
2388 (rb_metadata_load): Don't ignore the have-type signal for non-audio
2389 files. Run the event loop when the state change fails so we get the
2390 error messages from the bus. Fixes #336921.
2392 2006-04-05 William Jon McCann <mccann@jhu.edu>
2394 * data/art/Makefile.am: Install media-eject.
2396 * lib/rb-stock-icons.c (rb_stock_icons_init): Check
2397 return value of rb_file.
2401 2006-04-05 Jonathan Matthew <jonathan@kaolin.wh9.net>
2403 Patch by: William Jon McCann <mccann@jhu.edu>
2405 * metadata/test-metadata.c: (main): Use GOption to parse arguments.
2406 * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
2409 2006-04-04 William Jon McCann <mccann@jhu.edu>
2411 * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
2412 Don't try to add a date when we don't have one. Fixes #336741.
2414 Also fix variable declaration in middle of block.
2416 2006-04-04 Jonathan Matthew <jonathan@kaolin.wh9.net>
2418 * shell/rb-shell-player.c: (rb_shell_player_playpause):
2419 Don't crash if source is already NULL. Hackishly fixes bug #336912.
2421 2006-04-02 James Livingston <doclivingston@gmail.com>
2423 * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
2424 inverted logic causing imports to fail.
2426 2006-04-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
2428 * shell/main.c: (main): Fix dbusless build.
2430 2006-04-02 Christophe Fergeau <teuf@gnome.org>
2432 * player/rb-recorder-gst.c: fix packing of the C struct holding a
2433 wav header for non-gcc compilers (not tested much, was only written
2436 2006-04-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
2438 * shell/main.c: (main): Check if we got a dbus connection before
2439 trying to create a proxy for the shell object. Fixes #336634.
2441 2006-04-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
2443 * doc/reference/Makefile.am:
2444 * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
2445 * shell/rb-source-header.c:
2446 * sources/rb-generic-player-source.c:
2447 (default_transform_playlist_uri):
2448 Fix various build issues. Patch approximately 50% by Alex Lancaster
2449 <alexl@users.sourceforge.net>
2451 2006-04-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
2453 * configure.ac: Detect LIRC.
2455 * plugins/Makefile.am:
2456 * plugins/lirc/Makefile.am:
2457 * plugins/lirc/lirc.rb-plugin.desktop.in:
2458 * plugins/lirc/rb-lirc-plugin.c:
2461 * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h:
2462 Remove obsolete files.
2464 2006-04-02 James Livingston <doclivingston@gmail.com>
2466 * sources/rb-generic-player-source.c:
2467 (default_transform_playlist_uri): consider playlist paths as relative
2468 to the volume root by default, since that is what most players use.
2470 2006-04-02 James Livingston <doclivingston@gmail.com>
2472 * lib/rb-util.c: (rb_mime_get_friendly_name):
2473 * lib/rb-util.h: add helper function to get the "friendly" name for a
2476 * metadata/rb-metadata-gst.c: (rb_metadata_init),
2477 (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
2478 the user better error messages about undecodable streams, using the
2479 "friendly" name if possible. Fixes bug 128109.
2481 2006-04-02 James Livingston <doclivingston@gmail.com>
2483 * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
2484 (start_pipeline): fix building with gstreamer 0.8
2486 2006-04-02 James Livingston <doclivingston@gmail.com>
2488 * sources/rb-podcast-source.c: (impl_delete),
2489 (rb_podcast_source_cmd_delete_feed),
2490 (rb_podcast_source_cmd_update_feed): copy the list before traversing
2491 it, since it may change during traversal. Fixes bug 336204.
2493 2006-04-01 James Livingston <doclivingston@gmail.com>
2495 * data/art/media-eject.png: add the media-eject icon from Banshee
2496 (BSD-licensed), for use when the user's icon theme doesn't have one.
2498 * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
2501 2006-04-01 James Livingston <doclivingston@gmail.com>
2503 * shell/rb-shell-player.h:
2504 * shell/rb-shell-player.c: (rb_shell_player_play),
2505 (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
2506 new rb_shell_player_{play,pause} functions, so everyone doesn't have
2507 to do rb_shell_player_playing followed by rb_shell_player_playpause.
2509 * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
2510 (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
2511 * shell/rb-shell.h: add rb_shell_get_ui_manager.
2513 * bindings/python/rb.defs: bind the above to Python, and remove some
2514 useless stuff from the bindings.
2516 2006-04-01 James Livingston <doclivingston@gmail.com>
2518 * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
2522 * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
2524 * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
2527 * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
2528 * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
2529 method assigning, so it's understandable
2531 * sources/rb-library-source.c: (rb_library_source_class_init),
2532 (impl_paste): rather than hard-coding the types to ignore, use
2535 2006-03-31 Jonathan Matthew <jonathan@kaolin.wh9.net>
2537 * sources/rb-library-source.c:
2538 (rb_library_source_preferences_sync):
2539 Don't crash if no audio profile is selected and the gconf schemas are
2542 2006-03-31 James Livingston <doclivingston@gmail.com>
2544 * plugins/rb-python-module.c: (rb_python_module_load): add a missing
2545 "*" which caused compilation to fail
2547 2006-03-31 James Livingston <doclivingston@gmail.com>
2551 * backends/Makefile.am:
2552 * backends/gstreamer/Makefile.am:
2553 * backends/gstreamer/rb-encoder-gst.c:
2554 * backends/gstreamer/rb-encoder-gst.h:
2555 * backends/rb-encoder.c:
2556 * backends/rb-encoder.h: add a interface for transcoding, and a
2557 GStreamer implementation of it (based on Sound-Juicer's code).
2559 * shell/Makefile.am:
2560 * shell/rb-removable-media-manager.c:
2561 (rb_removable_media_manager_class_init),
2562 (rb_removable_media_manager_init),
2563 (rb_removable_media_manager_dispose),
2564 (rb_removable_media_manager_finalize),
2565 (rb_removable_media_manager_scan), (emit_progress), (error_cb),
2566 (progress_cb), (completed_cb), (do_transfer),
2567 (rb_removable_media_manager_queue_transfer), (copy_entry),
2568 (rb_removable_media_manager_cmd_copy_tracks):
2569 * shell/rb-removable-media-manager.h: use the encoder interface to
2570 perform transfers of entries to other locations
2572 * shell/rb-shell-player.c: (open_location_thread):
2573 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2574 (rb_shell_constructor), (rb_shell_transfer_progress_cb),
2576 * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
2577 progress in the status bar.
2579 * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2580 (rb_shell_preferences_sync),
2581 (rb_shell_preferences_browser_views_activated_cb):
2582 * data/glade/general-prefs.glade: move the browser views setting from
2583 the library tab to the general one.
2585 * data/glade/library-prefs.glade: add settings for the layout of the
2586 user's library, and their preferred encoding format (e.g. for CD
2589 * lib/rb-preferences.h:
2590 * data/rhythmbox.schemas: add keys for the above options (and a few
2593 * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
2594 * rhythmdb/rhythmdb.h: add a new function for creating an "example"
2595 entry, that isn't inserted into the database.
2597 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
2598 (rb_audiocd_create_track_entry):
2599 * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
2600 cds, and set the mime-type of audio cd tracks correctly.
2602 * sources/rb-library-source.c: (rb_library_source_class_init),
2603 (rb_library_source_finalize),
2604 (rb_library_source_edit_profile_clicked_cb),
2605 (impl_get_config_widget), (rb_library_source_preferences_sync),
2606 (impl_receive_drag), (rb_library_source_path_changed_cb),
2607 (rb_library_source_filename_changed_cb),
2608 (rb_library_source_format_changed_cb), (sanitize_path),
2609 (filepath_parse_pattern), (layout_example_label_update),
2610 (rb_library_source_layout_path_changed),
2611 (rb_library_source_layout_filename_changed), (build_filename),
2612 (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
2613 entries to the library. Large chunks of code for determining the
2614 destination file name stolen from Sound-Juicer.
2616 * sources/rb-sourcelist-model.c: (path_is_droppable):
2617 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
2618 * sources/rb-static-playlist-source.c:
2619 (rb_static_playlist_source_class_init):
2620 * sources/rb-removable-media-source.c:
2621 (rb_removable_media_source_class_init):
2622 * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
2623 (rb_source_can_paste):
2624 * sources/rb-source.h: add a new _can_paste method, and use it (rather
2625 than _can_copy) to determine whether we can paste into the source.
2628 2006-03-31 Steve Frécinaux <steve@istique.net>
2630 * plugins/rb-python-module.c: allow import of python modules with a '.'
2631 (gedit's bug 336403). Patch by Johan Dahlin.
2633 2006-03-31 James Livingston <doclivingston@gmail.com>
2635 * sources/rb-library-source.c:
2636 * sources/rb-library-source.h:
2637 * sources/rb-browser-source.c:
2638 * sources/rb-browser-source.h: Split RBLibrarySource into two.
2639 RBBrowserSource now contains all the stuff for having a source which
2640 views a particular entry type (including browsers and searching).
2641 RBLibrarySource derives from this, and includes the library-specific
2642 stuff, like importing and library watching. Fixes some issues where
2643 library-derived sources were doing things that should be
2644 library-specific. Fixes bug 335185.
2646 * data/ui/rhythmbox-ui.xml:
2647 * sources/Makefile.am: modifications for the above
2649 * sources/rb-daap-source.c: (rb_daap_source_class_init),
2650 (rb_daap_source_get_paned_key):
2651 * sources/rb-daap-source.h:
2652 * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
2653 * sources/rb-removable-media-source.c:
2654 (rb_removable_media_source_class_init):
2655 * sources/rb-removable-media-source.h: derive from RBBrowserSource
2656 instead of RBLibrarySource.
2658 2006-03-31 James Livingston <doclivingston@gmail.com>
2660 * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
2661 I buggered up when changing from GnomeVFSFileSize.
2663 2006-03-30 James Livingston <doclivingston@gmail.com>
2665 * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
2668 * bindings/python/rb.override:
2669 * bindings/python/Makefile.am: make the RB python bindings depend on
2670 the RhythmDB ones, and use "-Wno-error" since the machine-generated
2671 code sometimes emits warnings.
2673 * shell/rb-shell-player.c: (rb_shell_player_class_init),
2674 (rb_shell_player_error_get_type):
2675 * shell/rb-shell-player.h:
2676 * bindings/python/rb.defs: add bindings for RBShellPlayer
2678 * rhythmdb/rhythmdb.c: (rhythmdb_init),
2679 (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
2680 (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
2681 * rhythmdb/rhythmdb.h:
2682 * shell/rb-shell.c: (rb_shell_get_song_properties):
2683 * widgets/rb-entry-view.c: (propid_from_name):
2684 * widgets/rb-property-view.c: (rb_property_view_class_init):
2685 * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
2686 than just plain GPtrArray, and add bindings for it.
2688 * bindings/python/rhythmdb.override: wrap some functions that use
2691 2006-03-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
2693 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
2694 Only watch directories from which entries of type SONG have been
2697 2006-03-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
2699 * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
2700 No need to restore the selection after rebuilding the child model,
2701 since that can't have changed the selection.
2703 2006-03-29 James Livingston <doclivingston@gmail.com>
2705 * bindings/python/override_common.c:
2706 * bindings/python/override_common.h: add some for missing files to
2709 2006-03-29 James Livingston <doclivingston@gmail.com>
2712 * bindings/python/Makefile.am: remove usage of gtksourceview, it was
2713 copied from gedit's autofoo and we don't need it
2715 * bindings/python/rhythmdb.defs:
2716 * bindings/python/rhythmdb.override: add missing files to cvs
2718 2006-03-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
2720 * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
2721 * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
2722 before running any of the debug/test modes.
2723 * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
2724 Make plugin loading work when running uninstalled from the shell/
2727 2006-03-29 James Livingston <doclivingston@gmail.com>
2729 * rhythmdb/rhythmdb-property-model.c:
2730 (rhythmdb_property_model_sync),
2731 (rhythmdb_property_model_column_get_type):
2732 * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
2734 * rhythmdb/rhythmdb-private.h:
2735 * rhythmdb/rhythmdb-query-model.c:
2736 (rhythmdb_query_model_class_init):
2737 * rhythmdb/rhythmdb-query-model.h:
2738 * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2739 (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
2740 (rhythmdb_entry_get_type):
2741 * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
2743 * widgets/rb-query-creator-properties.c:
2744 * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
2747 * bindings/python/Makefile.am:
2748 * bindings/python/rb.defs:
2749 * bindings/python/rb.override:
2750 * plugins/rb-python-module.c: (rb_python_module_init_python): add
2751 Python bindings for RhythmDB.
2753 2006-03-29 James Livingston <doclivingston@gmail.com>
2755 * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
2756 sharing when using --no-registration
2758 2006-03-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
2760 * rhythmdb/rhythmdb-query-model.c:
2761 (rhythmdb_query_model_reapply_query):
2762 Don't remove entries while iterating, as it breaks the sequence
2763 nodes. Instead, collect a list of removed entries and process it
2764 after iterating the sequence. Fixes #334642.
2766 2006-03-29 James Livingston <doclivingston@gmail.com>
2768 * plugins/rb-plugin-manager.c: (active_toggled_cb),
2769 (row_activated_cb), (plugin_manager_toggle_all):
2770 * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
2771 (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
2772 (button_press_cb), (source_name_edited_cb):
2773 * widgets/rb-property-view.c: (rb_property_view_set_property),
2774 (rb_property_view_post_row_deleted_cb),
2775 (rb_property_view_row_activated_cb),
2776 (rb_property_view_selection_changed_cb),
2777 (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
2778 ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
2780 2006-03-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
2782 * rhythmdb/rhythmdb-query-model.c:
2783 (rhythmdb_query_model_drag_data_received):
2784 Increment the reference count for entries added by drag and drop.
2787 2006-03-27 Jonathan Matthew <jonathan@kaolin.wh9.net>
2789 * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
2790 * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
2791 Ignore invalid UTF-8 strings. Fixes most of #334167.
2793 2006-03-27 James Livingston <doclivingston@gmail.com>
2795 * shell/rb-shell.c: (rb_shell_constructor),
2796 (rb_shell_sync_window_state): fix a maximise-realise race that would
2797 cause some widgets to be resized after we had explicity set theri
2798 size. Hopefully fixes bug 331927.
2800 2006-03-27 James Livingston <doclivingston@gmail.com>
2802 * plugins/rb-plugin-manager.c: (active_toggled_cb),
2803 (row_activated_cb), (plugin_manager_set_active),
2804 (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
2805 configure button sensitivity when a plugin is enabled/disabled.
2807 2006-03-27 James Livingston <doclivingston@gmail.com>
2809 * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
2810 stop warnings, only the vbos is used anyway
2812 * plugins/rb-plugins-engine.c: (garbage_collect_cb),
2813 (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
2814 collection every now an then.
2816 * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
2817 if we are finalising because the python object couldn't be created.
2819 * plugins/rb-python-module.c: (rb_python_module_new_object): return
2820 NULL if the python-side object couldn't be created. Stops crashes when
2821 the object is later used when it doesn't exist in Python.
2823 (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
2824 (rb_python_shutdown): do better garbage collection when shutting down.
2825 Fixes the problem where Python was holding a reference to the shell,
2826 causing RB not to exit.
2828 2006-03-27 James Livingston <doclivingston@gmail.com>
2830 * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
2833 2006-03-27 James Livingston <doclivingston@gmail.com>
2835 * data/iradio-initial.pls: Change the AfterHours DJ stream address.
2838 2006-03-26 James Livingston <doclivingston@gmail.com>
2840 * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
2841 library location list to NULL after we free it. Fixes bug 336047.
2843 2006-03-26 James Livingston <doclivingston@gmail.com>
2845 patch by: Alex Lancaster <alexl@users.sourceforge.net>
2847 * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
2848 supplies. Fixes bug 335947.
2850 2006-03-25 James Livingston <doclivingston@gmail.com>
2852 * data/glade/audioscrobbler-prefs.glade:
2853 * shell/rb-audioscrobbler.c:
2854 (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
2855 "submit songs" checkbox, and make it not disable username/password
2856 entry. This will be needed when we support other last.fm stuff
2857 (profile access, radio, etc).
2859 2006-03-24 Dennis Cranston <dennis_cranston@yahoo.com>
2861 * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2862 Volume should not display stock_volume-0 for volume > 0. Fixes bug
2865 2006-03-24 James Livingston <doclivingston@gmail.com>
2867 * shell/rb-shell-player.c: (rb_shell_player_set_property),
2868 (rb_shell_player_sync_play_order),
2869 (rb_shell_player_play_order_update_cb),
2870 (actually_set_playing_source): update the next/previous availablility
2871 in places where it was missing. Fixes bug 335490.
2873 2006-03-24 James Livingston <doclivingston@gmail.com>
2875 * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
2876 can't find the widget
2878 * lib/rb-util.c: (rb_uri_list_parse):
2879 * lib/rb-util.h: add function for parsing a URI list into strings.
2881 * metadata/Makefile.am: make the metdata helper build when linking
2884 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
2885 g_mkdir_with_parents instead of coding our own.
2887 * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
2888 <itunes:author> over <generator>, instead of using whichever comes
2891 * rhythmdb/rhythmdb-private.h:
2892 * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
2893 field, as we don't ever check it (to detect corruption). Saves a bit
2896 2006-03-24 Jonathan Matthew <jonathan@kaolin.wh9.net>
2898 * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
2899 (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
2900 Escape '&' and '=' in the paths we get back from
2901 gnome_vfs_directory_visit. Fixes #333998 a bit more.
2903 2006-03-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
2905 * shell/rb-shell.c: (rb_shell_constructor):
2906 Issue startup notification after creating the main window, so
2907 notification is issued whether the window is visible or not.
2910 2006-03-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
2912 * sources/rb-auto-playlist-source.c: (impl_search),
2913 (rb_auto_playlist_source_query_complete_cb),
2914 (rb_auto_playlist_source_do_query):
2915 * sources/rb-library-source.c: (impl_search),
2916 (rb_library_source_query_complete_cb),
2917 (rb_library_source_do_query):
2918 Defer subset searches (where text is appended to an existing search)
2919 until the original query is complete.
2921 2006-03-21 Ryan P Skadberg <skadz@stigmata.org>
2923 patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
2925 * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
2926 (rb_refstring_get_sort_key): fixes for strict-aliasing
2928 2006-03-21 James Livingston <jrl@ids.org.au>
2930 * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
2931 importing a single file. Fixes bug 335307.
2933 2006-03-21 James Livingston <jrl@ids.org.au>
2935 * shell/Makefile.am: remove the reference to backends/ that I
2936 accidently included.
2938 2006-03-21 James Livingston <jrl@ids.org.au>
2940 patch by: Brian Cameron <brian.cameron@sun.com> to fix comilation
2941 with Forte (on Solaris). Closes bug 335318.
2945 * player/rb-recorder-gst.c:
2946 * podcast/rb-podcast-parse.c:
2947 * remote/bonobo/Makefile.am:
2948 * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
2949 * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
2950 (rhythmdb_query_model_add_entry),
2951 (rhythmdb_query_model_add_results):
2952 * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
2953 * rhythmdb/rhythmdb.h:
2954 * shell/Makefile.am:
2955 * sources/rb-playlist-source-recorder.c: (get_write_speeds),
2956 (update_speed_combobox):
2957 * sources/rb-sourcelist-model.c:
2959 2006-03-21 James Livingston <jrl@ids.org.au>
2961 Patch by: Alex Lancaster <alexl@users.sourceforge.net>
2963 * player/Makefile.am:
2964 * shell/Makefile.am: work correctly with a separate build root.
2966 2006-03-21 James Livingston <jrl@ids.org.au>
2968 * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
2971 2006-03-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
2973 * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
2974 Only create ignore entries when importing into the library.
2975 Ignore entries for files in removable media sources don't help.
2977 2006-03-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
2979 * shell/rb-source-header.c: (rb_source_header_focus_search_box):
2980 * shell/rb-source-header.h:
2981 * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
2982 * widgets/rb-search-entry.h:
2983 Add functions to make the search box grab focus.
2985 * shell/rb-shell.c: (rb_shell_cmd_view_all):
2986 Focus the search box after handling the 'view all' action.
2988 2006-03-20 Jonathan Matthew <jonathan@kaolin.wh9.net>
2990 * rhythmdb/rhythmdb.h:
2991 * rhythmdb/rhythmdb.c: (rhythmdb_init),
2992 (rhythmdb_execute_multi_stat_info_cb),
2993 (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
2994 (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
2995 (action_thread_main):
2996 Collect all the get_file_info requests on startup into one gnome-vfs
2997 job to reduce overhead and avoid contention for the rhythmdb lock.
2998 Add a new method to call when all initial query models are set up.
3000 * shell/rb-shell.c: (idle_handle_load_complete):
3001 Call rhythmdb startup complete function when we've loaded all the
3002 playlists. Fixes #334106.
3004 2006-03-20 James Livingston <jrl@ids.org.au>
3006 * widgets/rb-entry-view.c: (rb_entry_view_set_property),
3007 (rb_entry_view_selection_changed_cb),
3008 (rb_entry_view_have_complete_selection): make has_complete_selection
3009 not slow. Fixes a performance issue I added a week or so ago.
3011 2006-03-20 James Livingston <jrl@ids.org.au>
3013 * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
3014 before passing to strcmp. From bug 334559.
3016 2006-03-20 Jonathan Matthew <jonathan@kaolin.wh9.net>
3020 * lib/rb-proxy-config.c:
3021 * lib/rb-proxy-config.h:
3022 Add a new object to watch the HTTP proxy configuration and emit
3023 signals when it changes.
3025 * shell/rb-audioscrobbler.c:
3026 * shell/rb-audioscrobbler.h:
3027 Use rb-proxy-config to watch HTTP proxy configuration.
3030 Construct rb-proxy-config object on startup, and remove all
3031 audioscrobbler references.
3033 * shell/Makefile.am:
3034 * plugins/audioscrobbler/Makefile.am:
3035 * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
3036 Move all audioscrobbler code into the plugin. We should move
3037 rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
3038 point. Don't use a private data structure in the plugin, since the
3039 class definition isn't in a header file. Fixes #335091.
3041 2006-03-20 James Livingston <jrl@ids.org.au>
3043 * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
3044 don't enable Next if the source has an EOS type other than
3045 RB_SOURCE_EOF_NEXT. Fixes bug 315120.
3047 2006-03-20 James Livingston <jrl@ids.org.au>
3049 * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
3050 (rb_song_info_forward_clicked_cb): deal with there being no
3051 next/previous entry.
3053 (rb_song_info_query_model_inserted_cb),
3054 (rb_song_info_query_model_deleted_cb),
3055 (rb_song_info_query_model_reordered_cb),
3056 (rb_song_info_query_model_changed_cb): monitor the query for changes,
3057 to update the button status. Fixes bug 333293.
3059 2006-03-20 James Livingston <jrl@ids.org.au>
3061 * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
3062 caused by my last commit
3064 2006-03-20 James Livingston <jrl@ids.org.au>
3066 * bindings/python/Makefile.am:
3067 * bindings/python/rb.defs:
3068 * bindings/python/rb.override: add python bindings of RBRemoteProxy
3070 * shell/rb-shell.c: (rb_shell_constructor),
3071 (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
3072 tray-icon detection slightly
3074 2006-03-19 Steve Frécinaux <steve@istique.net>
3076 * data/ui/rhythmbox-ui.xml:
3079 Add an empty Tool Menu (hidden by default) containing placeholders for
3083 * plugins/Makefile.am:
3084 * plugins/pythonconsole/Makefile.am:
3085 * plugins/pythonconsole/pythonconsole.py:
3086 * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
3088 Python Console plugin
3090 2006-03-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
3092 * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3093 Extra step to encode '&' and '=' to match what gnome-vfs does
3095 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3096 (rhythmdb_tree_save):
3097 Increment rhythmdb xml version to 1.2, and force another uri
3098 re-canonicalisation when loading v1.1 databases.
3101 2006-03-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
3103 * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
3104 (avahi_client_init), (browse_cb):
3105 * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
3106 (avahi_client_init):
3107 Fix compilation with Avahi 0.5.x (bug #334551).
3109 2006-03-19 James Livingston <jrl@ids.org.au>
3111 Add Increase/Decrease Volume menu items and keybindings. From bug
3114 * data/ui/rhythmbox-ui.xml:
3115 * shell/rb-shell-player.c: (rb_shell_player_constructor),
3116 (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
3117 (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
3119 2006-03-19 James Livingston <jrl@ids.org.au>
3121 patch by: Mikhail Zabaluev <mhz@altlinux.org>
3123 * shell/Makefile.am: fix the link order, so that we compile with
3124 "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
3126 2006-03-19 James Livingston <jrl@ids.org.au>
3128 patch by: Adam Petaccia <adam@tpetaccia.com>
3130 * data/ui/rhythmbox-ui.xml: move preferences below "configure
3131 plugins". Fixes bug 335037.
3133 2006-03-18 James Livingston <jrl@ids.org.au>
3135 * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
3136 (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
3139 * widgets/rb-header.c: don't make artist/album info in the header the
3140 small size, since it's hard to read.
3142 2006-03-16 William Jon McCann <mccann@jhu.edu>
3144 * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
3145 (rhythmdb_finalize): Don't leak the hash tables.
3146 (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb)
3147 (rhythmdb_commit_internal): Make sure to process the deletions.
3148 (rhythmdb_entry_delete): Use a hash.
3150 * podcast/rb-podcast-manager.c: Random analness about char*
3151 (rb_podcast_manager_remove_feed): Add debugging.
3152 (rb_podcast_manager_db_entry_deleted_cb): Ditto. Check
3153 the result of gnome_vfs_unlink. Don't leak a uri.
3157 2006-03-18 James Livingston <jrl@ids.org.au>
3159 * NEWS: update NEWS file
3161 2006-03-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
3163 * rhythmdb/rhythmdb-property-model.c:
3164 (rhythmdb_property_model_prop_changed_cb):
3165 Remove entries from the hash table after processing visible->hidden
3168 2006-03-16 William Jon McCann <mccann@jhu.edu>
3170 * sources/rb-daap-source.c (connection_connected_cb)
3171 (connection_disconnected_cb): Add debug.
3172 (rb_daap_source_get_headers): Check for NULL connection.
3174 * daapsharing/rb-daap-src.c (rb_daap_src_open):
3175 Check return value of rb_daap_source_get_headers.
3179 2006-03-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
3181 * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
3182 Restore the selection after rebuilding the child model, so the
3183 selection is shown correctly after using the 'browse this
3184 album/artist/genre' menu items.
3186 2006-03-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
3188 * widgets/rb-entry-view.c: (rb_entry_view_set_property):
3189 Clear the selection before changing the active model.
3190 Fixes crash reported in bug 334549.
3192 2006-03-15 James Livingston <jrl@ids.org.au>
3194 * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
3195 (rb_tray_icon_sync_action):
3196 * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
3197 (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
3198 for non-libnotify notification bubbles. Fixes bug 331721.
3200 2006-03-15 James Livingston <jrl@ids.org.au>
3202 Add search-bar options to playlists. Fixes bug 334407.
3204 * sources/rb-auto-playlist-source.c:
3205 (rb_auto_playlist_source_class_init),
3206 (rb_auto_playlist_source_constructor),
3207 (rb_auto_playlist_source_do_query), (impl_get_search_actions),
3208 (search_action_to_prop), (search_action_changed):
3209 * sources/rb-static-playlist-source.c:
3210 (rb_static_playlist_source_class_init),
3211 (rb_static_playlist_source_constructor),
3212 (construct_query_from_selection), (impl_get_search_actions),
3213 (search_action_to_prop), (search_action_changed):
3215 2006-03-14 William Jon McCann <mccann@jhu.edu>
3217 * shell/rb-source-header.c (rb_source_header_set_source_internal):
3218 Remove broken attempt at making the search bar buttons not
3219 homogeneous. It wasn't working and was causing some UI sizing weirdness.
3221 2006-03-14 William Jon McCann <mccann@jhu.edu>
3223 * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
3224 Chain up to parent's dispose instead of finalize. Fixes #334479.
3226 2006-03-14 William Jon McCann <mccann@jhu.edu>
3228 * widgets/rb-header.c (rb_header_sync): Escape album and
3229 artist before adding to markup.
3231 2006-03-14 William Jon McCann <mccann@jhu.edu>
3233 * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
3234 * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
3235 (rb_header_set_property), (rb_header_get_property),
3237 Remove the GnomeUrl song links until we can do it properly.
3240 2006-03-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
3242 * shell/rb-source-header.c: (rb_source_header_clear_search):
3243 Remove the stored search text from the hash table, so it doesn't
3244 reappear after switching to another source and back.
3246 * sources/rb-auto-playlist-source.c: (impl_search):
3247 * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
3248 * sources/rb-static-playlist-source.c: (impl_search):
3249 Make sure all sources treat impl_search(NULL) and impl_search("") the
3250 same. Fixes #334525.
3252 2006-03-14 James Livingston <jrl@ids.org.au>
3254 Store which thread created new entries, and make rhythmdb_commit only
3255 insert the entries for the thread that calls it. This stops one thread
3256 calling rhythmdb_commit inserting entries that are half-way through
3257 construction by another thread (as happens with audio cds). From bug
3260 * rhythmdb/rhythmdb.c: (rhythmdb_init),
3261 (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
3262 (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
3263 (rhythmdb_add_timeout_commit), (rhythmdb_commit),
3264 (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
3265 (rhythmdb_process_metadata_load),
3266 (rhythmdb_process_queued_entry_set_event),
3267 (rhythmdb_prop_get_type):
3269 2006-03-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
3271 * rhythmdb/rhythmdb-query-model.c:
3272 (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
3273 (rhythmdb_query_model_finalize):
3274 Move object unrefs from _finalize into _dispose.
3276 * shell/rb-play-order.c: (rb_play_order_query_model_changed):
3277 Remove extra g_object_ref that was causing query model leaks.
3279 * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
3280 (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
3281 (genre_selection_reset_cb), (rb_iradio_source_do_query):
3282 Remove the cached 'all' query, since it doesn't really help and it
3283 makes the code more complicated. Attach the genre property view to
3284 the query model build from the search text, so only genres for
3285 stations matching the search terms are displayed. Preserve the genre
3286 selection across searches.
3288 * widgets/rb-library-browser.c:
3289 (rb_library_browser_class_init), (rb_library_browser_get_property):
3290 Add properties for the input and output models for the browser, and
3291 remove the 'changed' signal as we can just use notify::output-model.
3292 (ignore_selection_changes),
3293 (selection_restore_data_destroy), (query_complete_cb),
3294 (restore_selection): Helper functions for preserving selections across
3295 query model rebuilds.
3296 (rebuild_output_model): New function for creating a query model to
3297 use as the display model for a source using the browser.
3298 (rebuild_child_model): Add a call to rebuild_output_model, add missing
3299 g_object_unrefs, reuse the parent's query model when there's no
3300 selection, and use ignore_selection_changes and restore_selection.
3301 (rb_library_browser_set_selection): rebuild_child_model emits the
3302 changed signal, so no need to do it here.
3303 (rb_library_browser_set_model): Add missing g_object_unrefs, and use
3304 ignore_selection_changes and restore_selection.
3305 * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
3306 flag to rb_library_browser_set_model indicating whether the query is
3309 * sources/rb-static-playlist-source.c:
3310 (rb_static_playlist_source_class_init),
3311 (rb_static_playlist_source_dispose):
3312 (rb_static_playlist_source_constructor): Add an extra reference on
3313 the base model, so it doesn't vanish when we set a new display model
3314 based on a search or browser selection.
3315 (impl_search): Ensure the search_text field in the source is NULL if
3316 the search box is empty.
3317 (construct_query_from_selection),
3318 (rb_static_playlist_source_do_query): Use the query model constructed
3319 from the search as the input model for the browser.
3320 (rb_static_playlist_source_browser_changed_cb): Use the browser's
3321 output model as the query model for the source.
3323 * sources/rb-auto-playlist-source.c:
3324 (rb_auto_playlist_source_finalize): Free more stuff.
3325 (rb_auto_playlist_source_constructor),
3326 (rb_auto_playlist_source_browser_changed_cb):
3327 Update for rb-library-browser changes, use the browser's output query
3328 model as the query model for the source.
3329 (impl_reset_filters), (impl_search),
3330 (rb_auto_playlist_source_do_query),
3331 (rb_auto_playlist_source_set_query):
3332 Use the query model constructed from the search text as the input to
3333 the library browser, and when adding text to an existing search, apply
3334 the new query to the existing query model.
3336 * sources/rb-library-source.c: (rb_library_source_dispose):
3337 (rb_library_source_finalize): Chain dispose up to the parent class.
3338 (rb_library_source_constructor): Update for rb-library-browser
3340 (impl_search): Ensure search_text is NULL if the search box is empty,
3341 and use the subset flag to _do_query if text has been appended to an
3343 (search_action_changed), (impl_reset_filters):
3344 (rb_library_source_browser_changed_cb),
3345 (rb_library_source_do_query): Use the browser's output model as the
3346 query model for the source.
3348 Rework library and playlist sources to use a single query chain,
3349 and to limit the entries shown in property views based on the search
3350 terms. Fixes bug #322787.
3352 2006-03-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
3354 * configure.ac: Enable metadata helper by default, and fix a typo.
3356 2006-03-13 James Livingston <jrl@ids.org.au>
3358 Make RBRefStrings lazily create the folded and sort-key strings when
3359 they are first used. This will same some memory by not creating ones
3360 that are never used, and delaying some of the others to when the user
3361 resorts or performs a similar action. Fixes bug 332992.
3363 * rhythmdb/rb-refstring.c: (rb_refstring_free),
3364 (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
3365 (rb_refstring_get), (rb_refstring_get_folded),
3366 (rb_refstring_get_sort_key), (rb_refstring_hash),
3367 (rb_refstring_equal):
3368 * rhythmdb/rb-refstring.h:
3369 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3371 2006-03-12 William Jon McCann <mccann@jhu.edu>
3373 * data/ui/rhythmbox-ui.xml:
3374 * lib/rb-stock-icons.c: (rb_stock_icons_init):
3375 * lib/rb-stock-icons.h:
3376 * shell/rb-shell-player.c:
3377 * shell/rb-shell.c: (rb_shell_constructor):
3378 * shell/rb-source-header.c: (force_no_shadow),
3379 (ui_manager_add_widget_cb), (rb_source_header_constructor),
3380 (rb_source_header_class_init), (rb_source_header_init),
3381 (merge_source_ui_cb), (toolbar_set_homogeneous),
3382 (rb_source_header_set_source_internal),
3383 (rb_source_header_set_property), (rb_source_header_get_property),
3384 (rb_source_header_set_source), (rb_source_header_new),
3385 (rb_source_header_filter_changed_cb):
3386 * shell/rb-source-header.h:
3387 * sources/rb-library-source.c: (rb_library_source_class_init),
3388 (rb_library_source_init), (search_action_to_prop),
3389 (search_action_changed), (rb_library_source_constructor),
3390 (impl_search), (impl_reset_filters), (impl_get_search_actions),
3391 (construct_query_from_selection):
3392 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3393 (rb_podcast_source_init), (search_action_to_prop),
3394 (search_action_changed), (rb_podcast_source_constructor),
3395 (construct_query_from_selection), (impl_get_ui_actions),
3396 (impl_get_search_actions):
3397 * sources/rb-source.c: (rb_source_class_init),
3398 (rb_source_get_ui_actions), (default_get_search_actions),
3399 (rb_source_get_search_actions):
3400 * sources/rb-source.h:
3402 Add a search bar. Fixes #328618
3404 2006-03-12 James Livingston <jrl@ids.org.au>
3406 * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
3407 * shell/main.c: (main): make --no-update not stat files checking for
3408 changes, instead of doing nothing. Fixes bug 125177.
3410 2006-03-12 James Livingston <jrl@ids.org.au>
3412 * podcast/rb-podcast-manager.c:
3413 (rb_podcast_manager_thread_parse_feed):
3414 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
3415 * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
3416 having an invalid mime-type. Fixed bug 329813.
3418 2006-03-12 James Livingston <jrl@ids.org.au>
3420 Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
3421 Finally lets us close bug 309609.
3423 * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
3424 (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
3427 * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
3428 inverted logic of the editable check.
3430 2006-03-12 James Livingston <jrl@ids.org.au>
3432 Make API doc generation work again. Fixes bug 334276.
3434 * doc/reference/Makefile.am:
3435 * doc/reference/tmpl/rb-debug.sgml:
3436 * doc/reference/tmpl/rb-druid.sgml:
3437 * doc/reference/tmpl/rb-entry-view.sgml:
3438 * doc/reference/tmpl/rb-load-failure-dialog.sgml:
3439 * doc/reference/tmpl/rb-metadata.sgml:
3440 * doc/reference/tmpl/rb-shell.sgml:
3441 * doc/reference/tmpl/rhythmbox-unused.sgml:
3442 * doc/reference/tmpl/rhythmdb.sgml:
3444 2006-03-12 James Livingston <jrl@ids.org.au>
3446 * shell/rb-shell-clipboard.c:
3447 (rb_shell_clipboard_set_source_internal),
3448 (rb_shell_clipboard_sync): don't try to use the source's entry view if
3449 it doesn't have one. Fixes bug 331673.
3451 * sources/rb-source.c: (rb_source_class_init): provide a default
3452 have_url implementation that returns FALSE.
3454 2006-03-12 James Livingston <jrl@ids.org.au>
3456 * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
3457 doing a distclean. Fixes bug 334221.
3460 Patch from Alex Lancaster <alexl@users.sourceforge.net>
3462 * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
3464 2006-03-11 James Livingston <jrl@ids.org.au>
3466 * shell/rb-shell.c: (rb_shell_window_state_cb),
3467 (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
3468 update the window width/height when iconified. Stops the window
3469 changing size when it is restored from the tray, fixing bug 333824.
3471 2006-03-11 James Livingston <jrl@ids.org.au>
3473 Try to get cvs to actually add the necessary files for plugin support
3475 2006-03-11 James Livingston <jrl@ids.org.au>
3477 Add a plugin framework, with basic support for Python plugins (based
3478 on gedit's). Closes bug 330523.
3481 * shell/Makefile.am:
3482 * configure.ac: necessary autofoo.
3484 * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
3486 * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
3487 * lib/rb-file-helpers.h:
3489 * data/glade/plugins/glade:
3490 * lib/rb-preferences.h:
3492 * bindings/*: plugin framework
3495 * plugins/sample-python/*: sample plugins
3497 * plugins/audioscrobbler/*:
3498 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
3499 (rb_audioscrobbler_set_property),
3500 (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
3501 submission into a plugin. shell/audioscrobbler.* should really be
3502 moved, but that sucks with cvs.
3505 * shell/rb-shell.c: (rb_shell_constructor),
3506 (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
3507 (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
3508 (rb_shell_quit): start and stop plugin framework.
3510 2006-03-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
3512 * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
3513 (rhythmdb_entry_delete):
3514 Emit entry-deleted signals when rhythmdb_commit is called, rather than
3515 immediately, so we can't get change notifications afterwards.
3517 (rhythmdb_process_metadata_load): Add a commit after removing an
3518 entry so we can recreate it with a different type without getting
3521 2006-03-11 James Livingston <jrl@ids.org.au>
3523 * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
3524 use the drive name for audio CDs, use "Unknown CD".
3526 2006-03-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
3528 patch by: James Henstridge <james@jamesh.id.au>
3530 * sources/rb-removable-media-source.c:
3531 (rb_removable_media_source_constructor):
3532 Get the device name from the GnomeVFSDrive if possible,
3533 since this is usually a more descriptive name. Fixes #333080.
3535 2006-03-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
3537 patch by: Alex Lancaster <alexl@users.sourceforge.net>
3539 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
3540 Don't automatically download episodes when configured for manual
3541 updating. Fixes #331564.
3543 2006-03-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
3545 * rhythmdb/rhythmdb-property-model.c:
3546 (rhythmdb_property_model_iter_from_string):
3547 Return an iterator for the 'all' property when name == NULL,
3548 and don't write to *iter if iter == NULL.
3550 2006-03-06 Jonathan Matthew <jonathan@kaolin.wh9.net>
3552 * shell/rb-shell-player.c: (rb_shell_player_do_next):
3553 When switching to the play queue, still call _go_next on the normal
3554 play order, so self-emptying auto playlists ("play count = 0" etc.)
3555 don't restart once the queue is empty.
3557 * shell/rb-tray-icon.c:
3558 Change shortcut for 'show notifications' to 'o' so it doesn't clash
3561 2006-03-05 James Livingston <jrl@ids.org.au>
3563 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
3564 don't submit tracks which could not be played. Fixed bug 333013.
3566 * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
3567 tracks which could not be played.
3569 2006-03-05 James Livingston <jrl@ids.org.au>
3571 Sync musicbrainz lookup code from Sound-Juicer cvs.
3573 * metadata/sj-metadata-musicbrainz.c:
3574 (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
3575 (get_offline_track_listing), (artist_and_title_from_title),
3576 (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
3577 (mb_list_albums), (mb_get_submit_url):
3578 * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
3579 * metadata/sj-metadata.h:
3580 * metadata/sj-structures.c: (track_details_free),
3581 (album_details_free):
3582 * metadata/sj-structures.h:
3584 2006-03-05 Jonathan Matthew <jonathan@kaolin.wh9.net>
3587 * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
3588 (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
3589 (rb_profiler_reset), (rb_profiler_free):
3590 Filter debug output by matching the file and function names against a
3593 * shell/main.c: (main):
3594 Add -D command line option to specify the debug match string.
3596 * shell/rb-removable-media-manager.c:
3597 (rb_removable_media_manager_mount_volume):
3598 Fix some typos in debug output.
3600 2006-03-03 James Livingston <jrl@ids.org.au>
3602 * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
3603 * shell/rb-shell.c: (rb_shell_load_uri):
3604 * sources/rb-generic-player-source.c: (visit_playlist_dirs):
3605 * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
3606 use the new "recurse" property from totem-plparser, if present. Stop
3607 RB hanging for new users who don't have a 'net connection. From bug
3610 2006-03-02 Bastien Nocera <hadess@hadess.net>
3612 * shell/rb-removable-media-manager.c:
3613 (rb_removable_media_manager_mount_volume):
3614 * sources/Makefile.am:
3615 * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
3616 Fix missing files on make dist (conditional files), only build the
3617 N770 support if there's HAL support, as we have no other ways of
3620 2006-03-03 James Livingston <jrl@ids.org.au>
3622 * shell/rb-shell-clipboard.c:
3623 (rb_shell_clipboard_set_source_internal): really fix it this time.
3626 2006-03-03 James Livingston <jrl@ids.org.au>
3628 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
3629 with the idle function not being removed.
3631 2006-03-02 James Livingston <jrl@ids.org.au>
3633 * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
3634 * widgets/rb-entry-view.h: add function for determining whether all
3635 entries are selected.
3637 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
3638 (rb_shell_clipboard_set_source_internal),
3639 (rb_shell_clipboard_finalize),
3640 (rb_shell_clipboard_idle_poll_deletions),
3641 (rb_shell_clipboard_entryview_changed_cb),
3642 (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
3643 removals, to update things.
3645 (rb_shell_clipboard_sync): update the Select All and Select None
3646 sensitivity, based on what is selected. Fixed bug 172220.
3648 2006-03-02 James Livingston <jrl@ids.org.au>
3650 * widgets/rb-library-browser.c: (rebuild_child_model): save and
3651 restore the selections of later models. This means that selecting the
3652 artist for the selected album does not reset the album selection.
3654 2006-03-02 James Livingston <jrl@ids.org.au>
3656 * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
3657 Stops it emitting critical warnings.
3659 2006-03-02 James Livingston <jrl@ids.org.au>
3661 * lib/rb-file-helpers.c: (rb_uri_append_uri):
3662 * lib/rb-file-helpers.h: Add uri concatenation function for when the
3663 second fragment is already escaped.
3665 * sources/rb-generic-player-source.c:
3666 (rb_generic_player_source_class_init),
3667 (rb_generic_player_source_constructor), (impl_show_popup),
3668 (rb_generic_player_source_load_playlists),
3669 (rb_generic_player_source_transform_playlist_uri),
3670 (handle_playlist_entry_cb), (visit_playlist_dirs),
3671 (default_load_playlists), (default_transform_playlist_uri):
3672 * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
3673 the device. Allow subclasses to override the playlist loading, and
3674 (playlist uri)->(actual uri) mapping. A lot of devices which have
3675 playlists won't work right now, but people will see them and hopefully
3678 * sources/rb-psp-source.c: (rb_psp_source_class_init),
3679 (rb_psp_source_create_playlists): Adapt the PSP for the above change
3681 * sources/Makefile.am:
3682 + sources/rb-nokia770-source.{c,h}:
3683 * shell/rb-removable-media-manager.c:
3684 (rb_removable_media_manager_mount_volume): Add support for reading
3685 playlists of Nokia 770s.
3687 2006-03-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
3689 * data/glade/podcast-properties.glade:
3690 * podcast/rb-podcast-properties-dialog.c:
3691 (rb_podcast_properties_dialog_init),
3692 (rb_podcast_properties_dialog_update),
3693 (rb_podcast_properties_dialog_update_location),
3694 (rb_podcast_properties_dialog_update_download_location):
3695 Add 'download location' field showing the path to the downloaded copy.
3698 2006-03-01 Bastien Nocera <hadess@hadess.net>
3700 * configure.ac: simplify HAVE_HAL define
3702 2006-03-01 Bastien Nocera <hadess@hadess.net>
3705 * lib/rb-file-helpers.c: (rb_uri_append_path):
3706 * lib/rb-file-helpers.h:
3707 * shell/rb-removable-media-manager.c:
3708 (rb_removable_media_manager_mount_volume):
3709 * sources/Makefile.am:
3710 * sources/rb-ipod-source.c:
3711 * sources/rb-psp-source.*:
3712 Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
3713 support, additional HAL < 0.5 support by yours truly (Closes: #332337)
3715 2006-03-02 James Livingston <jrl@ids.org.au>
3717 * shell/rb-shell-player.c: (rb_shell_player_set_property),
3718 (rb_shell_player_play), (rb_shell_player_jump_to_current),
3719 (swap_playing_source), (rb_shell_player_playpause),
3720 (rb_shell_player_sync_buttons), (actually_set_playing_source),
3721 (rb_shell_player_set_playing_source_internal): check for the entry
3722 view being NULL before trying to use it. Lets us support sources which
3723 don't have an entry view. From bug 331673.
3725 2006-03-01 Bastien Nocera <hadess@hadess.net>
3727 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
3728 use gnome_vfs_read_entire_file with a URI, not a local filename
3730 2006-03-01 James Livingston <jrl@ids.org.au>
3732 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
3733 first-seen and last-seen when merging duplicate entries.
3735 2006-03-01 Jonathan Matthew <jonathan@kaolin.wh9.net>
3737 * widgets/rb-property-view.c: (rb_property_view_set_search_func):
3738 * widgets/rb-property-view.h: New function, allowing custom
3739 interactive search functions for property views.
3741 * sources/rb-podcast-source.c:
3742 (feed_select_change_cb): Only do a new query when the selection
3744 (rb_podcast_source_constructor),
3745 (rb_podcast_source_feed_title_search_func):
3746 Interactive search function for podcast feed titles. Fixes #327451.
3748 2006-03-01 James Livingston <jrl@ids.org.au>
3750 * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
3751 the uri in the callback, since it causes symbols to not be escaped.
3754 * data/ui/rhythmbox-ui.xml:
3755 * sources/rb-import-errors-source.c:
3756 (rb_import_errors_source_class_init),
3757 (rb_import_errors_source_constructor), (impl_get_status),
3758 (impl_move_to_trash),
3759 (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
3760 import errors source
3762 * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
3763 (rb_entry_view_append_column): unescape the URI for display.
3765 2006-03-01 James Livingston <jrl@ids.org.au>
3767 * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3768 (rhythmdb_process_metadata_load): fix crashers when the vfs get info
3771 2006-02-28 Dennis Cranston <dennis_cranston@yahoo.com>
3773 * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
3774 * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
3775 * sources/rb-play-queue-source.c:
3776 (rb_play_queue_source_constructor), (rb_play_queue_source_new),
3777 (rb_play_queue_source_update_count): Use "Play Queue" instead
3782 2006-03-01 James Livingston <jrl@ids.org.au>
3784 * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
3787 2006-03-01 James Livingston <jrl@ids.org.au>
3789 * daapsharing/rb-daap-mdns-browser-howl.c:
3790 (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
3791 * daapsharing/rb-daap-mdns-publisher-avahi.c:
3792 (rb_daap_mdns_publisher_class_init),
3793 (rb_daap_mdns_publisher_finalize):
3794 * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
3795 * player/rb-recorder-gst.c: (rb_recorder_class_init),
3796 (rb_recorder_finalize):
3797 * rhythmdb/rhythmdb-query-model.c:
3798 (rhythmdb_query_model_constructor):
3799 * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
3800 * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
3801 * sources/rb-playlist-source-recorder.c:
3802 (rb_playlist_source_recorder_style_set),
3803 (rb_playlist_source_recorder_class_init),
3804 (rb_playlist_source_recorder_finalize):
3805 * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
3806 other classes in the same way, so they don't break when derived from.
3808 2006-03-01 James Livingston <jrl@ids.org.au>
3810 * sources/rb-generic-player-source.c:
3811 (rb_generic_player_source_constructor): don't get the parent class in
3812 a dumb way, and it breaks when the class is derived from.
3814 2006-02-28 Abel Cheung <maddog@linuxhall.org>
3816 * configure.ac: Added "zh_HK" to ALL_LINGUAS.
3818 2006-03-01 James Livingston <jrl@ids.org.au>
3820 * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
3821 not work in glib 2.8 systems.
3823 2006-03-01 James Livingston <jrl@ids.org.au>
3825 * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
3826 prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
3829 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
3830 (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
3831 podcasts on ion-local places
3833 * rhythmdb/gsequence.c: (g_sequence_node_new),
3834 (g_sequence_node_free): use gslice if we are building against glib
3837 * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
3838 local files too, so it doesn't block.
3840 2006-02-28 James Livingston <jrl@ids.org.au>
3842 * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
3843 file:// prefix, instead of using gnome_vfs_uri_is_local, since that
3844 stats the file. Stops the UI blocking while stats are done.
3846 2006-02-28 James Livingston <jrl@ids.org.au>
3848 * sources/rb-static-playlist-source.c:
3849 (rb_static_playlist_source_class_init),
3850 (rb_static_playlist_source_constructor), (impl_reset_filters),
3851 (impl_get_property_views), (impl_browser_toggled),
3852 (rb_static_playlist_source_do_query),
3853 (rb_static_playlist_source_browser_changed_cb): add browsers to static
3854 playlists. From bug 118862.
3856 * sources/rb-play-queue-source.c:
3857 (rb_play_queue_source_class_init): disable them for the play queue.
3859 2006-02-27 Dennis Cranston <dennis_cranston@yahoo.com>
3861 * data/glade/library-prefs.glade: Add a mnemonic.
3862 * sources/rb-library-source.c:
3863 (rb_library_source_location_button_clicked_cb): Use title
3864 capitalization for window title.
3866 2006-02-28 James Livingston <jrl@ids.org.au>
3868 * sources/rb-auto-playlist-source.c:
3869 (construct_query_from_selection): don't create a subquery for only one
3870 criteria, as it's a silly effifiency degredation.
3872 2006-02-28 James Livingston <jrl@ids.org.au>
3874 * rhythmdb/rhythmdb.h:
3875 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3876 (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
3879 * rhythmdb/rhythmdb.c: (set_props_from_metadata),
3880 (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
3881 (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
3882 (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
3883 IGNORE (e.g. known video stream) create an entry of the Ignore type.
3884 This will make importing files quicker as we don't need to try files
3885 that we know are not going to be interesting - especially useful when
3886 using the library watching facility.
3890 2006-02-28 James Livingston <jrl@ids.org.au>
3892 * shell/rb-shell.c: (rb_shell_constructor),
3893 (rb_shell_set_visibility): fix browser and source-list pane
3894 positioning, that I broke with the "remember visibility" patch.
3896 2006-02-27 Jonathan Matthew <jonathan@kaolin.wh9.net>
3898 * metadata/rb-metadata-dbus-service.c: (main):
3899 Change argument handling so you can use --debug with the --load and
3900 --can-save test modes.
3901 * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
3902 Use a separate GMainContext, not the default one. Probably fixes
3905 2006-02-27 James Livingston <jrl@ids.org.au>
3907 * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
3908 first starting up. Fixes bug 330342.
3910 2006-02-27 James Livingston <jrl@ids.org.au>
3912 * sources/rb-sourcelist-model.c:
3913 (rb_sourcelist_model_set_dnd_targets):
3914 * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
3915 COPY action for draging sources and tracks, not MOVE as well. Stops
3916 Nautilus moving file away, and fixes bug 332488.
3918 2006-02-27 James Livingston <jrl@ids.org.au>
3920 patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
3922 * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
3923 and Last Played metadata off iPods. Closes bug 324648.
3925 2006-02-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
3927 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
3928 Disable audioscrobbler when run with the --no-registration flag, since
3929 last.fm doesn't allow multiple concurrent clients per user.
3931 2006-02-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
3933 * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
3934 Rename renamable sources when F2 is pressed when the sourcelist has
3935 focus. Fixes #330700.
3937 2006-02-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
3939 * shell/rb-playlist-manager.c: (cleanup_edit_data),
3940 (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
3941 (rb_playlist_manager_cmd_edit_automatic_playlist):
3942 Fix various crashes when deleting auto playlists previously edited
3943 by disconnecting signal handlers when the query editor is closed or
3944 the playlist is deleted.
3946 2006-02-24 Jonathan Matthew <jonathan@kaolin.wh9.net>
3948 * metadata/rb-metadata-gst.c: Correct comment referring to the now
3949 removed load failure dialog, and actually use the friendly file type
3950 name in error messages.
3952 2006-02-24 James Livingston <jrl@ids.org.au>
3954 patch by: Baptiste Mille-Mathias <bmm80@free.fr>
3956 * sources/rb-library-source.c:
3957 (rb_library_source_location_button_clicked_cb),
3958 (rb_library_source_preferences_sync),
3959 (rb_library_source_library_location_cb): convert the library URI to
3960 for display, and back again. Fixes bug 332356.
3962 2006-02-23 James Livingston <jrl@ids.org.au>
3964 * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
3965 (rhythmdb_process_metadata_load), (monitor_subdirectory),
3966 (rhythmdb_sync_library_location): don't monitor files at all if
3967 watching is turned off. From bug 323096.
3969 2006-02-23 James Livingston <jrl@ids.org.au>
3971 * data/rhythmbox.schemas:
3972 * lib/rb-preferences.h:
3973 * shell/rb-shell.c: (rb_shell_constructor),
3974 (rb_shell_set_visibility): remember main window visibility between
3975 sessions. Fixes bug 127320.
3977 2006-02-23 James Livingston <jrl@ids.org.au>
3979 * data/glade/library-prefs.glade:
3980 * sources/rb-library-source.c: (impl_get_config_widget),
3981 (rb_library_source_location_button_clicked_cb),
3982 (rb_library_source_preferences_sync),
3983 (rb_library_source_library_location_cb),
3984 (rb_library_source_watch_toggled_cb): change the library-location
3985 widgets from the file-chooser drop menu to a text entry and Browse
3986 button. This is needed to prevent the location from chaning if the
3987 directory cannot be found. Fixes bug 328414.
3989 2006-02-23 James Livingston <jrl@ids.org.au>
3991 * sources/rb-podcast-source.c: add icon to the Cancel Download menu
3992 item. Fixes bug 329042.
3994 2006-02-23 James Livingston <jrl@ids.org.au>
3996 patch by: Alex Lancaster <alexl@users.sourceforge.net>
3998 * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
3999 comma in some podcast feeds. Fixes bug 332194.
4001 2006-02-23 James Livingston <jrl@ids.org.au>
4003 * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
4006 * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
4007 the internal audio cd URIs from "cdda://device:track" to
4008 "cdda://track#device" as it makes processing much easier.
4010 * shell/rb-shell-player.c: (rb_shell_player_open_location):
4011 * player/rb-player-gst.c: don't have the shell close the player
4012 between songs, as doing that should be backend-specific. Make the
4013 gstreamer backend close before starting a new track, unless the old
4014 and new ones are both tracks on the same audio cd. Just seek in that
4017 2006-02-23 Jonathan Matthew <jonathan@kaolin.wh9.net>
4019 * doc/reference/rhythmbox.types: Fix doc build a bit more.
4021 2006-02-23 Jonathan Matthew <jonathan@kaolin.wh9.net>
4023 * configure.ac: Enable more warnings in my stupid setup too.
4024 * shell/rb-shell.c: Fix compile errors from last commit. Fixes
4027 2006-02-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
4029 * sources/rb-missing-files-source.h,
4030 * sources/rb-missing-files-source.c,
4031 * sources/rb-import-errors-source.h,
4032 * sources/rb-import-errors-source.c:
4033 Add library meta-sources, showing missing files and import errors.
4034 Fixes #167763, #142322.
4036 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
4037 * sources/rb-sourcelist-model.h:
4038 * sources/rb-sourcelist.c: (rb_sourcelist_append),
4039 (match_source_to_iter), (rb_sourcelist_source_to_iter),
4040 (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
4041 (visibility_notify_cb):
4042 Store source visibility in the sourcelist model, so we can determine
4043 child source counts correctly and get the sourcelist expander column
4046 * widgets/rb-entry-view.h:
4047 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4048 (rb_entry_view_append_column), (set_column_visibility):
4049 Allow the creator of the entry view to specify which columns are
4052 * sources/rb-source.h:
4053 * sources/rb-source.c: (_autohide_update_visibility),
4054 (_rb_autohide_source_row_deleted_cb),
4055 (_rb_autohide_source_row_inserted_cb),
4056 (_rb_source_hide_when_empty):
4057 Allow sources to automatically hide themselves when empty.
4059 * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
4060 * sources/rb-library-source.c: (rb_library_source_constructor):
4061 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4062 * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
4063 Explicitly specify which columns are always visible.
4065 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4066 (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
4067 Remove load error signal handling and load failure dialog.
4068 Create missing files and import errors sources for the library.
4070 * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
4071 (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
4072 Create DB entries for import errors rather than emitting the 'load
4073 error' signal; mark loaded entries visible.
4074 (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
4075 (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
4076 (rhythmdb_prop_get_type): Store string form of last seen time for
4077 hidden entries, since it's used in the missing files source.
4078 (rhythmdb_entry_import_error_get_type):
4079 Add entry type for import errors.
4080 (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
4081 (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
4082 (rhythmdb_entry_move_to_trash_set_error),
4083 (rhythmdb_entry_move_to_trash):
4084 Correct spelling, add missing rhythmdb_commit.
4085 * rhythmdb/rhythmdb.h:
4086 Add import error entry type and last seen string property.
4087 * rhythmdb/rhythmdb-private.h: Add string form of last seen time.
4088 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4089 (save_entry): Ignore string form of 'last seen' property.
4091 * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
4092 Don't try to play hidden entries or import error entries.
4094 * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
4095 * sources/Makefile.am: Add meta-source files
4096 * widgets/Makefile.am: Remove load failure dialog files
4098 2006-02-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
4100 update by: Baptiste Mille-Mathias <bmm80@free.fr>
4101 * help/C/rhythmbox.xml: add a 'getting started' section, and fix a
4102 few bits and pieces.
4104 2006-02-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
4106 * metadata/test-metadata.c: (load_metadata_cb):
4107 Fix compile warning for ignoring return value from getcwd, #332064.
4109 2006-02-21 James Livingston <jrl@ids.org.au>
4111 * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
4112 (edit_auto_playlist_deleted_cb),
4113 (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
4114 playlist editor non-modal. Fixes bug 320030.
4116 2006-02-21 James Livingston <jrl@ids.org.au>
4118 * shell/rb-shell.c: (rb_shell_constructor):
4119 * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
4120 (rb_header_set_show_artist_album):
4121 * widgets/rb-song-display-box.c: (rb_song_display_box_init),
4122 (rb_song_display_box_sync): make the queue sidebar and song display
4123 not get affected by gtk_widget_show_all. Fixes bug 332001.
4125 2006-02-21 James Livingston <jrl@ids.org.au>
4127 Patch by: Alex Lancaster <alexl@users.sourceforge.net>
4129 * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
4130 feeds which use timezone names instead of offsets. Doesn't actually
4131 parse the timezone name since they are not standardised. Fixes bug
4134 2006-02-21 James Livingston <jrl@ids.org.au>
4136 * help/C/figures/rb-notification-area.png:
4137 * help/C/figures/rb-sidebar.png:
4138 * help/C/quick-reference.xml: remove obsolete files from CVS.
4140 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
4141 * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
4142 (rhythmdb_query_free), (rhythmdb_query_serialize),
4143 (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
4144 * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
4146 * widgets/rb-query-creator-properties.c: add prefix and suffix
4147 (escapedStringCriteriaGetWidgetData): use better escaping, so it
4148 doesn't escape the ':' separator in uris.
4150 2006-02-21 James Livingston <jrl@ids.org.au>
4152 * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
4155 2006-02-21 James Livingston <jrl@ids.org.au>
4157 * NEWS: update with recent changes
4159 2006-02-21 James Livingston <jrl@ids.org.au>
4161 * shell/rb-shell.c: (rb_shell_constructor),
4162 (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
4163 * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
4164 (rb_druid_browse_clicked_cb), (do_response):
4165 * widgets/rb-druid.h: Make running the druid not block RBShell
4166 starting up. This is required so that bonobo registration doesn't time
4167 out. Fixed bug 318766.
4169 2006-02-21 James Livingston <jrl@ids.org.au>
4171 * rhythmdb/rhythmdb-property-model.c:
4172 (rhythmdb_property_model_entry_removed_cb): remove the entry from the
4173 hash table after using it, not before. Fixed bug 331922.
4175 2006-02-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
4177 * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
4178 (rb_shell_view_queue_as_sidebar_changed_cb):
4179 When playing from the queue, only attempt to highlight the queue
4180 source in the source list if it's actually visible there. Otherwise,
4181 leave the preempted source highlighted. Mostly fixes #330819.
4183 2006-02-20 James Livingston <jrl@ids.org.au>
4185 * rhythmdb/rhythmdb-property-model.c:
4186 (rhythmdb_property_model_row_inserted_cb),
4187 (rhythmdb_property_model_prop_changed_cb),
4188 (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
4189 store the roperty value in the entry-mapping table, so that receiving
4190 the remove signal from a query model before we get notified of a
4191 change doesn't cause a crash. Fixes bug 331770.
4193 2006-02-20 James Livingston <jrl@ids.org.au>
4195 * data/ui/rhythmbox-ui.xml:
4196 * sources/rb-play-queue-source.c:
4197 (rb_play_queue_source_class_init),
4198 (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
4199 playlist things in the queue popup source. From 330490.
4201 * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
4204 2006-02-20 James Livingston <jrl@ids.org.au>
4206 * widgets/rb-song-info.c: (rb_song_info_response_cb),
4207 (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
4208 attempt to sync data for non-editable entries when using
4209 next/previous. Don't write our Year if it wasn't changed. Fixes bug
4212 2006-02-19 Luca Ferretti <elle.uca@libero.it>
4219 * help/Makefile.am: ported to gnome-doc-utils
4220 * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
4221 * help/ChangeLog: added, for translators
4222 * help/C/rhytmbox-C.omf: removed, no longer used
4223 Know issue: figures are installed, but some are not showed; manual
4224 description added, but not showed in Yelp while browsing. I'll
4225 investigate, maybe are needed some little changes to
4226 help/C/rhythmbox.xml.
4228 2006-02-20 James Livingston <jrl@ids.org.au>
4230 * data/ui/rhythmbox-ui.xml:
4231 * help/C/figures/rb-adv.png:
4232 * help/C/figures/rb-asst-finish.png:
4233 * help/C/figures/rb-asst-library.png:
4234 * help/C/figures/rb-asst-start.png:
4235 * help/C/figures/rb-basic.png:
4236 * help/C/figures/rb-browser.png:
4237 * help/C/figures/rb-context-menu.png:
4238 * help/C/figures/rb-empty.png:
4239 * help/C/figures/rb-full-play.png:
4240 * help/C/figures/rb-group-auto.png:
4241 * help/C/figures/rb-group-create.png:
4242 * help/C/figures/rb-group.png:
4243 * help/C/figures/rb-imported.png:
4244 * help/C/figures/rb-iradio-add.png:
4245 * help/C/figures/rb-iradio.png:
4246 * help/C/figures/rb-nextprev.png:
4247 * help/C/figures/rb-nobrowse-play.png:
4248 * help/C/figures/rb-notification-area-menu.png:
4249 * help/C/figures/rb-player.png:
4250 * help/C/figures/rb-prefs-general.png:
4251 * help/C/figures/rb-prefs-ipod.png:
4252 * help/C/figures/rb-prefs-library.png:
4253 * help/C/figures/rb-prefs.png:
4254 * help/C/figures/rb-repeat.png:
4255 * help/C/figures/rb-search.png:
4256 * help/C/figures/rb-shuffle.png:
4257 * help/C/figures/rb-stats.png:
4258 * help/C/figures/rb-toolbar-editor.png:
4259 * help/C/figures/rb-volume-mute.png:
4260 * help/C/figures/rhythmbox-group.png:
4261 * help/C/figures/rhythmbox-tray-icon.png:
4262 * help/C/user-guide.xml: remove old stuff from cvs
4264 2006-02-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
4266 * metadata/rb-metadata-dbus-client.c:
4267 * metadata/rb-metadata-dbus-service.c:
4268 * metadata/rb-metadata-dbus.c:
4269 * metadata/rb-metadata-dbus.h:
4270 New files, adding an external service for reading and writing
4271 metadata, and an implementation of the RBMetaData interface that uses
4272 dbus to communicate with it.
4274 * metadata/rb-metadata.h,
4275 * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
4276 (rb_metadata_get_field_name): Put metadata details in a static array
4277 instead of using a hash table, and add a field for language code (not
4279 * metadata/rb-metadata-gst.c: Updates for changes in
4280 rb-metadata-common.c, fix signal handler closure leak for the typefind
4281 element's have-type signal, and add XML to the list of types we ignore.
4282 * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
4283 Update for changes to rb_metadata_get_field_type
4284 (rhythmdb_entry_allocate): Don't make songs hidden initially, as
4285 rhythmdb_commit_internal do that for non-local files. Saves us a stat
4288 * configure.ac: Add --enable-metadata-helper option (not enabled by
4289 default) to use the external metadata service
4290 * metadata/Makefile.am: Add new files
4291 * metadata/test-metadata.c: Test program for the metadata service
4295 2006-02-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
4297 * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
4298 * sources/rb-podcast-source.c: (impl_get_ui_actions),
4299 (rb_podcast_source_cmd_new_podcast):
4300 Move 'new podcast' action to the podcast source, and add it to the
4301 toolbar. Fixes #331562.
4303 2006-02-19 James Livingston <jrl@ids.org.au>
4305 * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
4306 menus, and away from move-to-trash. Fixes bug 331013.
4308 2006-02-19 James Livingston <jrl@ids.org.au>
4310 * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
4311 when deleting last entry. Fixes bug 331712.
4313 2006-02-18 Jonathan Matthew <jonathan@kaolin.wh9.net>
4315 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
4316 (rb_entry_view_button_press_cb):
4317 * widgets/rb-entry-view.h: Emit show-popup when right clicked
4318 anywhere, and include a flag indicating whether the click was over an
4321 * sources/rb-playlist-source.c: (default_show_entry_view_popup),
4322 (rb_playlist_source_songs_show_popup_cb):
4323 * sources/rb-playlist-source.h:
4324 Add the 'over entry' flag to the class show popup method, and in the
4325 default handler, ignore right clicks when not over an entry.
4327 * sources/rb-iradio-source.c:
4328 (rb_iradio_source_songs_show_popup_cb):
4329 * sources/rb-library-source.c:
4330 (rb_library_source_songs_show_popup_cb):
4331 * sources/rb-podcast-source.c:
4332 (rb_podcast_source_songs_show_popup_cb):
4333 Show the source list popup menu when right clicked while not over an
4336 * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
4337 For the queue sidebar, always display the popup so the 'clear queue'
4338 action is available regardless of where you click. For the queue
4339 source, only display the popup when right clicked over an entry.
4342 2006-02-19 James Livingston <jrl@ids.org.au>
4344 * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
4345 * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
4346 entry view, when we're not even using it
4348 * rhythmdb/rhythmdb-property-model.c:
4349 (rhythmdb_property_model_row_inserted_cb): use the query-model utility
4350 function, rather than a copy of the code.
4352 * shell/rb-playlist-manager.c:
4353 (rb_playlist_manager_playlist_row_inserted_cb),
4354 (rb_playlist_manager_set_source_internal),
4355 (rb_playlist_manager_playlist_entries_changed): use the query-model
4356 directly, rather than the source's entry view.
4358 * shell/rb-source-header.c: don't use the entry view, just select the
4361 2006-02-18 James Livingston <jrl@ids.org.au>
4363 update by: Baptiste Mille-Mathias <bmm80@free.fr>
4365 * help/C/figures/rb-iradio-main.png:
4366 * help/C/figures/rb-notification-area-menu.png:
4367 * help/C/figures/rb-notification-window.png:
4368 * help/C/figures/rb-notification-zone.png:
4369 * help/C/figures/rb-podcast-main.png:
4370 * help/C/figures/rb-statusbar.png:
4371 * help/C/figures/rb-toolbar-prevplaynext.png:
4372 * help/C/figures/rb-toolbar-repeat.png:
4373 * help/C/figures/rb-toolbar-shuffle.png:
4374 * help/C/figures/rb-toolbar.png:
4375 * help/C/figures/rb-volume-changer.png:
4376 * help/C/figures/rb-window-small.png:
4377 * help/C/figures/rb-window.png:
4378 * help/C/rhythmbox.xml: Update user guide with some of the changes
4379 that have occurred after 0.8.8. From bug 314001.
4381 2006-02-18 Jonathan Matthew <jonathan@kaolin.wh9.net>
4383 * rhythmdb/rhythmdb-query-results.h,
4384 rhythmdb/rhythmdb-query-results.c:
4385 New interface for objects that accept query results from RhythmDB.
4387 * rhythmdb/rhythmdb-query-model.c:
4388 (rhythmdb_query_model_query_results_init),
4389 (rhythmdb_query_model_set_query),
4390 (rhythmdb_query_model_add_results),
4391 (rhythmdb_query_model_query_complete):
4392 * rhythmdb/rhythmdb-query-model.h:
4393 Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
4395 * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
4396 (rhythmdb_tree_do_full_query):
4397 * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
4398 (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
4399 (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
4400 (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
4401 * rhythmdb/rhythmdb.h:
4402 Pass query results through the RhythmDBQueryResults interface, rather
4403 than directly to a RhythmDBQueryModel.
4405 * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
4406 (rb_podcast_manager_db_entry_deleted_cb):
4407 * sources/rb-auto-playlist-source.c:
4408 (rb_auto_playlist_source_do_query),
4409 (rb_auto_playlist_source_set_query):
4410 * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
4411 * sources/rb-library-source.c: (rb_library_source_constructor),
4412 (rb_library_source_do_query):
4413 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
4414 (rb_podcast_source_do_query):
4415 * rhythmdb/rhythmdb-property-model.c:
4416 (rhythmdb_property_model_drag_data_get):
4417 Cast the query model to RhythmDBQueryResults when passing to one of
4418 the RhythmDB query methods.
4420 * rhythmdb/Makefile.am: Add new files.
4422 2006-02-18 James Livingston <jrl@ids.org.au>
4424 * data/ui/rhythmbox-ui.xml:
4425 * shell/rb-playlist-manager.c:
4426 (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
4427 "queue playlist" item to source context menu. Fixes bug 330490.
4429 2006-02-18 James Livingston <jrl@ids.org.au>
4431 * data/glade/general-prefs.glade:
4432 * shell/rb-shell-preferences.c:
4433 (rb_shell_preferences_column_check_changed_cb),
4434 (rb_shell_preferences_sync):
4435 * sources/rb-library-source.c: (rb_library_source_constructor):
4436 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
4437 * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
4438 (rb_entry_view_append_column): Add a "quality" colume which indicates
4439 the bitrate of media. Part of bug 167659.
4441 2006-02-18 James Livingston <jrl@ids.org.au>
4443 * shell/rb-play-order.c: (do_next_idle_cb),
4444 (default_playing_entry_removed): move to next track when playing entry
4445 is deleted. Fixes bug 131150.
4447 * shell/rb-shell-player.h: remove ancient stuff
4449 2006-02-17 William Jon McCann <mccann@jhu.edu>
4451 * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal)
4452 (rb_shell_clipboard_set_property):
4453 * shell/rb-shell.c (rb_shell_sync_party_mode):
4454 Trigger a resync of the clipboard properties when changing party mode.
4456 2006-02-17 William Jon McCann <mccann@jhu.edu>
4458 * sources/rb-static-playlist-source.c: Fix includes.
4460 * sources/rb-source.c (rb_source_can_rename)
4461 (rb_source_can_delete, rb_source_can_move_to_trash):
4462 Return FALSE if in party mode.
4464 * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
4465 Replace fullscreen with party mode.
4466 (rb_shell_window_delete_cb): Don't quit if in party mode.
4467 (rb_shell_view_party_mode_changed_cb): Setup party mode.
4468 (window_state_event_cb): Try to deiconify shell when iconified
4470 (rb_shell_sync_party_mode): Sync party mode properties.
4471 Currently, that means [de]sensitizing close, quit, and small-display,
4472 going into fullscreen mode with window stuck and kept above, and
4473 toggling queue-only for the shell player.
4474 (rb_shell_sync_smalldisplay): Sensitive party mode.
4475 (rb_shell_get_party_mode): Get party mode setting.
4477 * shell/rb-shell-player.c (rb_shell_player_class_init)
4478 (rb_shell_player_set_property, rb_shell_player_get_property):
4479 Add queue-only property.
4480 (rb_shell_player_entry_activated_cb): If in party mode
4481 only queue the entry on activation.
4483 * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
4484 Break out from set_properties. Desensitize some actions when
4486 (rb_playlist_manager_set_property): Break out set_source_internal.
4488 * data/rhythmbox.schemas: Remove fullscreen mode.
4490 * data/ui/rhythmbox-ui.xml: Replace fullscreen
4491 action with party mode.
4493 Partial fix for #323933
4495 2006-02-17 James Livingston <jrl@ids.org.au>
4498 * shell/rb-removable-media-manager.c:
4499 (get_nautilus_burn_drive_for_path),
4500 (rb_removable_media_manager_playing_uri_changed_cb): only use
4501 nautilus_burn_drive_new_by_path when it exists, fall back to iterating
4502 over the list when it doesn't.
4504 2006-02-17 James Livingston <jrl@ids.org.au>
4506 * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
4507 (rb_iradio_source_first_time_changed): Only do the import on the
4508 first change from FALSE to TRUE.
4510 * sources/rb-library-source.c:
4511 (rb_library_source_preferences_sync),
4512 (rb_library_source_library_location_cb): set the first-run done flag
4513 if the user presses close and then sets their watches library
4514 location. Fixes bug 325997.
4516 2006-02-17 James Livingston <jrl@ids.org.au>
4518 * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
4519 removable media manager gobject properties
4521 * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
4522 (split_drive_from_cdda_uri),
4523 (rb_removable_media_manager_playing_uri_changed_cb),
4524 (rb_removable_media_manager_load_media): stop polling a cd drive
4525 when we are playing from it. Part of bug 330716.
4527 2006-02-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
4529 * rhythmdb/rhythmdb-query-model.c:
4530 (rhythmdb_query_model_set_property),
4531 (rhythmdb_query_model_finalize),
4532 (rhythmdb_query_model_base_entry_removed):
4533 Propagate entry removal from base models out to attached property
4534 models. Fixes the rest of #331165.
4536 2006-02-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
4538 * rhythmdb/rhythmdb-property-model.c:
4539 (rhythmdb_property_model_row_inserted_cb),
4540 (rhythmdb_property_model_prop_changed_cb),
4541 (rhythmdb_property_model_insert):
4542 Don't store NULL as a hash table value if we want to use
4543 g_hash_table_lookup to check if a key exists, and get the checks for
4544 how and whether to handle entry changes the right way around.
4545 Fixes #331211 and half of #331165.
4547 2006-02-16 James Livingston <jrl@ids.org.au>
4549 * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
4550 the audio cd's TOC in a separate thread, so it doesn't block the UI.
4553 2006-02-16 James Livingston <jrl@ids.org.au>
4555 * widgets/rb-library-browser.c: (reset_view_cb): make View All
4556 actually reset the browsers.
4558 2006-02-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
4560 * widgets/eggtrayicon.c: (egg_tray_icon_notify):
4561 Escape the strings we pass into libnotify so we don't get blank
4562 notifications when the song name contains '&' etc. Fixes #330784.
4564 2006-02-16 James Livingston <jrl@ids.org.au>
4566 * shell/rb-source-header.c: (rb_source_header_sync_control_state):
4567 enable "View All" when there is only a search box and no browser.
4570 2006-02-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
4572 * data/ui/rhythmbox-ui.xml: Add 'clear queue' to the sidebar queue
4573 popup menu, which I forgot to commit with the patch for bug #330014.
4575 2006-02-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
4577 * shell/rb-shell-player.c: (open_location_thread):
4578 Sync button and entry view state once we've started the player, so the
4579 entry view gets into the playing state for iradio.
4581 2006-02-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
4583 * shell/rb-shell-player.c: (open_location_thread):
4584 Take GDK lock before doing anything UI-related.
4586 2006-02-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
4588 * shell/rb-shell.c: Move 'new iradio station' action to
4591 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
4592 (rb_iradio_source_init), (rb_iradio_source_finalize),
4593 (rb_iradio_source_constructor):
4594 Remove some unused stuff.
4596 (guess_uri_scheme), (rb_iradio_source_add_station),
4597 (rb_iradio_source_add_from_playlist),
4598 (impl_get_ui_actions), (new_station_location_added),
4599 (rb_iradio_source_cmd_new_station): Handle 'new iradio station'
4600 action, include it in the toolbar, and make sure the URI we add has a
4601 scheme. Fixes #327059, more or less.
4603 2006-02-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
4605 * sources/rb-play-queue-source.c:
4606 (rb_play_queue_source_class_init),
4607 (rb_play_queue_source_constructor),
4608 (rb_play_queue_source_update_count),
4609 (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
4610 Add a toolbar button to clear the play queue, and make it sensitive
4611 only when there are entries in the queue. Fixes #330014.
4613 * sources/rb-source.c: (_rb_source_register_action_group):
4614 * sources/rb-source.h: Add helper function to register an
4615 action group for a source.
4617 * sources/rb-library-source.c: (rb_library_source_constructor):
4618 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
4619 (register_action_group): Use _rb_source_register_action_group.
4621 2006-02-15 James Livingston <jrl@ids.org.au>
4623 * widgets/rb-song-info.c: (rb_song_info_add_completion),
4624 (rb_song_info_constructor), (rb_song_info_set_property): make
4625 tag-editing completion work for albums too.
4627 2006-02-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
4629 * widgets/rb-query-creator.c: (rb_query_creator_load_query):
4630 Check the 'limit' checkbox for time-limited playlists.
4632 2006-02-14 Sven Herzberg <herzi@gnome-de.org>
4634 * widgets/rb-song-info.c: Prove text-completion when editing title,
4637 2006-02-14 James Livingston <jrl@ids.org.au>
4639 * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
4640 tray icon popup menu. Fixes bug 331026.
4642 2006-02-14 James Livingston <jrl@ids.org.au>
4644 * data/iradio-initial.pls: update the Virgin Radio stations to use the
4645 Ogg Vorbis streams, instead of the MP3 ones.
4647 2006-02-14 James Livingston <jrl@ids.org.au>
4649 * rhythmdb/rhythmdb-property-model.c:
4650 (rhythmdb_property_model_class_init),
4651 (rhythmdb_property_model_drag_data_get):
4652 * rhythmdb/rhythmdb-query-model.c:
4653 (rhythmdb_query_model_title_sort_func):
4654 * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
4655 LOCATION as the key. Fixes bug 330601.
4657 2006-02-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
4659 * sources/rb-playlist-source.c: (playlist_iter_func):
4660 Make it compile with older versions of totem-plparser too.
4662 2006-02-13 James Livingston <jrl@ids.org.au>
4664 * rhythmdb/rhythmdb.h:
4665 * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
4666 structure private, since things should use the accessor functions
4667 rather than manipulating it directly - Only RhythmDB and the
4668 implementation classes should access it directly. Part of the RhythmDB
4669 cleanup of bug 330226.
4671 * iradio/rb-station-properties-dialog.c:
4672 (rb_station_properties_dialog_update_title),
4673 (rb_station_properties_dialog_update_title_entry),
4674 (rb_station_properties_dialog_update_genre),
4675 (rb_station_properties_dialog_update_location),
4676 (rb_station_properties_dialog_update_play_count),
4677 (rb_station_properties_dialog_update_bitrate),
4678 (rb_station_properties_dialog_update_last_played),
4679 (rb_station_properties_dialog_update_rating),
4680 (rb_station_properties_dialog_update_playback_error),
4681 (rb_station_properties_dialog_sync_entries):
4682 * podcast/rb-feed-podcast-properties-dialog.c:
4683 (rb_feed_podcast_properties_dialog_update_title),
4684 (rb_feed_podcast_properties_dialog_update_title_label),
4685 (rb_feed_podcast_properties_dialog_update_author),
4686 (rb_feed_podcast_properties_dialog_update_location),
4687 (rb_feed_podcast_properties_dialog_update_copyright),
4688 (rb_feed_podcast_properties_dialog_update_language),
4689 (rb_feed_podcast_properties_dialog_update_summary):
4690 * podcast/rb-podcast-manager.c:
4691 (rb_podcast_manager_entry_downloaded),
4692 (rb_podcast_manager_db_entry_added_cb),
4693 (download_progress_update_cb),
4694 (rb_podcast_manager_db_entry_deleted_cb):
4695 * podcast/rb-podcast-properties-dialog.c:
4696 (rb_podcast_properties_dialog_update_title),
4697 (rb_podcast_properties_dialog_update_title_label),
4698 (rb_podcast_properties_dialog_update_feed),
4699 (rb_podcast_properties_dialog_update_location),
4700 (rb_podcast_properties_dialog_update_play_count),
4701 (rb_podcast_properties_dialog_update_bitrate),
4702 (rb_podcast_properties_dialog_update_last_played),
4703 (rb_podcast_properties_dialog_update_rating),
4704 (rb_podcast_properties_dialog_update_date),
4705 (rb_podcast_properties_dialog_update_description):
4706 * rhythmdb/rhythmdb-query-model.c:
4707 (rhythmdb_query_model_entry_changed_cb),
4708 (rhythmdb_query_model_remove_from_main_list),
4709 (rhythmdb_query_model_update_limited_entries),
4710 (rhythmdb_query_model_drag_data_get),
4711 (rhythmdb_query_model_album_sort_func):
4712 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4714 * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
4715 (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
4716 (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
4717 (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
4718 (rhythmdb_entry_get_double):
4719 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
4720 * shell/rb-play-order-random-by-age-and-rating.c:
4721 (rb_random_by_age_and_rating_get_entry_weight):
4722 * shell/rb-play-order-random-by-age.c:
4723 (rb_random_by_age_get_entry_weight):
4724 * shell/rb-play-order-random-by-rating.c:
4725 (rb_random_by_rating_get_entry_weight):
4726 * shell/rb-playlist-manager.c: (create_name_from_selection_data):
4727 * shell/rb-shell-player.c: (rb_shell_player_open_entry),
4728 (rb_shell_player_set_playing_entry),
4729 (rb_shell_player_sync_replaygain),
4730 (rb_shell_player_sync_with_source),
4731 (rb_shell_player_get_playing_song_duration), (info_available_cb):
4732 * sources/rb-playlist-source.c: (playlist_iter_func),
4733 (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
4734 (rb_playlist_source_entry_added_cb):
4735 * sources/rb-podcast-source.c:
4736 (rb_podcast_source_post_status_cell_data_func):
4737 * sources/rb-source.c: (rb_source_update_play_statistics):
4738 * sources/rb-sourcelist-model.c:
4739 (rb_sourcelist_model_drag_data_get):
4740 * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
4741 (rb_static_playlist_source_add_entry),
4742 (rb_static_playlist_source_remove_entry):
4743 * widgets/rb-entry-view.c: (type_ahead_search_func),
4744 (rb_entry_view_playing_cell_data_func),
4745 (rb_entry_view_rating_cell_data_func),
4746 (rb_entry_view_pixbuf_clicked_cb):
4747 * widgets/rb-header.c: (rb_header_get_duration):
4748 * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
4749 (rb_song_info_populate_dialog),
4750 (rb_song_info_update_playback_error),
4751 (rb_song_info_update_bitrate), (rb_song_info_update_duration),
4752 (rb_song_info_update_location), (rb_song_info_update_play_count),
4753 (rb_song_info_update_last_played), (rb_song_info_update_rating),
4754 (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
4755 (rb_song_info_sync_entry_single): fix the huge number of times that
4756 the internals got accessed directly.
4758 2006-02-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
4760 * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
4761 trash' are grouped together.
4762 * shell/main.c: (main): Pass no-registration flag in to RBShell
4763 constructor, rather than mysteriously always passing TRUE.
4764 * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
4765 Set dirty flag when entries are removed from the model, so the play
4766 queue is marked dirty appropriately.
4767 * AUTHORS: update my email address
4769 2006-02-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
4771 Patch by: Baptiste Mille-Mathias <bmm80@free.fr>
4773 * widgets/rb-druid.c: (path_dialog_response_cb):
4774 If the URI is local, don't display the 'file://' prefix.
4777 2006-02-12 Jonathan Matthew <jonathan@kaolin.wh9.net>
4779 * widgets/eggtrayicon.c: (egg_tray_icon_notify):
4780 Attach the notification to the tray icon widget, so libnotify
4781 positions it less badly. Fixes #330876.
4783 2006-02-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
4785 * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
4786 Reverse the selection list before returning it, so we get it in the
4787 right order. Fixes #330283 and some other weirdness.
4789 2006-02-11 James Livingston <jrl@ids.org.au>
4791 * shell/rb-shell.c: (rb_shell_constructor),
4792 (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
4793 * shell/rb-source-header.c: (rb_source_header_sync_control_state):
4794 make small-mode and fullscreen mutually exclusive, since they don't
4797 * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
4800 2006-02-10 James Livingston <jrl@ids.org.au>
4802 * player/rb-player-gst.c: turn paranoia of when playing audio cds,
4803 since it can cause it to be slower than real-time. Should fix bug
4806 2006-02-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
4808 * rhythmdb/rhythmdb-query-model.c:
4809 (rhythmdb_query_model_set_property):
4810 Think just a little bit harder about that last commit.
4812 2006-02-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
4814 * rhythmdb/rhythmdb-query-model.c:
4815 (rhythmdb_query_model_set_property):
4816 Get the check for hidden entries the right way around.
4817 Fixes #330527, #330514.
4819 (rhythmdb_query_model_set_sort_order):
4820 Ignore no-op sort order changes, so we don't get critical
4821 messages when selecting 'all' in auto playlist browsers.
4823 2006-02-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
4825 Patch by: Christophe Fergeau <teuf@gnome.org>
4827 * sources/rb-removable-media-source.c:
4828 (rb_removable_media_source_init),
4829 (rb_removable_media_source_constructor):
4830 Move icon setup code to the constructor, as the volume property
4831 haven't been set yet when _init is called.
4833 2006-02-09 William Jon McCann <mccann@jhu.edu>
4835 * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
4836 Make the source pixbuf a dynamic property.
4838 * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize)
4839 (rb_source_set_pixbuf, rb_source_set_property)
4840 (rb_source_get_property): Add icon property.
4842 * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init)
4843 (rb_auto_playlist_source_init):
4844 * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init)
4845 (rb_static_playlist_source_init):
4846 * sources/rb-removable-media-source.c (rb_removable_media_source_class_init)
4847 (rb_removable_media_source_init):
4848 * sources/rb-podcast-source.c (rb_podcast_source_class_init)
4849 (rb_podcast_source_init):
4850 * sources/rb-library-source.c (rb_library_source_class_init)
4851 (rb_library_source_set_property, rb_library_source_get_property):
4852 * sources/rb-iradio-source.c (rb_iradio_source_class_init)
4853 (rb_iradio_source_init): Remove impl_get_pixbuf and
4854 set icon property on source base class.
4856 * sources/rb-daap-source.c (rb_daap_get_icon): Get
4857 a different icon for when the share is password protected
4859 (rb_daap_source_new): Set icon property.
4860 (composite_icons): Composite an emblem on a pixbuf.
4861 (create_pixbufs): Load global pixbufs.
4862 (destroy_pixbufs): unref global pixbufs.
4863 (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
4864 (connection_auth_cb, connection_connected_cb)
4865 (connection_disconnected_cb): Update icon when connection
4867 (rb_daap_source_activate): Connect signals.
4869 * daapsharing/rb-daap-share.c (name_collision_cb): Run
4872 * daapsharing/rb-daap-marshal.list: Add new signal.
4874 * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run)
4875 (rb_daap_collision_dialog_new_run): Set parent of dialog.
4877 * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
4878 Add authenticate, connected, and disconnected signals.
4879 (connection_get_password): emit authenticate signal instead
4880 of running dialog directly.
4881 (connection_connected, connection_disconnected): Emit signals.
4882 (handle_login): Emit connected signal.
4883 (handle_logout): Emit disconnected signal.
4884 (rb_daap_connection_do_something): Fix leak.
4888 2006-02-09 James Livingston <jrl@ids.org.au>
4890 * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
4891 entries from the base model if we don't have show-hidden set. Fixes
4894 2006-02-08 William Jon McCann <mccann@jhu.edu>
4896 * daapsharing/rb-daap-share.c (message_get_session_id):
4897 Ugh. Use strtoul instead of atoi.
4898 (session_id_validate): Add debug statements.
4900 2006-02-08 William Jon McCann <mccann@jhu.edu>
4902 * daapsharing/rb-daap-connection.c (http_response_handler):
4903 Report the actual uri from the message in debug statements.
4905 2006-02-08 William Jon McCann <mccann@jhu.edu>
4907 * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
4908 Add context argument.
4909 (message_get_session_id): New function to parse session id from
4911 (message_get_revision_number): Break out function to parse
4912 revision number from the message.
4913 (session_id_validate): New function to validate given session id
4914 is valid for given context (ie. client address).
4915 (session_id_generate): Generate a random session id.
4916 (session_id_create): Create a unique session id and store it.
4917 (session_id_remove): Remove a session id from the store.
4918 (login_cb): Create a session id instead of using a constant one.
4919 (logout_cb): Validate session id.
4920 (update_cb): Use new message_get_revision_number function.
4921 (databases_cb): Validate session id.
4922 (server_cb): Add server context to argument list for callbacks. It
4923 is needed to look up the remote host.
4924 (db_entry_changed_cb): Use braces.
4925 (soup_auth_callback): Remove FIXME.
4926 (rb_daap_share_server_start): Create session id store.
4927 (rb_daap_share_server_stop): Destroy session id store.
4929 * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
4930 Don't base64-encode password here since it needs to be
4931 combined with the username first.
4933 * daapsharing/rb-daap-connection.c (build_message):
4934 Add username to Authorization token.
4935 (handle_login, handle_song_listing)
4936 (rb_daap_connection_do_something): Session id
4937 must be an unsigned int.
4941 2006-02-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
4943 * shell/rb-shell-player.c: (rb_shell_player_get_playing):
4944 Don't check if we've got a playing entry, ask the player object (duh).
4945 Might actually fix #329993.
4947 2006-02-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
4949 * sources/rb-static-playlist-source.c:
4950 (rb_static_playlist_source_add_list_uri):
4951 Canonicalise URIs before trying to add them to the playlist, and
4952 don't try to add files to the database for which there is
4955 2006-02-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
4957 * shell/rb-shell-player.c: (rb_shell_player_get_playing):
4958 Don't ask the entry view if we're playing, just check if we've got a
4959 playing entry. Fixes #329993.
4961 2006-02-08 James Livingston <jrl@ids.org.au>
4963 * rhythmdb/rhythmdb-query-model.c:
4964 (rhythmdb_query_model_set_property),
4965 (rhythmdb_query_model_finalize),
4966 (rhythmdb_query_model_base_complete): remove
4967 rhythmdb_query_model_base_entry_prop_changed, so that two signals
4968 don't get emitted for entry changes. Fixes bug 330301.
4970 * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4971 (rb_library_browser_init), (rb_library_browser_constructor),
4972 (rb_library_browser_new): do stuff in the constructor, not the init
4973 function, so that the db property gets set on RBPropertyViews
4974 correctly. Fixes a crash when dragging properties to a playlist.
4976 2006-02-07 William Jon McCann <mccann@jhu.edu>
4978 * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
4979 Actually stop soup server. Fixes #329816.
4981 2006-02-07 James Livingston <jrl@ids.org.au>
4984 * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
4985 (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
4986 (collate_values_cb), (rb_collate_hash_table_keys),
4987 (rb_collate_hash_table_values): add functions to compare, copy and
4988 free string-lists. add functions to collate the keys or values of a
4989 hash table into a list.
4991 * rhythmdb/rhythmdb-property-model.c:
4992 (rhythmdb_property_model_class_init), (entry_from_tree_iter),
4993 (_remove_entry_cb), (_add_entry_cb),
4994 (rhythmdb_property_model_set_property),
4995 (rhythmdb_property_model_get_property),
4996 (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
4997 (rhythmdb_property_model_row_inserted_cb),
4998 (rhythmdb_property_model_prop_changed_cb),
4999 (rhythmdb_property_model_entry_removed_cb): correctly handle entries
5000 that are hidden, storing those that we have counted in a hash-table.
5002 * shell/Makefile.am: fix build order issue
5004 * shell/rb-shell-player.c: (rb_shell_player_set_property):
5005 * sources/rb-source.h:
5006 * shell/rb-source-header.c: (rb_source_header_sync_control_state):
5007 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5008 * sources/rb-podcast-source.c: (feed_select_change_cb): add
5009 browser-toggled method, rename _get_exta_views to _get_property_views,
5010 since several things depend on returning only that.
5012 * sources/rb-source.c: (rb_source_class_init),
5013 (rb_source_browser_toggled), (default_get_property_views),
5014 (rb_source_get_property_views), (rb_source_row_deleted_cb),
5015 (rb_source_gather_hash_keys),
5016 (rb_source_gather_selected_properties): above changes, and move some
5017 utility functions up from RBLibraryView
5019 * widgets/rb-property-view.c:
5020 (rb_property_view_selection_changed_cb): fix leak.
5022 * rhythmdb/rhythmdb-query-model.c:
5023 (rhythmdb_query_model_set_property),
5024 (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
5025 (rhythmdb_query_model_set_sort_order),
5026 (rhythmdb_query_model_base_rows_reordered): fix handling of the base
5027 query model being resorted.
5029 * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
5032 * rhythmdb/rhythmdb.h:
5033 * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
5034 (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
5035 (rhythmdb_query_append_prop_multiple): Add a function to concatenate
5036 two queries. Add a function to append "property={X,Y,Z,...}" to a
5039 * sources/rb-library-source.c: (rb_library_source_class_init),
5040 (rb_library_source_finalize), (rb_library_source_constructor),
5041 (rb_library_source_cmd_choose_genre),
5042 (rb_library_source_cmd_choose_artist),
5043 (rb_library_source_cmd_choose_album), (impl_search),
5044 (impl_get_property_views), (impl_reset_filters),
5045 (rb_library_source_preferences_sync),
5046 (rb_library_source_browser_views_activated_cb),
5047 (rb_library_source_state_prefs_sync),
5048 (construct_query_from_selection), (rb_library_source_do_query),
5049 (rb_library_source_browser_changed_cb):
5050 * widgets/Makefile.am:
5051 * widgets/rb-library-browsers.{c,h}: Add a generalised "library
5052 browser" widgets, which contains several property views, based on the
5053 code from RBLibrarySource. Make RBLibrarySource use it.
5055 * sources/rb-auto-playlist-source.c:
5056 (rb_auto_playlist_source_class_init),
5057 (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
5058 (rb_auto_playlist_source_constructor), (impl_reset_filters),
5059 (impl_get_property_views), (impl_browser_toggled),
5060 (construct_query_from_selection),
5061 (rb_auto_playlist_source_do_query),
5062 (rb_auto_playlist_source_set_query),
5063 (rb_auto_playlist_source_browser_changed_cb): Use the new
5064 library-browser widget to add browsers to automatic playlists.
5066 2006-02-07 James Livingston <jrl@ids.org.au>
5068 * player/rb-player-gst.c: (rb_player_bus_cb): check error type
5070 * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
5071 type of the source is taken into account. Fixes bug 329621.
5073 2006-02-07 James Livingston <jrl@ids.org.au>
5075 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5076 (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
5077 1.1, and perform URI canonicalistion when first upgrading. This should
5078 fix our remaining canonicalisation issues, such as bug 329988.
5080 2006-02-07 Jonathan Matthew <jonathan@kaolin.hn.org>
5082 * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
5083 Track the playing entry when the entry view isn't in the playing
5084 state, so we don't have to get the state changes exactly right.
5087 2006-02-06 James Livingston <jrl@ids.org.au>
5089 * shell/rb-shell-player.c: (open_location_thread),
5090 (rb_shell_player_open_location): fix several iradio issues: having to
5091 press play after double-clicking on a station, not working correctly
5092 without a http:// prefix, and ignoring totem-plparser results other
5093 than success or error (e.g. IGNORE).
5095 2006-02-06 Jonathan Matthew <jonathan@kaolin.hn.org>
5097 Addition of dbus methods for dealing with static playlists and the
5098 play queue. Fixes #329958.
5100 * shell/Makefile.am:
5101 * shell/rb-playlist-manager.h:
5102 * shell/rb-playlist-manager.xml:
5103 * shell/rb-playlist-manager.c: (save_playlist_response_cb),
5104 (rb_playlist_manager_get_playlists),
5105 (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
5106 (rb_playlist_manager_create_static_playlist),
5107 (rb_playlist_manager_delete_playlist),
5108 (rb_playlist_manager_add_to_playlist),
5109 (rb_playlist_manager_remove_from_playlist),
5110 (rb_playlist_manager_export_playlist):
5111 Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
5112 to create, delete, list, modify, export, and import static playlists.
5114 * shell/main.c: (main): Register playlist manager object with dbus.
5117 * shell/rb-shell.xml:
5118 * shell/rb-shell.c: (rb_shell_get_playlist_manager),
5119 (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
5120 (rb_shell_remove_from_queue): Provide dbus access to the playlist manager
5121 object, and implement the addToQueue and removeFromQueue methods.
5123 * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
5124 * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
5127 2006-02-05 James Livingston <jrl@ids.org.au>
5129 * rhythmdb/rhythmdb-tree.c: (parse_boolean),
5130 (rhythmdb_tree_parser_end_element), (save_entry_boolean),
5131 (save_entry): allow storage of booleans in the on-disk db, and
5132 save/load the HIDDEN property.
5134 * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
5135 (rhythmdb_prop_get_type): restore the HIDDEN property of local files
5136 to the state it was when RB shutdown. This makes RB appear to start
5137 faster, as tracks can appear before the stat is done. Remote files
5138 still start hidden. From bug 325215.
5140 2006-02-05 James Livingston <jrl@ids.org.au>
5142 * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
5143 * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
5144 really cares about the difference from "entry-added", and it isn't
5145 emitted by the tree backend anyway.
5147 * rhythmdb/rhythmdb-query-model.c:
5148 (rhythmdb_query_model_constructor):
5149 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5150 remove the references to the entry-restored signal.
5152 2006-02-05 James Livingston <jrl@ids.org.au>
5154 * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
5157 2006-02-05 James Livingston <jrl@ids.org.au>
5159 * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
5160 things are NULL before using g_object_unref. Fixes bug 327452.
5162 * player/rb-recorder-gst.c: (rb_recorder_construct):
5163 * shell/rb-shell-player.c: (rb_shell_player_error): return errors
5164 rather than assertion.
5166 * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
5167 emit a warning, rather than asserting if an unknown playlist type is
5170 2006-02-05 James Livingston <jrl@ids.org.au>
5172 * widgets/Makefile.am:
5173 * widgets/rb-simple-view.c:
5174 * widgets/rb-simple-view.h: Move the two features that this class
5175 provides into RBPropertyView, and remove this class. Closes bug
5178 * podcast/rb-feed-podcast-properties-dialog.c:
5179 * podcast/rb-feed-podcast-properties-dialog.h:
5180 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5181 (rb_podcast_source_feeds_show_popup_cb):
5182 * sources/rb-podcast-source.h:
5183 * widgets/rb-property-view.c: (rb_property_view_class_init),
5184 (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
5185 (rb_property_view_append_column_custom),
5186 (rb_property_view_button_press_cb):
5187 * widgets/rb-property-view.h: Updated for the above change.
5189 2006-02-04 James Livingston <jrl@ids.org.au>
5191 * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
5192 too close to Move to Trash and people aren't likely to use it often.
5194 2006-02-04 James Livingston <jrl@ids.org.au>
5196 * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
5198 2006-02-04 James Livingston <jrl@ids.org.au>
5200 * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
5201 passed a path instead of a URI.
5203 * sources/rb-generic-player-source.c: (default_get_mount_path):
5204 * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
5205 the path. This fixes bug 329723.
5207 2006-02-04 Jonathan Matthew <jonathan@kaolin.hn.org>
5209 * daapsharing/rb-daap-structure.c:
5210 (rb_daap_content_code_string_as_int32):
5211 Use network byte order.
5213 2006-02-03 William Jon McCann <mccann@jhu.edu>
5215 * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
5216 Use a hash for source lookup.
5217 (mdns_service_added, mdns_service_removed): Handle
5218 service-added and service-removed signals from RBDaapMdnsBrowser.
5219 (remove_source): GDestroyNotify function for when sources
5220 are removed from the hash.
5221 (start_browsing): Create RBDaapMdnsBrowser and source lookup.
5222 (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
5223 (rb_daap_sources_shutdown): Update.
5224 (source_host_find): GHRFunc for finding a source by ip.
5225 (rb_daap_source_find_for_uri): Use the hash source lookup.
5227 * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
5229 (password_check_button_toggled_cb): Handle password enabled.
5230 (share_name_entry_focus_out_event_cb): Namespace keys.
5231 Handle changes more robustly.
5232 (share_password_entry_focus_out_event_cb): Handle password entry.
5233 (add_daap_preferences): Connect to password signals.
5235 * lib/rb-preferences.h: Add DAAP keys.
5237 * data/glade/daap-prefs.glade: Add password UI.
5239 * data/rhythmbox.schemas: Add password keys.
5241 * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
5242 assert with warning.
5244 * daapsharing/rb-daap-sharing.c: Fix includes. Move
5245 gconf keys to lib/rb-preferences.h. Namespace
5247 (create_share): Add password support.
5248 (enable_sharing_changed_cb): Namespaced keys.
5249 (require_password_changed_cb): Handle key change.
5250 (share_name_changed_cb): Namespaced keys.
5251 (share_password_changed_cb): Handle key change.
5252 (rb_daap_sharing_init): Namespaced keys.
5253 (rb_daap_sharing_shutdown): Ditto.
5255 * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
5256 Add password property.
5257 (rb_daap_share_set_name): Break out prop set function.
5258 (published_cb): New RBDaapMdnsPublisher signal handler.
5259 (name_collision_cb): Ditto.
5260 (rb_daap_share_init): Create publisher object and
5262 (rb_daap_share_set_password, rb_daap_share_set_playlist_manager)
5263 (rb_daap_share_set_property): Break out prop set functions.
5264 (rb_daap_share_dispose): Stop publishing. Stop DAAP server.
5266 (rb_daap_share_new): Add password argument. Start
5267 publishing and DAAP server.
5268 (message_set_from_rb_daap_structure): Change print to debug.
5269 (server_info_cb): Set auth method to publish.
5270 (logout_cb): Handle DAAP client logout.
5271 (update_cb): Remove C++ comments.
5272 (databases_cb): Ditto. Make message a warning. Make print a debug.
5273 (server_cb): Add debug.
5274 (soup_auth_callback): Handle auth requests.
5275 (rb_daap_share_server_start): Split up functions for starting
5276 server and publishing. Add auth handling to server.
5277 (rb_daap_share_server_stop): Split stop server and publish.
5279 (rb_daap_share_publish_start, rb_daap_share_publish_stop):
5280 Start and stop publishing.
5281 (rb_daap_share_restart): Restart server and publishing.
5282 (rb_daap_share_maybe_restart): Conditionally restart.
5284 * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run)
5285 (rb_daap_collision_dialog_new_run): Don't use
5286 separators in dialogs.
5288 * daapsharing/rb-daap-connection.h: Add private
5289 data to class structure.
5291 * daapsharing/rb-daap-connection.c: Move
5292 some includes to top of file. Make private
5293 data struct name consistent with others.
5294 (rb_daap_connection_class_init): Rename
5296 (rb_daap_connection_init): Get and store the pointer
5297 to the private data once instead of in every
5298 function. Create a username value "Rhythmbox_VERSION".
5299 (connection_get_password): Don't get private.
5300 (build_message): Ditto.
5301 (http_response_handler): Don't init variables in
5302 declaration. Add debug. Spacing.
5303 (http_get, entry_set_string_prop, handle_server_info)
5304 (handle_login, handle_update, handle_database_info)
5305 (handle_song_listing, handle_playlists, handle_playlist_entries)
5306 (rb_daap_connection_constructor, rb_daap_connection_logout)
5307 (rb_daap_connection_state_done): Don't get private.
5308 (rb_daap_connection_get_headers): Ditto. gchar yuck.
5309 spacing. Correctly base64 encode the Authentication token.
5310 Add username to auth token.
5311 (rb_daap_connection_get_playlists): Don't get private.
5312 (rb_daap_connection_dispose): Ditto. Free username.
5313 (rb_daap_connection_set_property)
5314 (rb_daap_connection_get_property): Don't get private.
5316 * daapsharing/Makefile.am: Conditionally
5317 compile MDNS backends. Add marshall stuff.
5319 * daapsharing/.cvsignore: Update.
5321 * configure.ac: Add conditional to see which
5322 MDNS backend we should use.
5324 * daapsharing/rb-daap-mdns.[ch]: Removed files.
5326 * daapsharing/rb-daap-marshal.list:
5327 * daapsharing/rb-daap-mdns-browser-avahi.c:
5328 * daapsharing/rb-daap-mdns-browser-howl.c:
5329 * daapsharing/rb-daap-mdns-browser.h:
5330 * daapsharing/rb-daap-mdns-publisher-avahi.c:
5331 * daapsharing/rb-daap-mdns-publisher-howl.c:
5332 * daapsharing/rb-daap-mdns-publisher.h:
5333 Split rb-daap-mdns.c into two classes. One for
5334 publishing and one for browsing. Split out
5335 the avahi and howl backends into different files.
5339 2006-02-04 James Livingston <jrl@ids.org.au>
5341 patch by: Jan Schmidt <thaytan@mad.scientist.com>
5343 * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
5344 crash if metadata reader gives us NULL for strings.
5346 2006-02-03 James Livingston <jrl@ids.org.au>
5348 * shell/rb-shell-player.c: (open_location_thread),
5349 (rb_shell_player_open_location):
5350 retrieve iradio playlists files in a thread, so that with GStreamer
5351 0.10 the UI doesn't block while connecting to stations. The streamer
5352 connection is synchronous with 0.8, so that will still block (a bit).
5355 (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
5356 because _open_entry does that automatically when it is ready to.
5358 2006-02-03 Jonathan Matthew <jonathan@kaolin.hn.org>
5360 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5361 (rb_podcast_source_post_status_cell_data_func):
5362 Leave the podcast status column blank for episodes that have not been
5365 2006-02-03 James Livingston <jrl@ids.org.au>
5367 Add support for source-specific toolbar items, and make the Burn
5368 Playlist item only available for playlists. Also add Update All
5369 (podcast), Eject and Rip (audio cds). Fixes bug 329041.
5371 * data/ui/rhythmbox-ui.xml:
5372 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5373 (impl_get_ui_actions): make the Burn CD toolbar item only for
5376 * lib/rb-stock-icons.c: (rb_stock_icons_init):
5377 * lib/rb-stock-icons.h: load the Eject icon as stock.
5379 * shell/rb-removable-media-manager.c: use the eject icon for the eject
5382 * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
5383 (rb_shell_select_source):
5384 * sources/rb-source.c: (rb_source_class_init),
5385 (rb_source_disconnect), (default_get_ui_actions),
5386 (rb_source_get_ui_actions):
5387 * sources/rb-source.h: add support for source-specific toolbar items
5389 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
5390 Eject and Rip toolbar items
5392 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5393 (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
5396 2006-02-03 Jonathan Matthew <jonathan@kaolin.hn.org>
5398 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
5399 * shell/main.c: (main):
5400 * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
5401 Replace all g_critical calls with g_warning, since none of them are
5402 the sort of thing the process should die over. Fixes #329398.
5404 2006-02-03 James Livingston <jrl@ids.org.au>
5406 * configure.ac: mention gst-plugins-base in the error message for not
5407 finding GStreamer 0.10, since not having that will cause it to fail.
5409 2006-02-03 James Livingston <jrl@ids.org.au>
5411 * configure.ac: fix typo that means you get the wrong error message if
5412 you explicity request a particular playback engine, and it can't be
5415 2006-02-03 James Livingston <jrl@ids.org.au>
5417 * data/glade/library-prefs.glade: allow the watched library location
5418 to be a non-local place.
5420 ============ Version 0.9.3
5423 2006-02-02 James Livingston <jrl@ids.org.au>
5426 * configure.ac: bump version to 0.9.3
5428 * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
5429 <caillon@redhat.com>, fixed bug 329517.
5431 2006-02-02 Jonathan Matthew <jonathan@kaolin.hn.org>
5433 Patch from Alex Lancaster <alexl@users.sourceforge.net>
5435 * widgets/rb-song-info.c: (rb_song_info_constructor):
5436 Make year and disc number fields non-editable if tag editing
5437 is disabled. Fixes #329463.
5439 2006-02-01 James Livingston <jrl@ids.org.au>
5441 * rhythmdb/rhythmdb-property-model.c:
5442 (rhythmdb_property_model_row_inserted_cb),
5443 (rhythmdb_property_model_prop_changed_cb),
5444 (rhythmdb_property_model_entry_removed_cb): handle hidden entries
5445 correctly. Fixes bug 327061.
5447 * rhythmdb/rhythmdb-query-model.c:
5448 (rhythmdb_query_model_entry_changed_cb): emit change notification of
5449 the HIDDEN property when an entry is removed for being hidden.
5451 * rhythmdb/rhythmdb-query-model.h:
5452 * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
5453 * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
5454 models's "connected" property. Whatever it was needed for seems to
5457 2006-02-01 James Livingston <jrl@ids.org.au>
5459 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
5461 * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
5462 (rb_shell_player_playing_changed_cb): block the signal to prevent
5463 re-entrancy. Fixes bug 329329 and fixes the first click of the play
5466 2006-02-01 James Livingston <jrl@ids.org.au>
5468 * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
5469 /should/ now work, if the neccessary plugins get ported.
5471 2006-01-30 James Livingston <jrl@ids.org.au>
5473 * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
5474 string properties to "Unknown" is the string is empty. Kind of fixes
5477 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
5478 gettext calls once, rather than once per time the function is used.
5479 This stops us making tens of thousands of gettext calls on startup,
5480 which reduces the cpu-time of startup by 10-20%
5482 2006-01-29 James Livingston <jrl@ids.org.au>
5484 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
5486 * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
5487 for files containing known video streams.
5490 2006-01-29 Jonathan Matthew <jonathan@kaolin.hn.org>
5492 * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
5495 2006-01-29 Jonathan Matthew <jonathan@kaolin.hn.org>
5497 * INSTALL.quick: More random updates
5499 * rhythmdb/rhythmdb-query-model.c:
5500 (rhythmdb_query_model_class_init),
5501 (rhythmdb_query_model_set_property),
5502 (rhythmdb_query_model_get_property),
5503 (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
5504 Remove user sort data handling, take a property ID and a reverse
5506 (rhythmdb_query_model_insert_into_main_list),
5507 (rhythmdb_query_model_insert_into_limited_list),
5508 (rhythmdb_query_model_do_reorder),
5509 (_reverse_sorting_func):
5510 Handle reverse sorting by calling _reverse_sorting_func, which
5511 calls the real sort function and reverses the result.
5512 (rhythmdb_query_model_set_sort_order):
5513 Allow this to be called to set the initial sort order for limited
5514 queries, and handle reverse sorting when reordering.
5515 (rhythmdb_query_model_location_sort_func),
5516 (rhythmdb_query_model_album_sort_func),
5517 (rhythmdb_query_model_artist_sort_func),
5518 (rhythmdb_query_model_genre_sort_func),
5519 (rhythmdb_query_model_track_sort_func),
5520 (rhythmdb_query_model_double_ceiling_sort_func),
5521 (rhythmdb_query_model_ulong_sort_func),
5522 (rhythmdb_query_model_date_sort_func),
5523 (rhythmdb_query_model_string_sort_func):
5524 Sort functions moved from rb-entry-view.c.
5525 * rhythmdb/rhythmdb-query-model.h:
5526 Add the sort functions, and update the changed functions.
5528 * widgets/rb-entry-view.c: (rb_entry_view_set_property):
5529 Just call _resort_model when the query model is set, since it
5530 does all the same things.
5531 (rb_entry_view_append_column):
5532 Rework bits so the rating column doesn't have to be so much of a
5534 (rb_entry_view_append_column_custom):
5535 Take a property ID to sort on, rather than arbitrary custom data.
5536 (rb_entry_view_resort_model):
5537 Query model does all the reverse sort handling now.
5538 * widgets/rb-entry-view.h: Update _append_column_custom.
5540 * sources/rb-play-queue-source.c:
5541 (rb_play_queue_source_constructor):
5542 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5543 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5544 (rb_podcast_source_post_date_cell_sort_func),
5545 (rb_podcast_source_post_status_cell_sort_func),
5546 (rb_podcast_source_post_feed_cell_sort_func):
5547 Updates required by all the other changes.
5549 * rhythmdb/rhythmdb-property-model.c:
5550 (rhythmdb_property_model_drag_data_get):
5551 Sort the query results on the selected property,
5552 so they arrive in the expected order. All the other changes were made
5553 to make this possible. Fixes bug #327494.
5555 2006-01-29 Jonathan Matthew <jonathan@kaolin.hn.org>
5557 * shell/rb-shell-clipboard.c:
5558 Use GTK_STOCK_REMOVE icon for the remove action in
5561 2006-01-29 Jonathan Matthew <jonathan@kaolin.hn.org>
5563 * sources/rb-play-queue-source.c:
5564 (rb_play_queue_source_constructor),
5565 (rb_play_queue_source_update_count):
5566 Don't make the 'queued songs' column clickable,
5567 and add the queued song count to the column title.
5569 2006-01-29 James Livingston <jrl@ids.org.au>
5571 * configure.ac: remove "experimental" marking from DAAP, and enable by
5572 default if the dependencies are found.
5574 2006-01-29 James Livingston <jrl@ids.org.au>
5578 2006-01-29 James Livingston <jrl@ids.org.au>
5580 patch by: William Jon McCann <mccann@jhu.edu>
5582 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5583 (rb_podcast_source_feed_title_cell_data_func): Revert the change of
5584 property used for the feed list. Fixes problem with feeds with no
5585 episodes not showing up.
5587 2006-01-29 Jonathan Matthew <jonathan@kaolin.hn.org>
5589 * shell/rb-play-order-random-by-age-and-rating.c:
5590 (rb_random_by_age_and_rating_get_entry_weight):
5591 Fix compile errors, bug #328978.
5593 2006-01-28 Jonathan Matthew <jonathan@kaolin.hn.org>
5595 * INSTALL.quick, README: Random updates
5596 * README.lirc: Add notes on controlling Rhythmbox with LIRC
5598 2006-01-28 James Livingston <jrl@ids.org.au>
5600 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
5601 default rating back to 0 (from 2.5, which was needed for autorating).
5603 * shell/rb-play-order-random-by-age-and-rating.c:
5604 (rb_random_by_age_and_rating_get_entry_weight):
5605 * shell/rb-play-order-random-by-rating.c:
5606 (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
5607 2.5 for the purposes of weighting entries.
5609 2006-01-28 James Livingston <jrl@ids.org.au>
5611 * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
5612 translator comments, to make it clearer what the "friendly time"
5613 formatting strings mean.
5615 2006-01-27 Jonathan Matthew <jonathan@kaolin.hn.org>
5617 * daapsharing/rb-daap-connection.c: (http_response_handler):
5618 Fix the sense of the overflow check so it'll accept valid input.
5620 2006-01-27 James Livingston <jrl@ids.org.au>
5622 Patch from Alex Lancaster <alexl@users.sourceforge.net>
5624 * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
5625 escape paths when using rb_uri_handle_recursively. Closes bug 139646.
5627 2006-01-27 Jonathan Matthew <jonathan@kaolin.hn.org>
5629 Patch by: Alex Lancaster <alexl@users.sourceforge.net>
5631 * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
5632 Don't include the artist field in the window title if it's blank.
5635 2006-01-26 William Jon McCann <mccann@jhu.edu>
5637 * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
5638 Use stock delete icon for move to trash and stock remove
5639 for remove menu item.
5641 2006-01-26 Jonathan Matthew <jonathan@kaolin.hn.org>
5643 * shell/rb-shell.c: (rb_shell_constructor),
5644 (idle_handle_load_complete): Don't start the playlist save
5645 timeout until we've loaded the playlists, otherwise we'll
5646 write an empty playlist file if startup takes too long.
5648 2006-01-25 William Jon McCann <mccann@jhu.edu>
5650 * shell/rb-shell.c: Make view toolbar toggle use
5651 shift+ctrl+t. Fixes #327585.
5653 2006-01-25 James Livingston <jrl@ids.org.au>
5655 patch by: Christope Fergeau <teuf@gnome.org>
5657 * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
5658 (http_response_handler): fix a potential buffer overflow issue.
5660 2006-01-25 James Livingston <jrl@ids.org.au>
5662 * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
5663 Year column wide enough to display "Unknown"
5665 2006-01-25 James Livingston <jrl@ids.org.au>
5667 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
5668 (rb_podcast_source_post_status_cell_data_func): make the episode
5669 status wording better. Part of bug 321607.
5671 2006-01-25 James Livingston <jrl@ids.org.au>
5673 * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
5674 others with a separator.
5676 * shell/rb-shell-clipboard.c: Rename "Delete" to "Remove" and use the
5679 2006-01-24 Jonathan Matthew <jonathan@kaolin.hn.org>
5681 * data/rhythmbox.desktop.in: Add GTK to categories. Fixes #328047.
5683 2006-01-23 James Livingston <jrl@ids.org.au>
5685 * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
5686 0.3.2. Fixed bug 328158.
5688 2006-01-23 James Livingston <jrl@ids.org.au>
5690 * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
5691 (gulong_gst_date_transform), (rb_metadata_class_init):
5692 * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
5694 2006-01-23 Jonathan Matthew <jonathan@kaolin.hn.org>
5696 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
5697 (rhythmdb_commit_internal), (rhythmdb_entry_insert),
5698 (record_entry_change): Protect added_entries and changed_entries with
5699 a mutex, so it doesn't crash on startup on SMT/SMP machines.
5701 2006-01-23 James Livingston <jrl@ids.org.au>
5703 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
5704 the browser for audio CDs.
5706 2006-01-22 James Livingston <jrl@ids.org.au>
5708 * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
5709 NEVER_FAIL as it causes the daemon-not-running error to never be
5710 reported, resulting in bug 319438 re-occurring.
5712 2006-01-22 Jonathan Matthew <jonathan@kaolin.hn.org>
5714 * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
5715 Just call the podcast manager's update method. Unbreaks the 'update
5718 2006-01-22 Jonathan Matthew <jonathan@kaolin.hn.org>
5720 * sources/Makefile.am: Fix typo. Fixes bug #327970.
5722 2006-01-21 Jonathan Matthew <jonathan@kaolin.hn.org>
5724 * configure.ac: Don't disable DAAP with gstreamer 0.10
5726 * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
5727 (rb_daap_src_class_init), (rb_daap_src_init),
5728 (rb_daap_src_finalize), (rb_daap_src_set_property),
5729 (rb_daap_src_get_property), (rb_daap_src_write),
5730 (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
5731 (_split_uri), (rb_daap_src_open):
5732 * daapsharing/rb-daap-src.h:
5733 Mostly fix seeking, handle chunked transfer encoding, and port to
5736 * player/rb-player-gst.c:
5737 * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
5738 Remove rb_daap_src_initialize and rb_daap_src_shutdown.
5740 Fixes bugs #326738 and #318852, and brings #309609 one step closer to
5743 2006-01-21 James Livingston <jrl@ids.org.au>
5745 patch by: Alex Lancaster <alexl@users.sourceforge.net> to add support
5746 for Year metadata in DAAP sources. Fixes bug 327700.
5748 * daapsharing/rb-daap-connection.c: (handle_song_listing):
5750 2006-01-20 William Jon McCann <mccann@jhu.edu>
5752 * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
5753 enum values instead of magic numbers.
5755 * widgets/rb-property-view.c (rb_property_view_cell_data_func):
5756 Add number of songs that match each property title into
5757 the cell. Also show the number of properties that match
5759 (rb_property_view_constructor): Use enum values instead of
5762 * sources/rb-podcast-source.c (rb_podcast_source_constructor):
5763 Query podcast posts instead of feeds for browser. Use
5764 post SUBTITLE which is the location for the property view.
5765 (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
5766 (construct_query_from_selection)
5767 (rb_podcast_source_cmd_delete_feed)
5768 (rb_podcast_source_cmd_properties_feed)
5769 (rb_podcast_source_cmd_update_feed): Use variable to make
5770 it clear what the selection data represents.
5771 (rb_podcast_source_feed_title_cell_data_func): Add number
5772 of posts that belong to each feed in the browser.
5774 * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
5775 (rhythmdb_property_model_delete_prop): Decrement the refcount
5777 (rhythmdb_property_model_get_column_type): Use column enum
5778 values instead of magic numbers. Add NUMBER column.
5779 (rhythmdb_property_model_get_value): Use enum.
5780 Add NUMBER column that represents the refcount for
5781 the title of that property.
5782 (rhythmdb_property_model_perform_sync): Don't fake up
5783 a title for All here.
5787 2006-01-21 James Livingston <jrl@ids.org.au>
5789 Make Rhythmbox start faster by not blocking the UI while database
5790 initialisation and loading occurs. Closes bug 323348.
5792 * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
5793 start 10 seconds later instead of immediately.
5795 (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
5796 safe to call from any thread.
5798 (rhythmdb_process_metadata_load), (rhythmdb_process_events),
5799 (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
5800 so the UI doesn't block.
5802 2006-01-18 James Livingston <jrl@ids.org.au>
5804 * sources/rb-static-playlist-source.c:
5805 (rb_static_playlist_source_do_query): fix dumb mistake I made that would
5806 cause crashes. Oops. fixes bug 327477.
5808 2006-01-17 William Jon McCann <mccann@jhu.edu>
5810 * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
5811 Set GST element state to NULL before unreffing.
5814 2006-01-18 James Livingston <jrl@ids.org.au>
5816 * sources/rb-static-playlist-source.c:
5817 (rb_static_playlist_source_do_query): don't filter on the SONG entry
5818 type, since the playlists can contain non-song entries. Fixes bug
5821 * sources/rb-play-queue-source.c:
5822 (rb_play_queue_source_class_init): disable the search box for the
5825 2006-01-18 James Livingston <jrl@ids.org.au>
5827 * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
5828 dragging of podcast episodes. Fixed bug 327450.
5830 2006-01-18 James Livingston <jrl@ids.org.au>
5832 * rhythmdb/rhythmdb-query-model.c:
5833 (rhythmdb_query_model_drag_data_received): fix possible assertion when
5834 dragging to an emoty playlist.
5836 2006-01-18 Jonathan Matthew <jonathan@kaolin.hn.org>
5838 * sources/rb-playlist-source-recorder.c:
5839 Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
5841 2006-01-17 James Livingston <jrl@ids.org.au>
5843 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
5845 * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
5846 different number of tracks than exist on the cd, since that happens
5847 with audio+data hybrid CDs. Part of bug 325046.
5849 2006-01-17 Jonathan Matthew <jonathan@kaolin.hn.org>
5851 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
5852 Remove useless call to gtk_tree_view_column_set_clickable().
5854 * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
5855 Don't store sort data for columns if the sort function is NULL,
5856 so only sortable columns will be in the column sort data map.
5857 (rb_entry_view_set_columns_clickable): Only make columns we can sort
5859 (rb_entry_view_constructor): The 'playing icon' column is never
5860 clickable, so don't connect a signal handler for it.
5864 2006-01-17 James Livingston <jrl@ids.org.au>
5866 * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
5867 are 0.8 only. Fix element detection.
5869 * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
5870 saving the new metadata failed
5872 2006-01-17 James Livingston <jrl@ids.org.au>
5874 * shell/rb-shell-player.c: (do_next_idle),
5875 (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
5876 (eos_cb): release audio device when a playlist finishes. Fixes bug
5879 2006-01-17 James Livingston <jrl@ids.org.au>
5881 * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
5882 canonicalise the URIs when things are added via library watching.
5884 2006-01-16 William Jon McCann <mccann@jhu.edu>
5886 * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5887 Off by one error in default speed index.
5889 2006-01-16 William Jon McCann <mccann@jhu.edu>
5891 * sources/rb-playlist-source-recorder.c (get_write_speeds)
5892 (update_speed_combobox, update_speed_combobox):
5893 Get a list of the actually supported write speeds from
5894 n-c-b >= 2.13.90. Otherwise use fallback list.
5896 2006-01-17 James Livingston <jrl@ids.org.au>
5898 * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
5899 (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
5900 don't get stuck on recursive symlinks. Fixed bug 125452.
5902 2006-01-17 James Livingston <jrl@ids.org.au>
5904 Add support for mass-storage audio players. Players are detected via
5905 either the HAL "audio_player" capability, or a ".is_audio_player" file
5906 in the root of the volume. Closes bug 325602.
5908 * configure.ac: separate using HAL from ipod support.
5910 * lib/rb-file-helpers.c: (rb_uri_is_local):
5911 * lib/rb-file-helpers.h: add function to determine whether a URI is
5914 * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
5915 (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
5916 (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
5917 (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
5918 (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
5919 * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
5920 directories can be scanned for files to add as non-SONG entries.
5922 * shell/rb-removable-media-manager.c:
5923 (rb_removable_media_manager_mount_volume): add checking for
5924 mass-storage players.
5926 * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
5927 * sources/rb-ipod-source.c: (rb_ipod_source_new),
5929 * sources/rb-removable-media-source.c:
5930 (rb_removable_media_source_class_init),
5931 (rb_removable_media_source_constructor): move some things up to the
5932 RBRemovableMediaSource, rather than making subclasses do it.
5934 * sources/Makefile.am:
5935 * sources/rb-generic-player-source.c:
5936 * sources/rb-generic-player-source.h: add mass-storage player source.
5938 2006-01-16 James Livingston <jrl@ids.org.au>
5940 patch by: William Jon McCann <mccann@jhu.edu>
5942 * rhythmdb/rhythmdb-query-model.c:
5943 (rhythmdb_query_model_base_row_deleted): fix build issue from last
5946 2006-01-16 James Livingston <jrl@ids.org.au>
5948 Patch to add support for "chained queries" and putting hidden tracks
5949 in query models. Use chained queries to add search box support to
5950 normal playlists, and to make hidden entries not get lost. Fixes bug
5953 * rhythmdb/rhythmdb-query-model.h:
5954 * rhythmdb/rhythmdb-query-model.c:
5955 (rhythmdb_query_model_class_init),
5956 (rhythmdb_query_model_set_property),
5957 (rhythmdb_query_model_get_property):
5958 (rhythmdb_query_model_finalize): add "show-hidden" and
5959 "base-model" properties.
5961 (rhythmdb_query_model_set_connected),
5962 (rhythmdb_query_model_has_pending_changes),
5963 (rhythmdb_query_model_entry_added_cb),
5964 (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
5965 (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
5966 (rhythmdb_query_model_remove_entry),
5967 (rhythmdb_query_model_drag_data_received),
5968 (rhythmdb_query_model_base_row_inserted),
5969 (rhythmdb_query_model_base_row_deleted),
5970 (rhythmdb_query_model_base_non_entry_dropped),
5971 (rhythmdb_query_model_base_complete),
5972 (rhythmdb_query_model_base_entry_prop_changed),
5973 (rhythmdb_query_model_base_rows_reordered),
5974 (rhythmdb_query_model_row_drop_possible): handle base-model by
5975 chaining events and operations where necessary. Make hidden entries
5976 not get added only if "show-hidden" is false.
5978 (rhythmdb_query_model_child_index_to_base_index),
5979 (rhythmdb_query_model_base_index_to_child_index),
5980 (rhythmdb_query_model_get_entry_index): utility functions for handling
5983 (rhythmdb_query_model_reapply_query): apply the current query, and
5984 remove entries that don't match it.
5986 * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
5989 * sources/rb-source.c: (rb_source_set_property): move the unref later
5990 to fix problem if it is the last reference.
5992 * sources/rb-static-playlist-source.c:
5993 (rb_static_playlist_source_class_init),
5994 (rb_static_playlist_source_init),
5995 (rb_static_playlist_source_finalize),
5996 (rb_static_playlist_source_constructor), (impl_reset_filters),
5997 (impl_search), (rb_static_playlist_source_do_query),
5998 (impl_save_contents_to_xml),
5999 (rb_static_playlist_source_add_location_internal): use a chained query
6000 model to filter out hidden entries and implement the search box.
6002 2006-01-15 James Livingston <jrl@ids.org.au>
6004 * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
6005 the default playlist loading, which I broke earlier.
6007 2006-01-15 James Livingston <jrl@ids.org.au>
6009 patch by: William Jon McCann <mccann@jhu.edu>
6011 * sources/rb-playlist-source.c: (playlist_iter_func): use
6012 totem-plparser's new API version macros to check for API changes.
6013 Handle the recent API change.
6015 2006-01-15 Jonathan Matthew <jonathan@kaolin.hn.org>
6017 * sources/rb-library-source.c: (impl_get_config_widget):
6018 Ref the preferences object to match the unref in the
6019 finalizer. Fixes some portion of #323505.
6021 2006-01-15 Jonathan Matthew <jonathan@kaolin.hn.org>
6023 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
6024 * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
6025 Fix valgrind warnings about accessing uninitialised values.
6027 2006-01-14 William Jon McCann <mccann@jhu.edu>
6029 * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
6031 2006-01-14 Jonathan Matthew <jonathan@kaolin.hn.org>
6033 * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
6034 Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
6035 Stops the 'now playing' icon from being displayed after the play
6038 2006-01-14 Jonathan Matthew <jonathan@kaolin.hn.org>
6040 * podcast/rb-podcast-manager.c:
6041 (rb_podcast_manager_db_entry_deleted_cb):
6042 Don't try to delete files we never downloaded, and cancel downloads
6043 for deleted episodes. Fixes bug #326862.
6044 * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
6045 Don't complain about NULL data items in the selection list.
6047 2006-01-14 James Livingston <jrl@ids.org.au>
6049 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
6050 Make the name ofthe queue non editable. Fixes bug 326918.
6052 2006-01-13 William Jon McCann <mccann@jhu.edu>
6054 * sources/rb-playlist-source-recorder.c (burn_cd)
6055 (ask_rewrite_disc): Don't use our locally copied functions
6056 if we have at least 2.13.
6058 2006-01-13 William Jon McCann <mccann@jhu.edu>
6060 * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
6061 Correct the argument type for the process_error signal.
6062 May fix bug #323154.
6064 2006-01-13 James Livingston <jrl@ids.org.au>
6066 save the queue to disk when exiting, and reload on startup. Fixed bug
6069 * shell/rb-playlist-manager.c:
6070 (rb_playlist_manager_load_playlists),
6071 (rb_playlist_manager_save_playlists_async): don't disable saving of
6074 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6075 add the queue source as a gobject property.
6077 * sources/rb-play-queue-source.c:
6078 (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
6079 code to save the queue to xml
6081 * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
6082 load the queue from xml.
6083 * sources/rb-playlist-xml.h:
6085 * sources/rb-static-playlist-source.c:
6086 (rb_static_playlist_source_load_from_xml),
6087 (rb_static_playlist_source_new_from_xml):
6088 * sources/rb-static-playlist-source.h: split the playlist xml loading
6089 from the static playlist creation function, so the queue can use it.
6091 2006-01-13 James Livingston <jrl@ids.org.au>
6093 * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
6094 assertion that should be there. Fixes bug 325923.
6096 * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
6097 return NULL if the entry already exists (e.g. as another type).
6098 * daapsharing/rb-daap-connection.c: (handle_song_listing):
6099 * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6100 (rb_podcast_manager_insert_feed):
6101 * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
6102 * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
6103 * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
6104 for the above function returning NULL.
6106 2006-01-12 James Livingston <jrl@ids.org.au>
6108 * doc/reference/Makefile.am: make gtk-docs build again when libnotify
6109 is enabled. Fixes bug 326673.
6111 * doc/reference/tmpl/eggtrayicon.sgml:
6112 * doc/reference/tmpl/rb-daap-src.sgml:
6113 * doc/reference/tmpl/rb-source.sgml:
6114 * doc/reference/tmpl/rb-statusbar.sgml:
6115 * doc/reference/tmpl/rb-tree-model-sort.sgml:
6116 * doc/reference/tmpl/rhythmbox-unused.sgml:
6117 * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
6119 2006-01-11 James Livingston <jrl@ids.org.au>
6121 * widgets/rb-song-info.c: (rb_song_info_constructor),
6122 (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
6123 (rb_song_info_populate_dialog): fill in the fields if all tracks have
6124 the same value for properties. From bug 326054.
6126 2006-01-11 James Livingston <jrl@ids.org.au>
6128 * sources/rb-source.h:
6129 * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
6130 (rb_shell_player_set_playing_source_internal), (eos_cb):
6131 add support for RB_SOURCE_EOF_STOP, so that playback will stop after
6134 * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
6135 source use this. Closes bug 322077.
6137 2006-01-10 William Jon McCann <mccann@jhu.edu>
6139 * widgets/eggtrayicon.c (egg_tray_icon_notify):
6140 In order for set_icon_data_from_pixbuf() to be
6141 effective, one must not set an icon in _new().
6143 2006-01-10 William Jon McCann <mccann@jhu.edu>
6145 * widgets/eggtrayicon.c (egg_tray_icon_init)
6146 (egg_tray_icon_unrealize, egg_tray_icon_cancel_message)
6147 (egg_tray_icon_notify): Add support for libnotify 0.3.
6148 * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
6149 * configure.ac: Determine the version of libnotify.
6152 2006-01-08 James Livingston <jrl@ids.org.au>
6154 * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
6155 trying to share a track with unknown length.
6157 2006-01-08 Jonathan Matthew <jonathan@kaolin.hn.org>
6159 * shell/rb-shell-player.c: (rb_shell_player_init):
6160 Sync volume on startup so it doesn't default to 0.
6162 2006-01-08 Jonathan Matthew <jonathan@kaolin.hn.org>
6164 * shell/rb-shell-player.c: (rb_shell_player_class_init),
6165 (rb_shell_player_get_property), (rb_shell_player_open_location),
6166 (info_available_cb): Add the iradio streamed song title as a
6167 property, and emit a signal when it changes.
6169 * shell/rb-shell.c: (rb_shell_constructor),
6170 (rb_shell_player_elapsed_changed_cb),
6171 (rb_shell_player_stream_song_changed_cb):
6172 Issue a notification when the iradio song title changes.
6175 2006-01-08 Jonathan Matthew <jonathan@kaolin.hn.org>
6177 * shell/rb-shell-player.c: (rb_shell_player_init),
6178 (rb_shell_player_finalize), (rb_shell_player_set_property),
6179 (rb_shell_player_get_property), (rb_shell_player_sync_volume),
6180 (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
6181 (rb_shell_player_set_volume_relative),
6182 (rb_shell_player_get_volume), (rb_shell_player_set_mute),
6183 (rb_shell_player_get_mute):
6184 * shell/rb-shell-player.h:
6185 * shell/rb-shell-player.xml:
6186 Store volume as a property on RBShellPlayer, rather than in gconf.
6187 Add some methods to control volume via dbus.
6189 * shell/rb-shell.c: (rb_shell_constructor),
6190 (rb_shell_volume_widget_changed_cb),
6191 (rb_shell_player_volume_changed_cb):
6192 * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
6193 Update volume using player properties rather than gconf, and sync the
6194 volume with the volume control button when something else changes it.
6197 2006-01-07 William Jon McCann <mccann@jhu.edu>
6199 * shell/rb-tray-icon.c (tray_popup_position_menu):
6200 Make tray menu align with edge of panel.
6202 patch from Jaap A. Haitsma <jaap@haitsma.org>
6205 2006-01-07 William Jon McCann <mccann@jhu.edu>
6206 * shell/rb-shell.c (sourcelist_drag_received_cb):
6207 * shell/rb-playlist-manager.[ch] (create_name_from_selection_data)
6208 (rb_playlist_manager_new_playlist_from_selection_data):
6209 Make a reasonable default name for playlists created from
6210 dropped data. Fixes #326116.
6212 2006-01-07 William Jon McCann <mccann@jhu.edu>
6214 * sources/rb-playlist-source-recorder.c (update_speed_combobox):
6216 (burn_cd): Always eject CD after burning. Too many drives
6217 get confused if we don't. Save the speed used if the burn
6218 was completed successfully.
6220 * data/rhythmbox.schemas: Use our own speed instead of from
6221 n-c-b. The situation is that the default_speed for n-c-b is most
6222 likely the maximum write speed. This is fine for n-c-b because it
6223 has burn-proof turned on. We can't turn it on for audio CDs
6224 because the results are poor in quality. So we'll just pick a
6225 default that should work for everyone (4).
6227 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
6229 * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
6230 (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
6232 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
6234 * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
6235 in my previous commit. Fixes #326037.
6237 2006-01-06 Ryan P Skadberg <skadz@stigmata.org>
6239 patch by: Jonathan Matthew
6241 * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
6242 error on Fedora Rawhide.
6244 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
6246 * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
6247 Assume HTTP URLs ending with .xml or .rss are podcasts.
6248 (rb_shell_add_uri): Handle adding podcast feeds.
6250 * sources/rb-podcast-source.c: (rb_podcast_source_new):
6251 Register as the source for podcast feeds.
6253 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
6255 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
6256 * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
6257 (rb_shell_preferences_append_view_page):
6258 * shell/rb-shell-preferences.h:
6259 Fix typo in function name. Fixes #325992.
6261 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
6263 * shell/rb-audioscrobbler.c:
6264 Add '+' to the list of characters to URI-encode, so it doesn't get
6265 interpreted as a space.
6267 2006-01-06 Jonathan Matthew <jonathan@kaolin.hn.org>
6269 * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
6270 (rb_daap_connection_do_something): Don't crash if the DAAP server
6271 goes away while we're still trying to log in.
6273 2006-01-06 James Livingston <jrl@ids.org.au>
6275 * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
6277 2006-01-06 James Livingston <jrl@ids.org.au>
6279 Patch from: Alex Lancaster <alexl@users.sourceforge.net> to add
6280 support for Year to automatic playlists. Closes bug 321341.
6282 * rhythmdb/rhythmdb-query-model.c:
6283 (rhythmdb_query_model_set_property):
6284 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
6285 * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
6286 (rhythmdb_query_free), (rhythmdb_query_serialize),
6287 (rhythmdb_query_deserialize), (rhythmdb_query_internal),
6288 (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
6289 * rhythmdb/rhythmdb.h: Support special
6290 RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
6293 * widgets/rb-query-creator-properties.c:
6294 (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
6295 (yearCriteriaGetWidgetData): add Year to the list of criteria options.
6297 2006-01-06 James Livingston <jrl@ids.org.au>
6299 * configure.ac: make the playback backend selection work correctly
6301 * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
6302 (rb_daap_src_class_init), (rb_daap_src_dispose),
6303 (rb_daap_src_change_state), (rb_daap_src_initialize):
6304 * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
6305 doesn't work for this class. Fixes bug 325934
6307 2006-01-06 Jonathan Matthew <jonathan@kaolin.hn.org>
6309 * configure.ac: Fix check for libnotify.
6311 2006-01-05 William Jon McCann <mccann@jhu.edu>
6313 * sources/rb-playlist-source.c (xml_get_and_trim_names):
6314 Get name element for current lang and remove all name nodes
6316 (get_playlist_name_from_xml): Try to get name element or
6317 fall back to name attribute.
6318 (rb_playlist_source_new_from_xml): Get name before turning over
6319 to sub-types for parsing so that we can remove name elements
6320 from the tree if necessary.
6322 * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
6323 Load default playlists file if per user playlists are not found.
6325 * data/playlists.xml.in:
6327 * data/.cvsignore: Add default set of playlists.
6330 2006-01-05 Jonathan Matthew <jonathan@kaolin.hn.org>
6332 * shell/main.c: (main): Don't use the dbus interface to show the
6333 window if we're also going to use the bonobo interface.
6335 2006-01-05 Jonathan Matthew <jonathan@kaolin.hn.org>
6337 * shell/rb-history.c: (rb_history_set_playing):
6338 Allow setting the playing song to NULL.
6339 (rb_history_append), (rb_history_delete_link):
6340 Don't randomly change position when entries are added and removed,
6341 it confuses play orders.
6343 * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
6344 Random orders always have a next entry if the model is not empty.
6345 (rb_random_play_order_get_next), (rb_random_play_order_go_next):
6346 Go back to the start of the history if we're past its end.
6348 * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
6349 (rb_shuffle_play_order_go_next): Go back to the start of the history
6350 if we're past its end.
6351 (rb_shuffle_sync_history_with_query_model): Go back to the start of
6352 the history if the current entry is removed.
6354 * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
6355 (rb_play_order_entry_deleted_cb): Only update have next/previous for
6356 the play order when the query has finished. This wasted about 10% CPU
6357 while the query was running.
6359 Fixes #324641: assertion failures when the query model was changed
6360 such that the playing song was no longer present.
6362 2006-01-05 James Livingston <jrl@ids.org.au>
6364 * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
6365 (rb_daap_src_dispose), (rb_daap_src_change_state):
6366 * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
6367 (rhythmdb_gda_finalize):
6368 * widgets/rb-cell-renderer-pixbuf.c:
6369 * widgets/rb-cell-renderer-rating.c:
6370 (rb_cell_renderer_rating_class_init),
6371 (rb_cell_renderer_rating_finalize):
6372 * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
6373 * widgets/rb-load-failure-dialog.c:
6374 (rb_load_failure_dialog_class_init),
6375 (rb_load_failure_dialog_finalize):
6376 * widgets/rb-rating.c: (rb_rating_class_init),
6377 (rb_rating_finalize):
6378 * widgets/rb-search-entry.c: (rb_search_entry_class_init),
6379 (rb_search_entry_finalize): use G_DEFINE_TYPE
6381 * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
6383 2006-01-05 James Livingston <jrl@ids.org.au>
6385 patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
6387 * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
6390 * shell/rb-history.c: (rb_history_class_init),
6391 (rb_history_finalize):
6392 * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
6393 (rb_playlist_manager_finalize):
6394 * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
6395 (rb_remote_init): use G_DEFINE_TYPE.
6397 2006-01-05 James Livingston <jrl@ids.org.au>
6399 * configure.ac: don't try to use libnotify >= 0.3.0 because of API
6402 2006-01-04 William Jon McCann <mccann@jhu.edu>
6404 * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
6405 Disable burn action when source is not a playlist.
6408 2006-01-04 Jonathan Matthew <jonathan@kaolin.hn.org>
6410 Optionally use libnotify to display song change and other
6411 notifications, and provide an option to disable notifications.
6412 Fixes #320355 and innumerable informal complaints.
6414 * widgets/eggtrayicon.c: (egg_tray_icon_init),
6415 (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
6416 (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
6417 (egg_tray_icon_notify):
6418 * widgets/eggtrayicon.h:
6420 * shell/Makefile.am:
6421 Optionally use libnotify instead of eggnotificationbubble.
6423 * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
6424 (rb_tray_icon_constructor),
6425 (rb_tray_icon_show_notifications_changed_cb),
6426 (rb_tray_icon_hide_notify_cb)
6427 (rb_tray_icon_cancel_notify), (rb_tray_icon_notify):
6428 Add 'show notifications' action handling, use G_DEFINE_TYPE, move
6429 EggNotificationBubble pointer to eggtrayicon.
6431 * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
6432 * lib/rb-preferences.h: Add #define for /ui/show_notifications key
6433 * data/rhythmbox.schemas: Add schema for /ui/show_notification key
6435 2006-01-04 William Jon McCann <mccann@jhu.edu>
6437 * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
6438 Request a minimum size for the progress bar so that
6439 the window doesn't shrink too small.
6441 2006-01-03 Jonathan Matthew <jonathan@kaolin.hn.org>
6443 * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
6444 (add_db_entry), (db_entry_deleted_cb):
6445 Don't track the number of songs currently present, track the next ID
6446 to assign. Fixes potential ID conflict problems.
6448 (db_entry_changed_cb), (rb_daap_share_start_publish),
6449 (rb_daap_share_stop_publish):
6450 Watch for db entry changes, and when songs become non-hidden after
6451 a successful stat, add them to the mapping tables. Fixes #325178,
6452 making the DAAP server usable again.
6454 2006-01-03 Jonathan Matthew <jonathan@kaolin.hn.org>
6456 * shell/rb-statusbar.c: (rb_statusbar_class_init),
6457 (rb_statusbar_construct), (rb_statusbar_init),
6458 (rb_statusbar_finalize), (rb_statusbar_set_property),
6459 (rb_statusbar_get_property), (rb_statusbar_new),
6460 (rb_statusbar_sync_with_source):
6461 * shell/rb-statusbar.h:
6462 Remove visibility management code, stop watching for play order
6463 changes (status bar doesn't show play order any more), remove unused
6464 'player' property, and some other minor cleanup.
6466 * shell/rb-shell.c: (rb_shell_constructor),
6467 (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
6468 (rb_shell_sync_statusbar_visibility):
6469 Manage status bar visibility here rather than in the status bar
6470 itself, so we can take small mode into account. Fixes #323589.
6472 2006-01-03 Jonathan Matthew <jonathan@kaolin.hn.org>
6474 * widgets/eggnotificationbubble.c: (draw_bubble):
6475 Move the bubble off the visible screen while setting up bevels.
6478 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
6480 * shell/rb-shell-player.c: (rb_shell_player_init),
6481 (rb_shell_player_finalize):
6482 Remove unused structure members.
6484 (do_next_idle), (rb_shell_player_error):
6485 Only queue one call to do_next_idle, so we don't skip tracks if we get
6486 two errors for the same song. Fixes #325216.
6488 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
6490 * data/glade/podcast-feed-properties.glade,
6491 podcast/rb-feed-podcast-properties-dialog.c:
6492 (rb_feed_podcast_properties_dialog_init),
6493 (rb_feed_podcast_properties_dialog_update):
6494 Add 'last episode' field to the podcast feed properties dialog.
6496 * podcast/rb-feed-podcast-properties-dialog.c:
6497 (rb_feed_podcast_properties_dialog_update_last_update),
6498 (rb_feed_podcast_properties_dialog_update_last_episode),
6499 podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6500 Use last-seen property for the time at which we last updated the feed,
6501 and post-time for the time the last episode was published.
6503 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
6504 Handle upgrades from 0.9.2; if no post-time was found for a podcast
6505 feed, use last-seen (which in 0.9.2 was the last post time).
6509 2006-01-01 James Livingston <jrl@ids.org.au>
6511 patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
6513 * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
6514 year from the ipod database.
6516 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
6518 * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
6519 Only set the pipeline back to NULL state for really uninteresting
6520 files. This was causing deadlocks with various video files.
6523 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
6525 * data/glade/song-info-multiple.glade:
6526 Add disc number label and field.
6527 * widgets/rb-song-info.c: (rb_song_info_construct_single),
6528 (rb_song_info_constructor):
6529 Handle widgets for disc number.
6530 (rb_song_info_sync_entries_multiple):
6531 Set disc number property on selected entries.
6534 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
6536 * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
6537 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
6538 Activate the default widget when enter is pressed in these dialogs.
6541 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
6543 * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
6544 Use rb_shell_player_get_playing_entry, so we get the right entry
6545 when playing from the queue. Fixes #325379.
6547 2005-12-31 Jonathan Matthew <jonathan@kaolin.hn.org>
6549 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
6550 Include podcast posts with no publication date. Typically
6551 seen in static collections rather than feeds.
6553 2005-12-31 Jonathan Matthew <jonathan@kaolin.hn.org>
6555 * shell/main.c: (main): Don't attempt to handle
6556 bonobo-only arguments if we couldn't get a bonobo
6559 2005-12-31 Jonathan Matthew <jonathan@kaolin.hn.org>
6561 * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
6562 (rb_daap_mdns_publish_cancel): Clear our_service_name so we don't
6563 abort if daap sharing is disabled and then re-enabled.
6565 2005-12-29 William Jon McCann <mccann@jhu.edu>
6567 * podcast/rb-podcast-parse.c (rb_insert_item):
6569 (rb_podcast_parser_start_element): Support itunes:image.
6570 Add debugging. Don't abuse the break statement. Warn
6571 if state is unknown.
6572 (rb_podcast_parser_end_element): Add debugging. Warn
6573 if state is unknown.
6574 (rb_podcast_parser_characters): Warn if state is unknown.
6576 Fixes parsing of feeds that use the itunes:image element.
6579 2005-12-28 Jonathan Matthew <jonathan@kaolin.hn.org>
6581 * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
6582 (stations_view_drag_data_received_cb):
6583 Remove calls to rhythmdb_entry_lookup_by_location, as
6584 rb_iradio_source_add_station does that anyway.
6586 (rb_iradio_source_add_from_playlist):
6587 If the URL doesn't point to a playlist, add it as the stream
6590 2005-12-27 Jonathan Matthew <jonathan@kaolin.hn.org>
6592 * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
6593 just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
6594 so we don't get an assertion failure.
6597 2005-12-24 Jonathan Matthew <jonathan@kaolin.hn.org>
6599 * shell/main.c: (load_uri_args): don't compile this in if
6600 neither bonobo nor dbus are enabled. Fixes #324890.
6602 2005-12-22 Jonathan Matthew <jonathan@kaolin.hn.org>
6604 * sources/rb-audiocd-source.c:
6605 (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
6606 so it closes the device.
6608 2005-12-20 James Livingston <jrl@ids.org.au>
6610 * metadata/rb-metadata-gst.c: make the state changes time-out again,
6611 so that it doesn't spend forever getting stuck on the one file. Don't
6612 report errors for failing to change state on known non-audio files.
6614 * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
6615 audio sink creation if we can't create the gconfaudiosink. This lets
6616 it work with only gst-plugins-base on 0.10.
6618 2005-12-20 Jonathan Matthew <jonathan@kaolin.hn.org>
6620 * rhythmdb/rhythmdb-query-model.c:
6621 (rhythmdb_query_model_set_sort_order):
6622 Fix a tiny memory leak in the previous commit.
6624 2005-12-20 Jonathan Matthew <jonathan@kaolin.hn.org>
6626 * rhythmdb/rhythmdb-query-model.c:
6627 (rhythmdb_query_model_set_sort_order):
6628 Don't try to emit reorders for empty query models, since it doesn't
6629 achieve anything and it results in a few warnings.
6631 2005-12-19 William Jon McCann <mccann@jhu.edu>
6633 * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
6634 Make burn dialog non-resizable so that the expander can shrink.
6637 2005-12-19 Jonathan Matthew <jonathan@kaolin.hn.org>
6639 * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
6640 add entries without a location, rather than those with one.
6642 2005-12-19 James Livingston <jrl@ids.org.au>
6644 * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
6645 the error isn't set.
6647 2005-12-19 James Livingston <jrl@ids.org.au>
6648 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
6649 add entries without a location. Fixes bug 324290.
6651 * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
6654 * shell/main.c: (main): don't crash if dbus initialisation fails
6655 without setting an error
6657 2005-12-19 Jonathan Matthew <jonathan@kaolin.hn.org>
6659 * sources/rb-library-source.c: Remove unused structure members
6660 (rb_library_source_do_query): Actually use the cached 'all' query.
6663 2005-12-16 Jonathan Matthew <jonathan@kaolin.hn.org>
6665 * sources/rb-audiocd-source.c
6666 (rb_audiocd_get_cd_info): tab
6667 (rb_audiocd_scan_songs): Return boolean success/failure,
6668 fix error messages a bit.
6669 (metadata_cb): Don't crash if we have no tracks
6670 (rb_audiocd_load_songs): Don't try to read metadata if we can't read
6674 2005-12-15 William Jon McCann <mccann@jhu.edu>
6676 * shell/rb-shell.c (rb_shell_sync_fullscreen)
6677 (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
6680 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
6683 2005-12-14 William Jon McCann <mccann@jhu.edu>
6685 * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize)
6686 (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen)
6687 (fullscreen_changed_cb):
6688 * lib/rb-preferences.h:
6689 * data/ui/rhythmbox-ui.xml:
6690 * data/rhythmbox.schemas:
6691 Add fullscreen mode.
6695 2005-12-14 Ryan P Skadberg <skadz@stigmata.org>
6697 * configure.ac: Removed DBUS_SERVICES_DIR from top-level
6698 configure. It was not working with RPM.
6699 * data/Makefile.am: Switched dbus directory location to use
6700 datadir instead of variable that was not working.
6702 2005-12-13 James Livingston <jrl@ids.org.au>
6704 patch by: Alex Lancaster <alexl@users.sourceforge.net>
6706 * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
6707 the podcast browser work again. Closes bug 323856.
6709 2005-12-12 William Jon McCann <mccann@jhu.edu>
6711 * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
6714 * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
6715 (rb_utf_friendly_time):
6716 * lib/rb-cut-and-paste-code.h:
6718 * podcast/rb-feed-podcast-properties-dialog.c:
6719 (rb_feed_podcast_properties_dialog_parse_time):
6720 * podcast/rb-podcast-properties-dialog.c:
6721 (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
6722 to display the date in a more user friendly way.
6723 For example, if the feed was updated yesterday it will say:
6724 Last updated: Yesterday 10:00 AM
6725 instead of printing the date.
6727 2005-12-12 William Jon McCann <mccann@jhu.edu>
6729 * podcast/rb-podcast-parse.c (rb_set_channel_value)
6730 (rb_set_item_value, rb_insert_item, rb_validate_channel_propert)
6731 (rb_validate_item_propert, rb_podcast_parser_start_element)
6732 (rb_podcast_parser_end_element, rb_podcast_parser_characters):
6733 Use RB style. Check for NULL before strcmp. No C++ comments.
6734 (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
6735 Don't set invalid mime type when mime type is NULL. Fix leaks.
6736 (rb_podcast_parse_date): Add support for some real world
6738 (rb_podcast_parse_time, rb_podcast_parse_channel_free)
6739 (rb_podcast_parse_item_free): Style and no need to check
6740 for NULL before g_free.
6744 2005-12-12 James Livingston <jrl@ids.org.au>
6746 * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
6747 with gstreamer 0.10, which replaced audioscale.
6749 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
6750 function to free the SoupSession
6752 * shell/rb-source-header.c: (rb_source_header_set_property),
6753 (rb_source_header_disclosure_toggled_cb),
6754 (rb_source_header_view_browser_changed_cb),
6755 (rb_source_header_sync_control_state):
6756 * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
6757 * sources/rb-library-source.c: (rb_library_source_class_init):
6758 * sources/rb-source.c: (rb_source_class_init),
6759 (rb_source_get_status), (default_get_browser_key),
6760 (rb_source_get_browser_key), (rb_source_can_browse),
6761 (rb_source_notify_status_changed),
6762 (rb_source_notify_filter_changed):
6763 * sources/rb-source.h: seperate the enabling of browsers from the use
6766 2005-12-11 William Jon McCann <mccann@jhu.edu>
6768 * data/glade/podcast-feed-properties.glade:
6769 * data/glade/podcast-properties.glade: Use scrolled viewports
6770 for description text. Fix regression of #320509.
6772 2005-12-11 James Livingston <jrl@ids.org.au>
6774 * sources/rb-auto-playlist-source.c:
6775 (rb_auto_playlist_source_class_init), (impl_reset_filters),
6776 (impl_search), (rb_auto_playlist_source_do_query),
6777 (rb_auto_playlist_source_set_query),
6778 (rb_auto_playlist_source_get_query): add support for the search box
6779 to automatic playlists.
6781 * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
6784 2005-12-11 James Livingston <jrl@ids.org.au>
6788 2005-12-11 James Livingston <jrl@ids.org.au>
6790 * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
6791 (rhythmdb_load), (monitor_subdirectory),
6792 (rhythmdb_sync_library_location): start the library sync and
6793 monitoring in an idle callback.
6795 2005-12-10 William Jon McCann <mccann@jhu.edu>
6797 * sources/rb-podcast-source.c (rb_podcast_source_class_init)
6798 (rb_podcast_source_constructor): Remove unused pixbuf column.
6799 (rb_podcast_source_set_property, rb_podcast_source_get_property):
6800 Use consistent style.
6804 2005-12-11 James Livingston <jrl@ids.org.au>
6806 * rhythmdb/rhythmdb-property-model.c:
6807 (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
6808 (rhythmdb_property_model_insert),
6809 (rhythmdb_property_model_delete_prop):
6810 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
6811 (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
6812 (destroy_tree_property):
6813 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
6814 (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
6815 GMemChunks, they are crap and deprecated. Improves startup-time and
6816 memory usage slightly.
6818 2005-12-10 William Jon McCann <mccann@jhu.edu>
6820 * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
6821 Added license and website info.
6823 * MAINTAINERS.old: Add Colin.
6824 * MAINTAINERS: Add James.
6825 * AUTHORS: Put back in order. Add extra space between name and email
6826 to make it easier to read. Add James and jonathan.
6828 * widgets/rb-song-info.c (rb_song_info_init)
6829 (rb_song_info_constructor): Make sure close button is primary/rightmost.
6831 2005-12-10 Jonathan Matthew <jonathan@kaolin.hn.org>
6833 Play queue implementation. Closes bug 107787.
6835 * data/rhythmbox.schemas: add items for whether the queue should be
6836 displayed as a sidebar, and the height of the sourcelist if it is.
6838 * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
6839 playlist, and podcast popups; add 'view queue as sidebar' menu item,
6840 add popups for queue as source and as sidebar. We need a separate
6841 popup for the sidebar view because otherwise it's hard to tell which
6842 of the visible entry views the action came from.
6844 * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
6846 * po/POTFILES.in: Add new file
6848 * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
6849 Add helper function for deciding if a podcast episode is available for
6852 * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
6853 reorder entries in the query model.
6854 (idle_process_update): Handle new update type used to insert entries
6855 at a particular position in the query model.
6856 (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
6857 parameter to specify the position (-1 meaning 'at the end').
6858 (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
6860 (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
6861 bad entry removal updates for entries that aren't in the model.
6862 (rhythmdb_query_model_emit_reorder): Add helper function for
6864 (rhythmdb_query_model_move_entry): New method for moving entries
6866 (rhythmdb_query_model_entry_added_cb),
6867 (rhythmdb_query_model_update_limited_entries),
6868 (rhythmdb_query_model_do_reorder),
6869 (rhythmdb_query_model_do_insert): Pass through the index parameter,
6870 use rhythmdb_query_model_emit_reorder where appropriate.
6872 * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
6873 Don't allow the queue to be deleted.
6874 (handle_playlist_entry_cb): Update for method signature change
6875 (rb_playlist_manager_save_playlists_async),
6876 (rb_playlist_manager_get_playlists): Don't save the play queue,
6877 don't report it as a playlist.
6879 * shell/rb-play-order.c: Include queue play order in the list of
6883 (rb_shell_class_init), (rb_shell_get_property): Add new property
6884 for access to the clipboard object.
6885 (rb_shell_constructor): Handle playing-from-queue signal to update the
6886 sourcelist display; add queue sidebar in to UI, listen for queue
6887 sidebar pane changes, and read initial settings from gconf.
6888 (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb):
6889 Only tell the sourcelist the source has changed if the new source is
6890 not the queue, as we update the sourcelist differently in that case.
6891 (rb_shell_set_window_title): Only use the cached window title if the
6892 playing state was the same when it was created.
6893 (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
6894 (rb_shell_sync_pane_visibility): Only hide the side pane if the
6895 sourcelist is hidden and the queue is shown as a source.
6896 (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
6897 mode, since it doesn't make any sense.
6898 (sourcelist_visibility_changed_cb): Update the visibility of the pane
6900 (rb_shell_sync_paned): Update the queue sidebar pane separator too.
6901 (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
6902 (rb_shell_jump_to_entry_with_source): Handle jump to entry when
6903 playing from queue shown as sidebar.
6905 * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
6906 MusicProperties action here from rb-shell-player.c, since it acts like
6908 (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
6909 (rb_shell_clipboard_get_property): new property for queue source.
6910 Watch for selection changes in the sidebar entry view as well as the
6912 (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
6913 actions and MusicProperties.
6914 (rb_shell_clipboard_cmd_queue_delete),
6915 (rb_shell_clipboard_cmd_add_song_to_queue),
6916 (rb_shell_clipboard_cmd_song_info),
6917 (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
6919 * shell/rb-shell-player.{c,h}: Track the source the current playing entry
6920 actually came from (could be the playing source, or the queue), add a
6921 new play order object for the queue, add a property for the queue
6922 source, add a signal for when we switch between playing from the
6923 source and from the queue.
6924 (rb_shell_player_set_property): Handle playing directly from the
6925 queue so we stop once the queue is empty. Create queue play order
6926 when we get the queue source.
6927 (rb_shell_player_get_playing_source): Return the source we're actually
6929 (rb_shell_player_get_playing_entry): Get playing entry from queue if
6931 (rb_shell_player_set_playing_entry): Update the queue play order if
6932 that's where we're playing from.
6933 (rb_shell_player_play_order_update_cb): Take has next/previous for the
6934 queue into consideration too.
6935 (swap_playing_source): Helper function for switching the playing
6937 (rb_shell_player_do_previous): Check the queue, even though there's
6938 never a previous entry in it (yet), swap playing source if it changed.
6939 (rb_shell_player_do_next): Check the queue for entries to play before
6940 the normal play order, and swap playing source if it changed.
6941 (rb_shell_player_do_previous_or_seek): Check the queue for previous
6942 entries to go to as well.
6943 (rb_shell_player_playpause): Check the queue before the selection and
6944 the play order, and swap playing source if it changed.
6945 (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
6946 (rb_shell_player_entry_activated_cb): Use
6947 rb_podcast_manager_entry_downloaded, do some tapdancing to make
6948 activating queue entries work properly (move the activated entry to
6949 the start of the queue and then play it); if we were playing from the
6950 queue, clear its playing entry so it'll start again from the start
6951 after the activated entry.
6952 (rb_shell_player_sync_buttons): MusicProperties action handler moved
6953 to rb-shell-clipboard.c
6954 (actually_set_playing_source): Add helper for updating the playing
6956 (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
6957 signal if we stop or start doing so; use actually_set_playing_source;
6958 emit playing-source-changed if we actually did change source.
6960 * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
6961 rb_static_playlist_source_add_location.
6963 * sources/rb-library-source.c (rb_library_source_class_init): Allow
6964 enqueueing of songs from the library.
6966 * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
6967 enqueueing of sonsg from playlists.
6968 (rb_playlist_source_entry_added_cb): Add extra parameter for
6969 rhythmdb_query_model_add_entry.
6971 * sources/rb-podcast-source.c (rb_podcast_source_class_init):
6972 Implement (can_)add_to_queue for this class.
6973 (rb_podcast_source_entry_activated): Use
6974 rb_podcast_manager_entry_downloaded.
6975 (impl_can_add_to_queue): Return TRUE if at least one entry that has
6976 been downloaded is selected.
6977 (impl_add_to_queue): Only add downloaded entries to the queue.
6979 * sources/rb-source.{c,h}:
6980 (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual
6982 (rb_source_class_init): Don't allow enqueueing by default; implement
6983 add_to_queue though.
6984 (default_add_to_queue): Add all selected entries to the queue.
6986 * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
6987 would be playing if there wasn't anything in the queue).
6988 (set_source_playing): Helper function for manipulating tree store.
6989 (rb_sourcelist_set_playing_source): Use set_source_playing
6990 (rb_sourcelist_preempt_playing_source): Update preempted source
6991 pointer, manipulate source states.
6993 * sources/rb-static-playlist-source.{c,h}:
6994 (rb_static_playlist_source_add_location_internal),
6995 (rb_static_playlist_source_add_location),
6996 (rb_static_playlist_source_add_entry): Add index parameter for
6997 specifying where in the playlist the new entry goes.
6998 (rb_static_playlist_source_new_from_xml), (impl_paste),
6999 (rb_static_playlist_source_add_list_uri),
7000 (rb_static_playlist_source_add_location_swapped),
7001 (rb_static_playlist_source_add_locations),
7002 (rb_static_playlist_source_non_entry_dropped),
7003 (rb_static_playlist_source_row_inserted):
7004 Handle new index parameter everywhere it appears
7005 (rb_static_playlist_source_move_entry): New method for moving entries
7006 around in the playlist.
7008 * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
7009 warnings when trying to scroll entry views that have never been
7012 * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
7013 play order that removes the old entry when switching to a new one.
7015 * sources/rb-play-queue-source.{c,h}: New files, implementing a
7016 static playlist subclass that has a second entry view for the sidebar
7017 view using alternate formatting, and that displays the number of
7018 entries it contains in its source list entry.
7020 2005-12-10 James Livingston <jrl@ids.org.au>
7022 * rhythmdb/rhythmdb-query-model.c:
7023 (rhythmdb_query_model_add_entry),
7024 (rhythmdb_query_model_drag_data_received):
7025 * sources/rb-static-playlist-source.c:
7026 (rb_static_playlist_source_non_entry_dropped): when things are
7027 dropped, ignore any blank lines in the list of uris. Make the source
7028 responsible for adding new items to the db.
7030 * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
7033 2005-12-10 James Livingston <jrl@ids.org.au>
7035 * shell/rb-shell-player.c: (rb_shell_player_set_property),
7036 (rb_shell_player_sync_buttons),
7037 (rb_shell_player_selection_changed_cb): watch for the
7038 "selection-changed" signal, so that the Song Properties get enabled.
7041 2005-12-10 James Livingston <jrl@ids.org.au>
7043 * data/rhythmbox.schemas: fix the gconf schema
7045 2005-12-10 James Livingston <jrl@ids.org.au>
7047 * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
7048 the decoded-pad callback with gstreamer 0.8, it causes problems.
7050 2005-12-10 Jonathan Matthew <jonathan@kaolin.hn.org>
7052 Remove more junk from RBEntryView. Closes bug 323640.
7054 * widgets/rb-entry-view.{c,h}:
7055 Remove unused private structure members, replace 'playing' boolean
7056 with an enum (so we know if we're paused too), and store a pointer to
7057 the RBShellPlayer too.
7058 (rb_entry_view_class_init), (rb_entry_view_set_property),
7059 (rb_entry_view_get_property):
7060 Remove 'entry-selected' and 'changed' signals and
7061 'playing-entry' property, add 'selection-changed' signal and
7062 'shell-player' and 'playing-state' properties.
7063 (rb_entry_view_new): Take the shell player object reference
7064 (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
7065 (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
7066 No longer needed, shell player is the place to get this information.
7067 (rb_entry_view_busy), (rb_entry_view_get_duration),
7068 (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry),
7069 (rb_entry_view_get_next_from_entry),
7070 (rb_entry_view_get_previous_from_entry),
7071 (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
7072 (rb_entry_view_get_num_entries):
7073 Removed, callers should go to the query model directly.
7074 (rb_entry_view_playing_song_changed): Update active query model, emit
7075 row changed signals to update pixbufs, and scroll to the playing song
7076 when the playing song changes, based on a signal from the shell
7078 (queue_changed_sig), (rb_entry_view_row_changed_cb),
7079 (emit_entry_changed): Evil, removed.
7080 (rb_entry_view_selection_changed_cb): Remove old signals, add new
7081 selection-changed signal.
7082 (rb_entry_view_select_none), (rb_entry_view_select_entry):
7083 Remove selection lock. It didn't work anyway.
7084 (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
7085 (rb_entry_view_emit_row_changed): Simple helper function to emit
7086 row-changed signals.
7088 * widgets/Makefile.am: Entry view needs headers from the shell/
7090 * widgets/rb-song-info.{c,h}: Use the query model for everything except
7092 scrolling the entry view to show the entry being displayed.
7093 (rb_song_info_class_init), (rb_song_info_get_property): Add new
7094 'source' property so we can watch for query model changes.
7095 (rb_song_info_finalize): Unref objects, disconnect signal handlers
7096 (rb_song_info_set_property): Watch for query model changes, don't
7097 watch for entry view changes.
7098 (rb_song_info_new): Take source as a parameter, use the source's entry
7099 view unless one was specifically supplied.
7100 (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
7101 Use query model rather than entry view to move between songs.
7102 (rb_song_info_update_buttons): Use query model.
7103 (rb_song_info_query_model_changed_cb): Handle query model changes.
7105 * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
7106 Only one copy of the code to enable/disable the CD burning action
7107 (rb_playlist_manager_playlist_entries_changed):
7108 Use the query model to get the number of entries, not the entry view.
7110 * shell/rb-play-order-random-by-age-and-rating.c,
7111 shell/rb-play-order-random-by-age.c,
7112 shell/rb-play-order-random-by-rating.c,
7113 shell/rb-play-order-random-equal-weights.c:
7116 * shell/rb-shell-player.{c,h}:
7117 Remove a few unused entries from the structure.
7118 (rb_shell_player_set_property):
7119 Don't use the 'changed' signal on the entry view (it's evil)
7120 (rb_shell_player_have_first): No longer needed
7121 (rb_shell_player_play): Just tell the entry view it's playing
7122 (rb_shell_player_playpause): Tell the entry view it's paused
7124 (rb_shell_player_entry_view_changed_cb): No longer used, removed.
7125 (rb_shell_player_property_row_activated_cb):
7126 Get the entry to play using the query model, not the entry view.
7127 (rb_shell_player_sync_buttons): Update entry view state while we're
7129 (rb_shell_player_set_playing_source_internal): Update entry view state
7130 (rb_shell_player_get_playing): Ask the entry view, not the player.
7131 This now returns TRUE when paused. This makes rb_shell_set_elapsed
7132 and rb_shell_set_window_title work properly, so you get "(Paused)" in
7133 the window title and tray icon tooltip.
7134 (rb_shell_player_get_mm_player): Not used anywhere, so removed.
7136 * sources/rb-iradio-source.c, sources/rb-library-source.c,
7137 sources/rb-podcast-source.c, sources/rb-playlist-source.c:
7138 (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
7139 view constructor, pass the source in to the song info widget
7142 * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
7143 Use 'selection-changed' instead of 'changed', since that's what the
7144 clipboard cares about.
7145 (rb_shell_clipboard_set_source): Don't die if source == NULL
7147 2005-12-10 James Livingston <jrl@ids.org.au>
7149 * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
7150 * sources/rb-playlist-source-recorder.c:
7151 (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
7152 stuff not use the deprecated API when compiled against 2.13
7154 2005-12-10 James Livingston <jrl@ids.org.au>
7156 patch by: Alex Lancaster <alexl@users.sourceforge.net>
7158 * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
7159 problem where the genre tag was getting set to the artist. Closes bug
7162 2005-12-09 William Jon McCann <mccann@jhu.edu>
7164 * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
7165 Return NULL if can't get first iter.
7169 2005-12-09 William Jon McCann <mccann@jhu.edu>
7171 * sources/rb-iradio-source.[ch] (impl_song_properties): Use
7172 updated rb_station_properties_dialog_new API.
7173 (rb_iradio_source_add_from_playlist): New public function.
7174 (rb_iradio_source_first_time_changed): Use add_from_playlist.
7176 * shell/rb-shell.c (new_station_location_added): Handle
7177 iradio location added signal.
7178 (rb_shell_cmd_new_station): Use new iradio station dialog.
7180 * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button. Fix typo.
7181 (rb_station_properties_dialog_new): Don't squeeze new
7182 station functionality into this class.
7183 (rb_station_properties_dialog_response_cb): ditto.
7184 (rb_station_properties_dialog_update_title): Make
7185 consistent with other properties dialogs.
7186 (rb_station_properties_dialog_location_changed_cb): Do nothing.
7188 * iradio/rb-new-station-dialog.[ch]:
7189 * iradio/Makefile.am: Add new station dialog.
7191 * data/glade/station-new.glade: New file based on
7192 new podcast feed dialog.
7193 * data/glade/station-properties.glade: Updated to
7194 be consistent with song properties dialog.
7198 2005-12-10 James Livingston <jrl@ids.org.au>
7200 patch by: Ståle Lyngaas <staale@lyngaas.com>
7202 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7203 submit songs longer than 30 minutes. Fixes bug 323639.
7205 2005-12-09 William Jon McCann <mccann@jhu.edu>
7207 * shell/rb-shell.c (idle_save_playlist_manager): Use new
7208 async save function.
7209 (rb_shell_finalize): Remove save timeout sources. Reorder
7210 steps a bit to make saving db and playlists a bit more
7211 failsafe in case something goes wrong later.
7212 (rb_shell_constructor): Keep track of save timeout source.
7213 (add_to_library_response_cb): Keep track of db save timeout source.
7215 * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
7217 (rb_playlist_manager_shutdown): New function to shutdown
7218 threads etc. before exit.
7219 (rb_playlist_manager_finalize): Moved handling outstanding
7220 threads stuff to shutdown since if there are outstanding threads
7221 they hold a ref and finalize is never called.
7222 (rb_playlist_manager_save_thread_main): Use cond broadcast instead
7223 of signal which may be required for sync save.
7224 (rb_playlist_manager_save_playlists_async): Renamed old
7225 save_playlists to save_playlists_async. Use g_atomic.
7226 (rb_playlist_manager_save_playlists): New function to
7227 perform sync saves (symmetric with RhythmDB API).
7228 (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
7230 * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
7231 Style consistency anality.
7232 (rhythmdb_finalize): Remove save timeout source.
7233 (rhythmdb_set_property, rhythmdb_get_property)
7234 (rhythmdb_process_events): More anality and keep track of
7235 save timeout source.
7236 (action_thread_main): No need to call g_thread_exit.
7237 (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored)
7238 (rhythmdb_query_parse_valist, rhythmdb_query_free)
7239 (write_encoded_gvalue, read_encoded_property): La la la.
7243 2005-12-10 James Livingston <jrl@ids.org.au>
7245 * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
7248 2005-12-10 James Livingston <jrl@ids.org.au>
7251 * configure.ac: remove the rpm spec files, so that automake works.
7254 * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
7257 2005-12-09 James Livingston <jrl@ids.org.au>
7259 * debian/: try to get cvs to actually remove the files
7261 2005-12-09 James Livingston <jrl@ids.org.au>
7263 * rhythmbox.spec.in:
7264 * debian/: remove the distro package stuff, they are *really* old, and
7265 downstream manage it anyway.
7267 2005-12-09 Jonathan Matthew <jonathan@kaolin.hn.org>
7269 Rework play orders to work off query models rather than
7270 entry views, and track the playing entry themselves rather
7271 than relying on the entry view to do it. This makes the entry
7272 view mostly just a widget. Closes bug 323612.
7274 * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
7275 Use query model rather than entry view to get the number
7276 of entries in playlists.
7278 * rhythmdb/rhythmdb-query-model.{c.h}
7279 (rhythmdb_query_model_tree_path_to_entry),
7280 (rhythmdb_query_model_iter_to_entry),
7281 (rhythmdb_query_model_get_next_from_entry),
7282 (rhythmdb_query_model_get_previous_from_entry):
7283 New utility functions for iterating through query models.
7284 (rhythmdb_query_model_compute_status_normal):
7285 Have one copy of this code, not four.
7287 * shell/rb-play-order.{c,h}:
7288 Add signals for when next/previous availability changes, and
7289 when the playing entry is removed, and add a property for
7290 the current playing entry. Add gtkdoc comments too.
7291 (rb_play_order_class_init): Add new property and signals.
7292 (rb_play_order_finalize), (rb_play_order_playing_source_changed),
7293 (rb_play_orer_query_model_changed_cb),
7294 (rb_play_order_query_model_changed):
7295 Use query model rather than entry view.
7296 (rb_play_order_set_property), (rb_play_order_get_property):
7297 Handle new playing-entry property. Call playing_entry_changed virtual
7298 method so subclasses can do any processing required.
7299 (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
7300 (rb_play_order_set_playing_entry):
7301 Just use the playing-entry property.
7302 (rb_play_order_get_query_model), (rb_play_order_model_not_empty):
7303 Utility methods for subclasses.
7304 (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
7305 Update next/previous availability, check if the playing entry
7307 (default_playing_entry_removed):
7308 Keep the current behaviour of just stopping playback when the
7309 playing entry is deleted.
7310 (rb_play_order_go_next), (rb_play_order_go_previous): Implement
7311 these for subclasses that don't have go_next/go_previous, but do
7312 have get_next/get_previous.
7313 (rb_play_order_update_have_next_previous): Emit signal if the
7314 availability of next/previous entries has changed.
7316 * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
7317 shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
7318 Use G_DEFINE_TYPE, replace entry view iterator with query model
7320 (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
7321 on the last song in the shuffled order, go back to the start. This
7322 means if you press 'play' again you'll get the whole order again, not
7325 * shell/rb-shell-player.c:
7326 (rb_shell_player_get_playing_entry), (info_available_cb): Ask the
7327 play order rather than the entry view.
7328 (rb_shell_player_set_property): Update the play order when the
7329 selected source changes and we aren't playing anything.
7330 (rb_shell_player_sync_play_order): Copy the playing entry across to
7331 the new play order so playback continues from the same song, and watch
7332 for updates to have_next/have_previous.
7333 (rb_shell_player_play_order_update_cb): Enable/disable the
7334 next/previous actions when next/previous entry availability changes.
7335 (rb_shell_player_jump_to_current): Just use the play order's idea of
7336 what's playing, not the entry view's; if not playing anything, clear
7337 the selection, so when a playlist ends and you hit play again, it'll
7338 start at the start rather than the end.
7339 (rb_shell_player_do_previous): restructure a bit.
7340 (rb_shell_player_do_next): restructure, jump to new playing entry in
7341 an idle handler instead of directly.
7342 (rb_shell_player_do_previous_or_seek): Only try to go to the previous
7343 song if there is one.
7344 (rb_shell_player_playpause): Jump to playing song, don't update the
7345 play order if we got the song from the selection.
7346 (rb_shell_player_playing_entry_deleted_cb): Not needed.
7347 (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
7348 looks after next/previous actions now. Don't break if called while
7349 there is no selected source.
7350 (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
7351 (rb_shell_player_set_playing_source_internal),
7352 (rb_shell_player_error): No need to track the attempted playing entry
7353 any more, since the play order does that.
7356 (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
7357 rb_shell_player_get_playing_entry rather than going through the entry
7360 * shell/rb-statusbar.c (rb_statusbar_set_property),
7361 (rb_statusbar_source_status_changed_cb): Listen to the source rather
7362 than the entry view for status bar text changes.
7363 (rb_statusbar_sync_status): Ask the query model directly
7365 * sources/rb-source.{c}: Add query model property.
7366 (default_get_status): Get status text from query model, should be
7367 suitable for most sources.
7368 (rb_source_set_property): Listen for changes to the query model
7369 to update the status text.
7370 (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
7371 (idle_emit_status_changed): Emit status-changed signals when query
7374 * sources/rb-library-source.c, sources/rb-podcast-source.c:
7375 (impl_get_status): Not needed, RBSource does this now
7376 (rb_library_source_do_query) (rb_podcast_source_do_query):
7377 Update RBSource's query model reference.
7379 * sources/rb-playlist-source.c:
7380 Remove query-model property, since RBSource has one now
7381 (impl_get_status): Not needed, RBSource does this now
7382 (rb_playlist_source_row_deleted): Use query model iterator helper
7384 (rb_playlist_source_set_query_model): Update RBSource's query model
7387 * sources/rb-iradio-source.c:
7388 (impl_get_status): Ask the query model directly.
7389 (rb_iradio_source_do_query): Update RBSource's query model reference
7390 when we create a new query.
7392 * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
7393 Use query model rather than entry view.
7395 * widgets/rb-entry-view.{c,h}:
7396 Remove playing_entry_deleted signal (now in play order).
7397 (entry_from_tree_path), (entry_from_tree_iter): Not needed
7398 as RhythmDBQueryModel has equivalent helper functions.
7399 (rb_entry_view_*): Use query model helpers instead of the above two
7402 2005-12-09 James Livingston <jrl@ids.org.au>
7405 * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
7406 (rb_recorder_enabled):
7407 * shell/rb-removable-media-manager.c: (poll_tray_opened):
7408 * sources/rb-playlist-source-recorder.c:
7409 (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
7410 whether libnautilusburn has the _drive_unref function, and if so use
7411 it. Stops it complaining about deprecated API.
7413 2005-12-09 James Livingston <jrl@ids.org.au>
7415 * configure.ac: drop the minimum gstreamer version back down, it
7416 accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
7418 2005-12-09 James Livingston <jrl@ids.org.au>
7420 * widgets/rb-song-info.c: (rb_song_info_class_init),
7421 (rb_song_info_show), (rb_song_info_constructor),
7422 (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
7423 (rb_song_info_forward_clicked_cb): save metadata changes when the
7424 Next/Previous buttons are pressed (closes bug 320952). use
7427 2005-12-09 James Livingston <jrl@ids.org.au>
7429 Patch by: <jonathan@kaolin.hn.org>
7431 * sources/rb-iradio-source.c:
7432 (stations_view_drag_data_received_cb):
7433 * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
7434 of urls. Fixes bug 323610.
7436 2005-12-09 James Livingston <jrl@ids.org.au>
7438 patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
7439 GStreamer 0.10. DAAP support for 0.10 isn't done yet.
7442 * metadata/rb-metadata-gst.c:
7443 * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
7444 (rb_player_construct), (rb_player_new):
7445 * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
7446 (rb_recorder_gst_signal_error), (pipe_message),
7447 (rb_recorder_new_pad_cb), (rb_recorder_construct),
7449 * shell/main.c: (main):
7450 * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
7451 (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
7453 2005-12-07 Jonathan Matthew <jonathan@kaolin.hn.org>
7455 * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
7457 * shell/rb-playlist-manager.c:
7458 (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
7459 (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
7460 (rb_playlist_manager_set_automatic_playlist),
7461 (rb_playlist_manager_cmd_new_automatic_playlist),
7462 (rb_playlist_manager_cmd_edit_automatic_playlist):
7463 Use new playlist subclasses.
7464 (rb_playlist_manager_save_playlists): Only read the dirty flag
7465 for local playlists, minor pointless reformatting
7467 * sources/Makefile.am: add new files
7469 * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
7470 split lots of stuff out into two
7471 new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
7472 make RBPlaylistSource abstract, add virtual methods for showing a
7473 popup for the entry view and saving the playlist to XML.
7474 Other stuff is subclass-specific, or already virtual in RBSource.
7476 * sources/rb-playlist-xml: Define playlist XML tags and attributes
7477 in one place, since they're used across three source files now
7479 * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
7480 Use new static playlist class
7482 * sources/rb-ipod-source.c: (add_rb_playlist):
7483 Use new static playlist class
7485 * sources/rb-static-playlist-source.{c,h},
7486 source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
7489 * po/POTFILES.in: add new files
7491 2005-12-07 James Livingston <jrl@ids.org.au>
7493 * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
7494 (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
7495 metadata loads not attempt to write changes to disk.
7497 2005-12-07 James Livingston <jrl@ids.org.au>
7499 patch by: Alex Lancaster <alexl@users.sourceforge.net>
7501 * data/glade/song-info-multiple.glade:
7502 * widgets/rb-song-info.c: (rb_song_info_constructor),
7503 (rb_song_info_sync_entries_multiple): allow the year to be changed on
7504 multiple songs at once.
7506 2005-12-06 James Livingston <jrl@ids.org.au>
7508 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
7509 (rhythmdb_entry_set_visibility): emit signal when visibility changes.
7511 2005-12-06 James Livingston <jrl@ids.org.au>
7513 * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
7514 names rather than adding a horizontal scroll bar.
7516 2005-12-06 James Livingston <jrl@ids.org.au>
7518 * rhythmdb/rhythmdb-query-model.c:
7519 (rhythmdb_query_model_update_limited_entries),
7520 (rhythmdb_query_model_drag_data_received): remove some pointless debug
7523 * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
7524 (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
7525 always hide rather than remove DB entries, which will make RB not lose
7526 information when tag editing happens or people move files to trash and
7527 then change their mind. Also fix some races where the monitoring code
7528 would notice the temporary files generated by saving metadata.
7530 2005-12-05 William Jon McCann <mccann@jhu.edu>
7532 * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
7533 Hide internals and add tooltips.
7534 (rb_song_display_box_size_allocate): Hide internals.
7535 (sanitize_string, info_url): Copied from rb-header.
7536 (rb_song_display_box_sync): New public function.
7538 * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
7539 (rb_header_init): Use a separate row for the seek bar.
7540 (rb_header_finalize): Don't unref widgets.
7541 (rb_header_sync): Use rb_song_display_box_sync.
7542 (rb_header_set_urldata)
7543 (rb_header_set_show_artist_album): Hide instead of remove widgets.
7544 (rb_header_set_show_position_slider): Set visibility of seek bar.
7545 (rb_header_set_show_timeline): Set sensitivity of seek bar.
7546 (rb_header_get_elapsed_string): Don't shift when you first start playback.
7548 * shell/rb-statusbar.c (rb_statusbar_init)
7549 (rb_statusbar_sync_state): Remove shuffle and repeat controls.
7551 * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
7552 (rb_shell_constructor): Remove hseparator. Monitor
7553 toolbar visibility settings. Add toolbar. Add
7554 volume button to toolbar. Add tooltips for volume button.
7555 (rb_shell_view_toolbar_changed_cb)
7556 (rb_shell_sync_toolbar_visibility)
7557 (toolbar_visibility_changed_cb): Set visibility of
7559 (rb_shell_sync_smalldisplay): Set the toolbar style to
7560 icons only when in small display mode.
7561 (rb_shell_volume_widget_changed_cb): Save volume setting.
7563 * shell/rb-shell-player.c (rb_shell_player_constructor):
7564 Remove pause and stop actions. Make play action "important"
7565 so that text is visible in horizontal toolbar position.
7566 Remove control buttons.
7567 (rb_shell_player_init)
7568 (rb_shell_player_sync_song_position_slider_visibility):
7569 Set visbibility of seek bar.
7570 (rb_shell_player_cmd_play, rb_shell_player_playpause):
7571 Make play action a toggle.
7572 (rb_shell_player_sync_volume): Volume control moved
7574 (gconf_song_position_slider_visibility_changed):
7575 Set visbibility of seek bar.
7576 (rb_shell_player_sync_buttons):
7577 Set sensitivity of actions instead of buttons.
7578 (rb_shell_player_playing_changed_cb): Add callback
7579 for player notify::playing changes.
7581 * lib/rb-preferences.h: Add hide toolbar and seek
7584 * data/ui/rhythmbox-ui.xml: Add hide toolbar and
7585 seek bar menu items. Remove pause and stop actions
7586 from the control menu. Add a toolbar.
7588 * data/rhythmbox.schemas: Add toolbar_hidden
7589 song_position_slider_hidden keys.
7591 Patch by: James Livingston <jrl@ids.org.au>
7592 William Jon McCann <mccann@jhu.edu>
7595 2005-12-05 James Livingston <jrl@ids.org.au>
7597 * data/glade/library-prefs.glade:
7598 * data/rhythmbox.schemas:
7599 * lib/rb-preferences.h:
7600 * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
7601 (rhythmdb_sync_library_location):
7602 * sources/rb-library-source.c: (rb_library_source_class_init),
7603 (rb_library_source_finalize), (rb_library_source_constructor),
7604 (impl_get_config_widget), (rb_library_source_preferences_sync),
7605 (rb_library_source_watch_toggled_cb): allow people to disable library
7606 monitoring, because with nothing set the file chooser button selects
7607 the Home folder (and hence that will get monitored).
7609 2005-12-04 Ryan P Skadberg <skadz@stigmata.org>
7611 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
7612 attempt to fix problem with RSS parsing showing invalid feed types.
7615 2005-12-04 James Livingston <jrl@ids.org.au>
7617 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
7618 (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
7619 importing a remote directory not block the UI.
7621 2005-12-03 Dennis Cranston <dennis_cranston@yahoo.com>
7623 * data/glade/podcast-feed-properties.glade:
7624 * data/glade/podcast-properties.glade: HIG fix, closes bug 323131.
7626 2005-12-04 James Livingston <jrl@ids.org.au>
7628 patch by: Dennis Cranston <dennis_cranston@yahoo.com>
7630 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
7631 to && to fix a mistake in the earlier podcast patch.
7633 2005-12-03 James Livingston <jrl@ids.org.au>
7635 * data/glade/podcast-new.glade:
7636 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
7637 (rb_new_podcast_dialog_text_changed): remove some unused stuff.
7639 * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
7640 GValue, which stops occasional errors.
7642 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7645 2005-12-03 James Livingston <jrl@ids.org.au>
7647 patch by: Dennis Cranston <dennis_cranston@yahoo.com>
7649 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
7650 crasher with some podcasts feeds.
7652 2005-12-03 James Livingston <jrl@ids.org.au>
7654 * data/rhythmbox.schemas: fix the gconf schema
7656 2005-12-03 James Livingston <jrl@ids.org.au>
7658 patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
7659 add a selection timeout to the sourcelist. This lets you hold a track
7660 over the playlist source, and then have the view switch so you can
7661 insert the track in the middle of the playlist. Closes bug 323044.
7663 * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
7664 (select_on_drag_timeout), (remove_select_on_drag_timeout),
7665 (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
7666 (rb_tree_dnd_add_drag_dest_support):
7667 * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
7670 * sources/rb-sourcelist-model.c:
7671 (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
7674 2005-12-02 Bastien Nocera <hadess@hadess.net>
7676 * data/glade/audioscrobbler-prefs.glade: add a space before the web
7677 links, so that the text doesn't touch the button
7679 2005-12-02 James Livingston <jrl@ids.org.au>
7681 Add full support for gnome-vfs remote files. Closes bug 140355.
7683 * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
7684 (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
7685 for authentication information from the user doesn't block the UI.
7687 (rhythmdb_entry_set_visibility): don't emit the signal twice.
7689 * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
7690 (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
7691 (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
7692 (rhythmdb_process_stat_event), (emit_load_error_idle),
7693 (rhythmdb_process_metadata_load),
7694 (rhythmdb_process_queued_entry_set_event),
7695 (rhythmdb_process_file_created_or_modified),
7696 (rhythmdb_process_file_deleted), (rhythmdb_process_events),
7697 (queue_stat_uri), (add_thread_main),
7698 (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
7699 (rhythmdb_load), (rhythmdb_save_thread_main),
7700 (threadsafe_entry_set), (rhythmdb_query_internal),
7701 (query_thread_main), (rhythmdb_do_full_query_async_parsed),
7702 (rhythmdb_do_full_query_internal),
7703 (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
7704 (rhythmdb_volume_unmounted_cb),
7705 (rhythmdb_check_changed_file): trivial changes to support the
7708 * shell/main.c: (main): activate the authentication manager.
7710 * shell/rb-playlist-manager.c:
7711 (rb_playlist_manager_cmd_load_playlist),
7712 (rb_playlist_manager_cmd_save_playlist):
7713 * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
7714 (rb_shell_cmd_add_file_to_library):
7715 * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
7716 * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
7719 2005-12-02 James Livingston <jrl@ids.org.au>
7721 * shell/rb-playlist-manager.c: makes playlist menu items use the
7722 elipses correctly. Fixes bug 322283.
7724 2005-12-02 James Livingston <jrl@ids.org.au>
7726 * shell/rb-playlist-manager.c:
7727 (rb_playlist_manager_load_playlists): fix silly mistake
7729 2005-12-02 James Livingston <jrl@ids.org.au>
7731 * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
7732 print out metadata-write unless --debug was passed.
7734 * rhythmdb/rhythmdb.c: (rhythmdb_load):
7735 * shell/rb-playlist-manager.c:
7736 (rb_playlist_manager_load_playlists): block writes to disk if they are
7739 2005-12-02 James Livingston <jrl@ids.org.au>
7741 * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
7742 ctrl-T, because Ctrl-D is used by "small mode"
7744 2005-12-02 James Livingston <jrl@ids.org.au>
7746 * shell/rb-shell-preferences.c:
7747 (rb_shell_preferences_append_view_page):
7748 * sources/rb-library-source.c: (impl_get_config_widget):
7749 * sources/rb-podcast-source.c: (impl_get_config_widget):
7750 * sources/rb-source.c: (rb_source_get_config_widget):
7751 * sources/rb-source.h: Make the preference actually work.
7753 * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
7754 if Rhythmbox is being run for the first time.
7756 2005-12-02 James Livingston <jrl@ids.org.au>
7758 Add support for Rhythmbox to watch your library, and automatically add
7759 new tracks. Fixes bug 160159.
7761 * data/glade/library-prefs.glade: add "library location" preference
7762 * data/rhythmbox.schemas: add gconf key for the library location
7764 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
7765 (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
7766 (rhythmdb_finalize), (rhythmdb_directory_change_cb),
7767 (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
7768 (rhythmdb_process_metadata_load), (rhythmdb_process_events),
7769 (rhythmdb_load_thread_main), (rhythmdb_load),
7770 (monitor_subdirectory), (monitor_library_directory),
7771 (monitor_entry_file), (rhythmdb_sync_library_location),
7772 (library_location_changed_cb), (rhythmdb_check_changed_file),
7773 (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
7774 specifiec in the gconf key for new additions. Also fix monitoring code
7775 so that it works properly, and notices deletions.
7777 * lib/rb-preferences.h:
7778 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7779 (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
7780 * shell/rb-audioscrobbler.h:
7781 * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
7782 (rb_shell_preferences_append_view_page),
7783 (rb_shell_preferences_new):
7784 * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
7785 it's preferences pane, so that we don't need #ifdef's through
7786 rb-shell-preferences.
7788 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
7789 (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
7790 "preferences" property, so that sources can acccess it. This is needed
7791 because the library location pref needs to take effect when the window
7794 * sources/rb-library-source.c:
7795 (rb_library_source_library_location_changed),
7796 (rb_library_source_dispose), (rb_library_source_finalize),
7797 (rb_library_source_constructor), (impl_get_config_widget),
7798 (rb_library_source_preferences_sync),
7799 (rb_library_source_process_library_location_change),
7800 (rb_library_source_prefs_update),
7801 (rb_library_source_process_library_handle_selection),
7802 (rb_library_source_library_location_cb): set up and control the
7803 "library location" preference.
7805 * sources/rb-audiocd-source.c:(rb_source_class_init):
7806 * sources/rb-source.c: (rb_source_class_init): remove some pointless
7809 2005-12-01 William Jon McCann <mccann@jhu.edu>
7811 * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init)
7812 (rb_feed_podcast_properties_dialog_update_title):
7813 * data/glade/podcast-feed-properties.glade:
7814 Make the feed properties dialog consistent with the podcast
7817 2005-12-01 William Jon McCann <mccann@jhu.edu>
7819 * metadata/.cvsignore:
7821 * podcast/.cvsignore: Updated.
7823 * shell/main.c (main): Support DBus 0.6 flags.
7825 2005-11-30 Bastien Nocera <hadess@hadess.net>
7827 * data/ui/rhythmbox-ui.xml:
7828 * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
7829 (rhythmbd_entry_move_to_trash_set_error),
7830 (rhythmdb_entry_move_to_trash):
7831 * rhythmdb/rhythmdb.h:
7832 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
7833 (rb_shell_clipboard_cmd_delete),
7834 (rb_shell_clipboard_cmd_move_to_trash):
7835 * sources/rb-library-source.c: (rb_library_source_class_init),
7836 (impl_delete), (impl_move_to_trash):
7837 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
7838 (impl_delete), (impl_move_to_trash):
7839 * sources/rb-removable-media-source.c:
7840 (rb_removable_media_source_class_init):
7841 * sources/rb-source.c: (rb_source_class_init),
7842 (rb_source_can_move_to_trash), (rb_source_delete),
7843 (rb_source_move_to_trash):
7844 * sources/rb-source.h:
7845 Add move_to_trash member for the sources, implement move to trash for
7846 the library and playlists
7847 Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
7848 local files to the trash, and deleting them from the database
7851 2005-11-30 William Jon McCann <mccann@jhu.edu>
7853 * shell/rb-tray-icon.c (rb_tray_icon_class_init)
7854 (rb_tray_icon_init, rb_tray_icon_finalize):
7855 * shell/rb-statusbar.c (rb_statusbar_class_init)
7856 (rb_statusbar_init, rb_statusbar_finalize):
7857 * shell/rb-source-header.c (rb_source_header_class_init)
7858 (rb_source_header_init, rb_source_header_finalize):
7859 * shell/rb-shell.c (rb_shell_class_init, rb_shell_init)
7860 (rb_shell_finalize):
7861 * shell/rb-shell-preferences.c (rb_shell_preferences_class_init)
7862 (rb_shell_preferences_init, rb_shell_preferences_finalize):
7863 * shell/rb-shell-player.c (rb_shell_player_class_init)
7864 (rb_shell_player_init, rb_shell_player_finalize):
7865 * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init)
7866 (rb_shell_clipboard_init, rb_shell_clipboard_finalize):
7867 * shell/rb-playlist-manager.c (rb_playlist_manager_class_init)
7868 (rb_playlist_manager_init, rb_playlist_manager_finalize):
7869 * shell/rb-play-order.c (rb_play_order_class_init)
7870 (rb_play_order_init, rb_play_order_finalize):
7871 * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init)
7872 (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize):
7873 * shell/rb-play-order-random.c (rb_random_play_order_class_init)
7874 (rb_random_play_order_init, rb_random_play_order_finalize):
7875 * shell/rb-history.c (rb_history_class_init, rb_history_init)
7876 (rb_history_finalize):
7877 * shell/rb-commander.c (rb_commander_class_init)
7878 (rb_commander_init, rb_commander_finalize):
7879 * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init)
7880 (rb_audioscrobbler_init, rb_audioscrobbler_finalize):
7881 * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init)
7882 (rb_remote_bonobo_init, rb_remote_bonobo_finalize):
7883 * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init)
7884 (rb_podcast_properties_dialog_init)
7885 (rb_podcast_properties_dialog_finalize):
7886 * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init)
7887 (rb_podcast_manager_init, rb_podcast_manager_finalize):
7888 * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init)
7889 (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize):
7890 * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init)
7891 (rb_feed_podcast_properties_dialog_init)
7892 (rb_feed_podcast_properties_dialog_finalize):
7893 * metadata/rb-metadata-gst.c (rb_metadata_class_init)
7894 (rb_metadata_init, rb_metadata_finalize):
7895 * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init)
7896 (rb_station_properties_dialog_init)
7897 (rb_station_properties_dialog_finalize):
7898 * daapsharing/rb-daap-share.c (rb_daap_share_class_init)
7899 (rb_daap_share_init, rb_daap_share_dispose):
7901 Use g_type_class_add_private in all classes. Closes bug 313688.
7903 2005-11-30 James Livingston <jrl@ids.org.au>
7905 patch by: William Jon McCann <mccann@jhu.edu> to use
7906 g_type_class_add_private in all classes. Closes bug 313688.
7908 * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
7909 (rb_thread_finalize):
7910 * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
7911 (rb_player_finalize):
7912 * rhythmdb/rhythmdb-property-model.c:
7913 (rhythmdb_property_model_class_init),
7914 (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
7915 * rhythmdb/rhythmdb-query-model.c:
7916 (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
7917 (rhythmdb_query_model_finalize):
7918 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
7919 (rhythmdb_tree_init), (rhythmdb_tree_finalize):
7920 * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
7921 (rhythmdb_finalize):
7922 * sources/rb-daap-source.c: (rb_daap_source_class_init),
7923 (rb_daap_source_init), (rb_daap_source_dispose):
7924 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
7925 (rb_iradio_source_init), (rb_iradio_source_finalize):
7926 * sources/rb-library-source.c: (rb_library_source_class_init),
7927 (rb_library_source_init), (rb_library_source_finalize):
7928 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
7929 (rb_playlist_source_init), (rb_playlist_source_dispose):
7930 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7931 (rb_podcast_source_init), (rb_podcast_source_finalize):
7932 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
7933 (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
7934 * sources/rb-sourcelist-model.h:
7935 * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
7936 (rb_sourcelist_init), (rb_sourcelist_finalize):
7937 * sources/rb-sourcelist.h:
7938 * widgets/disclosure-widget.c: (finalize), (class_init), (init):
7939 * widgets/rb-cell-renderer-rating.c:
7940 (rb_cell_renderer_rating_init),
7941 (rb_cell_renderer_rating_class_init),
7942 (rb_cell_renderer_rating_finalize):
7943 * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
7944 (rb_druid_finalize):
7945 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
7946 (rb_entry_view_init), (rb_entry_view_finalize):
7947 * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7948 (rb_header_finalize):
7949 * widgets/rb-load-failure-dialog.c:
7950 (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
7951 (rb_load_failure_dialog_finalize):
7952 * widgets/rb-property-view.c: (rb_property_view_class_init),
7953 (rb_property_view_init), (rb_property_view_finalize):
7954 * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
7955 (rb_rating_finalize):
7956 * widgets/rb-search-entry.c: (rb_search_entry_class_init),
7957 (rb_search_entry_init), (rb_search_entry_finalize):
7958 * widgets/rb-simple-view.c: (rb_simple_view_class_init),
7959 (rb_simple_view_init), (rb_simple_view_finalize):
7960 * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
7961 (rb_song_display_box_init), (rb_song_display_box_finalize):
7962 * widgets/rb-song-info.c: (rb_song_info_class_init),
7963 (rb_song_info_init), (rb_song_info_finalize):
7964 * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
7965 (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
7967 2005-11-30 James Livingston <jrl@ids.org.au>
7969 * iradio/rb-station-properties-dialog.c:
7970 (rb_station_properties_dialog_init),
7971 (rb_station_properties_dialog_new):
7972 * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
7973 * lib/rb-glade-helpers.h:
7974 * podcast/rb-feed-podcast-properties-dialog.c:
7975 (rb_feed_podcast_properties_dialog_init),
7976 (rb_feed_podcast_properties_dialog_new):
7977 * podcast/rb-podcast-properties-dialog.c:
7978 (rb_podcast_properties_dialog_init),
7979 (rb_podcast_properties_dialog_new):
7980 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
7981 * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
7982 * sources/rb-library-source.c: (impl_get_config_widget):
7983 * sources/rb-playlist-source-recorder.c:
7984 (rb_playlist_source_recorder_init):
7985 * widgets/rb-song-info.c: (rb_song_info_construct_single),
7986 (rb_song_info_constructor): create a single rb_glade_boldify_label()
7987 in rb-glade-helpers, rather than having eight implementation
7988 throughout the code.
7990 2005-11-30 James Livingston <jrl@ids.org.au>
7992 * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
7994 * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
7995 move the duration->string function into rb-utils, as it gets used in a
7998 patch by: William Jon McCann <mccann@jhu.edu>
8000 * data/glade/podcast-properties.glade:
8001 * podcast/rb-podcast-properties-dialog.c:
8002 (rb_podcast_properties_dialog_init),
8003 (rb_podcast_properties_dialog_update),
8004 (rb_podcast_properties_dialog_update_title),
8005 (rb_podcast_properties_dialog_update_feed),
8006 (rb_podcast_properties_dialog_update_duration),
8007 (rb_podcast_properties_dialog_update_bitrate): Make the podcast
8008 info dialog look more like the song info dialog. Use the same "Feed"
8009 value that is displayed in the treeview (ie. the album field), displays
8010 the duration, uses units in the bitrate field, and sort the fields in
8013 2005-11-29 James Livingston <jrl@ids.org.au>
8015 * rhythmdb/rhythmdb-marshal.list:
8016 * rhythmdb/rhythmdb.h:
8017 * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8018 (emit_load_error_idle), (rhythmdb_process_metadata_load),
8019 (entry_to_rb_metadata), (emit_save_error_idle),
8020 (action_thread_main): emit error signal when metadata write fails.
8022 * shell/rb-shell.c: (rb_shell_constructor),
8023 (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
8024 "metadata save" error and display it to the user.
8026 2005-11-29 James Livingston <jrl@ids.org.au>
8028 * data/ui/rhythmbox-ui.xml:
8029 * sources/rb-podcast-source.c:
8030 (rb_podcast_source_songs_show_popup_cb),
8031 (rb_podcast_source_cmd_download_post),
8032 (rb_podcast_source_cmd_cancel_download): split download and cancel
8033 download commands. Replace usage of "Post" with "Esisode". Fixes bug
8036 2005-11-18 William Jon McCann <mccann@jhu.edu>
8038 * widgets/rb-dialog.c (rb_error_dialog): Don't use a
8039 title on alert dialogs per the HIG.
8041 * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
8043 (free_song_list): Routine to free song list.
8044 (rb_playlist_source_recorder_finalize): Use free_song_list.
8045 (rb_playlist_source_recorder_add_from_model): Return FALSE
8046 if unable to add all songs. Check that duration of all
8047 songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
8050 * sources/rb-playlist-source-recorder.c (check_media_length)
8051 (rb_playlist_source_recorder_start): Only check the duration
8052 and current media if the playlist length is longer than a
8053 standard CD (74 min). Otherwise, just let the Recorder do the
8055 * player/rb-recorder-gst.c (rb_recorder_init): Get a default
8057 (rb_recorder_set_device): Don't leak drives.
8058 (rb_recorder_get_media_length): Use drive that was already set.
8059 (rb_recorder_burn): Let the recorder handle checking media type/size.
8062 2005-11-29 James Livingston <jrl@ids.org.au>
8064 * rhythmdb/rhythmdb-query-model.c:
8065 (rhythmdb_query_model_set_sort_order):
8066 * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
8067 emitting the tree-model "resorted" signal.
8069 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8070 (rb_entry_view_finalize), (rb_entry_view_set_property),
8071 (rb_entry_view_constructor), (rb_entry_view_resort_model):
8072 * widgets/rb-entry-view.h: add a function to resort the entry view,
8073 using the above function.
8075 * sources/rb-iradio-source.c:
8076 (rb_iradio_source_songs_view_sort_order_changed_cb):
8077 * sources/rb-library-source.c: (rb_library_source_finalize),
8078 (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
8079 * sources/rb-playlist-source.c:
8080 (rb_playlist_source_songs_sort_order_changed_cb):
8081 * sources/rb-podcast-source.c:
8082 (rb_podcast_source_posts_view_sort_order_changed_cb),
8083 (rb_podcast_source_do_query): use the above function instead of
8084 re-creating the query model. This makes changing the sorting an order
8085 of magnitude faster, as it uses a single resorted signal rather than
8086 deleting and re-adding everything (which emits 2N signals). Closes bug
8089 2005-11-29 James Livingston <jrl@ids.org.au>
8091 patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
8092 autosizing, which results in large speedups. Closes bug 312122.
8094 * po/ja.po: change the date format, so that it is a constant width
8096 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8097 * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8098 * widgets/rb-entry-view.c: (rb_entry_view_append_column),
8099 (rb_entry_view_constructor): make columns use fixed widths,
8100 disable column autosizing, and enable fixed-height mode.
8102 * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
8103 (rb_entry_view_get_time_date_column_sample):
8104 * widgets/rb-entry-view.h: functions to set a column to a fixed width,
8105 and get the canonical date format for the locale.
8107 ============ Version 0.9.2
8109 2005-11-28 James Livingston <jrl@ids.org.au>
8111 * configure.ac: bump version to 0.9.2
8112 * NEWS: update with changes for 0.9.2
8114 2005-11-28 James Livingston <jrl@ids.org.au>
8116 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8118 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
8119 Disable saving, renaming and delting for DAAP playlists.
8122 2005-11-28 James Livingston <jrl@ids.org.au>
8124 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
8125 gnome_vfs_get_file_info is returning NULL for the mime-type. Should
8128 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
8129 * sources/rb-removable-media-source.c:
8130 (rb_removable_media_source_class_init): fix ipod browser visibility
8133 2005-11-28 James Livingston <jrl@ids.org.au>
8135 * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
8136 Avahi 0.6 support actually work. Fixes bug 322519.
8138 2005-11-26 Ryan P Skadberg <skadz@stigmata.org>
8140 * configure.ac: Fix configure check for Avahi 0.6/0.5 when
8141 avahi is specified in --with-mdns
8143 2005-11-27 James Livingston <jrl@ids.org.au>
8145 patch by: Bastien Nocera <hadess@hadess.net>
8147 * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
8148 not the private one. Fixes bug 322485.
8150 2005-11-26 James Livingston <jrl@ids.org.au>
8152 patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
8153 Avahi 0.6, as well as 0.5.
8156 * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
8157 (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
8160 2005-11-25 James Livingston <jrl@ids.org.au>
8162 * configure.ac: Make --enable-ipod not confuse configure. Closes bug
8165 2005-11-25 James Livingston <jrl@ids.org.au>
8167 * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
8168 correct type for checking the date against 0. Stops a warning when
8171 2005-11-25 James Livingston <jrl@ids.org.au>
8173 * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
8174 adjustment to be inside the element's limits. Without this songs that
8175 have large ReplayGain values will recieve no increase because they are
8176 outside the acceptable range, causing them to remain quiet.
8178 2005-11-25 James Livingston <jrl@ids.org.au>
8180 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
8181 * sources/rb-daap-source.c: (rb_daap_source_class_init):
8182 * sources/rb-ipod-source.c:
8183 * sources/rb-source.h:
8184 * sources/rb-library-source.h:
8185 * sources/rb-library-source.c: (rb_library_source_class_init),
8186 (rb_library_source_constructor),
8187 (rb_library_source_has_first_added_column),
8188 (rb_library_source_has_drop_support):
8189 * sources/rb-removable-media-source.c:
8190 (rb_removable_media_source_class_init): Make library-derived sources
8191 not show the Date Added column, as it doesn't make sense. Fixes bug
8193 Move some of the feature funcs from the ipod and audio cd sources up to
8194 the removable media source.
8196 2005-11-24 James Livingston <jrl@ids.org.au>
8198 * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
8201 2005-11-24 James Livingston <jrl@ids.org.au>
8203 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8204 (rb_iradio_source_dispose), (rb_iradio_source_finalize),
8205 (rb_iradio_source_constructor): Chain up dispose method and use
8208 2005-11-24 James Livingston <jrl@ids.org.au>
8210 * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
8211 mistake in the last commit that can cause crashes.
8213 2005-11-24 James Livingston <jrl@ids.org.au>
8215 * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
8216 instead of g_printerr.
8218 * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
8219 rb_debug instead of g_warning. The message happens every time for
8220 removable media/daap shares, so it's not unusual.
8222 2005-11-24 James Livingston <jrl@ids.org.au>
8224 patch by: Tom Parker <palfrey@tevp.net>
8226 * configure.ac: fix libsoup test for enabling daap
8228 2005-11-23 James Livingston <jrl@ids.org.au>
8230 * widgets/rb-query-creator.c: (rb_query_creator_class_init),
8231 (rb_query_creator_init), (rb_query_creator_constructor),
8232 (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
8233 empty row to queries with no criteria. Fixes bug 322078. use
8236 2005-11-23 James Livingston <jrl@ids.org.au>
8238 patch by: <baptiste.millemathias@gmail.com>
8240 * help/C/quick-reference.xml: update the quick reference to have the
8241 correct key bindings.
8243 2005-11-22 James Livingston <jrl@ids.org.au>
8245 * sources/rb-library-source.c: (genres_selection_reset_cb),
8246 (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
8247 reset the query when all browser selections are removed.
8249 2005-11-22 Jonathan Matthew <jonathan@kaolin.hn.org>
8251 * podcast/rb-podcast-manager.c:
8252 (rb_podcast_manager_db_entry_deleted_cb):
8253 Use a custom loop to remove podcast posts, rather than
8254 gtk_tree_model_foreach(), as deleting the entries within
8255 that loop causes the iterator to return the first entry
8256 twice. Instead, we need to find the next entry before
8257 removing the current one. Fixes bug 321956.
8258 (rb_podcast_manager_entry_remove_cb): No longer needed.
8260 2005-11-22 James Livingston <jrl@ids.org.au>
8262 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8263 (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
8264 up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
8266 2005-11-22 James Livingston <jrl@ids.org.au>
8268 * sources/rb-podcast-source.c:
8269 (rb_podcast_source_post_date_cell_sort_func),
8270 (rb_podcast_source_post_status_cell_sort_func),
8271 (rb_podcast_source_post_feed_cell_sort_func):
8272 * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
8273 (rb_entry_view_album_sort_func),
8274 (rb_entry_view_double_ceiling_sort_func),
8275 (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
8276 the entry's location as a last resort when sorting, so the sort order
8277 is stable. This will stop entries moving around when two entries have
8278 the same sorting, and one of them gets played.
8280 2005-11-22 James Livingston <jrl@ids.org.au>
8282 * daapsharing/rb-daap-connection.c:
8283 (rb_daap_connection_class_init), (rb_daap_connection_init),
8284 (connection_get_password), (build_message),
8285 (http_response_handler), (http_get), (handle_server_info),
8286 (handle_login), (handle_update), (handle_database_info),
8287 (handle_song_listing), (handle_playlists),
8288 (handle_playlist_entries), (rb_daap_connection_new),
8289 (rb_daap_connection_constructor), (rb_daap_connection_logout),
8290 (rb_daap_connection_state_done), (rb_daap_connection_do_something),
8291 (rb_daap_connection_get_headers),
8292 (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
8293 (rb_daap_connection_set_property),
8294 (rb_daap_connection_get_property):
8295 * daapsharing/rb-daap-connection.h:
8296 * sources/rb-daap-source.c: (rb_daap_source_dispose),
8297 (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
8298 (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
8299 of destroying the object when it is going to be used by a callback and
8300 fixes a double-free. Fixes bugs 321930 and 322007.
8302 2005-11-22 James Livingston <jrl@ids.org.au>
8304 * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
8305 (rb_podcast_manager_insert_feed): Don't show the "new episodes"
8306 notification if there aren't any. Fixes bug 321968.
8308 2005-11-22 James Livingston <jrl@ids.org.au>
8310 * rhythmdb/rhythmdb-property-model.c:
8311 (rhythmdb_property_model_set_property),
8312 (rhythmdb_property_model_finalize),
8313 (rhythmdb_property_model_compare),
8314 (rhythmdb_property_model_insert),
8315 (rhythmdb_property_model_delete_prop): Fix property model sorting
8316 where the display and sort keys are different. Fixes bug 321980.
8318 2005-11-22 James Livingston <jrl@ids.org.au>
8320 * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
8321 when import as a file or passed on the command line, and load them as
8324 2005-11-22 James Livingston <jrl@ids.org.au>
8326 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8328 * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
8329 (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
8330 a broken daap server. Fixes bug 321919.
8332 2005-11-22 James Livingston <jrl@ids.org.au>
8334 * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
8335 drag-and-drop for both the episodes and feeds list.
8337 (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
8338 consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
8339 From Jonathan Matthew <jonathan@kaolin.hn.org>.
8341 * widgets/rb-property-view.c: (rb_property_view_class_init),
8342 (rb_property_view_set_property), (rb_property_view_get_property),
8343 (rb_property_view_new), (rb_property_view_constructor):
8344 * widgets/rb-simple-view.c: (rb_simple_view_class_init),
8345 (rb_simple_view_new), (rb_simple_view_constructor):
8346 * widgets/rb-simple-view.h: add a "draggable" property to property
8347 views and set it to false for the feed list. Fixes bug 321284.
8349 2005-11-22 James Livingston <jrl@ids.org.au>
8351 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
8353 * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
8354 * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
8355 * sources/rb-ipod-source.c: (add_rb_playlist):
8356 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
8357 (rb_playlist_source_set_property),
8358 (rb_playlist_source_get_property), (rb_playlist_source_new),
8359 (impl_receive_drag), (rb_playlist_source_add_location),
8360 (rb_playlist_source_new_from_xml):
8361 * sources/rb-playlist-source.h: give playlists and (optional)
8362 entry-type, and reject entries that don't match. Fixes bug 322006.
8364 2005-11-21 James Livingston <jrl@ids.org.au>
8366 * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
8367 (rb_source_header_finalize): remove the weak references when the
8368 source header is finalised. Stops the callbacks being called after the
8369 object is destroyed.
8371 2005-11-21 James Livingston <jrl@ids.org.au>
8373 * shell/main.c: (main): don't try to acquite bonobo/dbus when
8374 --no-registration was passed. It causes warnings that make it
8375 impossible to run with --no-registration --g-fatal-warnings
8377 2005-11-21 James Livingston <jrl@ids.org.au>
8379 * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
8380 of strings when they are still in use. Fixes bug 321547.
8382 (rb_daap_connection_destroy): fix memory leak
8384 2005-11-21 James Livingston <jrl@ids.org.au>
8386 * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
8387 (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
8388 (rb_daap_mdns_resolve_cancel), (publish_cb),
8389 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
8392 2005-11-21 James Livingston <jrl@ids.org.au>
8394 * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
8397 2005-11-20 James Livingston <jrl@ids.org.au>
8399 * podcast/rb-podcast-manager.c:
8400 (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
8401 that we don't leak thread structures. Fixes bug 321636, and probably
8404 2005-11-20 James Livingston <jrl@ids.org.au>
8406 * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
8408 * podcast/rb-podcast-manager.c: (start_job),
8409 (rb_podcast_manager_db_entry_deleted_cb),
8410 (rb_podcast_manager_entry_remove_cb):
8411 * podcast/rb-podcast-parse.c: (rb_insert_item),
8412 (rb_podcast_parse_load_feed):
8413 * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
8414 * shell/rb-removable-media-manager.c:
8415 (rb_removable_media_manager_append_media_source):
8416 * shell/rb-shell.c: (add_to_library_response_cb):
8417 * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
8418 * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
8419 * sources/rb-iradio-source.c:
8420 (stations_view_drag_data_received_cb):
8421 * sources/rb-library-source.c: (string_list_equal),
8422 (impl_get_extra_views), (impl_receive_drag):
8423 * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
8424 * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
8425 (impl_receive_drag):
8426 * widgets/rb-entry-view.c: (rb_entry_view_finalize),
8427 (rb_entry_view_append_column_custom), (harvest_entries):
8428 * widgets/rb-property-view.c:
8429 (rb_property_view_selection_changed_cb):
8430 * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
8431 switch from using g_list_append to g_list_prepend. This changes
8432 operations from O(n^2) to O(n), which in cases like deleting a lot of
8433 tracks can give huge improvements in speed. Closes bug 321696.
8435 2005-11-20 James Livingston <jrl@ids.org.au>
8437 * sources/rb-sourcelist.c: (rb_sourcelist_init),
8438 (rb_sourcelist_update_expander_visibility): fix indenting of child
8441 2005-11-20 James Livingston <jrl@ids.org.au>
8443 * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
8444 (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
8445 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
8446 (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
8447 (add_service), (entry_group_cb): dynamically allocate memory, rather
8448 than using static variables.
8450 * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
8451 re-enable the daap share if the name hasn't changed.
8452 * shell/rb-shell-preferences.c:
8453 (share_name_entry_focus_out_event_cb): don't ask the daap share to
8454 change it's name when the checkbox is disabled. Fixed bug 321748.
8456 2005-11-18 James Livingston <jrl@ids.org.au>
8458 * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
8459 as hidden if it is on the current workspace.
8461 2005-11-17 William Jon McCann <mccann@jhu.edu>
8463 * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func):
8464 * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date)
8465 (rb_podcast_properties_dialog_parse_time):
8466 * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update)
8467 (rb_feed_podcast_properties_dialog_parse_time):
8468 Rework the way the last mod time strings are created. It was using
8469 thread unsafe functions, not creating value UTF, and not not checking
8470 the value of the result before modifying it. This new method fixes
8473 2005-11-18 James Livingston <jrl@ids.org.au>
8475 Don't reset the search box when viewing a different source, because it
8476 will change what is being played. Closes 321593.
8478 * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
8481 * shell/rb-source-header.c: (rb_source_header_class_init),
8482 (rb_source_header_init), (rb_source_header_finalize): use
8485 (rb_source_header_set_property),
8486 (rb_source_header_source_weak_destroy_cb),
8487 (rb_source_header_search_cb): store the search text when leaving a
8488 source and put it in the search box when viewing it again.
8490 2005-11-18 James Livingston <jrl@ids.org.au>
8492 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8494 * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
8495 (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
8496 * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
8499 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
8500 last-seen as the timestamp of the last update of the feed. Don't
8501 re-add episodes that have been deleted. Closes 319759.
8503 2005-11-18 James Livingston <jrl@ids.org.au>
8505 * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
8506 that don't have the day name at the start. Closes 321645.
8508 2005-11-18 James Livingston <jrl@ids.org.au>
8510 * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
8511 (rb_podcast_manager_copy_post),
8512 (rb_podcast_manager_get_podcast_dir):
8513 * podcast/rb-podcast-manager.h:
8514 * sources/rb-podcast-source.c: (impl_get_config_widget),
8515 (rb_podcast_source_btn_file_change_cb): fix problem of podcast
8516 download location switching to / if the prefs were opened before
8517 downloading an episode. Closes 321611.
8519 2005-11-18 James Livingston <jrl@ids.org.au>
8521 * data/glade/podcast-new.glade:
8522 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
8523 (rb_new_podcast_dialog_set_property),
8524 (rb_new_podcast_dialog_get_property),
8525 (rb_new_podcast_dialog_response_cb),
8526 (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
8527 for entering new podcast urls in. Closes bug 321610.
8529 2005-11-18 James Livingston <jrl@ids.org.au>
8531 * sources/rb-podcast-source.c: (construct_query_from_selection),
8532 (rb_podcast_source_do_query): allow podcast list to be re-sorted
8533 without restarting RB. Closes bug 321612.
8535 2005-11-18 James Livingston <jrl@ids.org.au>
8537 * widgets/rb-entry-view.c: (set_column_visibility),
8538 (rb_entry_view_sync_columns_visible): when changing visibility of one
8539 column, don't hide and re-show all the others. Makes a show/hide
8540 column operation a lot faster.
8542 2005-11-17 Jonathan Matthew <jonathan@kaolin.hn.org>
8546 * iradio/rb-station-properties-dialog.c
8547 (rb_station_properties_dialog_update_bitrate):
8548 Mark the bitrate value as being kbps, using the same
8549 translatable format string as rb-song-info.c
8551 * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
8552 as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
8554 * shell/rb-shell-player.c (info_available_cb):
8555 Use RB_METADATA_FIELD_BITRATE to update the iradio
8556 station's bitrate value.
8558 2005-11-17 James Livingston <jrl@ids.org.au>
8560 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
8562 * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
8565 2005-11-17 James Livingston <jrl@ids.org.au>
8567 Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
8569 * lib/rb-stock-icons.c: emit a single warning rather than multiple
8570 assertions. Lookup the icon size correctly.
8572 2005-11-16 William Jon McCann <mccann@jhu.edu>
8574 * daapsharing/rb-daap-mdns.c (get_sw_discovery)
8575 (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
8578 2005-11-16 James Livingston <jrl@ids.org.au>
8580 * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
8581 (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
8582 (rb_shell_preferences_sync_column_button): block the toggle signal of
8583 the column checkboxes while setting their initial state. This stops
8584 the visibility being re-set, which causes a lot of time being spent
8585 measuring the columns aagin when opening the prefs window.
8589 2005-11-16 James Livingston <jrl@ids.org.au>
8591 * sources/rb-sourcelist.c: (rb_sourcelist_init),
8592 (rb_sourcelist_edit_source_name): don't assume that the editable
8593 source name is in the first column, because it isn't. Fixes bug
8596 2005-11-16 James Livingston <jrl@ids.org.au>
8598 * daapsharing/rb-daap-mdns.h:
8599 * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
8600 (get_sw_discovery), (get_avahi_client): use GErrors, so that other
8601 parts can know why operations failed. Avahi can report that the daemon
8602 was not running. Howl doesn't do this (yet).
8604 (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
8605 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
8606 (browse_cb): don't display mdns errors to the user, if it wa because
8607 the daemon was not running.
8609 2005-11-16 James Livingston <jrl@ids.org.au>
8611 * rhythmdb/rhythmdb-property-model.c:
8612 (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
8613 (rhythmdb_property_model_compare),
8614 (rhythmdb_property_model_insert),
8615 (rhythmdb_property_model_insert_prop),
8616 (rhythmdb_property_model_delete),
8617 (rhythmdb_property_model_delete_prop),
8618 (rhythmdb_property_model_get_value): use RBRefStrings rather than
8619 copying the string and re-creating the sort key. Saves a little bit of
8622 (rhythmdb_property_model_perform_sync),
8623 (rhythmdb_property_model_sync): perform the count sync in an idle
8624 callback, so that it doesn't have to be re-run once per value when
8627 2005-11-16 James Livingston <jrl@ids.org.au>
8629 * rhythmdb/rhythmdb-query-model.c:
8630 (rhythmdb_query_model_entry_deleted_cb),
8631 (rhythmdb_query_model_remove_entry): remove deleted entries from the
8632 limited list. Stops problems if they are deleted, and then things on
8635 2005-11-16 James Livingston <jrl@ids.org.au>
8639 * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
8640 button's minimise-to-tray action
8642 2005-11-16 James Livingston <jrl@ids.org.au>
8644 * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
8645 leak. Disable adding newly created files for now, because it doesn't
8648 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
8649 (rb_sourcelist_model_finalize):
8650 * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
8651 (rb_sourcelist_finalize): use G_DEFINE_TYPE,
8653 2005-11-16 James Livingston <jrl@ids.org.au>
8655 * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
8656 problem where a GError* wasn't being set to NULL. Actually check the
8659 2005-11-16 James Livingston <jrl@ids.org.au>
8661 * doc/reference/tmpl/rb-entry-view.sgml:
8662 * doc/reference/tmpl/rhythmbox-unused.sgml:
8663 * doc/reference/tmpl/rhythmdb-query-model.sgml:
8664 * doc/reference/tmpl/rhythmdb.sgml:
8665 * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
8666 docs, including the patch that was on bug
8668 * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
8669 API, because it should only be used by RhythmDB itself.
8671 2005-11-16 James Livingston <jrl@ids.org.au>
8673 * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
8674 pausing by middle clicking on the tray icon.
8676 2005-11-15 James Livingston <jrl@ids.org.au>
8678 * configure.ac: enable audioscrobbler support by default, if libsoup
8681 2005-11-15 James Livingston <jrl@ids.org.au>
8683 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8687 * daapsharing/rb-daap-connection.c: (build_message),
8688 (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
8689 support gzip encoded daap connections.
8691 (handle_song_listing): fix leak
8693 2005-11-15 James Livingston <jrl@ids.org.au>
8695 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
8696 * sources/rb-podcast-source.c:
8697 (rb_podcast_source_post_date_cell_data_func): make the date format
8698 translatable again, so that translators can choose the best format for
8699 their locale (%x is huge in some locales)
8701 2005-11-15 James Livingston <jrl@ids.org.au>
8703 * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
8704 (end_job): mark podcast episodes as failed, if the metadata load
8705 fails. This will prevent people playing non-audio enclosures, helping
8708 2005-11-14 James Livingston <jrl@ids.org.au>
8710 * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
8711 video sink to fakesink. This will stop problems (potentially crashers)
8712 that will occur if the file contains a video stream.
8714 * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
8715 rather than using magic numbers everywhere.
8717 * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8718 * sources/rb-podcast-source.c:
8719 (rb_podcast_source_songs_show_popup_cb),
8720 (rb_podcast_source_cmd_download_post),
8721 (rb_podcast_source_post_status_cell_data_func),
8722 (rb_podcast_source_entry_activated_cb): use the above constants.
8724 * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
8725 (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
8726 (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
8727 (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
8728 (cancel_job), (download_progress_cb),
8729 (rb_podcast_manager_cancel_download),
8730 (rb_podcast_manager_insert_feed): use the constants, and fix a
8731 trhead-safety issue.
8733 2005-11-14 Bastien Nocera <hadess@hadess.net>
8735 * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from
8736 Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
8737 entry-changed events after stats on startup, fixes entry deleted from
8738 filtered views not disappearing
8740 2005-11-14 Jonathan Matthew <jonathan@kaolin.hn.org>
8742 Fix rhythmdb query model refcount and polling problems. Closes bug
8745 * rhythmdb/rhythmdb-property-model.c:
8746 (rhythmdb_property_model_finalize):
8747 Unref the query model if we have one.
8749 * rhythmdb/rhythmdb-query-model.h:
8750 Remove poll and cancel methods. Query cancellation
8751 never did anything anyway.
8753 * rhythmdb/rhythmdb-query-model.c:
8754 (rhythmdb_query_model_init): Remove GAsyncQueues.
8755 Replace the GAsyncQueue-based update processing
8756 with a simpler g_idle_add approach; still has the
8757 same queueing properties, but now we don't poll the
8758 model forever and updates are processed immediately.
8760 (_unref_entry), (rhythmdb_query_model_finalize):
8761 Unref DB entries when finalized
8763 (rhythmdb_query_model_has_pending_changes):
8764 Use our own counter to decide if there are updates pending
8766 (rhythmdb_query_model_process_update), (idle_process_update):
8767 Process updates using g_idle_add, or directly if possible
8769 (rhythmdb_query_model_signal_complete),
8770 (rhythmdb_query_model_add_entries):
8771 Change to new update processing method
8773 (idle_poll_model), (rhythmdb_query_model_poll):
8774 Remove GAsyncQueue-based update processing.
8776 * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
8777 No need to poll the model any more - updates are processed
8778 directly for synchronous queries.
8780 * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8781 Property model needs to be unref'd here
8783 * sources/rb-library-source.c: (rb_library_source_do_query):
8784 Don't try to cancel the active query (it never worked anyway),
8785 remove obsolete poll call, unref property models as required,
8786 and don't unref the cached 'all' query, since hold on to it.
8787 We unref it when the sort order changes, which forces the query
8790 * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8791 Unref the property model as required
8793 (rb_podcast_source_do_query):
8794 Treat any query with no selected feeds and no search text as
8795 an 'all' query. Unref query models except for the cached
8796 'all' query, since we hold on to that.
8798 (rb_podcast_source_cmd_update_all):
8799 Unref the property model as required.
8801 * widgets/rb-entry-view.c: (rb_entry_view_set_property):
8802 Don't try to cancel the query (it never worked anyway)
8804 (rb_entry_view_poll_model):
8805 No need for this any more.
8807 * widgets/rb-entry-view.h:
8808 Remove obsolete function rb_entry_view_poll_model
8810 * widgets/rb-property-view.c: (rb_property_view_set_property):
8811 Ref and unref the property model as required.
8813 2005-11-14 James Livingston <jrl@ids.org.au>
8815 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8817 * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
8818 for error. Closes bug 321416.
8820 2005-11-14 James Livingston <jrl@ids.org.au>
8822 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
8824 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
8825 a crasher if a feed's last-post value isn't set. Closes bug 321353.
8827 2005-11-14 James Livingston <jrl@ids.org.au>
8829 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
8830 * shell/rb-removable-media-manager.c:
8831 (rb_removable_media_manager_set_uimanager):
8832 * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
8833 translation domain for GTK action groups.
8835 2005-11-12 James Livingston <jrl@ids.org.au>
8837 * po/POTFILES.in: remove the old station-new files
8839 2005-11-12 James Livingston <jrl@ids.org.au>
8841 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8842 (rhythmdb_tree_parser_end_element), (save_entry_ulong),
8843 (save_entry): cause Rhythmbox to re-read the metadata from a file,
8844 when upgrading from a pre-Date-supporting version to a version that
8845 supports Date metadata. Closes bug 320760.
8847 2005-11-12 James Livingston <jrl@ids.org.au>
8849 Add "update all podcast feeds" command. Closes bug 319954.
8851 * data/ui/rhythmbox-ui.xml: add to source context menu.
8853 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8854 (register_action_group), (rb_podcast_source_cmd_download_post),
8855 (rb_podcast_source_cmd_delete_feed),
8856 (rb_podcast_source_cmd_properties_feed),
8857 (rb_podcast_source_cmd_update_feed): pass the source to the actions,
8858 rather than the shell.
8860 (rb_podcast_source_update_feed_func),
8861 (rb_podcast_source_cmd_update_all): update every feed.
8863 2005-11-11 James Livingston <jrl@ids.org.au>
8865 * shell/rb-shell-player.c: (rb_shell_player_class_init),
8866 (rb_shell_player_constructor), (rb_shell_player_finalize):
8867 * shell/rb-shell.c: fix some conflicting keybindings, and mak some
8868 others follow the HIG recommentations.
8870 2005-11-11 James Livingston <jrl@ids.org.au>
8872 * podcast/rb-podcast-manager.c:
8873 (rb_podcast_manager_subscribe_feed): check that the url is valid,
8874 before trying to use it.
8876 2005-11-11 James Livingston <jrl@ids.org.au>
8878 * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
8879 (rb_entry_view_append_column): When sorting by year, sort by album
8880 within a particular year.
8882 2005-11-11 James Livingston <jrl@ids.org.au>
8886 2005-11-10 Charles Schmidt <cschmidt2@emich.edu>
8887 * daapsharing/rb-daap-connection.c: (build_message): Fixed the
8888 spelling of "Language."
8890 2005-11-11 James Livingston <jrl@ids.org.au>
8892 * rhythmdb/rhythmdb-property-model.c:
8893 (rhythmdb_property_model_row_inserted_cb),
8894 (rhythmdb_property_model_prop_changed_cb),
8895 (rhythmdb_property_model_entry_removed_cb),
8896 (rhythmdb_property_model_insert_prop),
8897 (rhythmdb_property_model_sync): display the count after the "All"
8898 entry of a property model.
8900 * widgets/rb-property-view.c: (rb_property_view_class_init),
8901 (rb_property_view_finalize), (rb_property_view_constructor): use
8904 2005-11-10 James Livingston <jrl@ids.org.au>
8906 * rhythmdb/rhythmdb-query-model.c:
8907 (rhythmdb_query_model_remove_entry):
8908 * rhythmdb/rhythmdb-query-model.h: make
8909 rhythmdb_query_model_remove_entry return whether the entry was in the
8912 * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
8913 don't add non-SONG entries, as it doesn't really work and can cause
8916 (rb_playlist_source_remove_location): assert if the playlist and model
8917 differ on whether the entry is in the playlist
8919 2005-11-10 James Livingston <jrl@ids.org.au>
8921 * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
8922 (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
8923 (rb_podcast_manager_thread_parse_feed),
8924 (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
8925 (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
8926 emulating one with a list and mutex. Fixes a couple of threading
8929 (rb_podcast_manager_insert_feed): fix some problems with ignoring
8932 (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
8933 (rb_podcast_manager_copy_post), (end_job), (cancel_job),
8934 (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
8935 * podcast/rb-podcast-parse.c: (rb_insert_item),
8936 (rb_podcast_parse_channel_free):
8937 * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
8938 fix some typos, and make a bit of code clearer.
8940 2005-11-10 Dennis Cranston <dennis_cranston@yahoo.com>
8942 Make the "delete podcast" dialog better. Closes bug 320899.
8944 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
8945 Add PROP_WINDOW for rb_shell_get_property so we can access the
8946 GtkWindow widget of the main window.
8947 * sources/rb-podcast-source.c: (impl_delete): Set parent window &
8948 fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the
8949 podcast feed delete dialog less confusing as well.
8951 2005-11-09 James Livingston <jrl@ids.org.au>
8953 * shell/rb-removable-media-manager.c:
8954 (rb_removable_media_manager_mount_volume),
8955 (rb_removable_media_manager_scan): Fix a crasher where we were getting
8956 NULL for a cd volume.
8958 2005-11-08 Jonathan Matthew <jonathan@kaolin.hn.org>
8960 * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
8961 method return a gboolean indicating whether the changes
8962 to the entry have already been applied.
8964 * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
8965 only modify the entry if impl_entry_set returns FALSE.
8967 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
8968 When setting the location of an entry, update the
8969 hash table mapping locations to entries.
8971 2005-11-08 Jonathan Matthew <jonathan@kaolin.hn.org>
8973 * data/glade/Makefile.am:
8974 * iradio/Makefile.am:
8975 Remove 'new station' dialog.
8977 * iradio/rb-station-properties-dialog.h:
8978 * sources/rb-iradio-source.c: (impl_song_properties):
8979 * shell/rb-shell.c: (rb_shell_cmd_new_station):
8980 Add 'new station' mode parameter to
8981 rb_station_properties_dialog_new.
8983 * (rb_station_properties_dialog_response_cb),
8984 (rb_station_properties_dialog_create_station):
8985 When in 'new station' mode, create the station
8986 when OK button is pressed.
8988 * iradio/rb-station-properties-dialog.c:
8989 (rb_station_properties_dialog_location_changed_cb):
8990 Only enable OK button if a location is specified
8991 (rb_station_properties_dialog_init),
8992 (rb_station_properties_dialog_new),
8993 (rb_station_properties_dialog_update),
8994 (rb_station_properties_dialog_update_title),
8995 (rb_station_properties_dialog_rated_cb),
8996 (rb_station_properties_dialog_update_play_count),
8997 (rb_station_properties_dialog_update_bitrate),
8998 (rb_station_properties_dialog_update_last_played),
8999 (rb_station_properties_dialog_update_rating),
9000 (rb_station_properties_dialog_update_playback_error),
9001 (rb_station_properties_dialog_show):
9002 Handle 'new station' mode, where there's no current
9005 2005-11-08 James Livingston <jrl@ids.org.au>
9007 * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
9008 keybinding for track columns consistent between library and playlist
9011 2005-11-07 James Livingston <jrl@ids.org.au>
9013 * data/ui/rhythmbox-ui.xml:
9014 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
9015 "Edit" item to playlist menu. Closes bug 311470.
9017 2005-11-07 James Livingston <jrl@ids.org.au>
9019 patch by: Jaap A. Haitsma <jaap@haitsma.org>
9021 * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
9022 confirmation to save dialogs, with gtk 2.8 or higher.
9024 2005-11-07 James Livingston <jrl@ids.org.au>
9025 * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
9026 requirement to a general on, because people are going to have it for
9027 the other dependencies.
9029 2005-11-06 Dennis Cranston <dennis_cranston@yahoo.com>
9031 * sources/rb-podcast-source.c: (impl_delete): Make the podcast
9032 delete dialog less confusing. Use HIG recommended button order.
9035 2005-11-06 James Livingston <jrl@ids.org.au>
9037 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
9038 drag-and-drop error.
9040 * sources/rb-library-source.c: (rb_library_source_constructor): only
9041 add drag-and-drop for the Library itself, subclasses can add support
9042 themselves if they want it.
9044 * sources/rb-removable-media-source.c:
9045 (rb_removable_media_source_class_init): by default removable media
9046 sources do not support dnd
9048 2005-11-05 Jonathan Matthew <jonathan@kaolin.hn.org>
9050 * data/glade/station-properties.glade:
9051 Add box containing error icon and error message label
9052 * iradio/rb-station-properties-dialog.c:
9053 (rb_station_properties_dialog_class_init),
9054 (rb_station_properties_dialog_finalize):
9055 Change this class to use G_DEFINE_TYPE
9056 (rb_station_properties_dialog_init),
9057 (rb_station_properties_dialog_update),
9058 (rb_station_properties_dialog_update_playback_error):
9059 Display error icon and message when there is one, and hide the error
9061 (rb_station_properties_dialog_show): Hack widget show
9062 method to update the visibility of the error info box when showing
9063 the widget. Otherwise the icon is displayed all the time (same thing
9064 is done in rb-song-info). Closes bug 320749.
9066 2005-11-04 Dennis Cranston <dennis_cranston@yahoo.com>
9068 * podcast/rb-podcast-parse.c: (rb_podcast_parse_time): Fix the
9069 parsing of the duration of podcast episodes from the feed. Closes bug
9072 2005-11-05 James Livingston <jrl@ids.org.au>
9074 patch by Christophe Fergeau <teuf@gnome.org> to add support for the
9075 release date metadata ("Year"). Closes bug 166093.
9077 * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
9078 * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
9079 (rb_metadata_gst_add_tag_data):
9080 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9082 * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
9083 (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
9084 (set_props_from_metadata), (rhythmdb_entry_set_internal),
9085 (rhythmdb_prop_get_type):
9086 * rhythmdb/rhythmdb.h: add support for "date" property
9088 * data/glade/general-prefs.glade:
9089 * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
9090 * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
9091 (rb_entry_view_append_column):
9092 * widgets/rb-entry-view.h:
9093 * sources/rb-library-source.c: (rb_library_source_constructor):
9094 * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
9097 * data/glade/song-info.glade:
9098 * widgets/rb-song-info.c: (rb_song_info_boldify_label),
9099 (rb_song_info_construct_single), (rb_song_info_constructor),
9100 (rb_song_info_populate_dialog), (rb_song_info_update_year),
9101 (rb_song_info_sync_entry_single): Add "Year" to song info window
9103 * widgets/rb-query-creator-properties.c: Allow auto playlists to be
9106 2005-11-05 James Livingston <jrl@ids.org.au>
9108 * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
9109 description if it's very long.
9111 2005-11-05 James Livingston <jrl@ids.org.au>
9113 pathc by: Artem Baguinski <femistofel@gmail.com>
9115 * help/C/Makefile.am:
9116 * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
9119 2005-11-05 James Livingston <jrl@ids.org.au>
9121 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9123 * daapsharing/rb-daap-share.c: (write_next_chunk),
9124 (message_finished), (databases_cb): Use chunked file loading and
9125 sending in the DAAP server. This should reduce the amount of memory
9126 required to send files to the client.
9128 2005-11-05 James Livingston <jrl@ids.org.au>
9130 * configure.ac: make the nautilus_burn_drive_door_is_open detection
9131 work better on some systems. Closes 320622.
9133 2005-11-05 James Livingston <jrl@ids.org.au>
9135 * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
9136 homepage, so that users can find out what AudioScrobbler is. Add
9139 * data/glade/daap-prefs.glade:
9140 * data/glade/general-prefs.glade:
9141 * data/glade/library-prefs.glade: make the indent be more consistent
9143 * data/glade/podcast-prefs.glade:
9144 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9145 (impl_get_config_widget): move thing out of code into glade, where
9148 2005-11-05 James Livingston <jrl@ids.org.au>
9150 * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
9151 related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
9153 2005-11-04 James Livingston <jrl@ids.org.au>
9155 * configure.ac: don't print DAAP configure info twice
9157 2005-11-04 James Livingston <jrl@ids.org.au>
9159 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
9160 * sources/rb-playlist-source.c: (burn_playlist_iter_func),
9161 (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
9162 #ifdefs, since we removed the symbol. Oops
9164 2005-11-04 James Livingston <jrl@ids.org.au>
9166 * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
9167 after the connect line, not before. Oops.
9169 2005-11-04 James Livingston <jrl@ids.org.au>
9171 * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
9174 2005-11-03 James Livingston <jrl@ids.org.au>
9176 * NEWS: update the news file
9178 * data/glade/general-prefs.glade: make the prefs refer to "time" not
9181 * data/ui/rhythmbox-ui.xml:
9182 * shell/rb-playlist-manager.c:
9183 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9184 (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
9185 and "delete" for feeds.
9187 2005-11-03 James Livingston <jrl@ids.org.au>
9189 * sources/rb-podcast-source.c: (impl_delete),
9190 (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
9191 feed. Closes 319760.
9193 2005-11-03 James Livingston <jrl@ids.org.au>
9195 Don't start playing from the remote site when a un-downloaded podcast
9196 is activated. Closes 319983.
9199 * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
9200 (write_job_data), (download_progress_cb): write the local location as
9201 soon as any data is recieved
9203 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
9204 the mountpoint to NULL for podcast episodes that haven't yet been
9207 * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
9208 start playing a podcast if it hasn't been downloaded.
9210 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9211 (rb_podcast_source_entry_activated_cb): begin downloading when the
9212 podcast is activated.
9214 2005-11-03 Dennis Cranston <dennis_cranston@yahoo.com>
9216 * data/glade/general-prefs.glade: Fix capitalization.
9217 * shell/rb-removable-media-manager.c: Add a mnemonic.
9218 * sources/rb-podcast-source.c:
9219 (rb_podcast_source_songs_show_popup_cb),
9220 (rb_podcast_source_feeds_show_popup_cb): Add mnemonics.
9222 2005-11-03 James Livingston <jrl@ids.org.au>
9224 patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
9226 * shell/rb-removable-media-manager.c:
9227 (rb_removable_media_manager_mount_volume): don't check network or
9228 autofs mounts, as they're not going to be removable media. Stops
9229 sending lots of warnings to syslog. Closes 320571.
9231 * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
9232 DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
9235 2005-11-03 James Livingston <jrl@ids.org.au>
9237 Add support for playing audio CDs. Metadata lookup is done using
9238 SoundJuicer's MusicBrainz lookup code, which can be switched to using
9239 the library when it gets broken out of S-J.
9241 Add a "rescan media" menu item, and commands for ejecting removable
9244 Move nautilus-cd-burner from optional to required depenency.
9247 * data/ui/rhythmbox-ui.xml:
9248 * metadata/Makefile.am:
9249 + metadata/sj-error.c:
9250 + metadata/sj-error.h:
9251 + metadata/sj-metadata-marshal.list:
9252 + metadata/sj-metadata-musicbrainz.c:
9253 + metadata/sj-metadata-musicbrainz.h:
9254 + metadata/sj-metadata.c:
9255 + metadata/sj-metadata.h:
9256 + metadata/sj-structures.c:
9257 + metadata/sj-structures.h:
9258 * player/Makefile.am:
9259 * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
9261 * shell/Makefile.am:
9262 * shell/rb-removable-media-manager.c:
9263 (rb_removable_media_manager_dispose), (poll_tray_opened),
9264 (end_cd_drive_monitor), (begin_cd_drive_monitor),
9265 (rb_removable_media_manager_load_media),
9266 (rb_removable_media_manager_mount_volume),
9267 (rb_removable_media_manager_cmd_eject_medium),
9268 (rb_removable_media_manager_cmd_scan_media),
9269 (rb_removable_media_manager_check_volume),
9270 (rb_removable_media_manager_unmount_volume_swap),
9271 (rb_removable_media_manager_scan):
9272 * sources/Makefile.am:
9273 + sources/rb-audiocd-source.c:
9274 + sources/rb-audiocd-source.h:
9275 * tests/Makefile.am:
9277 2005-11-02 James Livingston <jrl@ids.org.au>
9279 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9281 * sources/rb-iradio-source.c:
9282 (stations_view_drag_data_received_cb):
9283 * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
9284 don't crash when the second uri is missing frm the drop, which
9285 browsers sometimes do.
9287 2005-11-01 James Livingston <jrl@ids.org.au>
9289 * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
9290 (rb_podcast_manager_insert_feed):
9291 * podcast/rb-podcast-manager.h:
9292 * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
9293 (rb_set_item_value), (rb_validate_item_propert),
9294 (rb_podcast_parse_date), (rb_podcast_parse_time):
9295 * podcast/rb-podcast-parse.h: get the duration of podcast episodes
9298 2005-10-31 James Livingston <jrl@ids.org.au>
9301 * ChangeLog0.8: break off the older Changelog entries, so it isn't so
9304 2005-10-31 James Livingston <jrl@ids.org.au>
9306 * sources/rb-podcast-source.c:
9307 (rb_podcast_source_post_date_cell_data_func): generate the date string
9308 in a way that is correct in all locales.
9310 * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
9311 (rhythmdb_entry_sync_mirrored): make the last played/date added
9312 columns use the same format.
9314 2005-10-30 James Livingston <jrl@ids.org.au>
9317 * podcast/rb-podcast-manager.c:
9318 (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
9320 * shell/rb-shell-player.c: (rb_shell_player_open_location): report
9321 iradio errors better.
9323 2005-10-30 James Livingston <jrl@ids.org.au>
9325 patch by: Artem Baguinski <femistofel@gmail.com>
9327 * metadata/rb-metadata-gst.c: (rb_metadata_init):
9329 2005-10-30 James Livingston <jrl@ids.org.au>
9331 * podcast/rb-podcast-manager.c:
9332 (rb_podcast_manager_subscribe_feed),
9333 (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
9334 already been added, usually as a radio station. Closes 319434.
9336 2005-10-29 Dennis Cranston <dennis_cranston@yahoo.com>
9338 * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
9339 mnemonics & resize issues)
9340 * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
9342 * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
9343 widget for the "download location" label.
9347 2005-10-29 James Livingston <jrl@ids.org.au>
9349 Allow the search box to match words from multiple properties. Closes
9350 bug 139196. Thanks to the person from IRC who did a lot of the initial
9354 * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
9355 * lib/rb-util.h: Add functions to split a string into words, and one
9356 to perform "search folding" which is currently like casefolding but
9357 also strips punctuation
9359 * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
9360 (rhythmdb_query_preprocess):
9361 * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
9362 against title, artist, album and genre (for the search box)
9364 * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
9365 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9366 (save_entry), (search_match_properties),
9367 (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
9368 splitting into words and matching across multiple properties.
9370 * sources/rb-library-source.c: (construct_query_from_selection): use
9371 the new SEARCH_MATCH property for the search box
9373 * widgets/rb-entry-view.c: (type_ahead_search_func):
9375 2005-10-29 James Livingston <jrl@ids.org.au>
9377 * lib/rb-stock-icons.c: (rb_stock_icons_init):
9378 * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
9380 * shell/rb-playlist-manager.c:
9381 * shell/rb-shell.c: use the above stock ids, so that the icons get set
9384 * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
9385 initial state of the shuffle/repeat menu items correctly. Patch from
9386 Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
9388 2005-10-29 James Livingston <jrl@ids.org.au>
9390 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
9393 * widgets/rb-cell-renderer-pixbuf.c:
9394 (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
9395 icon go black when row is not selected
9397 * doc/reference/tmpl/rb-daap-connection.sgml:
9398 * doc/reference/tmpl/rhythmdb.sgml: doc updates
9400 2005-10-29 James Livingston <jrl@ids.org.au>
9402 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
9403 silly mistake, where it could think partial downloads has been
9406 2005-10-29 James Livingston <jrl@ids.org.au>
9408 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9410 * data/glade/song-info.glade:
9411 * widgets/rb-song-info.c: (rb_song_info_construct_single),
9412 (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
9413 (rb_song_info_sync_entry_single): show the disc number in the song
9414 info window. From bug 311199.
9416 2005-10-29 James Livingston <jrl@ids.org.au>
9418 * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
9419 (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
9420 regularly. Closes 155306.
9422 2005-10-29 James Livingston <jrl@ids.org.au>
9424 * podcast/rb-podcast-manager.c:
9425 (rb_podcast_manager_download_entry),
9426 (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
9427 (rb_podcast_manager_insert_feed):
9428 * podcast/rb-podcast-manager.h:
9429 * podcast/rb-podcast-parse.c: (rb_set_item_value),
9430 (rb_podcast_parser_start_element):
9431 * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
9432 don't download them again. However, it can't resume
9433 partially-downloaded ones.
9435 2005-10-28 James Livingston <jrl@ids.org.au>
9437 * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
9438 (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
9439 work. Don't attempt to write duration as a tag.
9441 Thanks to Artem Baguinski <femistofel@gmail.com>
9443 2005-10-28 James Livingston <jrl@ids.org.au>
9445 * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9446 don't disable the status-bar menu item when the current source doesn't
9449 2005-10-28 James Livingston <jrl@ids.org.au>
9451 * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
9452 crash if the file has unknown length
9454 2005-10-27 James Livingston <jrl@ids.org.au>
9456 * daapsharing/rb-daap-connection.c:
9457 (rb_daap_connection_state_done): don't assert when a daap server
9458 doesn't have any playlists
9460 2005-10-27 James Livingston <jrl@ids.org.au>
9462 * sources/rb-sourcelist-model.c:
9463 (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
9464 source for the sourcelist. Closes bug 319817.
9466 2005-10-26 Ryan P Skadberg <skadz@stigmata.org>
9468 Patch by: Renato Araujo <renatox@gmail.com>
9470 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
9471 Fix for a crasher caused by previous patch.
9473 2005-10-26 James Livingston <jrl@ids.org.au>
9475 * data/glade/podcast-prefs.glade:
9476 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
9477 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
9478 * sources/rb-podcast-source.c: (rb_podcast_source_new):
9479 * podcast/rb-podcast-manager.c:
9480 (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
9481 (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
9482 * shell/rb-shell.c: Change some strings to make them more consistent.
9483 "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
9484 makes it clearer which is which. "Episode" may not be the best term,
9485 but it seems to be widely used.
9487 Also fix some strings that weren't marked as translatable.
9489 * podcast/rb-feed-podcast-properties-dialog.c:
9490 (rb_feed_podcast_properties_dialog_class_init),
9491 (rb_feed_podcast_properties_dialog_finalize):
9492 * podcast/rb-new-podcast-dialog.c:
9493 (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
9494 * widgets/rb-simple-view.c: (rb_simple_view_class_init),
9495 (rb_simple_view_finalize), (rb_simple_view_constructor):
9496 * podcast/rb-podcast-properties-dialog.c:
9497 (rb_podcast_properties_dialog_class_init),
9498 (rb_podcast_properties_dialog_finalize):
9499 * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
9500 (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
9501 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9502 (rb_podcast_source_finalize), (rb_podcast_source_constructor):
9503 use G_DEFINE_TYPE, instead of doing it manually.
9505 2005-10-26 James Livingston <jrl@ids.org.au>
9507 Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
9510 * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
9511 (rb_metadata_init): Check that the necessary plugins are present to do
9513 (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
9514 corrupted before replacing the original.
9516 2005-10-25 Jonathan Matthew <jonathan@kaolin.hn.org>
9518 reviewed by: James Livingston <jrl@ids.org.au>
9520 Assign sequential IDs to playlists for DAAP rather than using the
9521 address of the playlist object. Less flaky, and should work on 64bit
9522 platforms. Closes bug 319304.
9524 * daapsharing/rb-daap-share.c:
9525 (rb_daap_share_set_property): watch for playlist creation
9526 (_find_by_id), (_find_by_source): playlist list search functions
9527 (rb_daap_share_playlist_created),
9528 (rb_daap_share_process_playlist),
9529 (rb_daap_share_playlist_destroyed):
9530 update playlist list as it changes, use weak refs on
9531 playlists to get notified on destroy.
9532 (rb_daap_share_forget_playlist), (rb_daap_share_dispose):
9533 destroy playlist list on shutdown
9534 (add_playlist_to_mlcl): use playlist ID rather than pointer in
9536 (databases_cb): search for playlist ID in list rather than just
9537 converting it to a pointer; return HTTP 404 if playlist not
9539 (rb_daap_share_start_publish): playlist IDs start at 2, since 1
9540 is already used for the main library
9542 2005-10-26 James Livingston <jrl@ids.org.au>
9544 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9546 * daapsharing/rb-daap-connection.c: (build_message),
9547 (http_response_handler), (http_get), (handle_server_info),
9548 (handle_login), (handle_update), (handle_database_info),
9549 (handle_song_listing), (handle_playlists),
9550 (handle_playlist_entries), (handle_logout),
9551 (rb_daap_connection_new), (rb_daap_connection_logout),
9552 (rb_daap_connection_state_done), (rb_daap_connection_do_something),
9553 (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
9554 * daapsharing/rb-daap-connection.h:
9555 * sources/rb-daap-source.c: (rb_daap_source_activate),
9556 (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
9557 (rb_daap_source_disconnect): Make connecting to DAAP sources
9558 asynchronous, so that non-responsive servers don't hang the UI. Closes
9561 2005-10-26 James Livingston <jrl@ids.org.au>
9563 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9565 * rhythmdb/rhythmdb-query-model.c:
9566 (rhythmdb_query_model_do_reorder): generate the row re-order map
9569 * widgets/rb-entry-view.c: (rb_entry_view_set_property),
9570 (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
9571 Update selection when rows get re-ordered. Closes 319718.
9573 2005-10-26 James Livingston <jrl@ids.org.au>
9575 patch from Jonathan Matthew <jonathan@kaolin.hn.org>
9577 * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
9578 actually set the db pointer in play orders. Closes 319818.
9580 2005-10-25 Ryan P Skadberg <skadz@stigmata.org>
9582 Patch by: Renato Araujo <renatox@gmail.com>
9584 * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
9585 (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
9586 (rb_podcast_manager_update_synctime),
9587 (rb_podcast_manager_config_changed),
9588 (rb_podcast_manager_insert_feed):
9589 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9591 * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
9592 (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
9593 * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
9595 2005-10-25 James Livingston <jrl@ids.org.au>
9597 * daapsharing/rb-daap-share.c: (db_entry_added_cb),
9598 (db_entry_deleted_cb): don't share tracks that are hidden because the
9601 2005-10-22 James Livingston <jrl@ids.org.au>
9603 * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
9604 crash if an entry couldn't be playerd, without streamer setting an
9608 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
9610 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
9611 (rb_new_podcast_dialog_text_changed): enable the add button when a url
9612 is pasted into the dialog.
9614 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
9615 * podcast/rb-podcast-parse.c: (rb_set_channel_value),
9616 (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
9617 (rb_podcast_parse_channel_free):
9618 * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
9621 2005-10-22 James Livingston <jrl@ids.org.au>
9623 * sources/rb-iradio-source.c:
9624 (rb_iradio_source_first_time_changed): Make merging the default
9625 stations actually work.
9627 * sources/rb-podcast-source.c:
9628 (rb_podcast_source_post_status_cell_data_func): fix problem where some
9629 people weren't seing the percentages in the stats column.
9631 2005-10-21 James Livingston <jrl@ids.org.au>
9633 Patch from Caio Marcelo <cmarcelo@gmail.com>
9635 * shell/rb-shell.c: (rb_shell_window_state_cb),
9636 (rb_shell_get_visibility), (idle_hide_mainwindow),
9637 (rb_shell_set_visibility): Make the "show window" item in the tray
9638 icon menu show the toggle state correctly. Use a better policy on
9639 deciding whether the window is "visible" or not. Closes bug 308053.
9641 2005-10-21 James Livingston <jrl@ids.org.au>
9643 * doc/reference/tmpl/rb-shell-preferences.sgml:
9644 * shell/Makefile.am: fix building with gtk-doc
9646 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9647 don't submit podcasts to audioscrobbler
9650 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
9652 * podcast/rb-podcast-parse.c: (rb_set_channel_value),
9653 (rb_set_item_value): strip spaces surrounding podcast urls
9656 Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
9658 * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
9660 2005-10-20 Ryan P Skadberg <skadz@stigmata.org>
9662 Patch from Ruben Vermeersch <ruben@lambda1.be> to add
9663 Audioscrobbler/Last.fm support
9666 * data/glade/Makefile.am:
9667 * data/glade/audioscrobbler-prefs.glade:
9668 * data/rhythmbox.schemas:
9670 * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
9672 * lib/rb-preferences.h:
9674 * shell/Makefile.am:
9675 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
9676 (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
9677 (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
9678 (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
9679 (rb_audioscrobbler_timeout_cb), (mkmd5),
9680 (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
9681 (rb_audioscrobbler_do_handshake),
9682 (rb_audioscrobbler_do_handshake_cb),
9683 (rb_audioscrobbler_submit_queue),
9684 (rb_audioscrobbler_submit_queue_cb),
9685 (rb_audioscrobbler_import_settings),
9686 (rb_audioscrobbler_preferences_sync),
9687 (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
9688 (rb_audioscrobbler_gconf_changed_cb),
9689 (rb_audioscrobbler_song_changed_cb),
9690 (rb_audioscrobbler_username_entry_changed_cb),
9691 (rb_audioscrobbler_username_entry_activate_cb),
9692 (rb_audioscrobbler_password_entry_changed_cb),
9693 (rb_audioscrobbler_password_entry_activate_cb),
9694 (rb_audioscrobbler_enabled_check_changed_cb),
9695 (audioscrobbler_entry_init), (audioscrobbler_entry_free),
9696 (rb_audioscrobbler_load_entry_from_string),
9697 (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
9698 (rb_audioscrobbler_print_queue),
9699 (rb_audioscrobbler_free_queue_entries):
9700 * shell/rb-audioscrobbler.h:
9701 * shell/rb-shell-preferences.c:
9702 (rb_shell_preferences_append_audioscrobbler_config):
9703 * shell/rb-shell-preferences.h:
9704 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9705 (rb_shell_select_source), (rb_shell_cmd_preferences):
9706 * sources/Makefile.am:
9708 2005-10-21 James Livingston <jrl@ids.org.au>
9710 Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
9715 * data/art/Makefile.am:
9716 * data/glade/Makefile.am:
9717 * data/rhythmbox.schemas:
9718 * data/ui/rhythmbox-ui.xml:
9719 * doc/reference/Makefile.am:
9720 * doc/reference/tmpl/rhythmdb.sgml:
9721 * lib/rb-stock-icons.c: (rb_stock_icons_init):
9722 * lib/rb-stock-icons.h:
9724 * podcast/Makefile.am:
9725 + podcast/rb-feed-podcast-properties-dialog.c:
9726 + podcast/rb-feed-podcast-properties-dialog.h:
9727 + podcast/rb-new-podcast-dialog.c:
9728 + podcast/rb-new-podcast-dialog.h:
9729 + podcast/rb-podcast-manager.c:
9730 + podcast/rb-podcast-manager.h:
9731 + podcast/rb-podcast-marshal.list:
9732 + podcast/rb-podcast-parse.c:
9733 + podcast/rb-podcast-parse.h:
9734 + podcast/rb-podcast-properties-dialog.c:
9735 + podcast/rb-podcast-properties-dialog.h:
9736 * rhythmdb/rhythmdb-property-model.c:
9737 (rhythmdb_property_model_set_property),
9738 (rhythmdb_property_model_enable_drag):
9739 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9740 (rhythmdb_tree_parser_end_element), (save_entry),
9741 (rhythmdb_tree_save):
9742 * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
9743 (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
9744 (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
9745 (rhythmdb_entry_podcast_feed_get_type):
9746 * rhythmdb/rhythmdb.h:
9747 * shell/Makefile.am:
9748 * shell/rb-shell-player.c: (rb_shell_player_open_entry):
9749 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9750 (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
9752 * sources/Makefile.am:
9753 + sources/rb-podcast-source.c:
9754 + sources/rb-podcast-source.h:
9755 * widgets/Makefile.am:
9756 * widgets/rb-property-view.c: (rb_property_view_class_init),
9757 (rb_property_view_constructor),
9758 (rb_property_view_selection_changed_cb),
9759 (rb_property_view_get_treeview):
9760 * widgets/rb-property-view.h:
9761 + widgets/rb-simple-view.c:
9762 + widgets/rb-simple-view.h:
9764 2005-10-20 James Livingston <jrl@ids.org.au>
9766 * NEWS: update with changes since 0.9.1
9768 * configure.ac: check whether collate_key_for_filename is available
9769 * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
9770 * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
9771 it if it isn't available in glib (i.e. building against 2.6)
9772 * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
9773 collation to get "natural sorting". Closes bug 158599.
9775 2005-10-20 James Livingston <jrl@ids.org.au>
9777 Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
9779 * doc/reference/tmpl/rb-shell-player.sgml:
9780 * shell/rb-shell-player.c: (rb_shell_player_class_init),
9781 (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
9782 (rb_shell_player_get_playing),
9783 (rb_shell_player_get_playing_time_string),
9784 (rb_shell_player_get_playing_time),
9785 (rb_shell_player_set_playing_time), (tick_cb),
9786 (rb_shell_player_get_playing_path), (filter_mmkeys):
9787 * shell/rb-shell-player.h:
9788 * shell/rb-shell-player.xml:
9789 * shell/rb-shell.c: (rb_shell_constructor),
9790 (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
9791 (rb_shell_set_window_title), (rb_shell_playing_impl),
9792 (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
9793 Merge the duration_changed and elapsed_changed DBUS signals into one
9794 elapsed_changed signal. Check that the output argument isn't NULL
9795 before trying to put things in it.
9797 2005-10-20 James Livingston <jrl@ids.org.au>
9799 * rhythmdb/rhythmdb-query-model.c:
9800 (rhythmdb_query_model_entry_added_cb),
9801 (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
9802 problem where hidden entries could be shown in playlists.
9804 * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
9805 issues when switching in and out of small mode.
9807 2005-10-19 James Livingston <jrl@ids.org.au>
9809 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
9810 (rb_shell_constructor), (rb_shell_window_state_cb),
9811 (rb_shell_set_visibility), (rb_shell_window_configure_cb),
9812 (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
9813 (rb_shell_view_smalldisplay_changed_cb),
9814 (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
9815 (rb_shell_sync_paned): remove gconf window-state races, prevent
9816 changing small mode too often, fix window event races. Closes 122806.
9819 Patch from Caio Marcelo <cmarcelo@gmail.com>
9821 * data/rhythmbox.schemas:
9822 * shell/rb-shell.c: (rb_shell_window_state_cb),
9823 (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
9824 Remember the position of the window. Closes 315289.
9826 2005-10-19 James Livingston <jrl@ids.org.au>
9828 Patch from Christophe Fergeau <teuf@gnome.org>
9830 * configure.ac: determine whether libgpod is present when neither
9831 --with-ipod nor --without-ipod is passed
9833 2005-10-19 James Livingston <jrl@ids.org.au>
9835 Patch from Caio Marcelo <cmarcelo@gmail.com>
9837 * shell/rb-shell-player.c: (do_next_idle),
9838 (rb_shell_player_do_previous), (rb_shell_player_do_next),
9839 (rb_shell_player_do_previous_or_seek),
9840 (rb_shell_player_previous_button_cb),
9841 (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
9842 (rb_shell_player_cmd_next), (eos_cb):
9843 * widgets/rb-header.c: (rb_header_sync): Stop playback when the
9844 end of the playlist is reached.
9846 2005-10-19 Christopher Aillon <caillon@redhat.com>
9848 * lib/rb-thread.c: fix a few GSource leaks
9850 2005-10-19 James Livingston <jrl@ids.org.au>
9852 * doc/reference/tmpl/bacon-volume.sgml:
9853 * doc/reference/tmpl/disclosure-widget.sgml:
9854 * doc/reference/tmpl/eel-gconf-extensions.sgml:
9855 * doc/reference/tmpl/eggnotificationbubble.sgml:
9856 * doc/reference/tmpl/eggtrayicon.sgml:
9857 * doc/reference/tmpl/gsequence.sgml:
9858 * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
9859 * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
9860 * doc/reference/tmpl/rb-daap-connection.sgml:
9861 * doc/reference/tmpl/rb-daap-dialog.sgml:
9862 * doc/reference/tmpl/rb-daap-mdns.sgml:
9863 * doc/reference/tmpl/rb-daap-share.sgml:
9864 * doc/reference/tmpl/rb-daap-sharing.sgml:
9865 * doc/reference/tmpl/rb-daap-source.sgml:
9866 * doc/reference/tmpl/rb-daap-src.sgml:
9867 * doc/reference/tmpl/rb-daap-structure.sgml:
9868 * doc/reference/tmpl/rb-debug.sgml:
9869 * doc/reference/tmpl/rb-dialog.sgml:
9870 * doc/reference/tmpl/rb-druid.sgml:
9871 * doc/reference/tmpl/rb-entry-view.sgml:
9872 * doc/reference/tmpl/rb-enums.sgml:
9873 * doc/reference/tmpl/rb-file-helpers.sgml:
9874 * doc/reference/tmpl/rb-glade-helpers.sgml:
9875 * doc/reference/tmpl/rb-header.sgml:
9876 * doc/reference/tmpl/rb-history.sgml:
9877 * doc/reference/tmpl/rb-ipod-source.sgml:
9878 * doc/reference/tmpl/rb-iradio-source.sgml:
9879 * doc/reference/tmpl/rb-library-source.sgml:
9880 * doc/reference/tmpl/rb-load-failure-dialog.sgml:
9881 * doc/reference/tmpl/rb-metadata.sgml:
9882 * doc/reference/tmpl/rb-new-station-dialog.sgml:
9883 * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
9884 * doc/reference/tmpl/rb-play-order-linear.sgml:
9885 * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
9886 * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
9887 * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
9888 * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
9889 * doc/reference/tmpl/rb-play-order-random.sgml:
9890 * doc/reference/tmpl/rb-play-order-shuffle.sgml:
9891 * doc/reference/tmpl/rb-play-order.sgml:
9892 * doc/reference/tmpl/rb-player.sgml:
9893 * doc/reference/tmpl/rb-playlist-manager.sgml:
9894 * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
9895 * doc/reference/tmpl/rb-playlist-source.sgml:
9896 * doc/reference/tmpl/rb-preferences.sgml:
9897 * doc/reference/tmpl/rb-property-view.sgml:
9898 * doc/reference/tmpl/rb-query-creator-private.sgml:
9899 * doc/reference/tmpl/rb-query-creator.sgml:
9900 * doc/reference/tmpl/rb-rating-helper.sgml:
9901 * doc/reference/tmpl/rb-rating.sgml:
9902 * doc/reference/tmpl/rb-recorder.sgml:
9903 * doc/reference/tmpl/rb-refstring.sgml:
9904 * doc/reference/tmpl/rb-removable-media-manager.sgml:
9905 * doc/reference/tmpl/rb-removable-media-source.sgml:
9906 * doc/reference/tmpl/rb-search-entry.sgml:
9907 * doc/reference/tmpl/rb-shell-clipboard.sgml:
9908 * doc/reference/tmpl/rb-shell-glue.sgml:
9909 * doc/reference/tmpl/rb-shell-player-glue.sgml:
9910 * doc/reference/tmpl/rb-shell-player.sgml:
9911 * doc/reference/tmpl/rb-shell-preferences.sgml:
9912 * doc/reference/tmpl/rb-shell.sgml:
9913 * doc/reference/tmpl/rb-song-display-box.sgml:
9914 * doc/reference/tmpl/rb-song-info.sgml:
9915 * doc/reference/tmpl/rb-source-header.sgml:
9916 * doc/reference/tmpl/rb-source.sgml:
9917 * doc/reference/tmpl/rb-sourcelist-model.sgml:
9918 * doc/reference/tmpl/rb-sourcelist.sgml:
9919 * doc/reference/tmpl/rb-station-properties-dialog.sgml:
9920 * doc/reference/tmpl/rb-statusbar.sgml:
9921 * doc/reference/tmpl/rb-stock-icons.sgml:
9922 * doc/reference/tmpl/rb-string-helpers.sgml:
9923 * doc/reference/tmpl/rb-thread.sgml:
9924 * doc/reference/tmpl/rb-tray-icon.sgml:
9925 * doc/reference/tmpl/rb-tree-dnd.sgml:
9926 * doc/reference/tmpl/rb-tree-model-sort.sgml:
9927 * doc/reference/tmpl/rb-util.sgml:
9928 * doc/reference/tmpl/rhythmbox-unused.sgml:
9929 * doc/reference/tmpl/rhythmdb-property-model.sgml:
9930 * doc/reference/tmpl/rhythmdb-query-model.sgml:
9931 * doc/reference/tmpl/rhythmdb-tree.sgml:
9932 * doc/reference/tmpl/rhythmdb.sgml: update for changes
9934 * doc/reference/Makefile.am: make docs build with changed ipod support
9936 * po/POTFILES.in: remove sources/itunesdb
9938 2005-10-18 Christophe Fergeau <teuf@gnome.org>
9940 * sources/itunesdb.c:
9941 * sources/itunesdb.h: removed now useless files
9943 2005-10-03 Christophe Fergeau <teuf@gnome.org>
9946 * shell/Makefile.am:
9947 * sources/Makefile.am:
9948 * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
9950 [1]: http://www.gtkpod.org/libgpod.html
9953 2005-10-18 James Livingston <jrl@ids.org.au>
9955 patch from Funda Wang <fundawang@linux.net.cn>
9957 * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
9958 the notification bubble string translatable.
9960 ============ Version 0.9.1
9962 2005-10-16 James Livingston <jrl@ids.org.au>
9964 * configure.ac: bump version to 0.9.1
9965 * NEWS: update translation credits
9967 2005-10-16 James Livingston <jrl@ids.org.au>
9969 * rhythmdb/rhythmdb-query-model.c:
9970 (rhythmdb_query_model_class_init),
9971 (rhythmdb_query_model_drag_data_received):
9972 * rhythmdb/rhythmdb-query-model.h: Allow sources to be
9973 notified when things are dropped into the entry view.
9975 * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
9976 (rb_playlist_source_add_location_swapped),
9977 (rb_playlist_source_add_location), (rb_playlist_source_do_query),
9978 (rb_playlist_source_non_entry_dropped),
9979 (rb_playlist_source_row_inserted): Use the new signal so that dropping
9980 things onto a playlist's entry view work correctly, and doesn't cause
9981 crashes. Allow folders to be dropped as well. (Closes 318308)
9983 2005-10-16 James Livingston <jrl@ids.org.au>
9985 * NEWS: Update some more
9987 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
9988 (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
9989 with the paned size, so that it doesn't move when the window is
9990 maximised/restored. Closes bug 315852.
9992 * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
9993 display the playcount column, as it's useless (it never get changed).
9995 2005-10-14 James Livingston <jrl@ids.org.au>
9999 * doc/reference/Makefile.am: get "make distcheck" to pass again
10001 2005-10-11 James Livingston <jrl@ids.org.au>
10003 * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
10004 destroy the connection when retrieving the playlists fails, because
10005 tracks have already been added. Closes 318380.
10007 2005-10-11 James Livingston <jrl@ids.org.au>
10009 * sources/rb-sourcelist.c: (rb_sourcelist_append),
10010 (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
10011 (source_name_edited_cb): Ask for the columns to be resized when a
10012 source is added, deleted or changes name.
10014 2005-10-11 James Livingston <jrl@ids.org.au>
10016 * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
10017 create a thread when processing a directory. This stops up created one
10018 thread for each file in a playlist we're trying to load. Closes
10021 * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
10022 typo that made sort-by-artist not work correctly.
10024 2005-10-11 James Livingston <jrl@ids.org.au>
10026 * doc/reference/Makefile.am: Make gtk-doc generation work when daap
10029 2005-10-11 James Livingston <jrl@ids.org.au>
10031 * lib/rb-file-helpers.c: (rb_canonicalise_uri):
10032 * lib/rb-file-helpers.h: add a function to turn uris into our
10033 canonical path-escaped form
10034 * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
10035 above function when import playlists. This will fix the problem of
10036 duplicate entries due to different representations of the uri (bug
10039 2005-10-11 James Livingston <jrl@ids.org.au>
10041 * shell/rb-shell.c: (rb_shell_get_visibility),
10042 (rb_shell_set_visibility), (rb_shell_window_delete_cb),
10043 (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
10044 window hiding so that Alt-F4 works again.
10046 * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
10047 (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
10048 (rb_entry_view_string_sort_func): Stop some crashes where a string
10049 property was set to NULL.
10051 2005-10-10 James Livingston <jrl@ids.org.au>
10053 * doc/reference/rhythmbox.types: fix gtk-doc generation
10055 2005-10-09 James Livingston <jrl@ids.org.au>
10057 * sources/rb-sourcelist.c: (rb_sourcelist_init):
10058 * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
10059 accelerators, so that we don't have as many conflicting keys.
10061 2005-10-08 James Livingston <jrl@ids.org.au>
10063 * data/iradio-initial.pls: Update the list of radio stations. Thanks
10064 to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
10067 2005-10-07 James Livingston <jrl@ids.org.au>
10069 * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
10070 local path names in the same way as every other URI. This should stop
10071 duplicates occurring due to different escapings. Closes bug 158211.
10073 2005-10-06 James Livingston <jrl@ids.org.au>
10075 * NEWS: more updates
10077 patch from Jaap Haitsma <jaap@haitsma.org>:
10080 * data/Makefile.am:
10081 * data/art/Makefile.am:
10082 - data/art/rhythmbox-paused.png:
10083 - data/art/rhythmbox-playback-error.png:
10084 - data/art/rhythmbox-playing.png:
10085 - data/art-clearlooks/:
10086 * lib/rb-file-helpers.c: (rb_file):
10087 * lib/rb-stock-icons.c: (rb_stock_icons_init):
10088 * lib/rb-stock-icons.h:
10089 * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10090 * widgets/rb-cell-renderer-pixbuf.c:
10091 (rb_cell_renderer_pixbuf_render):
10092 * widgets/rb-entry-view.c: (rb_entry_view_init),
10093 (rb_entry_view_set_playing):
10094 * widgets/rb-rating-helper.c: (rb_rating_render_stars): use more
10095 stock icons instead of custom art. Drop remanents of art-clearlooks.
10097 2005-10-04 Pawan Chitrakar <pchitrakar@gmail.com>
10099 * configure.ac: Added ne in ALL_LINGUAS
10101 2005-10-02 James Livingston <jrl@ids.org.au>
10103 * data/glade/Makefile.am: actually install the daap prefs glade file
10105 2005-09-30 James Livingston <jrl@ids.org.au>
10107 * po/POTFILES.in: mremove rb-string-helper.c from the list of
10108 translatable files, so that make check works and we don't annoy the
10111 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
10112 sanity checking, in case a db entry is missing some properties.
10114 2005-09-29 James Livingston <jrl@ids.org.au>
10116 - lib/rb-string-helpers.c:
10117 - lib/rb-string-helpers.h:
10119 * rhythmdb/rhythmdb-tree.c:
10120 * rhythmdb/rhythmdb.c:
10121 * shell/main.c: (main):
10122 * shell/rb-shell.c:
10123 * widgets/rb-entry-view.c:
10124 * widgets/rb-property-view.c: remove rb-string-helpers, as they
10125 utility functions haven't been used in a while.
10127 2005-09-27 James Livingston <jrl@ids.org.au>
10129 * data/art-clearlooks/Makefile.am:
10130 - data/art-clearlooks/rhythmbox-album.png:
10131 - data/art-clearlooks/rhythmbox-audiocd.png:
10132 - data/art-clearlooks/rhythmbox-automatic-playlist.png:
10133 - data/art-clearlooks/rhythmbox-dnd.png:
10134 - data/art-clearlooks/rhythmbox-ipod.png:
10135 - data/art-clearlooks/rhythmbox-iradio.png:
10136 - data/art-clearlooks/rhythmbox-library.png:
10137 - data/art-clearlooks/rhythmbox-next.png:
10138 - data/art-clearlooks/rhythmbox-pause.png:
10139 - data/art-clearlooks/rhythmbox-play.png:
10140 - data/art-clearlooks/rhythmbox-playlist-menu.png:
10141 - data/art-clearlooks/rhythmbox-playlist.png:
10142 - data/art-clearlooks/rhythmbox-previous.png:
10143 - data/art-clearlooks/rhythmbox-repeat.png:
10144 - data/art-clearlooks/rhythmbox-rewind.png:
10145 - data/art-clearlooks/rhythmbox-shuffle.png:
10146 - data/art-clearlooks/rhythmbox-stop.png:
10147 - data/art-clearlooks/rhythmbox-visuals.png:
10148 - data/art-clearlooks/rhythmbox-volume-max.png:
10149 - data/art-clearlooks/rhythmbox-volume-medium.png:
10150 - data/art-clearlooks/rhythmbox-volume-min.png:
10151 - data/art-clearlooks/rhythmbox-volume-mute.png:
10152 - data/art-clearlooks/rhythmbox-volume-zero.png:
10153 * data/art/Makefile.am:
10154 - data/art/rhythmbox-album.png:
10155 - data/art/rhythmbox-audiocd.png:
10156 - data/art/rhythmbox-automatic-playlist.png:
10157 - data/art/rhythmbox-dnd.png:
10158 - data/art/rhythmbox-ipod.png:
10159 - data/art/rhythmbox-iradio.png:
10160 - data/art/rhythmbox-library.png:
10161 - data/art/rhythmbox-next.png:
10162 - data/art/rhythmbox-pause.png:
10163 - data/art/rhythmbox-play.png:
10164 - data/art/rhythmbox-playlist-menu.png:
10165 - data/art/rhythmbox-playlist.png:
10166 - data/art/rhythmbox-previous.png:
10167 - data/art/rhythmbox-repeat.png:
10168 - data/art/rhythmbox-rewind.png:
10169 - data/art/rhythmbox-shuffle.png:
10170 - data/art/rhythmbox-stop.png:
10171 - data/art/rhythmbox-visuals.png:
10172 - data/art/rhythmbox-volume-max.png:
10173 - data/art/rhythmbox-volume-medium.png:
10174 - data/art/rhythmbox-volume-min.png:
10175 - data/art/rhythmbox-volume-mute.png:
10176 - data/art/rhythmbox-volume-zero.png:
10177 * lib/rb-stock-icons.c: (rb_stock_icons_init):
10178 * lib/rb-stock-icons.h:
10179 * shell/rb-playlist-manager.c:
10180 * shell/rb-shell-player.c:
10181 * sources/rb-daap-source.c: (rb_daap_get_icon):
10182 * sources/rb-ipod-source.c:
10183 * sources/rb-iradio-source.c: (rb_iradio_source_init):
10184 * sources/rb-library-source.c: (rb_library_source_new):
10185 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10186 * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
10187 that hasn't been used in a LONG time, and also remove art that are
10190 2005-09-27 James Livingston <jrl@ids.org.au>
10192 * README: point to the gnome.org web sites, and update the example
10193 gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
10195 * rhythmdb/rhythmdb-query-model.c:
10196 (rhythmdb_query_model_set_property),
10197 (rhythmdb_query_model_get_property),
10198 (rhythmdb_query_model_finalize):
10199 * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
10200 (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
10201 * rhythmdb/rhythmdb.h:
10202 * sources/rb-iradio-source.c: (impl_search):
10203 * sources/rb-library-source.c: (impl_search): Add query
10204 "preprocessing", which performs operations such as casefolding any
10205 strings that will be compared to any of the *_FOLDED properties.
10208 2005-09-27 James Livingston <jrl@ids.org.au>
10210 * data/glade/daap-prefs.glade:
10211 * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
10212 file for the daap preferences pane
10214 * sources/rb-sourcelist.c: (rb_sourcelist_init),
10215 (rb_sourcelist_append), (rb_sourcelist_remove),
10216 (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
10217 don't display the column for source expanders unless there is an
10220 2005-09-24 Raphael Slinckx <rslinckx@cvs.gnome.org>
10227 * doc/reference/.cvsignore:
10228 * doc/reference/Makefile.am:
10229 * doc/reference/rhythmbox-docs.sgml:
10230 * doc/reference/rhythmbox-sections.txt:
10231 * doc/reference/rhythmbox.types:
10232 * doc/reference/tmpl/bacon-volume.sgml:
10233 * doc/reference/tmpl/disclosure-widget.sgml:
10234 * doc/reference/tmpl/eel-gconf-extensions.sgml:
10235 * doc/reference/tmpl/eggnotificationbubble.sgml:
10236 * doc/reference/tmpl/eggtrayicon.sgml:
10237 * doc/reference/tmpl/gsequence.sgml:
10238 * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
10239 * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
10240 * doc/reference/tmpl/rb-daap-connection.sgml:
10241 * doc/reference/tmpl/rb-daap-dialog.sgml:
10242 * doc/reference/tmpl/rb-daap-mdns.sgml:
10243 * doc/reference/tmpl/rb-daap-share.sgml:
10244 * doc/reference/tmpl/rb-daap-sharing.sgml:
10245 * doc/reference/tmpl/rb-daap-source.sgml:
10246 * doc/reference/tmpl/rb-daap-src.sgml:
10247 * doc/reference/tmpl/rb-daap-structure.sgml:
10248 * doc/reference/tmpl/rb-debug.sgml:
10249 * doc/reference/tmpl/rb-dialog.sgml:
10250 * doc/reference/tmpl/rb-druid.sgml:
10251 * doc/reference/tmpl/rb-entry-view.sgml:
10252 * doc/reference/tmpl/rb-enums.sgml:
10253 * doc/reference/tmpl/rb-file-helpers.sgml:
10254 * doc/reference/tmpl/rb-glade-helpers.sgml:
10255 * doc/reference/tmpl/rb-header.sgml:
10256 * doc/reference/tmpl/rb-history.sgml:
10257 * doc/reference/tmpl/rb-ipod-source.sgml:
10258 * doc/reference/tmpl/rb-iradio-source.sgml:
10259 * doc/reference/tmpl/rb-library-source.sgml:
10260 * doc/reference/tmpl/rb-load-failure-dialog.sgml:
10261 * doc/reference/tmpl/rb-metadata.sgml:
10262 * doc/reference/tmpl/rb-new-station-dialog.sgml:
10263 * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
10264 * doc/reference/tmpl/rb-play-order-linear.sgml:
10265 * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
10266 * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
10267 * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
10268 * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
10269 * doc/reference/tmpl/rb-play-order-random.sgml:
10270 * doc/reference/tmpl/rb-play-order-shuffle.sgml:
10271 * doc/reference/tmpl/rb-play-order.sgml:
10272 * doc/reference/tmpl/rb-player.sgml:
10273 * doc/reference/tmpl/rb-playlist-manager.sgml:
10274 * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
10275 * doc/reference/tmpl/rb-playlist-source.sgml:
10276 * doc/reference/tmpl/rb-preferences.sgml:
10277 * doc/reference/tmpl/rb-property-view.sgml:
10278 * doc/reference/tmpl/rb-query-creator-private.sgml:
10279 * doc/reference/tmpl/rb-query-creator.sgml:
10280 * doc/reference/tmpl/rb-rating-helper.sgml:
10281 * doc/reference/tmpl/rb-rating.sgml:
10282 * doc/reference/tmpl/rb-recorder.sgml:
10283 * doc/reference/tmpl/rb-refstring.sgml:
10284 * doc/reference/tmpl/rb-removable-media-manager.sgml:
10285 * doc/reference/tmpl/rb-removable-media-source.sgml:
10286 * doc/reference/tmpl/rb-search-entry.sgml:
10287 * doc/reference/tmpl/rb-shell-clipboard.sgml:
10288 * doc/reference/tmpl/rb-shell-glue.sgml:
10289 * doc/reference/tmpl/rb-shell-player-glue.sgml:
10290 * doc/reference/tmpl/rb-shell-player.sgml:
10291 * doc/reference/tmpl/rb-shell-preferences.sgml:
10292 * doc/reference/tmpl/rb-shell.sgml:
10293 * doc/reference/tmpl/rb-song-display-box.sgml:
10294 * doc/reference/tmpl/rb-song-info.sgml:
10295 * doc/reference/tmpl/rb-source-header.sgml:
10296 * doc/reference/tmpl/rb-source.sgml:
10297 * doc/reference/tmpl/rb-sourcelist-model.sgml:
10298 * doc/reference/tmpl/rb-sourcelist.sgml:
10299 * doc/reference/tmpl/rb-station-properties-dialog.sgml:
10300 * doc/reference/tmpl/rb-statusbar.sgml:
10301 * doc/reference/tmpl/rb-stock-icons.sgml:
10302 * doc/reference/tmpl/rb-string-helpers.sgml:
10303 * doc/reference/tmpl/rb-thread.sgml:
10304 * doc/reference/tmpl/rb-tray-icon.sgml:
10305 * doc/reference/tmpl/rb-tree-dnd.sgml:
10306 * doc/reference/tmpl/rb-tree-model-sort.sgml:
10307 * doc/reference/tmpl/rb-util.sgml:
10308 * doc/reference/tmpl/rhythmdb-property-model.sgml:
10309 * doc/reference/tmpl/rhythmdb-query-model.sgml:
10310 * doc/reference/tmpl/rhythmdb-tree.sgml:
10311 * doc/reference/tmpl/rhythmdb.sgml:
10312 * macros/.cvsignore:
10313 * shell/Makefile.am:
10314 * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
10315 (rb_source_finalize), (rb_source_set_property),
10316 (rb_source_get_property), (default_get_pixbuf),
10317 (_rb_source_show_popup):
10318 * sources/rb-source.h:
10319 Add support for gtk-doc in rhythmbox.
10320 Convert RBSource to use newer glib functions, such as add_private.
10321 Gives RBSource a default get_pixbuf implementation.
10323 2005-09-25 James Livingston <jrl@ids.org.au>
10325 * NEWS: Update with about a months worth of changes
10327 * data/glade/song-info-multiple.glade:
10328 * data/glade/song-info.glade:
10329 * data/rhythmbox.schemas:
10330 * lib/rb-preferences.h:
10331 * rhythmdb/rhythmdb.h:
10332 * shell/rb-shell-player.c:
10333 * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
10334 few remaining parts of autorating.
10336 2005-09-24 James Livingston <jrl@ids.org.au>
10338 * shell/rb-shell.c: (rb_shell_constructor),
10339 (rb_shell_window_state_cb), (rb_shell_set_visibility),
10340 (rb_shell_window_configure_cb): store window state in the gconf keys,
10341 so that it gets used. Closes bugs 313893 and 137068.
10343 2005-09-20 James Livingston <jrl@ids.org.au>
10345 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
10346 crash if the entry has a NULL string in a property
10348 * shell/rb-removable-media-manager.c:
10349 (rb_removable_media_manager_load_media): fix some memory leaks
10351 (rb_removable_media_manager_mount_volume),
10352 (rb_removable_media_manager_eject_medium_cb),
10353 (rb_removable_media_manager_cmd_eject_medium): use
10354 gnome_vfs_volume_ref/unref instead of g_object_ref/unref
10356 * sources/rb-removable-media-source.c:
10357 (rb_removable_media_source_set_property),
10358 (rb_removable_media_source_get_property): use
10359 gnome_vfs_volume_ref/unref instead of g_object_ref/unref
10361 2005-09-18 James Livingston <jrl@ids.org.au>
10363 Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
10366 * data/glade/general-prefs.glade:
10367 * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
10368 (rb_shell_preferences_column_check_changed_cb),
10369 (rb_shell_preferences_sync): add checkbox to control visibility
10373 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
10375 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
10376 (rhythmdb_prop_get_type):
10377 * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
10378 was as "last played" is handled
10380 * sources/rb-library-source.c: (rb_library_source_constructor):
10381 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10382 Make the column show in the library and playlists
10384 * widgets/rb-entry-view.c: (rb_entry_view_append_column):
10385 * widgets/rb-entry-view.h: add the column
10387 * widgets/rb-query-creator-properties.c: allow automatic playlists to
10388 be sorted by the column
10390 2005-09-16 James Livingston <jrl@ids.org.au>
10392 * shell/rb-shell-player.c: (rb_shell_player_init),
10393 (rb_shell_player_do_previous_or_seek),
10394 (rb_shell_player_previous_button_cb),
10395 (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
10396 (rb_shell_player_playpause_button_cb): Make the previous button act
10397 the same as the menu item. Fix an inversion of the "previous track or
10400 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10402 (rb_shell_player_playpause): make --play-pause stop source that can't
10405 2005-09-15 James Livingston <jrl@ids.org.au>
10407 * configure.ac: increase totem-plparser requirements to 1.1.5
10409 * shell/rb-playlist-manager.c: (playlist_load_start_cb),
10410 (playlist_load_end_cb), (rb_playlist_manager_parse_file):
10411 * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
10412 use the newer playlist APIs to save the name of the playlist, and use
10413 the name of a loaded playlist.
10417 2005-09-15 James Livingston <jrl@ids.org.au>
10419 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10421 * shell/Makefile.am: stop some linker warnings
10423 * shell/main.c: (main): make --no-registration work with dbus
10425 2005-09-15 James Livingston <jrl@ids.org.au>
10427 * daapsharing/rb-daap-sharing.c: (create_share):
10428 * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
10429 reference sinking and counting issues that I caused.
10431 2005-09-15 James Livingston <jrl@ids.org.au>
10433 * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
10434 playing" icon in the "now playing" column header.
10436 2005-09-14 James Livingston <jrl@ids.org.au>
10438 * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
10439 daap shares, when sharing is turned off.
10441 2005-09-12 Bastien Nocera <hadess@hadess.net>
10443 * sources/rb-daap-source.c: (rb_daap_sources_init): Check
10444 the GConf value's default, especially for badly installed schema
10447 2005-09-12 James Livingston <jrl@ids.org.au>
10449 * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
10451 Patch from Paolo Borelli <pborelli@katamail.com>
10453 * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
10454 grip when maximised. Closes bug 316055.
10456 2005-09-11 James Livingston <jrl@ids.org.au>
10458 Patch from William Jon McCann <mccann@jhu.edu>
10460 * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE. Make a
10461 subclass of GtkStatusbar instead of GtkHBox.
10462 (rb_statusbar_construct): Don't set border width.
10463 (rb_statusbar_init): Use resize grip. Don't use
10465 (set_statusbar_tooltip, unset_statusbar_tooltip)
10466 (rb_statusbar_connect_action_group, rb_statusbar_set_property):
10467 Connect tooltips for actions.
10468 (rb_statusbar_sync_status): Push new message to statusbar.
10469 (rb_statusbar_set_progress): Don't use markup.
10470 (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
10471 flag here since it prevents actually showing or hiding.
10472 (rb_statusbar_sync_with_source): Push new message to statusbar.
10474 2005-09-11 Charles Schmidt <cschmidt2@emich.edu>
10476 * daapsharing/rb-daap-structure.c:
10477 (rb_daap_structure_parse_container_buffer: Forgot to remove comments
10478 around debugging definition.
10480 2005-09-11 Charles Schmidt <cschmidt2@emich.edu>
10482 * daapsharing/rb-daap-structure.c:
10483 (rb_daap_structure_parse_container_buffer): Read the patch from daap
10486 * daapsharing/rb-daap-mdns.c/h:
10487 (resolve_cb): Updated mDNS resolve callback to send service-name &
10488 name (read from Machine Name in the TXT data or equal to service-name
10491 * daapsharing/rb-daap-source.c:
10492 (rb_daap_source_class_init), (rb_daap_source_set_property),
10493 (rb_daap_source_get_property), (rb_daap_source_new),
10494 (find_source_by_service_name), (resolve_cb), (browse_cb),
10495 (stop_resolver), (start_browsing), (stop_browsing),
10496 (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
10497 and added 'host' and 'port' gobject properties. Updated to use new
10498 mDNS resolve callback sending service-name & name arguments.
10500 2005-09-11 Charles Schmidt <cschmidt2@emich.edu>
10502 * daapsharing/rb-daap-mdns.c:
10503 (howl_strerror): New function to report errors from Howl
10504 (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish),
10505 (get_sw_discovery), (get_avahi_client): Better error reporting from
10508 * sources/rb-daap-source.:
10509 (start_browsing), (stop_browsing): Fixed a bug where browsing would
10510 not get started or stopped in some situations.
10512 2005-09-12 James Livingston <jrl@ids.org.au>
10514 * shell/rb-removable-media-manager.c: add a missing include, that
10515 would stop compilation if ipod support wasn't turned on
10517 2005-09-11 James Livingston <jrl@ids.org.au>
10519 * daapsharing/rb-daap-dialog.c: (encode_base64),
10520 (rb_daap_password_dialog_new_run),
10521 (rb_daap_collision_dialog_new_run): fix a translatable string, so that
10522 it is no broken in to two pieces, and remove a use of a goto
10524 * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
10525 (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
10526 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
10527 (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
10528 (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
10529 memory leaks, and some code style things.
10531 * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
10532 (rb_daap_share_init), (rb_daap_share_set_property),
10533 (rb_daap_share_dispose), (rb_daap_share_new),
10534 (rb_daap_share_get_property): make the DB and the playlist manager
10535 gobject properties.
10537 (message_add_standard_headers),
10538 (message_set_from_rb_daap_structure), (server_info_cb),
10539 (content_codes_cb), (login_cb), (update_cb), (databases_cb),
10540 (server_cb), (add_db_entry), (db_entry_added_cb),
10541 (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
10542 (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
10543 style and use CONF_PREFIX in the gconf keys
10545 * daapsharing/rb-daap-sharing.c: (create_share),
10546 (enable_sharing_changed_cb), (share_name_changed_cb),
10547 (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
10548 * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10549 (rb_daap_src_instance_init), (rb_daap_src_dispose),
10550 (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
10551 (rb_daap_src_get_property), (rb_daap_src_getcaps),
10552 (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
10553 (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
10554 (rb_daap_src_get_time): Deal with gconf callbacks where the key
10555 hasn't actually changed, fix some memory leaks, code style and release
10556 gconf notifications when the object is destroyed.
10558 * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
10559 (rb_daap_source_class_init), (rb_daap_source_init),
10560 (rb_daap_source_dispose), (rb_daap_source_set_property),
10561 (rb_daap_source_get_property), (rb_daap_source_new),
10562 (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
10563 (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
10564 (rb_daap_sources_init), (rb_daap_sources_shutdown),
10565 (rb_daap_source_activate), (rb_daap_source_disconnect),
10566 (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
10567 (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
10568 release gconf notifications, handle gconf callbacks where the key
10569 hasn't changed, make "real name" and "password protected" gobject
10570 properties, fix some code style and fix a memory leak.
10572 2005-09-11 James Livingston <jrl@ids.org.au>
10574 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
10576 * shell/rb-playlist-manager.c:
10577 (rb_playlist_manager_save_playlists),
10578 (rb_playlist_manager_get_playlists): don't unref the sourcelist model
10579 when we aren't supposed to. (Closes bug 315886)
10581 2005-09-11 James Livingston <jrl@ids.org.au>
10583 * shell/rb-removable-media-manager.c:
10584 (rb_removable_media_manager_class_init),
10585 (rb_removable_media_manager_init),
10586 (rb_removable_media_manager_dispose),
10587 (rb_removable_media_manager_set_property),
10588 (rb_removable_media_manager_get_property),
10589 (rb_removable_media_manager_new),
10590 (rb_removable_media_manager_load_media),
10591 (rb_removable_media_manager_volume_mounted_cb),
10592 (rb_removable_media_manager_volume_unmounted_cb),
10593 (rb_removable_media_manager_mount_volume),
10594 (rb_removable_media_manager_unmount_volume),
10595 (rb_removable_media_manager_source_deleted_cb),
10596 (rb_removable_media_manager_append_media_source),
10597 (rb_removable_media_manager_set_uimanager),
10598 (rb_removable_media_manager_eject_medium_cb),
10599 (rb_removable_media_manager_cmd_eject_medium):
10600 * shell/rb-removable-media-manager.h:
10601 * sources/rb-removable-media-source.c:
10602 (rb_removable_media_source_class_init),
10603 (rb_removable_media_source_init),
10604 (rb_removable_media_source_dispose),
10605 (rb_removable_media_source_set_property),
10606 (rb_removable_media_source_get_property), (impl_get_pixbuf),
10607 (impl_delete_thyself):
10608 * sources/rb-removable-media-source.h: Add the four files that I
10609 somehow managed not to add to cvs in the last commit. Oops.
10611 2005-09-11 James Livingston <jrl@ids.org.au>
10613 * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
10614 * sources/Makefile.am: Add rb-removable-media-source.{c,h}
10616 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
10617 (rb_shell_medium_added_cb), (rb_shell_select_source): create the
10618 removable-media-manager on startup, and handle creation of sources.
10620 * sources/rb-ipod-source.h:
10621 * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
10622 (rb_ipod_source_init), (rb_ipod_source_constructor),
10623 (rb_ipod_source_dispose), (rb_ipod_source_new),
10624 (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
10625 the iPod source over to the removable media framework.
10627 * sources/rb-library-source.c: (paned_size_allocate_cb),
10628 (rb_library_source_get_paned_key): fix a potential bug is a
10629 library-derived source doesn't have a paned-key
10631 2005-09-11 Bastien Nocera <hadess@hadess.net>
10633 * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
10634 mp3 when we can't get the suffix of a file (Closes: #315941)
10636 2005-09-10 James Livingston <jrl@ids.org.au>
10638 * configure.ac: fix the mdns tests, so that it doesn't complain about
10639 not finding one, if daap support isn't being compiled in
10641 2005-09-10 Charles Schmidt <cschmidt2@emich.edu>
10643 * configure.ac: Updated to require avahi >= 0.5. Small fixes.
10645 * daapsharing/rb-daap-dialog.c:
10646 (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
10647 HIG compliancy & images.
10649 * daapsharing/rb-daap-mdns.c:
10650 (browse_cb), (resolve_cb): Better detection of local services.
10651 Requries avahi 0.5. Still doesn't work quite right with Howl, due to
10652 Howl's limitations. Fix the way collision handling is done under
10655 * daapsharing/rb-daap-share.c:
10656 (publish_cb): Better name collision handling (at least for Avahi).
10658 2005-09-10 James Livingston <jrl@ids.org.au>
10660 * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
10661 Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
10662 preferences more HIG compliant (Closes #315889)
10664 * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
10665 list of files to be translated
10667 2005-09-10 James Livingston <jrl@ids.org.au>
10669 * configure.ac: fix it so that --enable-daap=no works
10670 * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
10673 2005-09-10 James Livingston <jrl@ids.org.au>
10675 Patch from Christophe Fergeau <teuf@gnome.org>
10677 * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
10680 2005-09-09 Charles Schmidt <cschmidt2@emich.edu>
10681 * README.daap: Updating documentation
10683 2005-09-09 Charles Schmidt <cschmidt2@emich.edu>
10684 * AUTHORS: Added myself.
10686 * daapsharing/rb-daap-connection.c:
10687 (connection_login), (rb_connection_new): Reorganized password
10690 * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
10692 * shell/rb-shell.c:
10693 (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
10695 * sources/rb-daap-source.c:
10696 (rb_daap_source_activate): Better error handling when we are unable to
10699 2005-09-09 Charles Schmidt <cschmidt2@emich.edu>
10700 * README.daap: Fixed some terminology.
10702 * configure.ac: Better automatic detection of mDNS/DNS-SD library.
10703 New --with-mdns=auto|howl|avahi flag to specify.
10705 * daapsharing/rb-daap-dialog.c/h: New files to handle password &
10706 name collision dialogs.
10708 * daapsharing/rb-daap-connection.c:
10709 (connection_get_password), (build_message), (http_get)
10710 (connection_login): Ask for & use a password if the share demands it.
10712 * daapsharing/rb-daap-connection.h: Changed prototype of
10713 rb_daap_connection_new.
10715 * daapsharing/rb-daap-mdns.c:
10716 (resolve_cb): Better detection of your own music share so it doesn't
10717 appear in the sourcelist.
10719 * daapsharing/rb-daap-share.c:
10720 (rb_daap_share_start_publish): Attempt to start on port 3689, failing
10721 that start on any available port.
10723 * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
10725 * sources/rb-daap-source.c:
10726 (find_source_by_name), (rb_daap_source_new), (resolve_cb),
10727 (browse_cb): Handle passworded shares. Resolve the host immediately
10728 instead of when activated.
10729 (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
10730 (rb_daap_source_new): New GConf keys for UI state.
10731 (rb_daap_source_activate): Use RBPlaylistSource instead of
10732 RBDAAPPlaylistSource
10734 * sources/rb-daap-playlist-source.c/h: Removed
10736 * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
10737 if the playlist is local (i.e. not DAAP or iPod).
10739 * shell/rb-playlist-manager.c:
10740 (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
10741 wouldn't get saved if the last playlist hadn't changed. Only save
10744 2005-09-09 James Livingston <jrl@ids.org.au>
10746 * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
10747 iPod preferences pane, as it already uses the browser views as the
10750 2005-09-09 James Livingston <jrl@ids.org.au>
10752 * sources/rb-library-source.c: (rb_library_source_finalize),
10753 (rb_library_source_constructor): fix gconf monitoring of library
10755 * sources/rb-library-source.h: remove declaration of function that
10758 2005-09-08 Charles Schmidt <cschmidt2@emich.edu>
10760 * player/rb-player-gst.c:
10761 (rb_player_set_time): Fix seeking in daap streams.
10763 2005-09-08 Charles Schmidt <cschmidt2@emich.edu>
10765 * data/rhythmbox.schemas: Turn music share browsing on by default.
10767 2005-09-07 James Livingston <jrl@ids.org.au>
10769 * configure.ac: include daapsharing/Makefile in AC_OUTPUT
10771 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
10772 * player/rb-player-gst.c:
10773 (rb_player_get_time): Fix for extra << & == that accidentally made
10776 * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
10778 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
10779 * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
10780 it in last time. Sorry.
10782 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
10784 * player/rb-player-gst.c:
10785 (rb_player_get_time): Fix a small crash appearing when
10786 the uri isn't set in the player, but rb_player_get_time() is
10789 * configure.ac: Also check for libsoup 2.4, which is what ships with
10792 * po/POTFILES.in: Added music sharing files that have translatable
10795 * README.daap: New file explaining "How Music Sharing Works"
10797 2005-09-06 Bastien Nocera <hadess@hadess.net>
10799 * daapsharing/.cvsignore: added
10801 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
10803 * daapsharing/*: Music sharing library.
10805 * sources/rb-daap-source.c/h: Music share RBSource.
10806 * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
10808 * configure.ac: --enable-daap flag to turn on music sharing. Requires
10809 libsoup and a mutlicast DNS implementation (howl or avahi).
10811 * data/rhythmbox.schemas: New GConf keys for music sharing.
10813 * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
10814 source right click menu.
10816 * player/rb-player-gst.c: Changes to properly play & seek in remote
10819 * shell/rb-playlist-manager.c/h:
10820 (rb_playlist_manager_get_playlists): New function to get a GList * of
10822 (rb_playlist_manager_save_playlists): Don't save music share playlists
10823 and fixed a GObject reference leak.
10825 * shell/rb-shell.c/h:
10826 (rb_shell_append_source): No longer a local function. Now takes a
10827 parent RBSource * argument, NULL to append a toplevel source.
10828 (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
10829 source (useful for disconnecting from remote music share,
10831 (rb_shell_quit): Stop music sharing/browsing.
10832 (rb_shell_playlist_added_cb): Work with tree source structure.
10833 (rb_shell_get_property): "playlist-manager" property accessor.
10834 (rb_shell_class_init): New "playlist-manager" property.
10835 (rb_shell_construor): Append sources as toplevel sources. Initialize
10836 daap sharing/browsing.
10837 (rb_shell_select_source): Notify source of activation/deactivation.
10839 * shell/rb-shell-prefernces.c: Music sharing preferences.
10841 * sources/rb-source.c/h: New activate, deactivate and disconnect
10842 class functions. Activate & deactivate are notification style
10843 functions that will tell a source when it is selected/unselected.
10844 Disconnect can be hooked up to a UI object to disconnect the source.
10846 * sources/rb-sourcelist-model.c:
10847 * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
10848 (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
10849 append a toplevel source.
10851 2005-09-05 James Livingston <jrl@ids.org.au>
10853 * rhythmdb/rhythmdb-query-model.c:
10854 (rhythmdb_query_model_entry_changed_cb),
10855 (rhythmdb_query_model_do_reorder): Update the query model's totals if
10856 the duration of filesize of an entry changes. Emit the row-changed
10857 signals that I forgot to put back in, when I was doing query sorting.
10859 * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
10860 out "0 minutes" or "0 bytes".
10862 2005-09-04 James Livingston <jrl@ids.org.au>
10864 * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
10865 remove a leftover bit of the "internal-name" property of sources.
10867 2005-09-03 James Livingston <jrl@ids.org.au>
10869 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
10870 extraneous debug message
10871 * sources/rb-library-source.c: (rb_library_source_do_query): fix a
10872 crasher would affect any library-derived sources (which was also a
10875 2005-09-02 Colin Walters <walters@verbum.org>
10877 * configure.ac: Fix sytnax error.
10879 * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
10880 code to disable minimization icons - need to figure out
10881 why it doesn't work...
10883 2005-09-01 Dennis Cranston <dennis_cranston@yahoo.com>
10885 * data/glade/song-info-multiple.glade:
10886 * data/glade/song-info.glade:
10887 * widgets/rb-song-info.c: (rb_song_info_constructor):
10888 Add a mnemonic to the newly added "Automatically rate" label
10889 in the properties dialog and use a bold typeface like all the
10890 other labels in the dialog. (Closes bug 315089)
10892 2005-09-03 James Livingston <jrl@ids.org.au>
10894 * sources/rb-library-source.c: (rb_library_source_class_init),
10895 (rb_library_source_finalize), (rb_library_source_constructor),
10896 (rb_library_source_set_property), (rb_library_source_get_property),
10897 (impl_get_paned_key), (paned_size_allocate_cb),
10898 (rb_library_source_state_prefs_sync), (impl_show_popup),
10899 (rb_library_source_get_paned_key):
10900 * sources/rb-library-source.h: Allow sources derived from
10901 RBLibrarySource to use different gconf keys for sort order, browser
10902 visibility and browser pane position. Fix a crasher if a derived
10903 source overrides _get_pixbuf.
10905 2005-09-02 Colin Walters <walters@verbum.org>
10907 * shell/rb-shell.c (rb_shell_set_visibility): Move
10908 hint setting which seems to avoid races more.
10910 2005-09-03 James Livingston <jrl@ids.org.au>
10912 * shell/rb-shell.c: fix compilation with iPod support enabled
10914 2005-09-02 Colin Walters <walters@verbum.org>
10916 * shell/rb-shell.c (struct RBShellPrivate): Add
10917 idle_hide_mainwindow_id.
10918 (rb_shell_constructor): Move taskbar skipping hint into
10919 rb_shell_set_visibility.
10920 (idle_hide_mainwindow): New function.
10921 (rb_shell_set_visibility): Taskbar hinting moved here; add evil
10922 racy hack to avoid rb appearing in taskbar when minimized.
10924 2005-09-01 Colin Walters <walters@verbum.org>
10926 * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
10928 * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
10929 from gtkstatusicion.c.
10931 * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
10933 * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
10934 TrayShowWindow entry.
10935 (rb_tray_icon_class_init): Make GtkActionGroup readable only.
10936 (rb_tray_icon_constructor): Create action group here.
10937 (rb_tray_icon_finalize): Destroy action group.
10938 (rb_tray_icon_set_property): Don't take an action group.
10939 (rb_tray_icon_new): Ditto.
10940 (tray_popup_position_menu): Some mostly boilerplate code
10942 (rb_tray_icon_button_press_event_cb): Position menu.
10943 (rb_tray_icon_get_geom): New function used for the shell
10944 to set minimization hints.
10946 * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
10948 * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
10949 (struct RBShellPrivate): Change visible to iconified.
10950 (set_icon_geometry): New function from Søren Sandmann to
10951 tell Metacity where to draw the minimization animiation.
10952 (rb_shell_window_state_cb): Update iconified.
10953 (rb_shell_get_visibility): New function to say whether
10954 or not we're currently visible.
10955 (rb_shell_set_visibility): Update to minimize to
10956 tray or present as appropriate.
10957 (rb_shell_window_delete_cb): On window close, just
10958 minimize to tray if we're deleted.
10959 (rb_shell_set_window_title): Kill old notification code.
10960 (rb_shell_toggle_visibility): Nwe function.
10961 (rb_shell_cmd_toggle_visibility): Call it.
10962 (rb_shell_constructor): Skip the taskbar.
10963 (tray_destroy_cb): Better debugging.
10965 2005-09-01 Colin Walters <walters@verbum.org>
10967 * data/ui/rhythmbox-ui.xml: Add MusicClose.
10969 * configure.ac: Enable bonobo by default.
10971 2005-09-01 Colin Walters <walters@verbum.org>
10973 * configure.ac: Default to old art. Add macros subdir.
10975 * Makefile.am (SUBDIRS): Add macros.
10977 * macros/Makefile.am: New.
10979 2005-09-01 Colin Walters <walters@verbum.org>
10981 * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
10982 rb-shell-player.xml.
10984 * remote/dbus/rb-remote-dbus.h: Deleted.
10986 * remote/dbus/Makefile.am: Delete all the junk, just dist
10987 rb-print-playing.py and rb-set-rating.py.
10989 * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
10991 * data/Makefile.am (EXTRA_DIST): Add service_in_files.
10993 2005-09-02 James Livingston <jrl@ids.org.au>
10995 - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
10998 * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
10999 (rb_shell_constructor): Patches from Jonathan Matthew
11000 <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
11001 a crash when using "browse this artist".
11003 2005-08-31 Colin Walters <walters@verbum.org>
11005 * configure.ac: Add --with-old-art configure switch. Also
11006 add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
11007 but it doesn't work.
11009 * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
11010 Don't use eel_create_colorized_pixbuf for new art.
11011 * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
11013 * data/art-clearlooks: New artwork.
11015 2005-08-31 Colin Walters <walters@verbum.org>
11017 * shell/main.c (main): Fix Bastien's commit to continue to focus
11018 the window with GTK+ 2.8 at least.
11020 2005-08-31 Colin Walters <walters@verbum.org>
11022 * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
11025 * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
11027 2005-08-31 Bastien Nocera <hadess@hadess.net>
11029 * README: remove mentions of the xine-lib backend
11030 * shell/main.c: (main): make it compilable with gtk+ < 2.8
11032 2005-08-30 Colin Walters <walters@verbum.org>
11034 * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page):
11035 Make non-visible sources insensitive.
11037 2005-08-30 Colin Walters <walters@verbum.org>
11039 * shell/rb-shell.c: Don't use GConf for selected source; it's
11040 confusing to have the selected source change after startup,
11041 and since we don't save other things it's not worth saving this.
11043 * sources/rb-playlist-source.c:
11044 * sources/rb-library-source.c:
11045 * sources/rb-iradio-source.c:
11046 * sources/rb-ipod-source.c: Delete internal-name property usage.
11047 * sources/rb-source.c: Delete internal-name property.
11049 * data/rhythmbox.schemas: Delete selected_source.
11051 2005-08-30 Colin Walters <walters@verbum.org>
11053 * sources/rb-sourcelist.c: Make playing source bold instead of
11054 displaying a pixbuf; it's much less ugly.
11056 2005-08-30 Colin Walters <walters@verbum.org>
11058 * sources/rb-source.c:
11059 * sources/rb-source.h: New virtual method try_playlist.
11061 * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
11063 (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
11064 (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
11065 (handle_playlist_entry_cb): Don't check for iradio uris, we don't
11067 (stations_view_drag_data_received_cb): Don't check for iradio uris;
11068 in theory we should though...
11070 * shell/rb-shell.c (known_sources): Delete; we just hardcode the
11071 list in rb_shell_construct now.
11072 (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
11074 (rb_shell_constructor): Create library, iradio, ipod here.
11075 (rb_shell_source_deleted_cb): Use source directly instead of
11076 indirecting through type.
11077 (rb_shell_sync_selected_source): Ditto.
11078 (rb_shell_jump_to_entry_with_source): Just use the source reutrned
11079 from the type instead of special-casing.
11080 (rb_shell_guess_type_for_uri)
11082 (handle_one_uri_with_possible_metadata): New functions.
11083 (rb_shell_load_uri): Refactor to allow loading playlists again,
11084 also use other URI infrastructure.
11086 * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
11087 (rb_shell_player_error): Always set entry error on error, instead
11088 of depending on EOF behavior.
11090 * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
11091 to just invoke rb_shell_add_uri.
11092 (rb_playlist_manager_parse_file): Return error instead of tossing
11093 up dialog box directly.
11094 (load_playlist_response_cb): Display error here.
11095 (add_uri_to_playlist): Delete.
11096 (handle_playlist_entry_into_playlist_cb): Renamed to
11097 handle_playlist_entry_cb.
11099 * shell/rb-playlist-manager.h: Add error, update prototype.
11101 * lib/rb-file-helpers.c:
11102 * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
11104 2005-08-29 Colin Walters <walters@verbum.org>
11106 * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
11107 if entry already exists. Use rhythmdb_entry_set_uninserted.
11109 * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
11110 needlessly duping string, and use rhythmdb_entry_set_uninserted.
11111 (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
11113 * shell/rb-shell.h (enum RBShellError): Add some more errors.
11114 Prototype rb_shell_set_song_property.
11116 * shell/rb-shell.xml: Export setSongProperty.
11118 * shell/rb-shell.c (rb_shell_set_song_property): New function.
11119 (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
11120 rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
11122 * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
11123 rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
11124 want to notify of the change.
11125 (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
11127 * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
11128 logic error; idle functions would be enqueued for each set.
11129 (rhythmdb_entry_set): Fix assertion logic error.
11131 * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
11132 Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
11133 Return if the entry already exists.
11135 2005-08-29 Colin Walters <walters@verbum.org>
11137 * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
11138 "inserted" member which we use to keep track of
11139 whether or not an entry is in the DB. Prototype
11140 rhythmdb_entry_set_uninserted.
11142 * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
11144 (rhythmdb_entry_insert): Assert entry is not already inserted.
11145 (rhythmdb_process_metadata_load): Update to call _set_uninserted
11146 just after creating entry.
11147 (rhythmdb_entry_set): Document, and fail on uninserted entries.
11148 (rhythmdb_entry_set_nonotify): Ditto.
11149 (rhythmdb_entry_set_uninserted): Document, and fail on inserted
11151 (rhythmdb_entry_set_internal): Change notify flag to
11152 notify_if_inserted. Also move notification after assertions.
11154 Update all existing callers of rhythmdb_entry_set_internal
11155 to give TRUE for notify_if_inserted; this should be what
11156 we want but may be an efficiency hit.
11158 2005-08-30 Raphael Slinckx <rslinckx@cvs.gnome.org>
11160 * shell/rb-shell-player.c: (rb_shell_player_init),
11161 (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
11162 (rb_shell_player_set_playing_source_internal),
11163 (rb_shell_player_sync_with_selected_source): Notify the player when an
11164 entry has updated the title, album or artist field, and resync the big
11167 * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11168 * sources/rb-library-source.c: (rb_library_source_class_init),
11169 (impl_get_config_widget):
11170 * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
11171 * sources/rb-source.c:
11172 * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
11173 get_album functions in rb-source and adapted other sources accordingly.
11175 2005-08-29 Colin Walters <walters@verbum.org>
11177 * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
11178 signal_change member.
11179 (threadsafe_entry_set): New function.
11180 (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
11181 (rhythmdb_entry_set_nonotify): New function; just call
11182 threadsafe_entry_set with FALSE.
11183 (rhythmdb_entry_set_internal): Take a notify flag; if true
11184 add the change to our pending set.
11186 Also update all internal callers of rhythmdb_entry_set_internal
11187 to pass FALSE. Some of these may be bugs however and need to
11190 * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
11191 rhythmdb_entry_set, and rename rhythmdb_entry_set to
11192 rhythmdb_entry_set_nonotify.
11194 * rhythmdb/rhythmdb.h (enum RhythmDBProp)
11195 (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
11197 * widgets/rb-song-info.c: Kill off vestiges of auto rating.
11199 * widgets/rb-entry-view.c (rb_entry_view_rated_cb):
11200 * sources/rb-source.c (rb_source_update_play_statistics):
11201 * sources/rb-iradio-source.c (rb_iradio_source_add_station):
11202 * sources/rb-ipod-source.c (entry_set_string_prop)
11203 (load_ipod_db_idle_cb):
11204 * shell/rb-shell.c (rb_shell_set_rating_impl):
11205 * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error)
11206 (info_available_cb):
11207 * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb)
11208 (rb_station_properties_dialog_sync_entries):
11209 * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
11211 Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
11212 and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
11214 2005-08-29 Colin Walters <walters@verbum.org>
11216 * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
11218 * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
11221 * widgets/rb-header.c (sanitize_string): New function, extracted
11222 from old info_url. Be sure to always strip the string.
11223 (info_url): Rewrite to take artist/album, and generate a sane
11224 URL for them from last.fm, which is better than allmusic.com in
11225 that they support Rhythmbox, and have a *SANE* URL scheme.
11226 (artist_info_url, album_info_url): Delete.
11227 (rb_header_sync): Use info_url.
11229 2005-08-29 James Livingston <jrl@ids.org.au>
11231 * sources/rb-source.c: (rb_source_search): Check to ensure that this
11232 is implemented before calling it. Many sources don't implement the
11235 2005-08-28 Dennis Cranston <dennis_cranston@yahoo.com>
11237 * data/glade/create-playlist.glade: Cleanup the layout,
11238 and add a few more mnemonics.
11239 * shell/rb-playlist-manager.c:
11240 (rb_playlist_manager_cmd_load_playlist),
11241 (rb_playlist_manager_cmd_save_playlist): HIG fix, use title
11242 capitalization for window titles.
11243 * widgets/rb-query-creator-properties.c: Add mnemonics
11244 to checkbutton labels.
11245 * widgets/rb-query-creator.c: (rb_query_creator_constructor),
11246 (limit_toggled_cb): Toggle the sortLabel sensitivity.
11248 2005-08-28 Colin Walters <walters@verbum.org>
11250 * data/rhythmbox.schemas: Delete search_text for library
11251 and iradio; this isn't a persistent value anymore.
11254 * sources/rb-source.h:
11255 * sources/rb-source.c: Delete impl_can_search.
11257 * sources/rb-iradio-source.c: Delete search_text usage.
11258 * sources/rb-library-source.c: Ditto.
11260 * shell/rb-source-header.c: Don't use GConf for search key. Reset
11261 search when source is set, and just do rb_source_search in
11262 rb_source_header_search_cb.
11264 * shell/rb-shell.c (rb_shell_append_source): Don't
11267 * shell/Makefile.am: Don't dist dashboard.c.
11269 2005-08-28 Colin Walters <walters@verbum.org>
11271 * shell/main.c: Remove include of dead file rb-remote-dbus.h.
11273 2005-08-28 Colin Walters <walters@verbum.org>
11275 * data/org.gnome.Rhythmbox.service.in: New.
11277 * data/Makefile.am: Install service file.
11279 * configure.ac: Define DBUS_SERVICES_DIR.
11281 * autogen.sh: Set ACLOCAL_FLAGS.
11283 * macros/acinclude.m4: New.
11285 2005-08-28 Colin Walters <walters@verbum.org>
11287 Initial patch from Jonathan Matthew; closes 313684.
11289 * rhythmdb/rhythmdb-tree.c:
11290 (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
11291 (save_entry): Return on error.
11292 (rhythmdb_tree_save): Handle error when saving the
11293 db; additionally, handle errors from fclose and unlink,
11294 and print error too.
11296 2005-08-28 Colin Walters <walters@verbum.org>
11298 * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
11301 2005-08-28 Colin Walters <walters@verbum.org>
11303 * configure.ac: Change iPod support to --with-ipod;
11304 automatically enable it if we have HAL. Try to
11305 support both HAL 0.5 and HAL 0.2. Break out
11306 totem-plparser into its own check so later we
11307 can do version tests there too.
11308 Kill dashboard support.
11310 * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
11311 to support HAL > 0.5, but preserve the old code for HAL < 0.5
11314 * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
11315 (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
11317 * sources/Makefile.am: Also handle
11318 TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
11320 * shell/dashboard.c: Delete; someone should just write a little
11321 python shim which lists on the D-BUS interface and writes the
11322 stuff to Dashboard. Even better Dashboard should be ported
11323 to D-BUS and do the listening itself, perhaps on an abstract
11324 "org.gnome.MusicPlayer" interface or something.
11326 * shell/rb-shell.c: Kill dashboard support.
11328 2005-08-28 Colin Walters <walters@verbum.org>
11330 * remote/dbus/rb-print-playing.py: New file.
11332 2005-08-28 Colin Walters <walters@verbum.org>
11334 * rhythmdb/rhythmdb.c (rhythmdb_entry_get):
11335 * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
11337 * shell/rb-shell-player.h:
11338 * shell/rb-shell-player.c: Add playing-uri-changed signal.
11339 * shell/rb-shell-player.xml: Export it.
11341 * shell/rb-shell.c (rb_shell_get_song_properties): New function.
11342 (rb_shell_error_quark): New.
11344 * shell/rb-shell.h: Prototype. Also add RBShellError.
11345 * shell/rb-shell.xml: Export rb_shell_get_song_properties.
11347 2005-08-28 Colin Walters <walters@verbum.org>
11349 * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
11350 (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
11352 (rb_remote_bonobo_preinit): Lock setting moved here.
11353 (rb_remote_bonobo_init): From here.
11355 * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
11356 Also invoke handle_cmdline in the right place.
11357 (handle_cmdline): Remove some unused vars. Cast bonobo_load_uri to
11360 2005-08-28 James Livingston <jrl@ids.org.au>
11362 * NEWS: keep the NEWS file up to date, so we don't have to do it all
11363 when 0.9.1 comes around.
11365 2005-08-28 James Livingston <jrl@ids.org.au>
11367 * iradio/rb-new-station-dialog.c:
11368 (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
11371 2005-08-28 James Livingston <jrl@ids.org.au>
11373 Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
11375 * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
11376 * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
11377 is a song is longer than 60 minutes. Closes bug 313311.
11379 2005-08-27 James Livingston <jrl@ids.org.au>
11381 * data/glade/create-playlist.glade:
11382 * widgets/rb-query-creator.c: (rb_query_creator_load_query),
11383 (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
11384 "minutes" as an option in the playlist limit menu.
11386 * rhythmdb/rhythmdb-query-model.c:
11387 (rhythmdb_query_model_class_init),
11388 (rhythmdb_query_model_set_property),
11389 (rhythmdb_query_model_get_property),
11390 (rhythmdb_query_model_update_limited_entries): Allow query models to
11393 * shell/rb-playlist-manager.c:
11394 (rb_playlist_manager_set_automatic_playlist),
11395 (rb_playlist_manager_cmd_edit_automatic_playlist):
11396 * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
11397 (rb_playlist_source_get_query), (impl_receive_drag),
11398 (rb_playlist_source_new_from_xml),
11399 (rb_playlist_source_save_to_xml),
11400 (rb_playlist_source_songs_sort_order_changed_cb),
11401 (rb_playlist_source_do_query):
11402 * sources/rb-playlist-source.h:
11403 * widgets/rb-query-creator.h: Allow playlists to be limited by time
11405 2005-08-27 James Livingston <jrl@ids.org.au>
11407 Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
11410 * shell/Makefile.am: work correctly if dbus-binding-tool is in a
11411 non-standard location. Closes bug 314640.
11413 2005-08-26 Colin Walters <walters@verbum.org>
11415 Patch from Olivier Blin <oblin@mandriva.com>
11417 * widgets/eggnotificationbubble.c (draw_bubble):
11418 Handle extreme-left case as well.
11420 2005-08-26 Colin Walters <walters@verbum.org>
11422 * shell/rb-shell.c (idle_save_state): Don't do this.
11423 (rb_shell_construct): Remove idle calls to idle_save_state.
11424 We should save the playlists automatically when they're
11426 (rb_shell_load_uri): Don't try to re-stat entry if it already
11429 * shell/rb-shell-player.c: Keep track of entry we are attempting
11431 (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
11432 Don't double-free error.
11433 (rb_shell_player_play_entry): Signal errors.
11434 (rb_shell_player_entry_activated_cb): Ditto.
11435 (rb_shell_player_property_row_activated_cb): Ditto.
11436 (rb_shell_player_set_playing_source_internal): Unset attempted
11438 (rb_shell_player_error): Refactor to be usable both sync and
11439 async. Handle case where displayed entry differs from entry.
11440 (error_cb): Move GDK locking here.
11442 * shell/main.c (main): Drop most commandline arguments for D-BUS;
11443 people can just use dbus-send or python. We only support focusing
11445 (load_uri_args): New function, extracted from handle_cmdline.
11446 (dbus_load_uri, bonobo_load_uri): New functions.
11448 * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
11451 * remote/Makefile.am: Don't compile dbus subdir, it's not used.
11452 * remote/dbus/rb-remote-dbus.c: Deleted.
11454 * player/rb-player-gst.c: Clear any pending idle handlers when we
11455 close the player. Signal errors generated during open/play etc
11456 as synchronous errors.
11458 * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
11460 2005-08-26 Colin Walters <walters@verbum.org>
11462 * shell/rb-shell.c (rb_shell_present): Try harder.
11464 2005-08-26 Colin Walters <walters@verbum.org>
11466 * shell/rb-shell.c (rb_shell_present): Try to handle
11467 GTK_MINOR_VERSION < 8.
11469 2005-08-26 James Livingston <jrl@ids.org.au>
11471 * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
11472 <pbrobinson@gmail.com>
11474 2005-08-26 Colin Walters <walters@verbum.org>
11476 * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
11478 2005-08-25 Colin Walters <walters@verbum.org>
11480 * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
11482 (rb_shell_player_do_next_with_rating): Move back into
11483 rb_shell_player_do_next.
11484 (rb_shell_player_entry_activated_cb): Remove call to
11485 rb_shell_player_auto_adjust_rating.
11486 (do_next_idle): Just call rb_shell_player_do_next.
11488 * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
11490 2005-08-25 Colin Walters <walters@verbum.org>
11492 * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
11493 before gtk_window_present_with_time.
11495 2005-08-25 Colin Walters <walters@verbum.org>
11497 * configure.ac: Require D-BUS 0.35. Bonobo is disabled by
11500 * shell/rb-shell.c (rb_shell_constructor): Adapted from
11501 rb_shell_construct. This is so we only have to do g_object_new.
11502 (rb_shell_get_player): New function.
11503 (rb_shell_get_player_path): Ditto.
11504 (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
11506 * shell/rb-shell.h: Prototype them.
11508 * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
11510 (reemit_playing_signal): New function.
11511 (rb_shell_player_open_playlist_location): Use return values from
11512 rb_player_open, rb_player_close, etc. instead of checking "error".
11513 Return a gboolean on failure.
11514 (rb_shell_player_open_entry): Just open entry location, don't
11516 (rb_shell_player_play): Handle retval from rb_player_play. Return
11518 (do_next_idle): Move logic for handling of end of playlist here.
11519 (rb_shell_player_set_playing_entry): Take a GError, return a
11520 gboolean. Update to use gboolean return values.
11521 (rb_shell_player_do_previous): Delete lots of crazy duplicate
11522 logic. Signal an error on end of playlist. Also signal error if
11523 we're not playing. Move heuristic for replaying the song into
11524 rb_shell_player_cmd_previous.
11525 (rb_shell_player_do_next_with_rating): Signal error on end of
11527 (rb_shell_player_do_next): Return errors.
11528 (rb_shell_player_cmd_previous): Heuristic for restarting song
11529 moved here; the idea is you generally only want that from the GUI.
11530 (rb_shell_player_cmd_play): Handle error.
11531 (rb_shell_player_playpause): Signal errors.
11532 (filter_mmkeys): Use rb_shell_player_cmd_previous and
11533 rb_shell_player_cmd_next in favor of the internal _do functions.
11535 * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
11536 errors. Update prototypes for above changes.
11538 * shell/main.c: More tightly integrate D-BUS; register various
11539 major singleton objects here. Fix handle_cmdline so we only
11540 process extra arguments, not every argument.
11542 * shell/Makefile.am: Generate D-BUS glue headers.
11544 * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
11545 into shell/main.c. Now this file just acts as a client library.
11546 Not heavily tested.
11548 * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
11550 (rb_remote_bonobo_init): Move long CORBA rant here along with
11551 setting of lock functions.
11553 * player/rb-player-gst.c (rb_player_construct)
11554 (rb_player_play, rb_player_open, rb_player_close): Return gboolean
11557 * player/rb-player.h: Update prototypes.
11559 * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
11560 rb-remote-bonobo.c.
11561 (rb_threads_init): Don't set gdk lock functions here.
11563 2005-08-25 James Livingston <jrl@ids.org.au>
11565 Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
11567 * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
11568 * lib/rb-tree-dnd.h:
11569 * rhythmdb/rhythmdb-property-model.c:
11570 (rhythmdb_property_model_class_init),
11571 (rhythmdb_property_model_drag_source_init),
11572 (rhythmdb_property_model_iter_parent),
11573 (rhythmdb_property_model_row_draggable),
11574 (rhythmdb_property_model_drag_data_delete), (query_model_cb),
11575 (rhythmdb_property_model_drag_data_get),
11576 (rhythmdb_property_model_enable_drag):
11577 * rhythmdb/rhythmdb-property-model.h:
11578 * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
11579 (rb_playlist_manager_set_property), (append_new_playlist_source),
11580 (rb_playlist_manager_save_playlists):
11581 * shell/rb-shell.c: (rb_shell_construct),
11582 (sourcelist_drag_received_cb):
11583 * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11584 * sources/rb-playlist-source.c: (impl_receive_drag):
11585 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
11586 (rb_sourcelist_model_drag_dest_init),
11587 (rb_sourcelist_model_set_dnd_targets),
11588 (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
11589 (rb_sourcelist_model_row_drop_position),
11590 (rb_sourcelist_model_get_drag_target),
11591 (rb_sourcelist_model_drag_data_get):
11592 * sources/rb-sourcelist-model.h:
11593 * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
11594 (rb_sourcelist_init), (rb_sourcelist_get_property),
11595 (rb_sourcelist_selection_changed_cb):
11596 * sources/rb-sourcelist.h:
11597 * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
11598 improve drag-n-drop support. Allow dragging of item from property
11599 views to the source list, to create new automatic playlists. Allow
11600 playlist re-ordering. Fix dragging from Rhythmbox to other
11601 applications. (Closes bug 147337)
11603 2005-08-24 Colin Walters <walters@verbum.org>
11605 Patch from Olivier Blin <oblin@mandriva.com>
11607 * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
11608 correctly in the case where the window is next to monitor edge.
11610 2005-08-24 James Livingston <jrl@ids.org.au>
11612 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
11613 (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
11614 a gobject property to get the query model that backs the playlist.
11616 2005-08-24 James Livingston <jrl@ids.org.au>
11618 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
11619 (handle_playlist_entry_into_playlist_cb),
11620 (rb_playlist_manager_playlist_entries_changed): Disable the "create
11621 audio cd" menu item when a non-playlist source is selected, or the
11622 playlist is empty. (Closes Bug 313253)
11624 2005-08-24 James Livingston <jrl@ids.org.au>
11626 * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
11627 Fix the playlist length checkso it doesn't report 0 for automatic
11628 playlists. This was stopping automati playlists being burnt to cd.
11630 2005-08-24 James Livingston <jrl@ids.org.au>
11633 * sources/rb-playlist-source-recorder.c: (burn_cd):
11634 * sources/rb-playlist-source.c:
11635 (rb_playlist_source_songs_sort_order_changed_cb):
11636 * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
11637 more warnings that occur when compiling RPMs on Fedora.
11639 2005-08-24 James Livingston <jrl@ids.org.au>
11641 * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
11642 was stopping some distros gcc version compiling.
11644 2005-08-24 James Livingston <jrl@ids.org.au>
11647 * data/glade/create-playlist.glade:
11648 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
11649 * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
11650 (rhythmdb_query_free), (rhythmdb_query_serialize),
11651 (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
11652 * rhythmdb/rhythmdb.h:
11653 * shell/rb-playlist-manager.c:
11654 (rb_playlist_manager_set_automatic_playlist),
11655 (rb_playlist_manager_cmd_edit_automatic_playlist):
11656 * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
11657 (rb_playlist_source_set_query), (rb_playlist_source_get_query),
11658 (impl_receive_drag), (rb_playlist_source_new_from_xml),
11659 (rb_playlist_source_save_to_xml),
11660 (rb_playlist_source_songs_sort_order_changed_cb),
11661 (rb_playlist_source_do_query):
11662 * sources/rb-playlist-source.h:
11663 * widgets/Makefile.am:
11664 * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
11665 (rb_entry_view_set_sorting_order):
11666 * widgets/rb-query-creator-private.h:
11667 * widgets/rb-query-creator-properties.c:
11668 (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
11669 (stringCriteriaGetWidgetData),
11670 (escapedStringCriteriaSetWidgetData),
11671 (escapedStringCriteriaGetWidgetData), (set_rating_score),
11672 (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
11673 (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
11674 (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
11675 (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
11676 (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
11677 (relativeTimeCriteriaCreateWidget),
11678 (relativeTimeCriteriaSetWidgetData),
11679 (relativeTimeCriteriaGetWidgetData):
11680 * widgets/rb-query-creator.c: (rb_query_creator_get_type),
11681 (rb_query_creator_class_init), (rb_query_creator_constructor),
11682 (rb_query_creator_dispose), (rb_query_creator_set_property),
11683 (rb_query_creator_get_property), (rb_query_creator_load_query),
11684 (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
11685 (get_entry_for_property), (rb_query_creator_get_query),
11686 (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
11687 (limit_toggled_cb), (lookup_row_by_widget),
11688 (remove_button_click_cb), (append_row),
11689 (get_property_index_from_proptype), (select_criteria_from_value),
11690 (property_option_menu_changed), (create_property_option_menu),
11691 (create_criteria_option_menu), (sort_option_menu_changed),
11692 (setup_sort_option_menu):
11693 * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
11694 playlists. The two most notable improvements are 1) adding more
11695 properties to the query creator, making it much easier to add more in
11696 the future, and 2) allow playlists to be sorted, from the query editor
11697 if they gave limits, and by clicking on column headers if they don't.
11699 Files added: widgets/rb-query-creator-private.h,
11700 sources/rb-query-creator-properties.c
11702 2005-08-21 James Livingston <jrl@ids.org.au>
11704 * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
11705 error=NULL. This stops some crashes.
11707 2005-08-19 Colin Walters <walters@verbum.org>
11709 Patch from Olivier Blin <oblin@mandriva.com>
11711 * widgets/eggnotificationbubble.c (force_window): Support top
11713 * widgets/eggnotificationbubble.h: Remove
11714 egg_notification_bubble_force_window from header.
11716 2005-08-18 James Livingston <jrl@ids.org.au>
11718 * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
11719 with the changes since then.
11721 2005-08-17 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
11723 * shell/rb-shell-player.c: (rb_shell_player_init),
11724 (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
11725 (rb_shell_player_volume_widget_changed_cb):
11726 * sources/rb-iradio-source.c:
11727 * sources/rb-library-source.c:
11728 * sources/rb-playlist-source.c:
11729 * widgets/Makefile.am:
11730 * widgets/bacon-volume.c: (bacon_volume_button_get_type),
11731 (bacon_volume_button_class_init), (bacon_volume_button_init),
11732 (bacon_volume_button_dispose), (bacon_volume_button_new),
11733 (bacon_volume_button_get_value), (bacon_volume_button_set_value),
11734 (bacon_volume_button_scroll), (bacon_volume_button_press),
11735 (cb_button_timeout), (cb_button_press), (cb_button_release),
11736 (bacon_volume_release_grab), (cb_dock_press),
11737 (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
11738 (bacon_volume_scale_new), (bacon_volume_scale_press),
11739 (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
11740 * widgets/bacon-volume.h:
11741 * widgets/rb-volume.c:
11742 * widgets/rb-volume.h:
11743 Use BaconVolumeButton (#300867).
11745 2005-08-17 James Livingston <jrl@ids.org.au>
11747 * rhythmdb/rhythmdb.c: (set_props_from_metadata),
11748 (rhythmdb_process_metadata_load): don't reset the First Seen time
11749 whenever we recheck the metadata.
11751 2005-08-17 James Livingston <jrl@ids.org.au>
11753 * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
11754 temporary workaround to stop crashes when trying to burn an empty
11755 playlist. Doesn't disable the menu item which is the better solution
11758 2005-08-15 James Livingston <jrl@ids.org.au>
11760 * shell/rb-source-header.c: (rb_source_header_init),
11761 (rb_source_header_sync_control_state),
11762 (rb_source_header_search_activate_cb):
11763 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
11764 (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
11765 * widgets/rb-search-entry.c: (rb_search_entry_class_init),
11766 (rb_search_entry_init), (rb_search_entry_searching),
11767 (rb_search_entry_activate_cb):
11768 * widgets/rb-search-entry.h: Move focus to the entry view when user
11769 presses enter in the search box. Patch from Paolo Borelli
11770 <pborelli@katamail.com> (Closes bug 128110)
11772 2005-08-15 James Livingston <jrl@ids.org.au>
11774 * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
11775 (rb_playlist_manager_new_playlist):
11776 * shell/rb-playlist-manager.h:
11777 * shell/rb-shell.c: (rb_shell_construct),
11778 (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
11779 the source list to be shown when a new playlist is created. (Closes
11782 2005-08-15 James Livingston <jrl@ids.org.au>
11784 * widgets/rb-header.c: (rb_header_init),
11785 (rb_header_set_show_timeline): disable the seek slider, rather than
11786 hiding it, which more closely follows the HIG. (Closes bug 139102)
11788 2005-08-13 Colin Walters <walters@verbum.org>
11790 * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
11791 rb_shell_hidden_notify.
11792 (rb_shell_hidden_notify): Notify if the shell is hidden.
11793 (rb_shell_set_visibility_impl): Debug goo.
11795 * shell/rb-shell.h: Export rb_shell_hidden_notify.
11797 * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
11798 when the user clicks on notification.
11800 * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
11801 CD burn is complete.
11802 (rb_playlist_source_recorder_finalize): Unref shell.
11803 (rb_playlist_source_recorder_new): Take shell.
11805 * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
11806 Pass shell to RBPlaylistSourceRecorder.
11808 2005-08-13 Colin Walters <walters@verbum.org>
11811 * lib/rb-thread.h: Not used yet, but put in CVS in case we get
11814 2005-08-13 Colin Walters <walters@verbum.org>
11816 * widgets/eggnotificationbubble.h:
11817 * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
11818 * widgets/eggtrayicon.c:
11819 * widgets/eggtrayicon.h: Add notification API.
11820 * shell/rb-tray-icon.c:
11821 * shell/rb-tray-icon.h: Add notification API.
11822 * shell/rb-shell.c: Notify on song change.
11824 2005-08-12 Raphael Slinckx <rslinckx@cvs.gnome.org>
11826 * sources/rb-ipod-source.c: (rb_ipod_unplugged):
11827 Correct an inversion of two lines causing NULL to be unreffed
11829 ============ Version 0.9.0
11831 2005-08-10 Bastien Nocera <hadess@hadess.net>
11833 * configure.ac: 0.9.0, whee!
11834 * NEWS: badly updated
11835 * remote/bonobo/Makefile.am:
11836 * remote/bonobo/rb-remote-bonobo.h:
11837 * shell/Makefile.am:
11838 * shell/main.c: make distcheck fixes