1 2006-10-30 James Livingston <doclivingston@gmail.com>
3 patch by: Brian McKenna <puffnfresh@gmail.com>
5 * plugins/pythonconsole/pythonconsole.py: allow the python colsole to
6 handle blocks. Fixes #366696.
8 2006-10-30 James Livingston <doclivingston@gmail.com>
10 * rhythmdb/rhythmdb.c: make the DB busy when processing files. From #349148
12 2006-10-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
14 * shell/rb-shell-player.c: (rb_shell_player_class_init),
15 (rb_shell_player_sync_with_source),
16 (rb_shell_player_get_playing_time_string), (tick_cb):
17 * widgets/rb-header.c: (rb_header_sync_time),
18 (slider_moved_callback), (rb_header_update_elapsed),
19 (rb_header_elapsed_changed_cb):
20 Revert dbus interface breakage introduced in the fix for #365908.
22 2006-10-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
24 patch by: Luca Ferretti <elle.uca@libero.it>
26 * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
27 Remove the access keys from the podcast-specific column headers.
30 2006-10-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
32 patch by: James Livingston <doclivingston@gmail.com>
34 * sources/rb-browser-source.c: (rb_browser_source_constructor):
35 Only register the search actions once. From #346801.
37 2006-10-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
39 * shell/rb-shell-player.c: (rb_shell_player_error):
40 When handling an error, try playing the next stream URL if we have
41 one, rather than stopping playback. From #358140.
43 2006-10-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
45 * shell/rb-shell.c: (handle_playlist_entry_cb):
46 Don't crash if we can't guess a source for a URI in the playlist.
49 2006-10-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
51 * shell/rb-shell-player.c: (rb_shell_player_class_init),
52 (rb_shell_player_sync_with_source),
53 (rb_shell_player_get_playing_time_string), (rb_shell_player_seek),
55 * widgets/rb-header.c: (rb_header_sync_time),
56 (rb_header_elapsed_changed_cb):
57 Treat elapsed time as signed, since rb_player_get_time returns a
58 signed value. When actually using the value, mostly treat negative
59 values as 0. Fixes #365908.
61 2006-10-27 James Livingston <doclivingston@gmail.com>
63 patch by: Alex Lancaster <alexl@users.sourceforge.net>
65 * metadata/sj-metadata-musicbrainz.c: (lookup_cd): handle MusicBrainz
66 returning 0 for the year/month/day. Fixes #364837.
68 2006-10-27 James Livingston <doclivingston@gmail.com>
70 patch by: Luca Ferretti <elle.uca@libero.it>
72 * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
73 access keys from the entry view columns headers - they cause
74 keybindings conflicts, headaches for translators and the HIG says
75 they are bad. Fixes #360640.
77 2006-10-27 James Livingston <doclivingston@gmail.com>
79 patch by: Luca Ferretti <elle.uca@libero.it>
81 * widgets/rb-entry-view.c: (rb_entry_view_append_column): remove the
82 access keys from the entry view columns headers - they cause
83 keybindings conflicts, headaches for translators and the HIG says
84 they are bad. Fixes #360640.
86 2006-10-27 James Livingston <doclivingston@gmail.com>
88 * rhythmdb/rhythmdb-private.h:
89 * rhythmdb/rhythmdb.c: (rhythmdb_class_init): fix some glib 2.8 build
92 2006-10-27 James Livingston <doclivingston@gmail.com>
94 * plugins/artdisplay/Makefile.am:
95 * plugins/audioscrobbler/Makefile.am:
96 * plugins/iradio/Makefile.am: fix make clean
98 2006-10-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
100 * rhythmdb/rhythmdb-query.c: (rhythmdb_read_encoded_property):
101 Fall back to strtod() if g_ascii_strtod() doesn't work.
103 * rhythmdb/rhythmdb-tree.c: (save_entry_double):
104 Write floating point values using g_ascii_dtostr() to avoid
105 problems with locale-specific representations. From #353205.
107 2006-10-25 James Livingston <doclivingston@gmail.com>
109 * plugins/artdisplay/Makefile.am:
110 * plugins/audioscrobbler/Makefile.am:
111 * plugins/iradio/Makefile.am: fix "make distcheck"
113 2006-10-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
115 patch by: Brian Cameron <brian.cameron@sun.com>
117 * plugins/audiocd/Makefile.am:
118 Link audiocd plugin with libnautilus-burn as required to get it to work
119 on Solaris. Fixes #363288.
121 2006-10-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
123 patch by: Gabor Kelemen <kelemeng@gnome.hu>
125 * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
126 Clarify that we don't submit actual songs to last.fm, just information
127 on what you're listening to. Fixes #364014.
129 2006-10-24 Bastien Nocera <hadess@hadess.net>
131 * widgets/bacon-volume.c: (bacon_volume_button_get_type),
132 (bacon_volume_button_class_init), (bacon_volume_button_new),
133 (bacon_volume_key_release), (cb_button_timeout), (cb_button_press),
134 (cb_dock_button_press), (cb_dock_key_release), (cb_dock_key_press),
135 (bacon_volume_scale_value_changed): update from libbacon, to get
136 better accessibility support (Closes: #364637)
138 2006-10-24 James Livingston <doclivingston@gmail.com>
140 patch by: Alex Lancaster <alexl@users.sourceforge.net>
142 * configure.ac: fix some typos and leftovers from disabled->enabled
143 changes. Fixes #364217
145 2006-10-23 William Jon McCann <mccann@jhu.edu>
147 * shell/rb-source-header.c (rb_source_header_init):
148 Don't require source header cells to be homogeneous.
151 2006-10-23 Jonathan Matthew <jonathan@kaolin.wh9.net>
153 * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
154 Pause the pipeline while buffering. Fixes #358290.
156 2006-10-23 Bastien Nocera <hadess@hadess.net>
158 * configure.ac: update required libgpod version to avoid crashes
159 when starting up with an iPod connect (Closes: #352972)
160 * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path),
161 (hal_udi_is_ipod): remove outdated ifdefs
163 2006-10-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
165 * plugins/Makefile.am:
166 * plugins/power-manager/rb-power-manager-plugin.c:
167 Don't try to build the power-manager plugin with dbus < 0.35.
169 2006-10-22 James Livingston <doclivingston@gmail.com>
171 patch by: Ed Catmur <ed@catmur.co.uk>
173 * plugins/artdisplay/Makefile.am:
174 * plugins/artdisplay/artdisplay/__init__.py:
175 * plugins/artdisplay/rhythmbox-missing-artwork.svg: display some
176 placeholder art when none is available, to avoid having the widget pop
177 in and out of existance.
179 2006-10-20 Jonathan Matthew <jonathan@kaolin.wh9.net>
181 * plugins/lyrics/lyrics.py:
182 Set the lyrics window transient for the main window so it can
183 actually be seen in party mode. Fixes #362981.
185 2006-10-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
187 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
188 * sources/rb-source.c: (rb_source_class_init),
189 (rb_source_can_show_properties), (rb_source_song_properties):
190 * sources/rb-source.h:
191 Only enable the 'properties' item in the 'music' menu if the selected
192 source implements the show_properties method. Fixes #356485.
194 2006-10-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
196 * shell/rb-shell-player.c:
197 (rb_shell_player_property_row_activated_cb):
198 Take the entry to play from the play order, rather than grabbing the
199 first entry in the query model. Fixes #362042.
201 2006-10-16 James Livingston <doclivingston@gmail.com>
203 * shell/main.c: (main): save custom menu accelerators before exiting.
206 2006-10-13 Ryan P Skadberg <skadz@stigmata.org>
208 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
209 I HATE adding this patch, but I'm sick of hitting Yes once
210 and hour. Working around brain-dead podcasts.
212 2006-10-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
214 * plugins/lyrics/lyrics.py:
215 Disconnect the create-song-info handler when deactivated.
218 2006-10-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
220 * widgets/rb-search-entry.c: (rb_search_entry_changed_cb):
221 Reset the style when clearing the search text. Fixes #361295.
223 2006-10-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
225 * rhythmdb/rhythmdb-query-model.c:
226 (rhythmdb_query_model_entry_changed_cb):
227 Don't emit entry-prop-changed for hidden signals from chained query
228 models, as the model will also propagate the parent model's
229 entry-prop-changed signal. Fixes mysteriously unreported crashes.
231 2006-10-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
233 * sources/rb-ipod-source.c: (generate_ipod_filename):
234 * lib/rb-cut-and-paste-code.c: (rb_make_valid_utf8):
235 * lib/rb-cut-and-paste-code.h:
236 Move eel_make_valid_utf8 to lib/, make the replacement
237 character a parameter.
239 * rhythmdb/rhythmdb.c: (make_access_failed_error),
240 (rhythmdb_execute_multi_stat_info_cb),
241 (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_load):
242 When constructing an error message that includes a URI, make sure the
243 URI is valid utf-8. Fixes #353588.
245 2006-10-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
247 * player/rb-recorder-gst.c: (rb_recorder_construct),
249 Add an extra audioconvert element to allow endianness conversion on
250 big-endian machines, and fix a few endianness issues in the .wav
251 reading code. Fixes #355611.
253 2006-10-09 James Livingston <doclivingston@gmail.com>
255 patch by: Alex Lancaster <alexl@users.sourceforge.net>
257 * widgets/eggtrayicon.c: (egg_tray_icon_notify): work around a
258 libnotify 0.3.0 bug, as it doesn't handle escaped messages properly.
261 2006-10-09 James Livingston <doclivingston@gmail.com>
263 patch by: Luca Ferretti <elle.uca@libero.it>
265 * data/glade/song-info-multiple.glade:
266 * data/glade/song-info.glade: Fix a few HIG issues.
268 2006-10-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
270 * plugins/audioscrobbler/rb-lastfm-source.c:
271 (rb_lastfm_source_class_init):
272 Return TRUE from impl_try_playlist so playback starts in a separate
275 2006-10-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
277 * shell/main.c: (main):
278 Call bind_textdomain_codeset ("gstreamer-0.10", "UTF-8") so we get
279 UTF-8 GStreamer messages. Fixes #357973.
281 2006-10-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
283 * shell/rb-shell.c: (rb_shell_constructor):
284 Remove a line that accidentally slipped in from some other universe.
286 2006-10-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
288 * plugins/audiocd/rb-audiocd-plugin.c: (_delete_cb):
289 Don't remove sources from the hash table while iterating it on
290 shutdown. Fixes #359583.
292 2006-10-07 James Livingston <doclivingston@gmail.com>
294 patch from Alex Lancaster <alexl@users.sourceforge.net>
296 * shell/rb-shell.c: change the keybinding for "Plugins" to not
297 conflict with others. Fixes #355904
299 2006-10-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
301 * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_dispose),
302 (rhythmdb_query_model_chain),
303 (rhythmdb_query_model_entry_changed_cb),
304 (rhythmdb_query_model_base_entry_prop_changed),
305 (rhythmdb_query_model_base_entry_removed):
306 For chained models, propagate the parent model's entry-prop-changed
307 signal rather than emitting one from the db entry-changed handler.
308 This ensures that when the change filters the entry out of the parent
309 model, property models attached to the child model get the entry
310 change signal before the post-entry-delete signal, so they can
311 decrement the refcount for the right property value. Fixes #359083.
313 2006-10-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
315 * plugins/audioscrobbler/Makefile.am:
318 2006-10-07 James Livingston <doclivingston@gmail.com>
320 * plugins/audioscrobbler/rb-lastfm-gst-src.c:
321 (rb_lastfm_src_uri_get_protocols), (rb_lastfm_src_uri_set_uri):
322 * plugins/audioscrobbler/rb-lastfm-source.c:
323 (rb_lastfm_source_get_playback_uri): work around GStreamer not support
324 hypens in URI schemes.
326 2006-10-06 William Jon McCann <mccann@jhu.edu>
328 * plugins/iradio/Makefile.am:
329 * plugins/audioscrobbler/Makefile.am:
330 * plugins/cd-recorder/Makefile.am:
331 Don't clean all plugin_DATA.
334 2006-10-06 James Livingston <doclivingston@gmail.com>
336 patch from Matt N <fisxoj@gmail.com>
338 * backends/gstreamer/rb-player-gst.c: (emit_signal_idle),
339 (rb_player_gst_bus_cb):
340 * backends/rb-player.c: (rb_player_interface_init),
341 (_rb_player_emit_tick), (_rb_player_emit_event):
342 * backends/rb-player.h: let the backend emit named "events", for
343 things that the core shouldn't know about.
345 * rhythmdb/rhythmdb.h:
346 * widgets/rb-header.c: (get_extra_metadata), (rb_header_sync): add
347 support for streams containing album metadata.
349 * plugins/audioscrobbler/Makefile.am:
350 * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
351 * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
352 (impl_activate), (impl_deactivate), (impl_create_configure_dialog):
353 * plugins/audioscrobbler/rb-lastfm-gst-src.c:
354 * plugins/audioscrobbler/rb-lastfm-source.c:
355 * plugins/audioscrobbler/rb-lastfm-source.h: Add support for playback
356 of last.fm streams. From #313049.
358 2006-10-06 James Livingston <doclivingston@gmail.com>
360 * plugins/magnatune/magnatune/Makefile.am: add a file I missed
363 2006-10-06 James Livingston <doclivingston@gmail.com>
365 patch by: Adam Zimmerman <adam_zimmerman@sfu.ca>
368 * data/rhythmbox.schemas:
369 * plugins/Makefile.am:
370 * plugins/magnatune/Makefile.am:
371 * plugins/magnatune/magnatune-loading.glade:
372 * plugins/magnatune/magnatune-prefs.glade:
373 * plugins/magnatune/magnatune-purchase.glade:
374 * plugins/magnatune/magnatune.rb-plugin.desktop.in:
375 * plugins/magnatune/magnatune/BuyAlbumHandler.py:
376 * plugins/magnatune/magnatune/MagnatuneSource.py:
377 * plugins/magnatune/magnatune/TrackListHandler.py:
378 * plugins/magnatune/magnatune/__init__.py:
379 * plugins/magnatune/magnatune_circle_small.png:
380 * plugins/magnatune/magnatune_logo_color_small.png:
381 * plugins/magnatune/magnatune_logo_color_tiny.png: add a plugin to
382 play and download tracks from the MagnaTune online music store. From
385 2006-10-06 Jonathan Matthew <jonathan@kaolin.wh9.net>
387 * lib/rb-proxy-config.c: (rb_proxy_config_init),
388 (rb_proxy_config_dispose), (rb_proxy_config_finalize),
389 (check_auto_proxy_config), (get_proxy_config):
390 Don't crash when eel_gconf_get_string returns NULL.
393 2006-10-04 James Livingston <doclivingston@gmail.com>
395 patch by: Fryderyk Dziarmagowski <freetz@gmx.net>
397 * plugins/audiocd/Makefile.am: fix the plugin when linking with
398 --as-needed. Fixes #358730
400 2006-10-03 Jonathan Matthew <jonathan@kaolin.wh9.net>
402 patch by: William Jon McCann <mccann@jhu.edu>
404 * sources/rb-iradio-source.c: (playing_source_changed_cb):
405 Fix some stupidity I introduced that caused crashes on shutdown.
408 2006-10-02 William Jon McCann <mccann@jhu.edu>
410 * plugins/audiocd/Makefile.am:
411 * plugins/audiocd/rb-audiocd-plugin.c: (create_source_cb):
412 * plugins/iradio/.cvsignore:
413 * plugins/iradio/Makefile.am:
414 * plugins/iradio/rb-iradio-plugin.c: (impl_activate),
416 * plugins/power-manager/.cvsignore:
417 Install missing iradio ui file. Don't leak ui filename.
418 Fix iradio install dir. Fix audiocd install dir.
419 Remove unused code from audio cd plugin.
423 2006-10-03 Jonathan Matthew <jonathan@kaolin.wh9.net>
425 * sources/rb-ipod-source.c: (impl_move_to_trash):
426 Uncomment rhythmdb_entry_move_to_trash call that I accidentally
427 commented out while fixing bug 355235. Oops.
429 2006-10-03 James Livingston <doclivingston@gmail.com>
431 * lib/rb-util.c: (rb_string_split_words), (rb_search_fold): downgrade
432 non-unicode warnings to debug statements, since they can occur with
433 slightly broken files.
435 * plugins/iradio/rb-iradio-plugin.c: (impl_deactivate):
436 * shell/rb-shell.c: (rb_shell_source_deleted_cb): fix a crasher if the
437 iradio plugin is disabled and re-enabled.
439 2006-10-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
441 * rhythmdb/rhythmdb.c: (rhythmdb_register_core_entry_types),
442 (rhythmdb_entry_podcast_post_get_type):
443 * rhythmdb/rhythmdb.h:
444 * tests/bench-rhythmdb-load.c: (main):
445 Add definitions for some common extra-metadata fields,
446 remove iradio entry type definition, add the concept of entry type
447 categories, define categories for the core entry types.
448 Categories are used to decide if an entry can be copied to a removable
449 device, if it should be reported to audioscrobbler, etc.
452 * shell/rb-shell-player.c: (rb_shell_player_class_init),
453 (rb_shell_player_constructor), (rb_shell_player_init),
454 (rb_shell_player_get_property), (open_location_thread),
455 (rb_shell_player_open_location),
456 (rb_shell_player_sync_with_source),
457 (rb_shell_player_set_playing_source_internal), (tick_cb):
458 * shell/rb-shell.c: (construct_widgets), (construct_sources),
459 (rb_shell_player_elapsed_changed_cb):
460 Remove iradio-specific code, use extra metadata fields for streaming
461 title and artist name.
463 * data/ui/rhythmbox-ui.xml:
464 Add a placeholder for 'new ...' menu items.
467 * sources/Makefile.am:
469 * data/rhythmbox.schemas:
470 * plugins/Makefile.am:
471 * plugins/iradio/Makefile.am:
472 * plugins/iradio/iradio-ui.xml:
473 * plugins/iradio/iradio.rb-plugin.desktop.in:
474 * plugins/iradio/rb-iradio-plugin.c: (rb_iradio_plugin_init),
475 (rb_iradio_plugin_finalize), (impl_activate), (impl_deactivate),
476 (rb_iradio_plugin_class_init):
477 iradio plugin, enabled and hidden by default.
479 * plugins/audioscrobbler/rb-audioscrobbler.c:
480 (rb_audioscrobbler_song_changed_cb):
481 * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
482 * sources/rb-daap-source.c: (rb_daap_source_new):
483 * sources/rb-ipod-source.c: (rb_ipod_source_new), (impl_paste):
484 Define entry type categories, and use them where appropriate.
486 * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
487 (rb_iradio_source_constructor), (rb_iradio_source_new),
488 (impl_get_status), (impl_want_uri), (buffering_cb),
489 (check_entry_type), (streaming_title_request_cb),
490 (streaming_artist_request_cb), (extra_metadata_gather_cb),
491 (info_available_cb), (playing_entry_changed_cb),
492 (playing_source_changed_cb):
493 Move streaming metadata and buffering handling here from
494 rb-shell-player.c. Emit extra-metadata notify signals when the streaming
495 title or artist changes, and handle request and gather signals for
498 * widgets/rb-header.c: (rb_header_class_init),
499 (rb_header_set_property), (rb_header_get_property),
500 (rb_header_new), (append_and_free), (rb_header_sync):
501 * widgets/rb-header.h:
502 Rework to use streaming artist and title extra-metadata.
503 streaming-artist overrides entry artist, and streaming-title means
504 entry title is a stream name, displayed in brackets.
506 * doc/reference/Makefile.am:
507 * doc/reference/rhythmbox.types:
508 Remove iradio stuff from gtk-doc build.
512 2006-10-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
514 patch mostly by: Ed Catmur <ed@catmur.co.uk>
516 * bindings/python/rhythmdb.defs:
517 * lib/rb-marshal.list:
518 * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
519 (rhythmdb_emit_entry_deleted),
520 (rhythmdb_entry_extra_metadata_accumulator),
521 (rhythmdb_entry_request_extra_metadata),
522 (rhythmdb_emit_entry_extra_metadata_notify),
523 (unset_and_free_g_value), (rhythmdb_entry_gather_metadata):
524 * rhythmdb/rhythmdb.h:
525 Add signals for dealing with transient metadata outside the set stored
527 - entry_extra_metadata_request returns a value for the requested
529 - entry_extra_metadata_notify notifies observers of a change to an
531 - entry_extra_metadata_gather returns the values of all extra metadata
534 * shell/rb-shell-player.c: (rb_shell_player_set_db_internal),
535 (rb_shell_player_extra_metadata_cb):
536 Sync the display on extra metadata changes and emit dbus signals when
537 we can marshal the value.
539 * shell/rb-shell.c: (rb_shell_get_song_properties):
540 Implement rb_shell_song_get_properties using
541 rhythmdb_entry_gather_metadata.
543 * plugins/rb-python-module.c: (pyg_value_g_value_as_pyobject),
544 (pyg_value_g_value_from_pyobject), (rb_python_module_init_python):
546 Add GValue marshaller for python (until bug 351072 is fixed)
550 2006-10-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
553 * data/rhythmbox.schemas:
554 * plugins/Makefile.am:
555 * plugins/power-manager/Makefile.am:
556 * plugins/power-manager/power-manager.rb-plugin.desktop.in:
557 * plugins/power-manager/rb-power-manager-plugin.c:
558 (rb_gpm_plugin_class_init), (rb_gpm_plugin_init), (ignore_error),
559 (inhibit_cb), (inhibit), (uninhibit_cb), (uninhibit),
560 (playing_changed_cb), (impl_activate), (impl_deactivate):
561 gnome-power-manager integration: inhibit suspend while playing.
564 2006-10-02 James Livingston <doclivingston@gmail.com>
566 update by: Aloriel <jorge.gonzalez.gonzalez@hispalinux.es>
567 and Alex Lancaster <alexl@users.sourceforge.net>
569 * help/C/rhythmbox.xml: fix some mispellings and grammer.
570 Fixes #353143, #353146 and #353147.
572 ============ Version 0.9.6
574 2006-10-01 James Livingston <doclivingston@gmail.com>
576 * configure.ac: bump version to 0.9.6. enable tag-writing and
577 ipod-writing by default
581 2006-09-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
583 patch by: William Jon McCann <mccann@jhu.edu>
585 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
586 Use a local GError in case no error pointer pointer is passed in.
589 2006-09-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
591 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_load):
592 Don't reference members of freed structures.
594 2006-09-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
596 patch by: William Jon McCann <mccann@jhu.edu>
598 * player/rb-recorder-gst.c: (rb_recorder_burn):
599 Drop GDK lock before entering n-c-b. Fixes #353894?
601 2006-09-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
603 * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
605 Handle error/hangup conditions on the LIRC connection. Fixes #358049.
607 2006-09-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
609 * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
610 Call lirc_init before lirc_readconfig so we don't crash if the user's
611 .lircrc file has any mode sections. Fixes #357419.
613 2006-09-24 James Livingston <doclivingston@gmail.com>
615 * sources/rb-daap-source.c: (rb_daap_sources_shutdown): don't assert
616 if we get called twice, as that can happen. Fixes #357214.
618 2006-09-24 James Livingston <doclivingston@gmail.com>
620 * backends/rb-encoder.h: add "file access" error
622 * lib/rb-file-helpers.c: (rb_dot_dir):
623 * podcast/rb-podcast-manager.c:
624 (rb_podcast_manager_download_file_info_cb): remove directory creation
627 * backends/gstreamer/rb-encoder-gst.c: (create_parent_dirs_uri),
628 (create_parent_dirs), (rb_encoder_gst_encode): check result of
629 directory creation. Fixes #347743
631 2006-09-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
633 * plugins/audioscrobbler/rb-audioscrobbler.c: (*):
634 Strip trailing whitespace
636 2006-09-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
638 * rhythmdb/Makefile.am:
639 * rhythmdb/rhythmdb-private.h:
640 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_error_quark),
641 (rhythmdb_tree_parser_start_element), (rhythmdb_tree_load):
642 * rhythmdb/rhythmdb-tree.h:
643 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_load_error_cb),
644 (rhythmdb_load_thread_main), (rhythmdb_save_thread_main):
645 * rhythmdb/rhythmdb.h:
646 Rather than aborting, show an error and refuse to load the database when
647 it appears to come from the future. From bug #350304.
649 2006-09-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
651 * bindings/python/rhythmdb.override:
652 Make entry_foreach usable.
654 2006-09-18 Jonathan Matthew <jonathan@kaolin.wh9.net>
656 * sources/rb-podcast-source.c: (rb_podcast_source_init):
657 Scale the icon so it matches the rest of the sources.
660 2006-09-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
662 * rhythmdb/rhythmdb-property-model.c: (_remove_entry_cb),
663 (rhythmdb_property_model_set_query_model_internal),
664 (rhythmdb_property_model_row_inserted_cb),
665 (rhythmdb_property_model_prop_changed_cb),
666 (rhythmdb_property_model_entry_removed_cb),
667 (rhythmdb_property_model_delete),
668 (rhythmdb_property_model_perform_sync):
669 Use the hash table to track hidden entries, rather than visible
670 entries. Cuts memory usage fairly significantly. From bug #347425.
672 2006-09-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
674 * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting):
675 Patch from Christian Becke to fix compilation with -O3, bug #355945.
677 2006-09-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
679 * sources/rb-ipod-source.c: (add_rb_playlist),
680 (impl_move_to_trash), (impl_delete_thyself):
681 Delete ipod playlists when the ipod source is deleted. Fixes #355235.
683 * sources/rb-sourcelist.c: (rb_sourcelist_remove):
684 Make sure we don't leave the sourcelist thinking a deleted source is
685 still playing. Fixes nothing.
687 2006-09-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
690 Use GTK_STOCK_OPEN instead of GTK_STOCK_DIRECTORY for the
691 'Music->Import Folder' menu item for better icon theme coverage.
694 2006-09-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
696 * rhythmdb/rhythmdb-private.h:
697 * rhythmdb/rhythmdb.c: (rhythmdb_init),
698 (rhythmdb_start_action_thread), (rhythmdb_finalize),
699 (rhythmdb_thread_create), (rhythmdb_add_uri_with_type),
700 (rhythmdb_load), (rhythmdb_save_async):
701 Use a limited thread pool for adding URIs to the database.
704 2006-09-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
706 * backends/gstreamer/rb-player-gst.c: (rb_player_gst_bus_cb):
707 Do something like the previous change, but for gstreamer 0.10
708 this time. Oops. Really fixes #349569.
710 2006-09-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
712 * backends/gstreamer/rb-player-gst.c: (error_cb):
713 Ignore 'internal data flow error' messages if we've already got an
714 error for the file. Fixes #349569.
716 2006-09-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
718 * shell/rb-shell-clipboard.c:
719 (rb_shell_clipboard_playlist_deleted_cb):
720 Rebuild 'add to playlist' menu before removing actions for deleted
721 playlists, and don't unref the action, as we never had a reference on
722 it to begin with. Fixes #354599.
724 2006-09-05 Jonathan Matthew <jonathan@kaolin.wh9.net>
726 * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
727 (sexy_icon_entry_unmap), (draw_icon), (sexy_icon_entry_set_icon):
728 Apply fix for bug #354149 to our internal copy of sexy-icon-entry.c.
730 2006-09-04 Jonathan Matthew <jonathan@kaolin.wh9.net>
732 * daapsharing/rb-daap-connection.c: (handle_playlists):
733 Reverse the list of playlists on the DAAP server so it ends up in the
734 right order. Fixes #353926.
736 2006-09-03 Jonathan Matthew <jonathan@kaolin.wh9.net>
738 * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code):
739 Fully process each code so the LIRC client returns to its normal state
740 when we're done. Makes LIRC actually work properly for me.
742 2006-09-03 Jonathan Matthew <jonathan@kaolin.wh9.net>
744 patch by: Ed Catmur <ed@catmur.co.uk>
746 * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_map),
747 (sexy_icon_entry_unmap), (sexy_icon_entry_set_icon):
748 Don't show unused GdkWindows in SexyIconEntry. Fixes #353671.
750 2006-09-02 William Jon McCann <mccann@jhu.edu>
752 patch by: James Livingston <doclivingston@gmail.com>
755 * data/rhythmbox.schemas:
756 * metadata/Makefile.am:
757 * plugins/Makefile.am:
758 * plugins/audiocd/.cvsignore:
759 * plugins/audiocd/Makefile.am:
760 * plugins/audiocd/audiocd.rb-plugin.desktop.in:
761 * plugins/audiocd/rb-audiocd-plugin.c:
762 (rb_audiocd_plugin_class_init), (rb_audiocd_plugin_init),
763 (rb_audiocd_plugin_finalize), (rb_audiocd_plugin_mount_volume),
764 (rb_audiocd_plugin_unmount_volume), (poll_tray_opened),
765 (end_cd_drive_monitor), (begin_cd_drive_monitor),
766 (get_nautilus_burn_drive_for_path), (split_drive_from_cdda_uri),
767 (rb_audiocd_plugin_playing_uri_changed_cb),
768 (nautilus_burn_drive_get_device),
769 (rb_audiocd_plugin_source_deleted), (create_source_cb),
770 (impl_activate), (_delete_cb), (impl_deactivate):
771 * plugins/cd-recorder/rb-cd-recorder-plugin.c:
772 (rb_cd_recorder_plugin_init), (rb_cd_recorder_plugin_finalize):
773 * shell/main.c: (main):
774 * shell/rb-removable-media-manager.c:
775 (rb_removable_media_manager_finalize),
776 (rb_removable_media_manager_load_media),
777 (rb_removable_media_manager_mount_volume),
778 (rb_removable_media_manager_scan):
779 * sources/Makefile.am:
780 * sources/rb-audiocd-source.c:
781 * sources/rb-audiocd-source.h:
782 Make auto CD support a plugin.
786 2006-09-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
788 * daapsharing/rb-daap-connection.c: (handle_song_listing):
789 Add a final rhythmdb_commit to make sure all songs from the share show
790 up in the daap source. Fixes #353913.
792 2006-09-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
794 * sources/rb-sourcelist-model.c:
795 (rb_sourcelist_model_drag_data_received),
796 (rb_sourcelist_model_row_drop_possible):
797 Re-enable dragging of a set of tracks to the source list to create a
798 new static playlist. Fixes #353893.
800 2006-09-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
802 * widgets/bacon-volume.c: (cb_button_timeout):
803 Actually drop the GDK lock, rather than returning while holding it.
806 2006-08-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
808 * plugins/generic-player/rb-generic-player-source.c:
809 (rb_generic_player_source_constructor),
810 (rb_generic_player_source_get_device_info), (impl_delete_thyself),
811 (rb_generic_player_source_load_songs), (load_playlist_file),
812 (default_load_playlists), (get_hal_context):
813 Only call libhal_ctx_shutdown if libhal_ctx_init succeeds.
816 2006-08-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
818 * rhythmdb/rhythmdb-monitor.c: (rhythmdb_directory_change_cb):
819 Canonicalise URIs received from gnome-vfs file monitor.
822 2006-08-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
824 * help/C/rhythmbox.xml: unbreak help build
825 * plugins/lirc/rb-lirc-plugin.c: (impl_activate):
826 Unbuffer the IO channel. Fixes some weirdness for me.
828 2006-08-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
830 * help/C/rhythmbox.xml:
831 * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
832 (impl_activate), (impl_deactivate):
833 Add 'playpause' LIRC command.
835 2006-08-24 Jonathan Matthew <jonathan@kaolin.wh9.net>
837 * sources/rb-source.c: (rb_source_class_init), (rb_source_dispose),
838 (rb_source_finalize):
839 Remove idle callbacks in dispose, rather than finalize. Fixes crashes
840 when disconnecting generic audio players.
842 2006-08-23 Jonathan Matthew <jonathan@kaolin.wh9.net>
844 patch by: Paolo Borelli <pborelli@katamail.com>
846 * plugins/rb-python-plugin.c: (rb_python_object_get_type):
849 2006-08-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
851 * backends/gstreamer/rb-player-gst.c:
852 * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
853 Don't actually disable the seek bar for non-seekable songs,
854 because we can't reliably tell yet.
856 2006-08-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
858 * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
859 (add_playlist_entry_to_mlcl), (databases_cb), (db_entry_added_cb),
860 (db_entry_deleted_cb), (rb_daap_share_server_start),
861 (rb_daap_share_server_stop):
862 * rhythmdb/rhythmdb-private.h:
863 * rhythmdb/rhythmdb-tree.c: (save_entry):
864 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
865 (rhythmdb_entry_set_internal), (rhythmdb_prop_type_get_type),
866 (rhythmdb_entry_get_ulong):
867 * rhythmdb/rhythmdb.h:
868 Give db entries a numeric ID property, replacing the daap server's
869 entry->id map. From #347665.
871 2006-08-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
873 * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
874 * widgets/rb-header.c: (rb_header_class_init),
875 (rb_header_set_property), (rb_header_get_property),
876 (rb_header_set_playing_entry), (rb_header_sync),
877 (rb_header_sync_time):
878 * widgets/rb-header.h:
879 Add a 'seekable' property on RBHeader, and use it to make the seek bar
880 insensitive when the player backend tells us we can't seek in the
881 current song. From #330410.
883 2006-08-18 Jonathan Matthew <jonathan@kaolin.wh9.net>
885 * widgets/rb-song-info.c: (rb_song_info_update_buttons):
886 Don't try to unref previous/next entries if they aren't there.
889 2006-08-15 James Livingston <doclivingston@gmail.com>
891 * rhythmdb/rhythmdb-monitor.c: (entry_volume_mounted_or_unmounted),
892 (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb): turn the
893 mountpoint into a RBRefString and compare equality of those, rather
894 than doign lots of strcmp()s.
896 * sources/rb-source.c: (rb_source_finalize), (_update_status_idle),
897 (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb): do
898 status notification as well as the visibility update in an idle
899 callback. Makes it take much less time to update after a volume
902 2006-08-15 James Livingston <doclivingston@gmail.com>
904 patch by: Christian Becke <christianbecke@web.de>
906 * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library): allow
907 multiple selections in the Import Folder dialog. Fixes #351414.
909 2006-08-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
911 * shell/rb-shell.c: (construct_widgets):
912 * shell/rb-statusbar.c: (rb_statusbar_class_init),
913 (rb_statusbar_connect_ui_manager), (rb_statusbar_set_property),
914 (rb_statusbar_get_property), (rb_statusbar_new):
915 * shell/rb-statusbar.h:
916 Use the connect-proxy signal from the UI manager, which covers all
917 action groups, rather than just one. Fixes #351280.
919 2006-08-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
921 * widgets/rb-library-browser.c: (rebuild_child_model):
922 Fix query model reference counts (bug #349601).
924 2006-08-15 James Livingston <doclivingston@gmail.com>
926 * backends/rb-player.c: (rb_player_interface_init): make the EOS and
927 Error signals be non-recursive. Fixes a highly-unlikely issue that
928 could have caused #322972.
930 2006-08-14 James Livingston <doclivingston@gmail.com>
932 * sources/rb-auto-playlist-source.c:
933 (rb_auto_playlist_source_init):
934 * sources/rb-static-playlist-source.c:
935 (rb_static_playlist_source_init):
937 2006-08-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
939 * sources/rb-browser-source.c:
940 * sources/rb-import-errors-source.c:
941 * sources/rb-iradio-source.c:
942 * sources/rb-library-source.c:
943 * sources/rb-missing-files-source.c:
944 * sources/rb-play-queue-source.c:
945 * sources/rb-playlist-source.c:
946 * sources/rb-podcast-source.c:
947 * sources/rb-source.c:
948 Make entry-type a property on RBSource, rather than on most of its
949 subclasses. Fixes #347288.
951 2006-08-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
953 * remote/dbus/rb-client.c: (parse_pattern),
954 (create_rb_shell_proxies), (main):
955 Actually implement %ag and %aG (genre) for --print-playing-format
957 2006-08-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
959 * lib/rb-debug.c: (rb_debug_real):
960 No point allocating a buffer for the timestamp when we can just put it
963 2006-08-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
965 * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
966 Don't ignore SIGPIPE. gnome-vfs does it for us anyway.
968 2006-08-11 James Livingston <doclivingston@gmail.com>
970 * podcast/rb-podcast-manager.c:
971 (rb_podcast_manager_update_synctime): fix accidental commit in the
972 last, which caused a warning.
974 2006-08-11 James Livingston <doclivingston@gmail.com>
976 * data/rhythmbox.schemas:
977 * podcast/rb-podcast-manager.c:
978 (rb_podcast_manager_update_synctime): change the schema's
979 update-inteval value from 0 to 1, which causes it to update on
980 startup, rather than never. Should fixs #343818.
982 2006-08-11 James Livingston <doclivingston@gmail.com>
986 - data/rhythmbox.desktop.in:
987 + data/rhythmbox.desktop.in.in: add mroe indirection to the build, so
988 the @VERSION@ can be substituted in. Fix some issues with newer
989 bug-buddy versions. Fixes #348853.
991 2006-08-10 William Jon McCann <mccann@jhu.edu>
993 * data/rhythmbox.schemas:
994 * plugins/Makefile.am:
995 * plugins/artdisplay/Makefile.am:
996 * plugins/audioscrobbler/Makefile.am:
997 * plugins/cd-recorder/Makefile.am:
998 * plugins/generic-player/Makefile.am:
999 * plugins/ipod/Makefile.am:
1000 * plugins/lirc/Makefile.am:
1001 * plugins/lyrics/Makefile.am:
1002 * plugins/pythonconsole/Makefile.am:
1003 * plugins/rb-module.c:
1004 * plugins/rb-module.h:
1005 * plugins/rb-plugin-manager.c: (configure_button_cb),
1006 (plugin_manager_view_cell_cb), (cursor_changed_cb),
1007 (plugin_manager_populate_lists), (plugin_manager_set_active),
1008 (plugin_manager_toggle_active),
1009 (plugin_manager_get_selected_plugin), (rb_plugin_manager_init),
1010 (rb_plugin_manager_finalize):
1011 * plugins/rb-plugin-manager.h:
1012 * plugins/rb-plugin.c: (rb_get_plugin_paths),
1013 (rb_plugin_find_file):
1014 * plugins/rb-plugin.h:
1015 * plugins/rb-plugins-engine.c: (rb_plugins_engine_load),
1016 (rb_plugins_engine_load_cb), (rb_plugins_engine_load_all),
1017 (rb_plugins_engine_init), (rb_plugin_info_free),
1018 (load_plugin_module), (rb_plugins_engine_activate_plugin),
1019 (rb_plugins_engine_deactivate_plugin),
1020 (rb_plugins_engine_plugin_is_active),
1021 (rb_plugins_engine_plugin_is_visible),
1022 (rb_plugins_engine_plugin_is_configurable),
1023 (rb_plugins_engine_configure_plugin),
1024 (rb_plugins_engine_get_plugin_name),
1025 (rb_plugins_engine_get_plugin_description),
1026 (rb_plugins_engine_get_plugin_authors),
1027 (rb_plugins_engine_get_plugin_website),
1028 (rb_plugins_engine_get_plugin_copyright),
1029 (rb_plugins_engine_get_plugin_icon):
1030 * plugins/rb-plugins-engine.h:
1031 * plugins/rb-python-module.c: (rb_python_module_init_python),
1032 (rb_python_module_load), (rb_python_module_unload),
1033 (rb_python_module_class_init), (rb_python_module_new),
1034 (finalise_collect_cb), (rb_python_shutdown):
1035 * plugins/rb-python-module.h:
1036 * plugins/rb-python-plugin.c: (call_python_method),
1037 (impl_deactivate), (impl_activate), (impl_create_configure_dialog),
1038 (impl_is_configurable), (rb_python_object_get_type):
1039 * plugins/rb-python-plugin.h:
1040 * plugins/rb/Makefile.am:
1042 Use TRUE/FALSE in schemas to make it easier to read. Remove
1043 spurious whitespace. Don't use libgnome explicitly. Replace the
1044 crack USER_RB_PLUGINS_LOCATION API with rb_get_plugin_paths().
1045 Remove unused RB_PLUGINS_ENGINE_BASE_KEY CONF_PREFIX etc. Don't
1046 special case loading of dirs. Install plugins to subdirectors of
1047 PLUGINDIR so they don't interfere. Install rb plugin to LIBDIR
1048 not DATADIR. Fixes #350352
1050 2006-08-10 James Livingston <doclivingston@gmail.com>
1052 * daapsharing/rb-daap-connection.c: (connection_connected),
1053 (connection_disconnected), (connection_operation_done):
1054 * daapsharing/rb-daap-share.c: (name_collision_cb):
1055 * plugins/generic-player/rb-generic-player-source.c:
1056 (rb_generic_player_source_load_playlists):
1057 * podcast/rb-podcast-manager.c:
1058 (rb_podcast_manager_download_entry),
1059 (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_next_file),
1060 (end_job), (rb_podcast_manager_event_loop):
1061 * rhythmdb/rhythmdb-property-model.c:
1062 (rhythmdb_property_model_perform_sync):
1063 * rhythmdb/rhythmdb-query-model.c: (idle_process_update_idle),
1064 (rhythmdb_query_model_process_update), (idle_process_update),
1065 (rhythmdb_query_model_reapply_query_cb):
1066 * shell/rb-play-order.c: (sync_playing_entry_cb):
1067 * shell/rb-removable-media-manager.c:
1068 (rb_removable_media_manager_load_media):
1069 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync_idle),
1070 (rb_shell_clipboard_sync),
1071 (rb_shell_clipboard_entryview_changed_cb),
1072 (rb_shell_clipboard_entries_changed_cb),
1073 (rb_shell_clipboard_playlist_deleted_cb), (rebuild_playlist_menu),
1074 (rebuild_playlist_menu_idle),
1075 (rb_shell_clipboard_playlist_added_cb):
1076 * shell/rb-shell-player.c: (notify_playing_idle),
1077 (rb_shell_player_jump_to_current_idle), (_idle_unblock_signal_cb):
1078 * shell/rb-shell.c: (idle_save_playlist_manager), (quit_timeout),
1080 * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
1081 * sources/rb-library-source.c: (add_child_sources_idle):
1082 * sources/rb-playlist-source-recorder.c: (response_idle_cb),
1084 * sources/rb-source.c: (update_visibility_idle):
1085 * widgets/bacon-volume.c: (button_timeout), (cb_button_timeout),
1087 * widgets/rb-druid.c: (idle_set_sensitive):
1088 * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed):
1089 take the GDK lock when we should be, from #348588
1091 2006-08-09 James Livingston <doclivingston@gmail.com>
1093 * rhythmdb/rhythmdb-property-model.c:
1094 (rhythmdb_property_model_get_path),
1095 (rhythmdb_property_model_get_value),
1096 (rhythmdb_property_model_iter_next): don't attempt to verify the
1097 iterator if it's the All value, since it isn't valid. Fixes a
1100 2006-08-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
1102 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
1103 (rb_podcast_manager_download_file_info_cb),
1104 (rb_podcast_manager_abort_download), (download_info_free),
1105 (download_info_new):
1106 Use gnome_vfs_async_get_file_info to figure out the local filename for
1107 a podcast episode, so we get the filename from the target of any
1108 redirects, rather than the source. When creating the GnomeVFSURI, hide
1109 the query string, then append it later, to stop gnome-vfs from
1110 converting 'http://' to 'http:/'. If the local filename ends with the
1111 query string, remove it. Fixes #330766 and #321991.
1113 2006-08-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
1115 * sources/rb-library-source.c: (impl_want_uri):
1116 * sources/rb-static-playlist-source.c: (impl_want_uri):
1117 Treat sftp:// URIs as likely indicators of songness.
1119 2006-08-07 James Livingston <doclivingston@gmail.com>
1121 * rhythmdb/rhythmdb.c: (process_added_entries_cb): don't auto-hide
1122 remote tracks with GStreamer 0.10, and remember their visibility like
1125 2006-08-07 James Livingston <doclivingston@gmail.com>
1127 * remote/dbus/rb-client.c: (main): don't unref the bus instance, since
1128 apparently it's a borrowed reference. Should fix #347072.
1130 2006-08-06 James Livingston <doclivingston@gmail.com>
1132 * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_finalize),
1133 (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1134 (rb_shuffle_play_order_get_previous),
1135 (rb_shuffle_play_order_go_previous), (handle_query_model_changed),
1136 (remove_from_history), (add_randomly_to_history),
1137 (rb_shuffle_sync_history_with_query_model),
1138 (rb_shuffle_playing_entry_changed), (rb_shuffle_db_entry_deleted),
1139 (query_model_and_history_contents_match): remove the tentatative
1140 history stuff, which is from older code, like we did for -random a few
1143 2006-08-06 James Livingston <doclivingston@gmail.com>
1145 * shell/rb-play-order-queue.c: (rb_queue_play_order_go_next),
1146 (rb_queue_play_order_get_previous):
1147 * shell/rb-play-order-random.c: (rb_random_play_order_get_next),
1148 (rb_random_play_order_go_next),
1149 (rb_random_play_order_get_previous), (rb_random_db_changed):
1150 * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
1151 (rb_shuffle_play_order_get_next), (rb_shuffle_play_order_go_next),
1152 (rb_shuffle_play_order_get_previous), (add_randomly_to_history),
1153 (rb_shuffle_db_changed), (rb_shuffle_entry_added),
1154 (rb_shuffle_entry_removed),
1155 (query_model_and_history_contents_match):
1156 * shell/rb-play-order.c: (rb_play_order_query_model_changed),
1157 (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1158 (default_has_next), (default_has_previous),
1159 (rb_play_order_model_not_empty): Fix assorted refcounting issues in
1160 various play orders, after reviewing the code. Should fix #349601.
1162 2006-08-05 Jonathan Matthew <jonathan@kaolin.wh9.net>
1164 * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
1165 Pass the items_per_notification parameter to
1166 gnomevfs.async.load_directory, fixing 'argument 4 impossible' errors
1167 with some versions of python.
1169 2006-08-05 Jonathan Matthew <jonathan@kaolin.wh9.net>
1171 * widgets/libsexy/sexy-icon-entry.c: (draw_icon):
1172 Don't try to draw the icon if the drawable area is too small.
1175 2006-08-04 Ryan P Skadberg <skadz@stigmata.org>
1177 patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
1179 * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): seems to fix 348783
1181 2006-08-05 James Livingston <doclivingston@gmail.com>
1183 * configure.ac: tell libtool not to check for C++/fortran/ etc
1186 * plugins/rb-plugins-engine.c: (rb_plugin_info_free): remove the right
1187 watch, to fix some gconf warnings.
1189 2006-08-04 James Livingston <doclivingston@gmail.com>
1191 patch by: William Jon McCann <mccann@jhu.edu>
1193 * shell/main.c: (main): use GOption instead of popt. Fixes #346930
1195 2006-08-04 James Livingston <doclivingston@gmail.com>
1197 * plugins/rb-plugin-manager.c: (plugin_manager_set_active): try to
1198 actually fix #349722 this time
1200 2006-08-04 James Livingston <doclivingston@gmail.com>
1202 * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: don't attempt
1203 to seach for local art from http:// URIs, or those gnome-vfs doesn't
1204 know about. Fixes #348571.
1206 2006-08-03 Benjamin Otte <in7y118@public.uni-hamburg.de>
1208 various fixes for valgrind complaints:
1209 * lib/rb-tree-dnd.c: (rb_tree_dnd_data_free),
1210 (init_rb_tree_dnd_data):
1211 free the associated target list, too
1212 * widgets/libsexy/sexy-icon-entry.c: (sexy_icon_entry_realize):
1213 initialize allocation.{x,y,width,height} correctly
1214 * widgets/rb-entry-view.c: (rb_entry_view_sync_sorting),
1215 (rb_entry_view_constructor):
1216 free strings when no longer needed
1218 2006-08-03 James Livingston <doclivingston@gmail.com>
1220 * plugins/rb-plugin-manager.c: (plugin_manager_set_active): use the
1221 real GtkTreeModel not the filter. Fixes #349722
1223 2006-08-03 Jonathan Matthew <jonathan@kaolin.wh9.net>
1225 * backends/gstreamer/rb-player-gst.c:
1226 Only use DAAP seek hacks for GStreamer 0.8 builds.
1228 * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
1230 * daapsharing/rb-daap-src.h:
1231 Implement normal GStreamer seeking for GStreamer 0.10 builds.
1233 * sources/rb-daap-source.c: (rb_daap_source_class_init),
1234 (rb_daap_source_get_headers):
1235 * sources/rb-daap-source.h:
1236 Reimplement rb_daap_source_get_headers for the case where we've
1237 already got the byte offset. Add a small hack to
1238 rb_daap_source_class_init to prevent the linker from dropping
1239 rb-daap-src.o entirely.
1241 Fixes client-side DAAP seeking (for MP3, at least), bug #330410.
1243 2006-08-02 James Livingston <doclivingston@gmail.com>
1245 * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
1246 (handle_song_listing), (handle_playlist_entries),
1247 (rb_daap_connection_dispose):
1248 * sources/rb-daap-source.c: (_add_location_to_playlist),
1249 (rb_daap_source_connection_cb): make the daap code use RBRefStrings
1250 for playlist URIs, not pointless duplicate strings. From #347425.
1252 2006-08-02 James Livingston <doclivingston@gmail.com>
1254 * data/rhythmbox.schemas:
1255 * lib/rb-preferences.h:
1256 * plugins/rb-plugin-manager.c: (rb_plugin_manager_class_init),
1257 (plugin_manager_view_cell_cb), (plugin_manager_populate_lists),
1258 (plugin_manager_set_active), (plugin_manager_toggle_active),
1259 (plugin_manager_get_selected_plugin), (name_search_cb),
1260 (plugin_manager_construct_tree), (rb_plugin_manager_new),
1261 (rb_plugin_manager_finalize):
1262 * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_cb),
1263 (rb_plugins_engine_load_all), (rb_plugin_info_free),
1264 (rb_plugins_engine_plugin_is_visible),
1265 (rb_plugins_engine_plugin_visible_cb):
1266 * plugins/rb-plugins-engine.h: add gconf options to 1) disable loading
1267 per-user plugins, and 2) hide plugins from the manager UI. From #349395
1269 2006-08-02 James Livingston <doclivingston@gmail.com>
1271 * sources/rb-sourcelist-model.c:
1272 (rb_sourcelist_model_drag_data_received): don't crash if we didn't
1273 drop on a source. Fixes #349580.
1275 2006-07-31 Jonathan Matthew <jonathan@kaolin.wh9.net>
1278 * daapsharing/rb-daap-dialog.c:
1279 * daapsharing/rb-daap-dialog.h:
1280 * shell/Makefile.am:
1281 * sources/Makefile.am:
1282 * sources/rb-daap-source.c: (connection_auth_cb),
1283 (rb_daap_source_connection_cb), (rb_daap_source_activate):
1284 Add gnome-keyring support for DAAP passwords and use
1285 gnome-password-dialog instead of our own.
1286 Patch mostly by James Livingston. Fixes bug #330346.
1288 2006-07-31 Jonathan Matthew <jonathan@kaolin.wh9.net>
1290 * shell/rb-shell-player.c:
1291 (rb_shell_player_set_playing_source_internal),
1292 (rb_shell_player_sync_with_selected_source):
1293 Remove call to rb_source_have_url, as we never did anything with the
1296 * sources/rb-browser-source.c: (rb_browser_source_class_init):
1297 * sources/rb-import-errors-source.c:
1298 (rb_import_errors_source_class_init):
1299 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
1300 (impl_song_properties), (impl_want_uri), (impl_add_uri):
1301 * sources/rb-library-source.c: (rb_library_source_class_init),
1302 (impl_want_uri), (impl_add_uri):
1303 * sources/rb-missing-files-source.c:
1304 (rb_missing_files_source_class_init):
1305 * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
1306 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
1307 (impl_want_uri), (impl_add_uri):
1308 * sources/rb-source.c: (rb_source_class_init),
1309 (rb_source_want_uri), (rb_source_add_uri), (rb_source_handle_eos):
1310 * sources/rb-source.h:
1311 * sources/rb-static-playlist-source.c:
1312 (rb_static_playlist_source_class_init), (search_action_changed),
1314 Remove unused 'have_url' vfunc, add 'want_uri' and 'add_uri' vfuncs.
1315 When adding a URI, want_uri gets called for each source; the one that
1316 wants it most gets the URI passed to its add_uri method.
1319 * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb),
1320 (rb_shell_guess_source_for_uri), (rb_shell_add_uri),
1321 (handle_playlist_entry_cb), (rb_shell_load_uri):
1322 * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
1323 Use want_uri and add_uri to simplify and make generic
1324 rb_shell_add_uri, rb_shell_load_uri, various playlist parsing code.
1326 If a source that returns TRUE from try_playlist wants all the URIs in
1327 the playlist, give it the playlist URI instead. This retains the
1328 existing behaviour for adding iradio playlists.
1330 * bindings/python/rb.defs: Update for above changes.
1334 2006-07-31 James Livingston <doclivingston@gmail.com>
1337 * data/generate-keys.sh: fix the build I broke with the last commit.
1340 2006-07-31 James Livingston <doclivingston@gmail.com>
1342 * data/rhythmbox.applications: remove from cvs, as it hasn't been used
1343 in a long time. Fixes #349179.
1345 2006-07-30 James Livingston <doclivingston@gmail.com>
1347 * lib/rb-util.c: (rb_gvalue_compare), (rb_value_array_append_data):
1348 * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
1349 * rhythmdb/rhythmdb.c: (rhythmdb_finalize): more minor leak fixes
1351 2006-07-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
1353 * sources/rb-browser-source.c: (rb_browser_source_do_query):
1354 Don't tell the browser the query is still pending when doing a subset
1355 search. Fixes #348617 again.
1357 2006-07-30 James Livingston <doclivingston@gmail.com>
1359 * bindings/python/rb.override: remove an extraneous _wrap_ from the
1360 override definition. Fixes #348893.
1362 2006-07-30 James Livingston <doclivingston@gmail.com>
1364 * lib/eel-gconf-extensions.c: (eel_gconf_handle_error): don't use
1365 rb_error_dialog, as it's above this in the stack.
1367 * lib/rb-util.c: (rb_gvalue_compare):
1368 * lib/rb-util.h: change the return type to int, as we're returning
1371 * rhythmdb/rhythmdb.c: (rhythmdb_finalize):
1372 * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1373 (rb_query_creator_set_sorting): minor leak fixes
1375 2006-07-28 James Livingston <doclivingston@gmail.com>
1377 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1378 (rhythmdb_tree_finalize), (rhythmdb_tree_parser_end_element),
1379 (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_new_internal),
1380 (get_or_create_genre), (remove_entry_from_album),
1381 (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1382 (rhythmdb_tree_entry_delete_by_type), (conjunctive_query),
1383 (rhythmdb_tree_entry_lookup_by_location),
1384 (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1385 (rhythmdb_hash_tree_foreach),
1386 (rhythmdb_tree_entry_type_registered): actually make RhythmDBTree
1387 threadsafe. Fix a nasty problem if the _foreach callback function
1388 caused the addition/removal of entries.
1390 2006-07-27 Jonathan Matthew <jonathan@kaolin.wh9.net>
1392 * widgets/rb-entry-view.c: (rb_entry_view_set_model_internal):
1393 Clear selection before changing our idea of the model. Fixes crashes
1394 on model changes while playing.
1396 2006-07-27 James Livingston <doclivingston@gmail.com>
1398 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_type_registered): add
1399 a missing rb_refstring_unref.
1401 * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
1402 (rhythmdb_process_file_deleted): use rb_refstring_unref not g_free:
1403 oops. should hopefully fix the crash reported on #347425.
1405 2006-07-27 James Livingston <doclivingston@gmail.com>
1407 * backends/gstreamer/rb-encoder-gst.c:
1408 (get_profile_from_mime_type): fix encoding error issue, from #310774.
1410 * rhythmdb/rb-refstring.c: (rb_refstring_unref): Fix potential
1411 thread-safety issue.
1413 2006-07-27 James Livingston <doclivingston@gmail.com>
1415 * rhythmdb/rb-refstring.c: (rb_refstring_find):
1416 * rhythmdb/rb-refstring.h: add a new function which returns the
1417 RBRefString that matches a string, but never creates a new one.
1419 * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
1420 (monitor_entry_file), (rhythmdb_check_changed_file),
1421 (rhythmdb_directory_change_cb):
1422 * rhythmdb/rhythmdb-private.h:
1423 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
1424 (unparent_entries), (free_unknown_entries),
1425 (rhythmdb_tree_parser_start_element),
1426 (rhythmdb_tree_parser_end_element), (save_entry),
1427 (save_unknown_entry_type), (rhythmdb_tree_entry_new),
1428 (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
1429 (remove_one_song), (rhythmdb_tree_entry_lookup_by_location),
1430 (rhythmdb_tree_entry_type_registered):
1431 * rhythmdb/rhythmdb.c: (rhythmdb_execute_multi_stat_info_cb),
1432 (rhythmdb_event_free), (sync_entry_changed), (rhythmdb_entry_new),
1433 (rhythmdb_entry_example_new), (rhythmdb_entry_finalize),
1434 (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1435 (rhythmdb_process_metadata_load),
1436 (rhythmdb_process_file_created_or_modified),
1437 (rhythmdb_process_file_deleted), (rhythmdb_execute_stat_info_cb),
1438 (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
1439 (action_thread_main), (rhythmdb_entry_set_internal),
1440 (rhythmdb_entry_move_to_trash_set_error),
1441 (rhythmdb_entry_move_to_trash),
1442 (rhythmdb_entry_lookup_by_location),
1443 (rhythmdb_entry_lookup_by_location_refstring),
1444 (default_sync_metadata), (rhythmdb_entry_get_string),
1445 (rhythmdb_entry_get_refstring):
1446 * rhythmdb/rhythmdb.h:
1447 * shell/rb-shell.c: (rb_shell_db_entry_added_cb):
1448 * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1449 (rb_playlist_source_row_deleted),
1450 (rb_playlist_source_entry_added_cb),
1451 (rb_playlist_source_location_in_map),
1452 (rb_playlist_source_add_to_map): Make the LOCATION field of
1453 RhythmDBEntry be a RBRefString instead, which reduces some of the
1454 memory-fragmentation on startup and saves RBStaticPlaylistSource
1455 duplicating all the strings.
1457 2006-07-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
1459 * rhythmdb/rhythmdb-query-model.c:
1460 (rhythmdb_query_model_copy_contents), (rhythmdb_query_model_chain):
1461 * rhythmdb/rhythmdb-query-model.h:
1462 Add function to copy contents from one query model to another,
1463 filtered by the destination model's query.
1465 * sources/rb-browser-source.c: (rb_browser_source_do_query):
1466 Use the above to create a new query model for subset searches, rather
1467 than filtering the existing model. Fixes #348617.
1469 2006-07-25 James Livingston <doclivingston@gmail.com>
1471 * rhythmdb/rhythmdb-query-model.c:
1472 (rhythmdb_query_model_entry_changed_cb): Make hidden entries not get
1473 lost from static playlists. Yet again. Fixes #323095.
1475 * tests/test-rhythmdb.c: (START_TEST), (rhythmdb_suite): add a test
1476 case for the above, so that we should know if a change will break it
1479 2006-07-25 William Jon McCann <mccann@jhu.edu>
1481 * data/rhythmbox.schemas: Fix for last commit.
1483 * podcast/rb-podcast-manager.c:
1484 (rb_podcast_manager_download_entry),
1485 (rb_podcast_manager_start_sync), (rb_podcast_manager_update_feeds),
1486 (rb_podcast_manager_db_entry_deleted_cb):
1487 * rhythmdb/rhythmdb-property-model.c:
1488 (rhythmdb_property_model_set_query_model_internal),
1489 (rhythmdb_property_model_set_property),
1490 (rhythmdb_property_model_finalize),
1491 (rhythmdb_property_model_drag_data_get):
1492 * rhythmdb/rhythmdb-query-model.c:
1493 (rhythmdb_query_model_set_query_internal),
1494 (rhythmdb_query_model_set_property),
1495 (rhythmdb_query_model_get_property), (rhythmdb_query_model_chain):
1496 * rhythmdb/rhythmdb-query-model.h:
1497 * sources/rb-browser-source.c: (rb_browser_source_dispose),
1498 (rb_browser_source_do_query):
1499 * sources/rb-import-errors-source.c:
1500 (rb_import_errors_source_constructor):
1501 * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
1502 (rb_iradio_source_constructor), (rb_iradio_source_set_property),
1503 (rb_iradio_source_get_property), (rb_iradio_source_add_station),
1504 (impl_search), (impl_get_status),
1505 (rb_iradio_source_songs_show_popup_cb), (genre_selection_reset_cb),
1506 (rb_iradio_source_show_browser), (rb_iradio_source_do_query),
1507 (handle_playlist_entry_cb), (rb_iradio_source_add_from_playlist):
1508 * sources/rb-missing-files-source.c:
1509 (rb_missing_files_source_constructor),
1510 (rb_missing_files_source_dispose), (rb_missing_files_source_new):
1511 * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize):
1512 * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
1513 (rb_playlist_source_dispose), (rb_playlist_source_finalize),
1514 (rb_playlist_source_save_playlist),
1515 (rb_playlist_source_new_from_xml),
1516 (rb_playlist_source_save_to_xml),
1517 (rb_playlist_source_setup_entry_view),
1518 (rb_playlist_source_set_query_model), (rb_playlist_source_get_db),
1519 (rb_playlist_source_get_query_model),
1520 (rb_playlist_source_mark_dirty),
1521 (rb_playlist_source_location_in_map),
1522 (rb_playlist_source_add_to_map):
1523 * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
1524 (rb_podcast_source_finalize), (rb_podcast_source_constructor),
1525 (rb_podcast_source_set_property), (rb_podcast_source_get_property),
1526 (impl_delete), (rb_podcast_source_state_prefs_sync),
1527 (rb_podcast_source_show_browser), (rb_podcast_source_do_query),
1528 (impl_get_config_widget), (rb_podcast_source_add_feed),
1529 (rb_podcast_source_cmd_download_post),
1530 (rb_podcast_source_cmd_cancel_download),
1531 (rb_podcast_source_cmd_delete_feed),
1532 (rb_podcast_source_cmd_update_feed),
1533 (rb_podcast_source_cmd_update_all),
1534 (rb_podcast_source_cb_interval_changed_cb),
1535 (rb_podcast_source_load_finish_cb), (rb_podcast_source_shutdown),
1536 (rb_podcast_source_entry_activated_cb):
1537 * sources/rb-source.c: (rb_source_finalize),
1538 (rb_source_set_query_model_internal), (rb_source_set_property),
1539 (default_get_status):
1540 * sources/rb-static-playlist-source.c:
1541 (rb_static_playlist_source_dispose),
1542 (rb_static_playlist_source_finalize),
1543 (rb_static_playlist_source_constructor),
1544 (rb_static_playlist_source_do_query):
1545 * widgets/rb-entry-view.c: (rb_entry_view_finalize),
1546 (rb_entry_view_set_shell_player_internal),
1547 (rb_entry_view_set_model_internal), (rb_entry_view_get_property),
1548 (rb_entry_view_set_model), (rb_entry_view_append_column),
1549 (rb_entry_view_insert_column_custom), (rb_entry_view_constructor),
1550 (rb_entry_view_set_state):
1551 * widgets/rb-library-browser.c: (rb_library_browser_constructor),
1552 (rb_library_browser_finalize), (rb_library_browser_new),
1553 (update_browser_property_visibilty), (view_selection_reset_cb),
1554 (reset_view_cb), (construct_query_cb), (ignore_selection_changes),
1555 (restore_selection), (rebuild_child_model),
1556 (rb_library_browser_set_selection), (rb_library_browser_set_model):
1557 * widgets/rb-property-view.c:
1558 (rb_property_view_set_model_internal),
1559 (rb_property_view_set_selection_mode), (rb_property_view_reset),
1560 (rb_property_view_get_model), (rb_property_view_set_model),
1561 (rb_property_view_get_num_properties),
1562 (rb_property_view_set_selection),
1563 (rb_property_view_append_column_custom),
1564 (rb_property_view_set_search_func):
1565 Fix some more leaks. Mostly RhythmDBQueryModel ref leaks.
1568 2006-07-25 William Jon McCann <mccann@jhu.edu>
1570 * sources/rb-playlist-source-recorder.c: (update_speed_combobox):
1571 Work around a small n-c-b API change.
1573 2006-07-25 James Livingston <doclivingston@gmail.com>
1575 * data/rhythmbox.schemas: fix the schema to use the right plugin keys
1577 * rhythmdb/rhythmdb.c: (rhythmdb_finalize),
1578 (rhythmdb_load_thread_main), (rhythmdb_load): release entry refs when
1579 aborting entry-emission on finalise
1581 2006-07-25 James Livingston <doclivingston@gmail.com>
1583 * shell/rb-play-order-random.c: (rb_random_play_order_go_next): fix
1584 warning when entry is NULL.
1586 2006-07-25 James Livingston <doclivingston@gmail.com>
1588 * help/sv/.cvsignore:
1590 * plugins/generic-player/.cvsignore:
1591 * remote/.cvsignore:
1592 * remote/dbus/.cvsignore:
1594 * tests/.cvsignore: more .cvsignore updates
1596 2006-07-24 James Livingston <doclivingston@gmail.com>
1598 * widgets/eggtrayicon.c: (egg_tray_icon_class_init),
1599 (transparent_expose_event), (make_transparent_again),
1600 (make_transparent), (egg_tray_icon_realize), (egg_tray_icon_add):
1601 apply a patch for EggTrayIcon so that it handled transparent panels
1602 correctly. Patch by DanWinship <danw@novell.com> from bug 150726.
1605 2006-07-24 James Livingston <doclivingston@gmail.com>
1607 * rhythmdb/rhythmdb-query.c: (rhythmdb_query_parse_valist): copy
1608 queries rather than taking ownership when parsing a subquery. Fixed a
1609 crash exposed by the recent leak fixes.
1611 * doc/reference/tmpl/disclosure-widget.sgml:
1612 * doc/reference/tmpl/rb-debug.sgml:
1613 * doc/reference/tmpl/rb-metadata.sgml:
1614 * doc/reference/tmpl/rb-play-order.sgml:
1615 * doc/reference/tmpl/rb-playlist-manager.sgml:
1616 * doc/reference/tmpl/rb-playlist-source.sgml:
1617 * doc/reference/tmpl/rb-shell-player.sgml:
1618 * doc/reference/tmpl/rb-shell.sgml:
1619 * doc/reference/tmpl/rb-song-display-box.sgml:
1620 * doc/reference/tmpl/rhythmbox-unused.sgml:
1621 * doc/reference/tmpl/rhythmdb.sgml: Update all the gtk-doc crap
1623 2006-07-24 James Livingston <doclivingston@gmail.com>
1626 * plugins/artdisplay/.cvsignore:
1627 * plugins/artdisplay/artdisplay/.cvsignore:
1628 * plugins/lyrics/.cvsignore:
1629 * plugins/pythonconsole/.cvsignore:
1630 * plugins/rb/.cvsignore: add/update various .cvsignore files
1632 2006-07-24 James Livingston <doclivingston@gmail.com>
1634 * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1635 (rb_refstring_ref): don't emit critical warnings when the refstring
1636 is NULL, as that happens often for podcast metadata.
1638 * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence): add
1639 missing rhythmdb_entry_ref call
1641 2006-07-23 William Jon McCann <mccann@jhu.edu>
1643 * bindings/python/rb.override:
1644 * daapsharing/rb-daap-share.c: (add_playlist_entry_to_mlcl):
1645 * plugins/cd-recorder/rb-cd-recorder-plugin.c:
1646 (playlist_row_inserted_cb):
1647 * plugins/generic-player/rb-psp-source.c: (visit_playlist_dirs):
1648 * plugins/rb-plugin-manager.c:
1649 * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
1650 (rb_podcast_manager_copy_post),
1651 (rb_podcast_manager_db_entry_deleted_cb),
1652 (rb_podcast_manager_insert_feed):
1653 * rhythmdb/rb-refstring.c: (rb_refstring_unref),
1654 (rb_refstring_ref), (rb_refstring_get_sort_key):
1655 * rhythmdb/rhythmdb-private.h:
1656 * rhythmdb/rhythmdb-property-model.c:
1657 (rhythmdb_property_model_set_property),
1658 (rhythmdb_property_model_get_property),
1659 (rhythmdb_property_model_finalize), (rhythmdb_property_model_new),
1660 (rhythmdb_property_model_row_inserted_cb),
1661 (rhythmdb_property_model_prop_changed_cb),
1662 (rhythmdb_property_model_compare),
1663 (rhythmdb_property_model_insert),
1664 (rhythmdb_property_model_iter_from_string),
1665 (rhythmdb_property_model_get_column_type),
1666 (rhythmdb_property_model_get_iter),
1667 (rhythmdb_property_model_get_value),
1668 (rhythmdb_property_model_iter_nth_child), (query_model_cb),
1669 (rhythmdb_property_model_enable_drag):
1670 * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_init),
1671 (rhythmdb_query_model_constructor), (rhythmdb_query_model_dispose),
1672 (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
1673 (rhythmdb_query_model_chain),
1674 (rhythmdb_query_model_entry_added_cb),
1675 (rhythmdb_query_model_entry_changed_cb),
1676 (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
1677 (rhythmdb_query_model_add_entry),
1678 (rhythmdb_query_model_insert_into_main_list),
1679 (rhythmdb_query_model_insert_into_limited_list),
1680 (rhythmdb_query_model_remove_from_main_list),
1681 (rhythmdb_query_model_remove_from_limited_list),
1682 (rhythmdb_query_model_update_limited_entries),
1683 (rhythmdb_query_model_emit_reorder),
1684 (rhythmdb_query_model_do_reorder),
1685 (rhythmdb_query_model_do_insert),
1686 (rhythmdb_query_model_move_entry),
1687 (rhythmdb_query_model_remove_entry),
1688 (rhythmdb_query_model_entry_to_iter),
1689 (rhythmdb_query_model_iter_to_entry),
1690 (rhythmdb_query_model_get_previous_from_entry),
1691 (rhythmdb_query_model_row_draggable),
1692 (rhythmdb_query_model_drag_data_delete),
1693 (rhythmdb_query_model_drag_data_get),
1694 (rhythmdb_query_model_drag_data_received),
1695 (rhythmdb_query_model_row_drop_possible),
1696 (rhythmdb_query_model_row_drop_position),
1697 (rhythmdb_query_model_add_results),
1698 (rhythmdb_query_model_query_complete),
1699 (rhythmdb_query_model_get_column_type),
1700 (rhythmdb_query_model_get_iter), (rhythmdb_query_model_get_value),
1701 (rhythmdb_query_model_iter_nth_child),
1702 (apply_updated_entry_sequence),
1703 (rhythmdb_query_model_child_index_to_base_index),
1704 (rhythmdb_query_model_get_entry_index),
1705 (rhythmdb_query_model_base_row_inserted),
1706 (rhythmdb_query_model_base_row_deleted),
1707 (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
1708 (rhythmdb_query_model_location_sort_func),
1709 (rhythmdb_query_model_title_sort_func),
1710 (rhythmdb_query_model_album_sort_func),
1711 (rhythmdb_query_model_artist_sort_func),
1712 (rhythmdb_query_model_track_sort_func),
1713 (rhythmdb_query_model_double_ceiling_sort_func),
1714 (rhythmdb_query_model_ulong_sort_func),
1715 (rhythmdb_query_model_date_sort_func),
1716 (rhythmdb_query_model_string_sort_func),
1717 (rhythmdb_query_model_within_limit):
1718 * rhythmdb/rhythmdb-tree.c: (unparent_entries),
1719 (rhythmdb_tree_parser_start_element),
1720 (rhythmdb_tree_parser_end_element),
1721 (rhythmdb_tree_parser_characters), (rhythmdb_tree_load),
1722 (write_elt_name_open), (write_elt_name_close), (save_entry_string),
1723 (save_entry_int), (save_entry_ulong), (save_entry_boolean),
1724 (save_entry_uint64), (save_entry_double), (save_entry),
1725 (set_entry_album), (rhythmdb_tree_entry_new),
1726 (get_genres_hash_for_type), (get_or_create_genre),
1727 (get_or_create_artist), (get_or_create_album), (remove_child),
1728 (remove_entry_from_album), (rhythmdb_tree_entry_set),
1729 (rhythmdb_tree_entry_delete), (remove_one_song),
1730 (rhythmdb_tree_entry_delete_by_type),
1731 (rhythmdb_tree_evaluate_query), (search_match_properties),
1732 (evaluate_conjunctive_subquery), (do_conjunction),
1733 (conjunctive_query_songs), (clone_remove_ptr_array_index),
1734 (conjunctive_query_albums), (conjunctive_query_artists),
1735 (conjunctive_query_genre), (conjunctive_query),
1736 (split_query_by_disjunctions), (do_query_recurse),
1737 (handle_entry_match), (rhythmdb_tree_entry_lookup_by_location),
1738 (rhythmdb_tree_entry_foreach_func), (rhythmdb_tree_entry_foreach),
1739 (hash_tree_entries_foreach), (hash_tree_albums_foreach),
1740 (hash_tree_artists_foreach), (hash_tree_genres_foreach):
1741 * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
1742 (extract_gtype_from_enum_entry),
1743 (extract_nice_name_from_enum_entry), (rhythmdb_init),
1744 (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_action_free),
1745 (rhythmdb_event_free), (rhythmdb_finalize),
1746 (rhythmdb_set_property), (rhythmdb_get_property),
1747 (rhythmdb_thread_create), (free_entry_changes),
1748 (emit_entry_changed), (sync_entry_changed),
1749 (process_added_entries_cb), (process_deleted_entries_cb),
1750 (rhythmdb_commit_internal), (rhythmdb_add_timeout_commit),
1751 (rhythmdb_entry_allocate), (rhythmdb_entry_get_type_data),
1752 (rhythmdb_entry_insert), (rhythmdb_entry_new),
1753 (rhythmdb_entry_example_new), (rhythmdb_entry_ref),
1754 (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
1755 (rhythmdb_entry_is_editable), (set_props_from_metadata),
1756 (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
1757 (rhythmdb_process_metadata_load),
1758 (rhythmdb_process_file_created_or_modified),
1759 (rhythmdb_process_file_deleted), (rhythmdb_process_events),
1760 (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat),
1761 (queue_stat_uri), (queue_stat_uri_tad), (rhythmdb_execute_load),
1762 (rhythmdb_entry_get), (entry_to_rb_metadata), (rhythmdb_add_uri),
1763 (rhythmdb_add_uri_with_type), (rhythmdb_entry_set),
1764 (record_entry_change), (rhythmdb_entry_set_internal),
1765 (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
1766 (rhythmdb_entry_move_to_trash_cb),
1767 (rhythmdb_entry_move_to_trash_set_error),
1768 (rhythmdb_entry_move_to_trash), (rhythmdb_entry_delete_by_type),
1769 (rhythmdb_nice_elt_name_from_propid),
1770 (rhythmdb_propid_from_nice_elt_name),
1771 (rhythmdb_entry_lookup_by_location), (rhythmdb_entry_foreach),
1772 (rhythmdb_evaluate_query), (rhythmdb_emit_entry_deleted),
1773 (rhythmdb_compute_status_normal), (default_sync_metadata),
1774 (rhythmdb_entry_register_type), (rhythmdb_entry_type_foreach),
1775 (rhythmdb_entry_type_get_by_name), (song_can_sync_metadata),
1776 (podcast_get_playback_uri), (podcast_data_destroy),
1777 (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
1778 (rhythmdb_entry_dup_string), (rhythmdb_entry_get_string),
1779 (rhythmdb_entry_get_boolean), (rhythmdb_entry_get_uint64),
1780 (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
1781 (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_double),
1782 (rhythmdb_entry_get_playback_uri), (rhythmdb_get_property_type):
1783 * rhythmdb/rhythmdb.h:
1784 * shell/rb-play-order-linear-loop.c:
1785 (rb_linear_play_order_loop_get_next),
1786 (rb_linear_play_order_loop_get_previous):
1787 * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
1788 (rb_linear_play_order_get_previous):
1789 * shell/rb-play-order-queue.c: (rb_queue_play_order_get_previous):
1790 * shell/rb-play-order-random.c: (get_query_model_contents):
1791 * shell/rb-play-order-shuffle.c: (handle_query_model_changed),
1792 (get_query_model_contents):
1793 * shell/rb-play-order.c: (rb_play_order_constructor),
1794 (rb_play_order_finalize),
1795 (rb_play_order_set_playing_entry_internal),
1796 (rb_play_order_set_property), (rb_play_order_new),
1797 (rb_play_order_get_player), (rb_play_order_get_source),
1798 (rb_play_order_get_db), (rb_play_order_get_query_model),
1799 (rb_play_order_player_is_playing),
1800 (rb_play_order_set_playing_entry),
1801 (rb_play_order_get_playing_entry),
1802 (rb_play_order_playing_source_changed),
1803 (rb_play_order_query_model_changed),
1804 (rb_play_order_entry_added_cb), (rb_play_order_row_deleted_cb),
1805 (default_has_next), (default_has_previous),
1806 (sync_playing_entry_cb), (default_playing_entry_removed),
1807 (rb_play_order_has_next), (rb_play_order_get_next),
1808 (rb_play_order_go_next), (rb_play_order_has_previous),
1809 (rb_play_order_get_previous), (rb_play_order_go_previous),
1810 (rb_play_order_model_not_empty),
1811 (rb_play_order_update_have_next_previous):
1812 * shell/rb-playlist-manager.c: (rb_playlist_manager_is_dirty),
1813 (rb_playlist_manager_save_playlists),
1814 (rb_playlist_manager_set_automatic_playlist),
1815 (rb_playlist_manager_cmd_edit_automatic_playlist),
1816 (_queue_track_cb), (rb_playlist_manager_get_playlists),
1817 (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name):
1818 * shell/rb-shell-clipboard.c: (add_playlist_to_menu):
1819 * shell/rb-shell-player.c: (rb_shell_player_constructor),
1820 (volume_pre_unmount_cb), (reemit_playing_signal),
1821 (notify_playing_idle), (rb_shell_player_open_playlist_url),
1822 (rb_shell_player_handle_eos_unlocked),
1823 (rb_shell_player_handle_eos), (rb_shell_player_init),
1824 (rb_shell_player_new), (rb_shell_player_get_playing_entry),
1825 (playlist_entry_cb), (rb_shell_player_open_entry),
1826 (rb_shell_player_play), (do_next_idle), (gconf_play_order_changed),
1827 (rb_shell_player_set_play_order),
1828 (rb_shell_player_set_playback_state),
1829 (rb_shell_player_sync_play_order),
1830 (rb_shell_player_play_order_update_cb),
1831 (rb_shell_player_jump_to_current), (swap_playing_source),
1832 (rb_shell_player_do_previous), (rb_shell_player_do_next),
1833 (rb_shell_player_do_previous_or_seek), (rb_shell_player_playpause),
1834 (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
1835 (rb_shell_player_entry_activated_cb),
1836 (rb_shell_player_property_row_activated_cb),
1837 (rb_shell_player_entry_changed_cb),
1838 (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
1839 (rb_shell_player_pause),
1840 (rb_shell_player_get_playing_song_duration),
1841 (rb_shell_player_error), (error_cb), (tick_cb),
1842 (info_available_cb), (buffering_cb),
1843 (rb_shell_player_get_playing_path), (grab_mmkey), (filter_mmkeys):
1844 * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
1845 (rb_shell_jump_to_current):
1846 * sources/rb-auto-playlist-source.c:
1847 (rb_auto_playlist_source_finalize), (impl_receive_drag),
1848 (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query),
1849 (rb_auto_playlist_source_get_query):
1850 * sources/rb-auto-playlist-source.h:
1851 * sources/rb-browser-source.c: (rb_browser_source_do_query):
1852 * sources/rb-import-errors-source.c:
1853 (rb_import_errors_source_constructor):
1854 * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
1855 * sources/rb-library-source.c: (filepath_parse_pattern):
1856 * sources/rb-missing-files-source.c:
1857 (rb_missing_files_source_constructor):
1858 * sources/rb-play-queue-source.c:
1859 (rb_play_queue_source_clear_queue),
1860 (rb_play_queue_source_track_info_cell_data_func):
1861 * sources/rb-playlist-source.c: (rb_playlist_source_set_property),
1862 (rb_playlist_source_get_property), (playlist_iter_func),
1863 (rb_playlist_source_save_to_xml), (rb_playlist_source_row_deleted),
1864 (rb_playlist_source_track_cell_data_func):
1865 * sources/rb-podcast-source.c: (construct_query_from_selection),
1866 (rb_podcast_source_post_status_cell_data_func),
1867 (rb_podcast_source_post_feed_cell_data_func),
1868 (rb_podcast_source_feed_title_search_func),
1869 (rb_podcast_source_post_date_cell_data_func):
1870 * sources/rb-source.c: (default_get_status),
1871 (rb_source_get_status), (rb_source_browser_toggled),
1872 (rb_source_update_play_statistics), (rb_source_search),
1873 (rb_source_get_config_widget), (default_add_to_queue),
1874 (rb_source_add_to_queue), (rb_source_receive_drag),
1875 (rb_source_gather_hash_keys):
1876 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
1877 (rb_sourcelist_model_is_row_visible),
1878 (rb_sourcelist_model_row_is_separator),
1879 (rb_sourcelist_model_drag_data_received), (path_is_droppable),
1880 (path_is_reorderable), (rb_sourcelist_model_row_draggable),
1881 (rb_sourcelist_model_drag_data_get):
1882 * sources/rb-sourcelist.c: (rb_sourcelist_append),
1883 (match_source_to_iter), (rb_sourcelist_source_to_iter),
1884 (rb_sourcelist_visible_source_to_iter),
1885 (rb_sourcelist_edit_source_name), (set_source_playing),
1886 (rb_sourcelist_set_playing_source), (rb_sourcelist_remove),
1887 (rb_sourcelist_select), (rb_sourcelist_selection_changed_cb),
1888 (drop_received_cb), (row_activated_cb), (emit_show_popup),
1889 (key_release_cb), (name_notify_cb), (visibility_notify_cb),
1890 (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
1891 * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
1892 (rb_static_playlist_source_add_location_internal),
1893 (rb_static_playlist_source_row_inserted):
1894 * widgets/rb-entry-view.c: (type_ahead_search_func),
1895 (rb_entry_view_finalize), (rb_entry_view_set_model),
1896 (rb_entry_view_playing_cell_data_func),
1897 (rb_entry_view_rating_cell_data_func),
1898 (rb_entry_view_long_cell_data_func),
1899 (rb_entry_view_play_count_cell_data_func),
1900 (rb_entry_view_duration_cell_data_func),
1901 (rb_entry_view_year_cell_data_func),
1902 (rb_entry_view_quality_cell_data_func),
1903 (rb_entry_view_location_cell_data_func),
1904 (rb_entry_view_string_cell_data_func),
1905 (rb_entry_view_sync_sorting), (rb_entry_view_set_sorting_type),
1906 (rb_entry_view_get_sorting_order),
1907 (rb_entry_view_set_sorting_order), (rb_entry_view_append_column),
1908 (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
1909 (rb_entry_view_rated_cb), (rb_entry_view_pixbuf_clicked_cb),
1910 (rb_entry_view_playing_song_changed), (harvest_entries),
1911 (rb_entry_view_button_press_cb), (rb_entry_view_row_activated_cb),
1912 (rb_entry_view_row_inserted_cb), (rb_entry_view_row_deleted_cb),
1913 (set_column_visibility):
1914 * widgets/rb-entry-view.h:
1915 * widgets/rb-header.c: (rb_header_new),
1916 (rb_header_set_playing_entry), (rb_header_set_title):
1917 * widgets/rb-library-browser.c: (rebuild_child_model),
1918 (rb_library_browser_set_model):
1919 * widgets/rb-property-view.c:
1920 (rb_property_view_set_model_internal), (rb_property_view_finalize),
1921 (rb_property_view_set_property), (rb_property_view_get_property),
1922 (rb_property_view_reset), (rb_property_view_get_model),
1923 (rb_property_view_set_model), (rb_property_view_row_activated_cb),
1924 (rb_property_view_button_press_cb):
1925 * widgets/rb-query-creator.c: (rb_query_creator_constructor),
1926 (rb_query_creator_get_property), (rb_query_creator_load_query),
1927 (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
1928 (rb_query_creator_get_query), (rb_query_creator_get_limit),
1929 (rb_query_creator_get_sort_order), (limit_toggled_cb),
1930 (lookup_row_by_widget), (remove_button_click_cb),
1931 (add_button_click_cb), (create_property_option_menu):
1932 * widgets/rb-song-info.c: (rb_song_info_constructor),
1933 (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
1934 (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
1935 (rb_song_info_update_rating), (rb_song_info_sync_entry_single):
1936 Fix more leaks. Mostly RhythmDBEntry ref leaks. From #347446
1938 2006-07-23 Jonathan Matthew <jonathan@kaolin.wh9.net>
1940 * shell/rb-shell-player.c: (rb_shell_player_class_init),
1941 (rb_shell_player_get_property):
1942 Add a property providing access to the player backend object.
1944 2006-07-23 James Livingston <doclivingston@gmail.com>
1946 * shell/rb-play-order-random.c: (rb_random_play_order_finalize),
1947 (get_history), (rb_random_filter_history),
1948 (rb_random_playing_entry_changed), (rb_random_db_entry_deleted):
1949 remove the tentative history, since it appears to be a remanent from
1950 older play order code. The only thing it was doing was using up
1951 CPU-time and memory. From #345857
1953 2006-07-23 James Livingston <doclivingston@gmail.com>
1955 patch by: Alex Lancaster <alexl@users.sourceforge.net>
1957 * shell/main.c: (main):
1958 * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
1959 (rb_playlist_manager_finalize), (rb_playlist_manager_set_property),
1960 (rb_playlist_manager_get_property), (rb_playlist_manager_new),
1961 (rb_playlist_manager_load_playlists),
1962 (rb_playlist_manager_save_data):
1963 * shell/rb-playlist-manager.h:
1964 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
1965 (rb_shell_get_property), (rb_shell_sync_state),
1966 (idle_save_playlist_manager), (rb_shell_finalize), (rb_shell_new),
1967 (construct_sources), (idle_handle_load_complete):
1968 * shell/rb-shell.h: Add a command-line option for changing the
1969 playlist xml file to use, similar to the rhythmdb one. Fixes #343659.
1971 2006-07-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
1973 * daapsharing/rb-daap-share.c: (databases_cb):
1974 Make sure we set status codes on HTTP responses.
1976 2006-07-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
1979 * daapsharing/rb-daap-share.c: (add_entry_to_mlcl),
1980 (chunked_message_finished), (send_chunked_file),
1981 (mapped_file_message_finished), (send_mapped_file), (databases_cb):
1982 Use GMappedFile to send local files to DAAP clients where possible.
1983 iTunes can't seek properly in files sent using chunked transfer
1984 encoding. Also remove the useless bitrate calculation code, as we
1985 never even used the result anyway. From #330410.
1987 2006-07-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
1989 patch by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
1991 * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
1992 Enable multiple selection for 'import file'. Fixes #347478.
1994 2006-07-20 Claudio Saavedra <csaavedra@alumnos.utalca.cl>
1996 * metadata/rb-metadata-dbus-client.c: (kill_metadata_service):
1997 * metadata/rb-metadata-dbus-service.c: (main): Replace calls to
1998 deprecated dbus_connection_disconnect () with dbus_connection_close ().
2001 2006-07-20 James Livingston <doclivingston@gmail.com>
2003 * widgets/rb-entry-view.c: (type_ahead_search_func): check the strings
2004 aren't NULL before calling strstr. Fixes #347998.
2006 2006-07-19 James Livingston <doclivingston@gmail.com>
2008 patch by: Alex Lancaster <alexl@users.sourceforge.net>
2010 * metadata/sj-metadata-musicbrainz.c: (lookup_cd): accept dates from
2011 MB that only have years. Fixes #347906.
2013 2006-07-19 James Livingston <doclivingston@gmail.com>
2015 * rhythmdb/rhythmdb-private.h:
2016 * rhythmdb/rhythmdb.c: (rhythmdb_init),
2017 (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2018 (_shutdown_foreach_swapped), (rhythmdb_shutdown),
2019 (rhythmdb_finalize), (timeout_rhythmdb_commit),
2020 (rhythmdb_add_timeout_commit), (rhythmdb_execute_stat_info_cb),
2021 (rhythmdb_execute_stat), (queue_stat_uri),
2022 (rhythmdb_sync_library_idle), (rhythmdb_load_thread_main),
2023 (rhythmdb_load), (rhythmdb_entry_register_type),
2024 (rhythmdb_entry_register_type_alias): Keep track of outstanding
2025 asynchronous vfs operations, and cancel them when shutting down the
2026 DB. Also remove outstanding timeoud/idle callbacks. Fixes #347985
2028 * tests/test-rhythmdb.c: (mark_signal), (set_waiting_signal),
2029 (test_rhythmdb_shutdown): wait until the db has been finalised before
2030 continuing on to the next test.
2032 2006-07-19 James Livingston <doclivingston@gmail.com>
2034 * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): use the
2035 right thing in the #ifdef. From #347832.
2037 2006-07-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
2039 * rhythmdb/rhythmdb-query.c: (rhythmdb_query_to_string):
2040 Fix compile warning.
2042 2006-07-18 Jonathan Matthew <jonathan@kaolin.wh9.net>
2044 * rhythmdb/rhythmdb-query-model.c:
2045 (rhythmdb_query_model_set_property),
2046 (rhythmdb_query_model_reapply_query_cb):
2047 Ignore old query == new query case.
2048 Fixes auto playlists with time-relative queries.
2050 * rhythmdb/rhythmdb-query.c: (prop_gvalue_to_string),
2051 (write_encoded_gvalue), (rhythmdb_query_is_time_relative),
2052 (rhythmdb_query_to_string):
2053 * rhythmdb/rhythmdb.h:
2054 Add debug helper for printing queries in case someone needs it again.
2056 2006-07-18 James Livingston <doclivingston@gmail.com>
2058 patch by: Ståle Lyngaas <staale@lyngaas.com>
2059 * sources/rb-audiocd-source.c: store the MB track ids in the database.
2062 * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): and
2063 write then into files.
2065 2006-07-17 William Jon McCann <mccann@jhu.edu>
2067 * daapsharing/rb-daap-connection.c:
2068 (rb_daap_connection_set_property):
2069 * daapsharing/rb-daap-share.c: (rb_daap_share_set_db),
2070 (rb_daap_share_set_playlist_manager), (rb_daap_share_set_property),
2071 (add_playlist_to_mlcl), (databases_cb):
2072 * daapsharing/rb-daap-sharing.c: (create_share):
2073 * iradio/rb-new-station-dialog.c:
2074 (rb_new_station_dialog_class_init), (rb_new_station_dialog_new):
2075 * iradio/rb-station-properties-dialog.c:
2076 (rb_station_properties_dialog_finalize),
2077 (rb_station_properties_dialog_set_property),
2078 (rb_station_properties_dialog_get_current_entry):
2079 * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
2080 * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data):
2081 * plugins/generic-player/rb-generic-player-source.c:
2082 (rb_generic_player_source_dispose), (rb_generic_player_source_new),
2083 (handle_playlist_entry_cb):
2084 * plugins/generic-player/rb-nokia770-source.c:
2085 (rb_nokia770_source_new), (hal_udi_is_nokia770):
2086 * plugins/generic-player/rb-psp-source.c: (impl_get_mount_path),
2087 (visit_playlist_dirs), (hal_udi_is_psp):
2088 * podcast/rb-podcast-manager.c:
2089 * podcast/rb-podcast-properties-dialog.c:
2090 (rb_podcast_properties_dialog_finalize),
2091 (rb_podcast_properties_dialog_set_entry_view),
2092 (rb_podcast_properties_dialog_set_property):
2093 * rhythmdb/rhythmdb-property-model.c:
2094 * rhythmdb/rhythmdb-query-model.c:
2095 (rhythmdb_query_model_set_property),
2096 (rhythmdb_query_model_reapply_query_cb):
2097 * rhythmdb/rhythmdb-query.c: (rhythmdb_query_deserialize):
2098 * rhythmdb/rhythmdb-tree.c: (split_query_by_disjunctions):
2099 * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
2100 (rhythmdb_event_free), (rhythmdb_shutdown),
2101 (rhythmdb_thread_create), (action_thread_main),
2102 (rhythmdb_do_full_query_async_parsed),
2103 (rhythmdb_do_full_query_internal):
2104 * shell/main.c: (main):
2105 * shell/rb-play-order-random.c: (rb_random_play_order_go_next):
2106 * shell/rb-play-order.c: (rb_play_order_finalize),
2107 (rb_play_order_set_player),
2108 (rb_play_order_set_playing_entry_internal),
2109 (rb_play_order_set_property),
2110 (rb_play_order_playing_source_changed),
2111 (rb_play_order_query_model_changed):
2112 * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
2113 (rb_playlist_manager_set_source),
2114 (rb_playlist_manager_set_shell_internal),
2115 (rb_playlist_manager_set_property):
2116 * shell/rb-removable-media-manager.c:
2117 (rb_removable_media_manager_set_property),
2118 (rb_removable_media_manager_set_uimanager),
2119 (rb_removable_media_manager_cmd_eject_medium),
2120 (rb_removable_media_manager_cmd_copy_tracks):
2121 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_finalize),
2122 (rb_shell_clipboard_new), (rb_shell_clipboard_sync),
2123 (rb_shell_clipboard_set),
2124 (rb_shell_clipboard_cmd_add_to_playlist_new),
2125 (rb_shell_clipboard_playlist_add_cb),
2126 (rb_shell_clipboard_playlist_renamed_cb),
2127 (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
2128 (rebuild_playlist_menu):
2129 * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2130 (rb_shell_player_set_queue_source_internal),
2131 (rb_shell_player_finalize), (rb_shell_player_set_play_order),
2132 (rb_shell_player_entry_activated_cb),
2133 (rb_shell_player_property_row_activated_cb),
2134 (_idle_unblock_signal_cb), (rb_shell_player_playing_changed_cb):
2135 * shell/rb-shell-preferences.c: (rb_shell_preferences_new):
2136 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
2137 (rb_shell_finalize), (construct_widgets),
2138 (rb_shell_playing_from_queue_cb),
2139 (rb_shell_player_stream_song_changed_cb),
2140 (rb_shell_player_volume_changed_cb):
2141 * shell/rb-statusbar.c: (rb_statusbar_new):
2142 * shell/rb-tray-icon.c: (rb_tray_icon_finalize),
2143 (rb_tray_icon_sync_action), (rb_tray_icon_set_property):
2144 * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
2145 * sources/rb-auto-playlist-source.c:
2146 (rb_auto_playlist_source_class_init),
2147 (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
2148 (rb_auto_playlist_source_constructor), (impl_receive_drag),
2149 (rb_auto_playlist_source_do_query),
2150 (rb_auto_playlist_source_set_query),
2151 (rb_auto_playlist_source_browser_changed_cb),
2152 (search_action_changed):
2153 * sources/rb-auto-playlist-source.h:
2154 * sources/rb-browser-source.c: (rb_browser_source_finalize),
2155 (search_action_changed), (rb_browser_source_constructor),
2156 (rb_browser_source_cmd_choose_artist), (impl_delete),
2157 (rb_browser_source_browser_changed_cb),
2158 (rb_browser_source_do_query):
2159 * sources/rb-daap-source.c: (rb_daap_source_dispose),
2160 (rb_daap_source_finalize), (rb_daap_source_class_init),
2161 (rb_daap_get_icon), (rb_daap_source_new), (destroy_pixbufs),
2162 (rb_daap_sources_init), (rb_daap_sources_shutdown),
2163 (rb_daap_source_connection_cb), (rb_daap_source_activate),
2164 (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect),
2165 (rb_daap_source_get_headers):
2166 * sources/rb-import-errors-source.c:
2167 (rb_import_errors_source_constructor),
2168 (rb_import_errors_source_new), (impl_delete), (impl_get_status):
2169 * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2170 (rb_ipod_source_new), (add_rb_playlist), (add_ipod_song_to_db),
2171 (get_db_for_source), (load_ipod_db_idle_cb), (rb_ipod_load_songs),
2172 (hal_udi_is_ipod), (impl_move_to_trash), (completed_cb),
2173 (impl_paste), (impl_receive_drag):
2174 * sources/rb-iradio-source.c: (rb_iradio_source_finalize),
2175 (rb_iradio_source_constructor), (impl_get_status), (impl_delete),
2176 (impl_song_properties):
2177 * sources/rb-library-source.c: (rb_library_source_constructor),
2178 (rb_library_source_new), (impl_paste),
2179 (rb_library_source_add_child_source):
2180 * sources/rb-missing-files-source.c: (impl_delete),
2182 * sources/rb-play-queue-source.c: (rb_play_queue_source_finalize),
2183 (rb_play_queue_source_class_init),
2184 (rb_play_queue_source_constructor):
2185 * sources/rb-playlist-source.c: (rb_playlist_source_init),
2186 (rb_playlist_source_set_db), (rb_playlist_source_constructor),
2187 (rb_playlist_source_dispose), (rb_playlist_source_save_playlist),
2188 (rb_playlist_source_new_from_xml),
2189 (rb_playlist_source_save_to_xml):
2190 * sources/rb-podcast-source.c: (rb_podcast_source_init),
2191 (rb_podcast_source_dispose), (rb_podcast_source_finalize),
2192 (search_action_changed), (rb_podcast_source_constructor),
2193 (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2194 (construct_query_from_selection),
2195 (rb_podcast_source_cmd_download_post),
2196 (rb_podcast_source_cmd_cancel_download),
2197 (rb_podcast_source_cmd_delete_feed),
2198 (rb_podcast_source_start_download_cb),
2199 (rb_podcast_source_finish_download_cb),
2200 (rb_podcast_source_feed_updates_avaliable_cb),
2201 (rb_podcast_source_get_shell), (impl_can_add_to_queue),
2202 (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2204 * sources/rb-removable-media-source.c: (impl_delete_thyself):
2205 * sources/rb-source.c: (rb_source_get_property),
2206 (default_add_to_queue), (default_move_to_trash),
2207 (_rb_source_show_popup), (rb_source_gather_selected_properties),
2208 (_rb_source_register_action_group):
2209 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new),
2210 (rb_sourcelist_model_is_row_visible),
2211 (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
2212 (rb_sourcelist_model_row_draggable),
2213 (rb_sourcelist_model_drag_data_get):
2214 * sources/rb-sourcelist.c: (rb_sourcelist_finalize),
2215 (icon_notify_cb), (rb_sourcelist_append), (set_source_playing),
2216 (rb_sourcelist_remove), (button_press_cb), (name_notify_cb),
2217 (visibility_notify_cb):
2218 * sources/rb-static-playlist-source.c:
2219 (rb_static_playlist_source_class_init),
2220 (rb_static_playlist_source_init),
2221 (rb_static_playlist_source_finalize),
2222 (rb_static_playlist_source_constructor), (impl_delete),
2223 (rb_static_playlist_source_browser_changed_cb),
2224 (rb_static_playlist_source_add_location_internal),
2225 (search_action_changed):
2226 * sources/rb-static-playlist-source.h:
2227 * widgets/rb-druid.c:
2228 * widgets/rb-entry-view.c:
2229 (rb_entry_view_set_shell_player_internal),
2230 (rb_entry_view_set_model_internal), (rb_entry_view_set_property),
2231 (rb_entry_view_get_property), (rb_entry_view_new),
2232 (rb_entry_view_button_press_cb):
2233 * widgets/rb-library-browser.c: (rb_library_browser_finalize),
2234 (rb_library_browser_set_property),
2235 (rb_library_browser_get_property):
2236 * widgets/rb-query-creator.c: (rb_query_creator_new_from_query),
2237 (get_entry_for_property), (get_property_index_from_proptype):
2238 * widgets/rb-song-info.c: (rb_song_info_constructor),
2239 (rb_song_info_finalize), (rb_song_info_set_source_internal),
2240 (rb_song_info_set_property), (rb_song_info_get_property):
2242 More leak and reference counting fixes. From bug #347446.
2244 2006-07-17 James Livingston <doclivingston@gmail.com>
2246 * sources/rb-auto-playlist-source.c:
2247 (rb_auto_playlist_source_do_query): use rbythmdb_query_model_chain
2248 rather than setting the base model, as that lets us not import all the
2249 entries from the base model. This fixes some issues whether the search
2250 box wasn't filting automatic playlists.
2252 2006-07-17 James Livingston <doclivingston@gmail.com>
2254 * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix a syntax
2255 error, which caused blacklist creation to fail.
2257 2006-07-17 James Livingston <doclivingston@gmail.com>
2259 * shell/rb-shell.c: (rb_shell_quit): don't stop DAAP sharing when
2260 running with -n, because we don't start it then. Fixes a crash on
2263 2006-07-17 James Livingston <doclivingston@gmail.com>
2265 patch by: Przemysław Grzegorczyk <pgrzegorczyk@gmail.com>
2267 * data/glade/playlist-save.glade: Make the "playlist save" dialog use
2268 Save not Open for the button. Fixes #345816
2270 2006-07-17 James Livingston <doclivingston@gmail.com>
2272 patch by: Przemysław Grzegorczyk <pgrzegorczyk@gmail.com>
2274 * sources/rb-library-source.c: (impl_get_config_widget): Fix the build
2275 when track transfer is disabled. Fixes #347705
2277 2006-07-17 James Livingston <doclivingston@gmail.com>
2279 patch by: Przemysław Grzegorczyk <pgrzegorczyk@gmail.com>
2281 * sources/rb-library-source.c: (impl_get_config_widget): fix build
2282 with track transfer disabled. Fixes #347705
2284 2006-07-14 William Jon McCann <mccann@jhu.edu>
2286 * rhythmdb/rhythmdb-query-model.c:
2287 (rhythmdb_query_model_set_property):
2288 * shell/main.c: (main):
2289 * shell/rb-shell-clipboard.c: (unset_source_internal),
2290 (rb_shell_clipboard_finalize),
2291 (rb_shell_clipboard_set_source_internal),
2292 (rb_shell_clipboard_set_property), (rebuild_playlist_menu):
2293 * shell/rb-shell-player.c: (rb_shell_player_set_source_internal),
2294 (rb_shell_player_set_db_internal),
2295 (rb_shell_player_set_queue_source_internal),
2296 (rb_shell_player_finalize), (rb_shell_player_set_property):
2297 * shell/rb-shell.c: (rb_shell_finalize), (construct_sources):
2298 * sources/rb-auto-playlist-source.c:
2299 (rb_auto_playlist_source_constructor),
2300 (rb_auto_playlist_source_new_from_xml):
2301 * sources/rb-daap-source.c: (create_pixbufs):
2302 * sources/rb-ipod-source.c:
2303 * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
2304 * sources/rb-library-source.c:
2305 (rb_library_source_add_child_source):
2306 * sources/rb-play-queue-source.c:
2307 (rb_play_queue_sync_playing_state),
2308 (rb_play_queue_source_track_info_cell_data_func):
2309 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
2310 * sources/rb-podcast-source.c: (rb_podcast_source_dispose),
2311 (rb_podcast_source_finalize), (rb_podcast_source_constructor),
2312 (impl_can_add_to_queue), (impl_add_to_queue):
2313 * sources/rb-source.c: (rb_source_set_property):
2314 * sources/rb-sourcelist.c: (rb_sourcelist_append):
2315 * sources/rb-static-playlist-source.c:
2316 (rb_static_playlist_source_constructor),
2317 (rb_static_playlist_source_load_from_xml):
2318 * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
2319 * widgets/rb-entry-view.c: (rb_entry_view_init),
2320 (rb_entry_view_finalize), (rb_entry_view_append_column),
2321 (rb_entry_view_constructor):
2322 * widgets/rb-song-info.c: (rb_song_info_set_property):
2323 Fix leaks. From bug #347446.
2325 2006-07-14 William Jon McCann <mccann@jhu.edu>
2327 * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize),
2328 (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
2329 (start_pipeline), (add_encoding_pipeline), (add_tags_from_entry),
2330 (gnomevfs_allow_overwrite_cb), (new_decoded_pad_cb),
2331 (add_decoding_pipeline), (profile_bin_find_encoder),
2332 (get_profile_from_mime_type), (extract_track), (transcode_track),
2333 (rb_encoder_gst_encode):
2334 * backends/gstreamer/rb-encoder-gst.h:
2335 * backends/gstreamer/rb-player-gst.c: (rb_player_gst_init),
2336 (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
2337 (destroy_idle_signal), (process_tag), (rb_player_gst_bus_cb),
2338 (rb_player_gst_construct):
2339 * backends/gstreamer/rb-player-gst.h:
2340 * backends/rb-encoder.c: (rb_encoder_encode), (rb_encoder_cancel):
2341 * backends/rb-encoder.h:
2342 * backends/rb-player.c: (_rb_player_emit_tick):
2343 * backends/rb-player.h:
2344 * daapsharing/rb-daap-connection.c: (build_message),
2345 (actual_http_response_handler), (http_response_handler),
2346 (http_get), (entry_set_string_prop), (emit_progress_idle),
2347 (handle_server_info), (handle_database_info),
2348 (handle_song_listing), (handle_playlists),
2349 (handle_playlist_entries), (rb_daap_connection_new),
2350 (connected_cb), (rb_daap_connection_do_something),
2351 (rb_daap_connection_get_headers), (rb_daap_connection_dispose),
2352 (rb_daap_connection_get_property):
2353 * daapsharing/rb-daap-connection.h:
2354 * daapsharing/rb-daap-dialog.c: (rb_daap_password_dialog_new_run),
2355 (rb_daap_collision_dialog_new_run):
2356 * daapsharing/rb-daap-dialog.h:
2357 * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
2358 (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
2359 (DigestToString), (rb_daap_hash_generate):
2360 * daapsharing/rb-daap-hash.h:
2361 * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
2362 (resolve_cb), (browse_cb):
2363 * daapsharing/rb-daap-mdns-browser-howl.c: (howl_in_cb),
2364 (resolve_cb), (rb_daap_mdns_browser_resolve),
2365 (rb_daap_mdns_browser_start), (resolver_free):
2366 * daapsharing/rb-daap-mdns-browser.h:
2367 * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb):
2368 * daapsharing/rb-daap-mdns-publisher-howl.c: (howl_in_cb),
2370 * daapsharing/rb-daap-mdns-publisher.h:
2371 * daapsharing/rb-daap-share.c: (name_collision_cb),
2372 (rb_daap_share_process_playlist), (rb_daap_share_dispose),
2373 (message_set_from_rb_daap_structure), (content_codes_cb),
2374 (session_id_validate), (logout_cb), (update_cb),
2375 (add_entry_to_mlcl), (add_playlist_to_mlcl),
2376 (add_playlist_entry_to_mlcl), (parse_meta), (databases_cb),
2377 (rb_daap_share_server_start), (rb_daap_share_server_stop),
2378 (rb_daap_share_publish_start):
2379 * daapsharing/rb-daap-share.h:
2380 * daapsharing/rb-daap-sharing.c: (share_name_changed_cb),
2381 (share_password_changed_cb), (rb_daap_sharing_shutdown):
2382 * daapsharing/rb-daap-sharing.h:
2383 * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_class_init),
2384 (rb_daap_src_finalize), (_split_uri), (rb_daap_src_getcaps),
2386 * daapsharing/rb-daap-structure.c: (rb_daap_structure_add),
2387 (rb_daap_structure_node_serialize), (rb_daap_structure_serialize),
2388 (rb_daap_structure_parse_container_buffer),
2389 (rb_daap_structure_parse), (gnode_find_node),
2390 (rb_daap_structure_find_item), (rb_daap_structure_find_node),
2391 (print_rb_daap_item):
2392 * daapsharing/rb-daap-structure.h:
2393 * iradio/rb-new-station-dialog.c:
2394 (rb_new_station_dialog_class_init), (rb_new_station_dialog_init),
2395 (rb_new_station_dialog_new), (rb_new_station_dialog_response_cb),
2396 (rb_new_station_dialog_text_changed):
2397 * iradio/rb-station-properties-dialog.c:
2398 (rb_station_properties_dialog_init),
2399 (rb_station_properties_dialog_new),
2400 (rb_station_properties_dialog_response_cb),
2401 (rb_station_properties_dialog_get_current_entry),
2402 (rb_station_properties_dialog_rated_cb),
2403 (rb_station_properties_dialog_update_rating),
2404 (rb_station_properties_dialog_update_playback_error),
2405 (rb_station_properties_dialog_sync_entries):
2406 * metadata/rb-metadata-common.c: (rb_metadata_error_quark):
2407 * metadata/rb-metadata-dbus-client.c: (ping_metadata_service),
2408 (start_metadata_service), (rb_metadata_load), (rb_metadata_set),
2409 (rb_metadata_can_save), (rb_metadata_save):
2410 * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_load),
2411 (rb_metadata_dbus_can_save), (rb_metadata_dbus_save),
2412 (_handle_message), (_new_connection), (main):
2413 * metadata/rb-metadata-dbus.c: (rb_metadata_dbus_add_to_message),
2414 (rb_metadata_dbus_read_from_message):
2415 * metadata/rb-metadata-dbus.h:
2416 * metadata/rb-metadata-gst.c: (ogg_pad_added_cb),
2417 (rb_add_id3_tagger), (rb_metadata_init),
2418 (rb_metadata_gst_tag_to_field), (make_undecodable_error),
2419 (rb_metadata_gst_load_tag), (rb_metadata_gst_fakesink_handoff_cb),
2420 (rb_metadata_gst_new_decoded_pad_cb),
2421 (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
2422 * metadata/sj-error.c: (sj_error_quark):
2423 * metadata/sj-error.h:
2424 * metadata/sj-metadata-musicbrainz.c:
2425 (sj_metadata_musicbrainz_instance_init),
2426 (get_offline_track_listing), (cache_rdf), (get_cached_rdf),
2427 (get_rdf), (lookup_cd):
2428 * metadata/sj-metadata.c: (sj_metadata_get_type):
2429 * metadata/sj-structures.c:
2430 * metadata/sj-structures.h:
2431 * metadata/test-metadata.c: (load_metadata_cb), (main):
2432 * podcast/rb-feed-podcast-properties-dialog.c:
2433 (rb_feed_podcast_properties_dialog_init),
2434 (rb_feed_podcast_properties_dialog_update_title):
2435 * podcast/rb-feed-podcast-properties-dialog.h:
2436 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
2437 (rb_new_podcast_dialog_new), (rb_new_podcast_dialog_response_cb),
2438 (rb_new_podcast_dialog_text_changed):
2439 * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
2440 (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
2441 (rb_podcast_manager_set_property),
2442 (rb_podcast_manager_get_property), (rb_podcast_manager_new),
2443 (rb_podcast_manager_download_entry),
2444 (rb_podcast_manager_update_feeds),
2445 (rb_podcast_manager_head_query_cb), (rb_podcast_manager_next_file),
2446 (rb_podcast_manager_copy_post),
2447 (rb_podcast_manager_thread_parse_feed),
2448 (rb_podcast_manager_add_post), (rb_podcast_manager_save_metadata),
2449 (rb_podcast_manager_db_entry_added_cb), (write_job_data),
2450 (download_info_free), (download_info_new), (start_job),
2451 (rb_podcast_manager_cancel_all), (end_job), (cancel_job),
2452 (download_progress_cb), (download_progress_update_cb),
2453 (rb_podcast_manager_remove_feed),
2454 (rb_podcast_manager_db_entry_deleted_cb),
2455 (rb_podcast_manager_cancel_download),
2456 (rb_podcast_manager_update_synctime),
2457 (rb_podcast_manager_set_remove_files),
2458 (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
2459 (rb_podcast_manager_abort_subscribe),
2460 (rb_podcast_manager_get_podcast_dir):
2461 * podcast/rb-podcast-manager.h:
2462 * podcast/rb-podcast-parse.c: (rb_set_channel_value),
2463 (rb_validate_channel_propert), (rb_validate_item_propert),
2464 (rb_podcast_parser_start_element), (rb_podcast_parser_end_element),
2465 (rb_podcast_parser_characters), (rb_podcast_parse_load_feed),
2466 (rb_podcast_parse_date), (rb_podcast_parse_time),
2467 (rb_podcast_parse_channel_free), (rb_podcast_parse_item_free):
2468 * podcast/rb-podcast-parse.h:
2469 * podcast/rb-podcast-properties-dialog.c:
2470 (rb_podcast_properties_dialog_init),
2471 (rb_podcast_properties_dialog_get_current_entry),
2472 (rb_podcast_properties_dialog_update_title),
2473 (rb_podcast_properties_dialog_update_duration),
2474 (rb_podcast_properties_dialog_update_date):
2475 * podcast/rb-podcast-properties-dialog.h:
2476 * rhythmdb/gsequence.c: (g_sequence_new), (g_sequence_prepend),
2477 (g_sequence_insert), (g_sequence_remove), (g_sequence_concatenate),
2478 (g_sequence_remove_range), (g_sequence_get_ptr_at_pos),
2479 (g_sequence_ptr_move), (g_sequence_ptr_sort_changed),
2480 (g_sequence_search), (g_sequence_set_aggregate_data),
2481 (g_sequence_node_update_fields), (g_sequence_node_rotate),
2482 (find_min), (g_sequence_node_find_by_pos),
2483 (g_sequence_node_find_closest), (g_sequence_node_free),
2484 (g_sequence_node_split), (g_sequence_node_insert_before),
2485 (g_sequence_node_get_length), (g_sequence_node_remove),
2486 (g_sequence_node_calc_height), (g_sequence_node_insert_sorted),
2487 (g_sequence_calc_tree_height):
2488 * rhythmdb/rb-refstring.c: (rb_refstring_system_shutdown),
2490 * rhythmdb/rb-refstring.h:
2491 * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
2492 (rhythmdb_gda_init), (dump_model), (execute_query),
2493 (execute_nonquery), (ensure_table_exists), (collect_value_for_sql),
2494 (collect_value_from_sql), (_initialize), (rhythmdb_gda_new),
2495 (rhythmdb_gda_load), (rhythmdb_gda_entry_new),
2496 (rhythmdb_gda_entry_set), (rhythmdb_gda_entry_get),
2497 (rhythmdb_gda_ref), (rhythmdb_gda_entry_lookup_by_location),
2498 (translate_query), (do_query), (rhythmdb_gda_do_full_query):
2499 * rhythmdb/rhythmdb-gda.h:
2500 * rhythmdb/rhythmdb-monitor.c: (rhythmdb_init_monitoring),
2501 (rhythmdb_finalize_monitoring), (monitor_entry_file),
2502 (monitor_library_directory), (rhythmdb_check_changed_file),
2503 (rhythmdb_start_monitoring), (rhythmdb_directory_change_cb),
2504 (rhythmdb_monitor_uri_path), (entry_volume_mounted_or_unmounted),
2505 (rhythmdb_volume_mounted_cb), (rhythmdb_volume_unmounted_cb):
2506 * rhythmdb/rhythmdb-private.h:
2507 * rhythmdb/rhythmdb-property-model.c:
2508 (rhythmdb_property_model_set_property),
2509 (rhythmdb_property_model_row_inserted_cb),
2510 (rhythmdb_property_model_prop_changed_cb),
2511 (rhythmdb_property_model_compare),
2512 (rhythmdb_property_model_get_value),
2513 (rhythmdb_property_model_iter_nth_child),
2514 (rhythmdb_property_model_drag_data_delete), (query_model_cb),
2515 (rhythmdb_property_model_drag_data_get),
2516 (rhythmdb_property_model_enable_drag),
2517 (rhythmdb_property_model_column_get_type):
2518 * rhythmdb/rhythmdb-property-model.h:
2519 * rhythmdb/rhythmdb-query-model.c:
2520 (rhythmdb_query_model_class_init),
2521 (rhythmdb_query_model_set_property),
2522 (rhythmdb_query_model_dispose), (rhythmdb_query_model_chain),
2523 (rhythmdb_query_model_has_pending_changes),
2524 (rhythmdb_query_model_entry_changed_cb),
2525 (rhythmdb_query_model_entry_deleted_cb), (idle_process_update),
2526 (rhythmdb_query_model_add_entry),
2527 (rhythmdb_query_model_remove_from_main_list),
2528 (rhythmdb_query_model_remove_entry),
2529 (rhythmdb_query_model_drag_data_received),
2530 (rhythmdb_query_model_row_drop_possible),
2531 (rhythmdb_query_model_compute_status_normal),
2532 (rhythmdb_query_model_set_sort_order),
2533 (rhythmdb_query_model_get_entry_index),
2534 (rhythmdb_query_model_base_row_inserted),
2535 (rhythmdb_query_model_base_row_deleted),
2536 (rhythmdb_query_model_reapply_query), (_reverse_sorting_func),
2537 (rhythmdb_query_model_date_sort_func),
2538 (rhythmdb_query_model_within_limit):
2539 * rhythmdb/rhythmdb-query-model.h:
2540 * rhythmdb/rhythmdb-query-results.c:
2541 (rhythmdb_query_results_query_complete):
2542 * rhythmdb/rhythmdb-query-results.h:
2543 * rhythmdb/rhythmdb-query.c: (rhythmdb_query_copy),
2544 (rhythmdb_query_concatenate), (rhythmdb_query_parse_valist),
2545 (rhythmdb_query_free), (rhythmdb_read_encoded_property),
2546 (rhythmdb_query_serialize), (rhythmdb_query_deserialize),
2547 (rhythmdb_query_preprocess), (rhythmdb_query_get_type):
2548 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_finalize),
2549 (rhythmdb_tree_parser_start_element),
2550 (rhythmdb_tree_parser_end_element), (rhythmdb_tree_load),
2551 (save_entry), (save_entry_type), (save_unknown_entry_type),
2552 (rhythmdb_tree_save), (rhythmdb_tree_entry_new),
2553 (rhythmdb_tree_property_new), (get_genres_hash_for_type),
2554 (get_or_create_genre), (remove_entry_from_album),
2555 (rhythmdb_tree_entry_set), (rhythmdb_tree_entry_delete),
2556 (remove_one_song), (rhythmdb_tree_entry_delete_by_type),
2557 (search_match_properties), (evaluate_conjunctive_subquery),
2558 (clone_remove_ptr_array_index), (conjunctive_query_albums),
2559 (conjunctive_query_artists), (conjunctive_query_genre),
2560 (conjunctive_query), (split_query_by_disjunctions),
2561 (do_query_recurse), (rhythmdb_tree_entry_foreach),
2562 (hash_tree_entries_foreach), (hash_tree_albums_foreach),
2563 (hash_tree_artists_foreach), (hash_tree_genres_foreach),
2564 (rhythmdb_hash_tree_foreach),
2565 (rhythmdb_tree_entry_type_registered):
2566 * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
2567 (metadata_field_from_prop), (extract_gtype_from_enum_entry),
2568 (extract_nice_name_from_enum_entry), (rhythmdb_init),
2569 (rhythmdb_execute_multi_stat_info_cb), (rhythmdb_event_free),
2570 (rhythmdb_shutdown), (rhythmdb_finalize),
2571 (rhythmdb_emit_entry_signals_idle), (process_added_entries_cb),
2572 (rhythmdb_entry_insert), (rhythmdb_entry_new),
2573 (rhythmdb_entry_example_new),
2574 (set_metadata_string_default_unknown), (is_ghost_entry),
2575 (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
2576 (rhythmdb_process_metadata_load),
2577 (rhythmdb_process_queued_entry_set_event),
2578 (rhythmdb_process_events), (rhythmdb_execute_stat_info_cb),
2579 (queue_stat_uri), (rhythmdb_entry_get), (entry_to_rb_metadata),
2580 (rhythmdb_add_uri_with_type), (rhythmdb_load_thread_main),
2581 (rhythmdb_load), (rhythmdb_save_thread_main), (rhythmdb_save),
2582 (rhythmdb_entry_set), (rhythmdb_entry_set_internal),
2583 (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_delete),
2584 (rhythmdb_entry_delete_by_type),
2585 (rhythmdb_propid_from_nice_elt_name),
2586 (rhythmdb_do_full_query_async_parsed), (rhythmdb_do_full_query),
2587 (rhythmdb_compute_status_normal),
2588 (rhythmdb_entry_register_type_alias),
2589 (rhythmdb_entry_type_foreach), (song_can_sync_metadata),
2590 (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
2591 (rhythmdb_entry_import_error_get_type),
2592 (rhythmdb_entry_podcast_post_get_type),
2593 (rhythmdb_entry_podcast_feed_get_type),
2594 (rhythmdb_entry_set_mount_point), (rhythmdb_entry_set_visibility),
2595 (rhythmdb_sync_library_location), (rhythmdb_entry_get_string),
2596 (rhythmdb_entry_get_ulong), (rhythmdb_entry_type_get_type):
2597 * rhythmdb/rhythmdb.h:
2598 * shell/main.c: (main), (load_uri_args), (handle_dbus_message):
2599 * shell/rb-history.c: (rb_history_new), (rb_history_set_playing),
2600 (rb_history_limit_size):
2601 * shell/rb-history.h:
2602 * shell/rb-play-order-linear-loop.c:
2603 (rb_linear_play_order_loop_get_next):
2604 * shell/rb-play-order-linear-loop.h:
2605 * shell/rb-play-order-linear.c:
2606 * shell/rb-play-order-linear.h:
2607 * shell/rb-play-order-queue.c:
2608 (rb_queue_play_order_playing_entry_removed):
2609 * shell/rb-play-order-queue.h:
2610 * shell/rb-play-order-random-by-age-and-rating.c:
2611 * shell/rb-play-order-random-by-age-and-rating.h:
2612 * shell/rb-play-order-random-by-age.c:
2613 (rb_random_by_age_get_entry_weight):
2614 * shell/rb-play-order-random-by-age.h:
2615 * shell/rb-play-order-random-by-rating.c:
2616 * shell/rb-play-order-random-by-rating.h:
2617 * shell/rb-play-order-random-equal-weights.c:
2618 * shell/rb-play-order-random-equal-weights.h:
2619 * shell/rb-play-order-random.c: (rb_random_filter_history),
2620 (rb_random_get_total_weight), (rb_random_play_order_get_next),
2621 (rb_random_db_changed), (rb_random_playing_entry_changed),
2622 (rb_random_db_entry_deleted):
2623 * shell/rb-play-order-shuffle.c: (remove_from_history),
2624 (add_randomly_to_history), (get_query_model_contents),
2625 (rb_shuffle_playing_entry_changed):
2626 * shell/rb-play-order-shuffle.h:
2627 * shell/rb-play-order.c: (rb_play_order_class_init),
2628 (rb_play_order_set_property),
2629 (rb_play_order_playing_source_changed),
2630 (rb_play_order_query_model_changed_cb),
2631 (rb_play_order_query_model_changed),
2632 (rb_play_order_entry_added_cb), (default_playing_entry_removed):
2633 * shell/rb-play-order.h:
2634 * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
2635 (rb_playlist_manager_init), (rb_playlist_manager_set_uimanager),
2636 (rb_playlist_manager_set_property),
2637 (rb_playlist_manager_parse_file),
2638 (rb_playlist_manager_load_playlists),
2639 (rb_playlist_manager_is_dirty), (rb_playlist_manager_save_data),
2640 (rb_playlist_manager_save_playlists),
2641 (rb_playlist_manager_new_playlist),
2642 (rb_playlist_manager_new_playlist_from_selection_data),
2643 (rb_playlist_manager_cmd_new_automatic_playlist),
2644 (rb_playlist_manager_cmd_edit_automatic_playlist),
2645 (_queue_track_cb), (rb_playlist_manager_cmd_delete_playlist),
2646 (save_playlist_response_cb), (export_set_extension_cb),
2647 (filter_get_export_filter_label), (setup_format_menu),
2648 (rb_playlist_manager_cmd_save_playlist),
2649 (rb_playlist_manager_get_playlists),
2650 (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
2651 (rb_playlist_manager_delete_playlist),
2652 (rb_playlist_manager_export_playlist):
2653 * shell/rb-playlist-manager.h:
2654 * shell/rb-removable-media-manager.c:
2655 (rb_removable_media_manager_class_init),
2656 (rb_removable_media_manager_dispose),
2657 (rb_removable_media_manager_finalize),
2658 (rb_removable_media_manager_set_property),
2659 (split_drive_from_cdda_uri),
2660 (rb_removable_media_manager_playing_uri_changed_cb),
2661 (rb_removable_media_manager_load_media),
2662 (rb_removable_media_manager_volume_mounted_cb),
2663 (remove_volume_by_source),
2664 (rb_removable_media_manager_source_deleted_cb),
2665 (rb_removable_media_manager_volume_unmounted_cb),
2666 (rb_removable_media_manager_mount_volume),
2667 (rb_removable_media_manager_set_uimanager),
2668 (rb_removable_media_manager_scan), (do_transfer),
2669 (rb_removable_media_manager_cmd_copy_tracks):
2670 * shell/rb-removable-media-manager.h:
2671 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
2672 (rb_shell_clipboard_finalize), (rb_shell_clipboard_constructor),
2673 (rb_shell_clipboard_sync),
2674 (rb_shell_clipboard_idle_poll_deletions),
2675 (rb_shell_clipboard_cmd_add_to_playlist_new),
2676 (rb_shell_clipboard_playlist_add_cb),
2677 (rb_shell_clipboard_playlist_deleted_cb),
2678 (rb_shell_clipboard_playlist_renamed_cb),
2679 (rb_shell_clipboard_playlist_visible_cb),
2680 (rb_shell_clipboard_playlist_added_cb):
2681 * shell/rb-shell-player.c: (rb_shell_player_class_init),
2682 (rb_shell_player_constructor), (volume_pre_unmount_cb),
2683 (rb_shell_player_init), (rb_shell_player_set_property),
2684 (rb_shell_player_new), (rb_shell_player_open_playlist_url),
2685 (rb_shell_player_open_location),
2686 (rb_shell_player_set_playing_entry),
2687 (rb_shell_player_play_order_update_cb),
2688 (rb_shell_player_jump_to_current), (rb_shell_player_do_previous),
2689 (rb_shell_player_do_next), (rb_shell_player_do_previous_or_seek),
2690 (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
2691 (rb_shell_player_cmd_play), (rb_shell_player_playpause),
2692 (rb_shell_player_sync_volume), (rb_shell_player_sync_replaygain),
2693 (gconf_song_position_slider_visibility_changed),
2694 (rb_shell_player_entry_activated_cb),
2695 (rb_shell_player_property_row_activated_cb),
2696 (rb_shell_player_entry_changed_cb),
2697 (rb_shell_player_sync_with_source), (rb_shell_player_sync_buttons),
2698 (actually_set_playing_source),
2699 (rb_shell_player_set_playing_source_internal),
2700 (rb_shell_player_get_playing_song_duration), (eos_cb),
2701 (rb_shell_player_error), (error_cb), (info_available_cb),
2702 (grab_mmkey), (filter_mmkeys), (_idle_unblock_signal_cb),
2703 (rb_shell_player_error_get_type):
2704 * shell/rb-shell-player.h:
2705 * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
2706 (rb_shell_preferences_append_page),
2707 (share_check_button_toggled_cb),
2708 (password_check_button_toggled_cb), (add_daap_preferences),
2709 (rb_shell_preferences_column_check_changed_cb),
2710 (rb_shell_preferences_sync_column_button),
2711 (rb_shell_preferences_sync),
2712 (rb_shell_preferences_browser_views_activated_cb):
2713 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_init),
2714 (rb_shell_set_property), (rb_shell_get_property),
2715 (rb_shell_sync_state), (idle_save_rhythmdb), (rb_shell_finalize),
2716 (construct_widgets), (construct_load_ui), (rb_shell_constructor),
2717 (rb_shell_get_visibility), (rb_shell_set_visibility),
2718 (rb_shell_sync_window_state), (rb_shell_db_entry_added_cb),
2719 (rb_shell_register_entry_type_for_source),
2720 (rb_shell_transfer_progress_cb), (rb_shell_playing_from_queue_cb),
2721 (rb_shell_playing_entry_changed_cb), (rb_shell_select_source),
2722 (rb_shell_player_stream_song_changed_cb),
2723 (rb_shell_set_window_title),
2724 (rb_shell_view_smalldisplay_changed_cb),
2725 (rb_shell_view_queue_as_sidebar_changed_cb),
2726 (rb_shell_cmd_plugins), (add_to_library_response_cb),
2727 (rb_shell_cmd_add_folder_to_library),
2728 (rb_shell_cmd_add_file_to_library),
2729 (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
2730 (sidepane_visibility_changed_cb), (toolbar_state_changed_cb),
2731 (rb_shell_jump_to_entry_with_source), (tray_embedded_cb),
2732 (session_die_cb), (save_yourself_cb), (rb_shell_session_init),
2733 (handle_playlist_entry_cb), (rb_shell_load_uri),
2734 (rb_shell_add_to_queue), (rb_shell_present),
2735 (rb_shell_get_song_properties), (rb_shell_set_song_property),
2736 (rb_shell_volume_widget_changed_cb),
2737 (rb_shell_player_volume_changed_cb),
2738 (rb_shell_ui_location_get_type):
2740 * shell/rb-source-header.c: (ui_manager_add_widget_cb),
2741 (rb_source_header_init), (rb_source_header_set_source_internal),
2742 (rb_source_state_sync), (rb_source_header_clear_search),
2743 (rb_source_header_view_browser_changed_cb):
2744 * shell/rb-source-header.h:
2745 * shell/rb-statusbar.c: (rb_statusbar_construct),
2746 (rb_statusbar_init), (rb_statusbar_finalize),
2747 (rb_statusbar_set_property), (rb_statusbar_set_progress),
2748 (rb_statusbar_source_status_changed_cb):
2749 * shell/rb-statusbar.h:
2750 * shell/rb-tray-icon.c: (rb_tray_icon_init),
2751 (rb_tray_icon_constructor), (rb_tray_icon_finalize),
2752 (rb_tray_icon_set_property), (rb_tray_icon_show_window_changed_cb),
2753 (rb_tray_icon_get_geom), (rb_tray_icon_notify):
2754 * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor),
2755 (rb_audiocd_create_track_entry):
2756 * sources/rb-auto-playlist-source.c:
2757 (rb_auto_playlist_source_class_init),
2758 (rb_auto_playlist_source_constructor),
2759 (rb_auto_playlist_source_new_from_xml), (impl_reset_filters),
2760 (impl_search), (impl_receive_drag), (impl_save_contents_to_xml),
2761 (rb_auto_playlist_source_query_complete_cb),
2762 (rb_auto_playlist_source_do_query),
2763 (rb_auto_playlist_source_set_query),
2764 (rb_auto_playlist_source_browser_changed_cb),
2765 (search_action_to_prop):
2766 * sources/rb-auto-playlist-source.h:
2767 * sources/rb-browser-source.c: (rb_browser_source_init),
2768 (rb_browser_source_dispose), (search_action_to_prop),
2769 (rb_browser_source_constructor),
2770 (rb_browser_source_cmd_choose_genre),
2771 (rb_browser_source_cmd_choose_artist),
2772 (rb_browser_source_cmd_choose_album), (impl_search),
2773 (rb_browser_source_browser_changed_cb),
2774 (rb_browser_source_do_query):
2775 * sources/rb-browser-source.h:
2776 * sources/rb-daap-source.c: (rb_daap_source_class_init),
2777 (rb_daap_source_init), (rb_daap_source_dispose),
2778 (rb_daap_source_set_property), (start_browsing),
2779 (rb_daap_sources_init), (rb_daap_sources_shutdown),
2780 (rb_daap_source_connection_cb), (rb_daap_source_activate),
2781 (rb_daap_source_cmd_disconnect), (rb_daap_source_find_for_uri),
2782 (rb_daap_source_get_headers), (rb_daap_source_get_status):
2783 * sources/rb-daap-source.h:
2784 * sources/rb-import-errors-source.h:
2785 * sources/rb-ipod-source.c: (rb_ipod_source_name_changed_cb),
2786 (rb_ipod_source_init), (ipod_path_to_uri), (add_rb_playlist),
2787 (add_ipod_song_to_db), (load_ipod_db_idle_cb),
2788 (rb_ipod_load_songs), (rb_ipod_get_itunesdb_path),
2789 (rb_ipod_is_volume_ipod), (hal_udi_is_ipod), (impl_get_ui_actions),
2790 (impl_move_to_trash), (impl_receive_drag), (test_dir_on_ipod),
2791 (ipod_mkdir_with_parents), (build_ipod_dir_name),
2792 (generate_ipod_filename), (ipod_path_from_unix_path),
2793 (impl_delete_thyself):
2794 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
2795 (rb_iradio_source_init), (rb_iradio_source_constructor),
2796 (rb_iradio_source_new), (guess_uri_scheme),
2797 (rb_iradio_source_add_station),
2798 (rb_iradio_source_async_update_play_statistics),
2799 (genre_selection_reset_cb), (rb_iradio_source_do_query),
2800 (stations_view_drag_data_received_cb),
2801 (rb_iradio_source_cmd_new_station):
2802 * sources/rb-iradio-source.h:
2803 * sources/rb-library-source.c: (rb_library_source_dispose),
2804 (rb_library_source_constructor),
2805 (rb_library_source_location_button_clicked_cb),
2806 (impl_get_config_widget), (rb_library_source_library_location_cb),
2807 (sanitize_path), (filepath_parse_pattern),
2808 (layout_example_label_update),
2809 (rb_library_source_layout_filename_changed), (build_filename),
2810 (impl_can_paste), (impl_paste),
2811 (rb_library_source_add_child_source),
2812 (rb_library_source_sync_child_sources):
2813 * sources/rb-library-source.h:
2814 * sources/rb-missing-files-source.h:
2815 * sources/rb-play-queue-source.c:
2816 (rb_play_queue_source_constructor), (impl_show_entry_view_popup):
2817 * sources/rb-play-queue-source.h:
2818 * sources/rb-playlist-source-recorder.c:
2819 (rb_playlist_source_recorder_class_init), (update_speed_combobox),
2820 (_nautilus_burn_drive_eject), (burn_cd), (ask_rewrite_disc),
2821 (rb_playlist_source_recorder_init),
2822 (rb_playlist_source_recorder_new):
2823 * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
2824 (rb_playlist_source_save_playlist),
2825 (rb_playlist_source_entry_added_cb),
2826 (rb_playlist_source_set_query_model),
2827 (rb_playlist_source_add_to_map):
2828 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
2829 (rb_podcast_source_init), (rb_podcast_source_dispose),
2830 (rb_podcast_source_finalize), (search_action_to_prop),
2831 (rb_podcast_source_constructor), (rb_podcast_source_set_property),
2832 (rb_podcast_source_get_property), (rb_podcast_source_new),
2833 (impl_delete), (rb_podcast_source_songs_show_popup_cb),
2834 (rb_podcast_source_feeds_show_popup_cb), (feed_select_change_cb),
2835 (rb_podcast_source_show_browser), (construct_query_from_selection),
2836 (rb_podcast_source_do_query), (impl_get_config_widget),
2837 (rb_podcast_source_btn_file_change_cb),
2838 (posts_view_drag_data_received_cb),
2839 (rb_podcast_source_cmd_download_post),
2840 (rb_podcast_source_cmd_cancel_download),
2841 (rb_podcast_source_cmd_delete_feed),
2842 (rb_podcast_source_cmd_properties_feed),
2843 (rb_podcast_source_cmd_update_feed),
2844 (rb_podcast_source_post_status_cell_data_func),
2845 (rb_podcast_source_post_feed_cell_data_func),
2846 (rb_podcast_source_post_date_cell_data_func),
2847 (rb_podcast_source_load_finish_cb), (impl_receive_drag),
2848 (rb_podcast_source_entry_activated_cb), (impl_can_add_to_queue),
2849 (impl_add_to_queue), (rb_podcast_source_cmd_new_podcast),
2851 * sources/rb-podcast-source.h:
2852 * sources/rb-removable-media-source.c:
2853 (rb_removable_media_source_constructor):
2854 * sources/rb-removable-media-source.h:
2855 * sources/rb-source.h:
2856 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
2857 (rb_sourcelist_model_new), (rb_sourcelist_model_is_row_visible),
2858 (rb_sourcelist_model_row_is_separator),
2859 (rb_sourcelist_model_drag_data_received),
2860 (rb_sourcelist_model_row_drop_possible), (path_is_droppable),
2861 (rb_sourcelist_model_row_drop_position),
2862 (rb_sourcelist_model_get_drag_target),
2863 (rb_sourcelist_model_row_draggable),
2864 (rb_sourcelist_model_drag_data_get),
2865 (rb_sourcelist_model_row_inserted_cb),
2866 (rb_sourcelist_model_get_group_path):
2867 * sources/rb-sourcelist.c: (rb_sourcelist_append),
2868 (match_source_to_iter), (rb_sourcelist_source_to_iter),
2869 (rb_sourcelist_visible_source_to_iter),
2870 (rb_sourcelist_edit_source_name),
2871 (rb_sourcelist_selection_changed_cb), (button_press_cb),
2872 (key_release_cb), (name_notify_cb), (icon_notify_cb),
2873 (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
2874 * sources/rb-static-playlist-source.c:
2875 (rb_static_playlist_source_class_init),
2876 (rb_static_playlist_source_constructor),
2877 (rb_static_playlist_source_load_from_xml), (impl_reset_filters),
2878 (impl_search), (rb_static_playlist_source_do_query),
2879 (rb_static_playlist_source_browser_changed_cb),
2880 (impl_receive_drag), (impl_save_contents_to_xml),
2881 (rb_static_playlist_source_add_location_swapped),
2882 (search_action_to_prop):
2883 * sources/rb-static-playlist-source.h:
2884 * widgets/bacon-volume.c: (bacon_volume_button_get_type):
2885 * widgets/eggtrayicon.c: (egg_tray_icon_init),
2886 (egg_tray_icon_get_orientation_property),
2887 (egg_tray_icon_send_manager_message),
2888 (egg_tray_icon_update_manager_window),
2889 (egg_tray_icon_manager_window_destroyed), (egg_tray_icon_realize),
2890 (egg_tray_icon_send_message), (egg_tray_icon_notify):
2891 * widgets/eggtrayicon.h:
2892 * widgets/rb-cell-renderer-pixbuf.c:
2893 (rb_cell_renderer_pixbuf_get_property),
2894 (rb_cell_renderer_pixbuf_set_property),
2895 (rb_cell_renderer_pixbuf_get_size),
2896 (rb_cell_renderer_pixbuf_render),
2897 (rb_cell_renderer_pixbuf_activate):
2898 * widgets/rb-cell-renderer-rating.c:
2899 (rb_cell_renderer_rating_class_init),
2900 (rb_cell_renderer_rating_get_property),
2901 (rb_cell_renderer_rating_set_property),
2902 (rb_cell_renderer_rating_get_size),
2903 (rb_cell_renderer_rating_render),
2904 (rb_cell_renderer_rating_activate):
2905 * widgets/rb-dialog.c:
2906 * widgets/rb-dialog.h:
2907 * widgets/rb-druid.c: (rb_druid_init_widgets), (rb_druid_new),
2908 (path_dialog_response_cb), (idle_set_sensitive), (do_response),
2909 (rb_druid_page3_finish_cb):
2910 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
2911 (rb_entry_view_init), (rb_entry_view_set_property),
2912 (rb_entry_view_new), (rb_entry_view_play_count_cell_data_func),
2913 (rb_entry_view_year_cell_data_func), (rb_entry_view_sync_sorting),
2914 (rb_entry_view_get_sorting_type), (rb_entry_view_set_sorting_type),
2915 (rb_entry_view_set_sorting_order),
2916 (rb_entry_view_column_clicked_cb), (rb_entry_view_append_column),
2917 (rb_entry_view_set_columns_clickable), (rb_entry_view_constructor),
2918 (rb_entry_view_playing_song_changed),
2919 (rb_entry_view_button_press_cb), (rb_entry_view_rows_reordered_cb),
2920 (rb_entry_view_scroll_to_entry), (set_column_visibility),
2921 (rb_entry_view_set_fixed_column_width),
2922 (rb_entry_view_get_time_date_column_sample),
2923 (rb_entry_view_state_get_type):
2924 * widgets/rb-entry-view.h:
2925 * widgets/rb-header.c: (rb_header_init), (rb_header_set_property),
2926 (rb_header_sync), (slider_moved_timeout), (slider_moved_callback),
2927 (changed_idle_callback), (rb_header_elapsed_changed_cb):
2928 * widgets/rb-library-browser.c: (rb_library_browser_constructor),
2929 (update_browser_property_visibilty),
2930 (rb_library_browser_construct_query), (restore_selection),
2931 (rebuild_child_model), (rb_library_browser_set_selection),
2932 (rb_library_browser_set_model):
2933 * widgets/rb-library-browser.h:
2934 * widgets/rb-property-view.c: (rb_property_view_class_init),
2935 (rb_property_view_set_property), (rb_property_view_reset),
2936 (rb_property_view_get_model), (rb_property_view_constructor),
2937 (rb_property_view_set_selection),
2938 (rb_property_view_selection_changed_cb),
2939 (rb_property_view_button_press_cb),
2940 (rb_property_view_set_search_func):
2941 * widgets/rb-query-creator-private.h:
2942 * widgets/rb-query-creator-properties.c:
2943 (integerCriteriaSetWidgetData), (yearCriteriaSetWidgetData),
2944 (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
2945 (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
2946 (relativeTimeCriteriaCreateWidget),
2947 (relativeTimeCriteriaSetWidgetData):
2948 * widgets/rb-query-creator.c: (rb_query_creator_constructor),
2949 (rb_query_creator_dispose), (rb_query_creator_load_query),
2950 (rb_query_creator_new_from_query), (rb_query_creator_get_query),
2951 (get_property_index_from_proptype), (select_criteria_from_value),
2952 (create_property_option_menu), (create_criteria_option_menu),
2953 (sort_option_menu_changed), (setup_sort_option_menu):
2954 * widgets/rb-query-creator.h:
2955 * widgets/rb-rating-helper.c: (rb_rating_install_rating_property),
2956 (rb_rating_render_stars):
2957 * widgets/rb-rating-helper.h:
2958 * widgets/rb-rating.c: (rb_rating_expose):
2959 * widgets/rb-rating.h:
2960 * widgets/rb-search-entry.c: (rb_search_entry_clear),
2961 (rb_search_entry_timeout_cb):
2962 * widgets/rb-search-entry.h:
2963 * widgets/rb-song-info.c: (rb_song_info_construct_single),
2964 (rb_song_info_constructor), (rb_song_info_new),
2965 (rb_song_info_set_entry_rating), (rb_song_info_populate_dialog),
2966 (rb_song_info_update_location), (rb_song_info_backward_clicked_cb),
2967 (rb_song_info_forward_clicked_cb), (rb_song_info_update_buttons),
2968 (rb_song_info_query_model_changed_cb),
2969 (rb_song_info_sync_entries_multiple),
2970 (rb_song_info_sync_entry_single):
2971 Strip all trailing whitespace. Fixes #344293.
2973 2006-07-13 Ryan P Skadberg <skadz@stigmata.org>
2975 * doc/reference/Makefile.am: Fix GTK Doc Build
2977 2006-07-13 James Livingston <doclivingston@gmail.com>
2979 * bindings/python/rhythmdb.defs: bind rhythmdb_entry_get_playback_uri
2981 * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py: use the above
2982 instead of the LOCATION, and don't try to get the directory listing
2983 for http URI schemes
2985 * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): check for
2986 invalid utf8 in the error message, since apparently it can happen.
2988 2006-07-12 William Jon McCann <mccann@jhu.edu>
2990 * sources/rb-import-errors-source.c:
2991 (rb_import_errors_source_class_init),
2992 (rb_import_errors_source_init),
2993 (rb_import_errors_source_constructor),
2994 (rb_import_errors_source_dispose), (rb_import_errors_source_new),
2995 (impl_get_status), (rb_import_errors_source_songs_show_popup_cb):
2996 * sources/rb-missing-files-source.c:
2997 (rb_missing_files_source_class_init),
2998 (rb_missing_files_source_init),
2999 (rb_missing_files_source_constructor),
3000 (rb_missing_files_source_dispose), (rb_missing_files_source_new),
3001 (rb_missing_files_source_songs_sort_order_changed_cb),
3003 * sources/rb-source.c: (rb_source_class_init),
3004 (rb_source_finalize), (update_visibility_idle),
3005 (queue_update_visibility), (rb_source_set_hidden_when_empty),
3006 (rb_source_set_property), (rb_source_get_property),
3007 (default_get_status), (rb_source_update_play_statistics),
3008 (default_add_to_queue), (_rb_source_show_popup),
3009 (rb_source_row_inserted_cb), (rb_source_post_entry_deleted_cb),
3010 (rb_source_gather_selected_properties),
3011 (_rb_source_register_action_group):
3012 * sources/rb-source.h:
3013 * sources/rb-sourcelist.c: (visibility_notify_cb):
3014 Don't use a fake model for import-errors and missing-files
3015 sources. Add a new source property "hidden-when-empty".
3016 Update source visibility in an idle. Clean up some whitespace.
3019 2006-07-12 James Livingston <doclivingston@gmail.com>
3021 * bindings/python/rb.defs:
3022 * bindings/python/rb.override: bind rb_error_dialog
3024 * plugins/rb/__init__.py: improve the stdout->debug mapping. Strip off
3025 the current working directory for uninstalled plugins, and add the
3026 class name to the method name.
3028 2006-07-12 James Livingston <doclivingston@gmail.com>
3030 * shell/rb-shell-player.c: (rb_shell_player_error): don't try to check
3031 the sources EOF type if it's NULL. Fixes #346284.
3033 2006-07-12 James Livingston <doclivingston@gmail.com>
3035 * rhythmdb/rb-refstring.c: (rb_refstring_get_sort_key): reverse a bit
3036 I accidently committed. Nothing to see here, move along...
3038 2006-07-11 James Livingston <doclivingston@gmail.com>
3040 * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3041 * plugins/artdisplay/artdisplay/CoverArtDatabase.py: fix some usage of
3044 2006-07-12 Jonathan Matthew <jonathan@kaolin.wh9.net>
3046 * doc/reference/rhythmbox.types: Fix doc build (bug #347223)
3048 2006-07-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
3050 * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
3051 Don't try to set mtime if we've deleted the entry.
3053 2006-07-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
3055 * bindings/python/rhythmdb.defs:
3056 * rhythmdb/rhythmdb.c:
3057 * rhythmdb/rhythmdb.h:
3058 * rhythmdb/rhythmdb-private.h:
3059 * rhythmdb/rhythmdb-query.c:
3060 Move data structures holding registered entry types inside the
3061 RhythmDB object, and add a vfunc called when new types are registered.
3062 Add a flag to RhythmDBEntryType specifying whether entries of the type
3063 should be saved to the on-disk database.
3065 * sources/rb-audiocd-source.c:
3066 * sources/rb-daap-source.c:
3067 * sources/rb-ipod-source.c:
3068 * plugins/generic-player/rb-generic-player-source.c:
3069 * plugins/generic-player/rb-nokia770-source.c:
3070 * plugins/generic-player/rb-psp-source.c:
3071 Adjust to the above changes.
3073 * rhythmdb/rhythmdb-tree.c:
3074 If the type for an entry hasn't been registered yet, store the entry's
3075 properties as-is, and convert them to a real entry when the type is
3076 registered. If the type doesn't get registered, save the entry back
3077 to the database unmodified. From #330226.
3079 2006-07-10 James Livingston <doclivingston@gmail.com>
3081 * plugins/artdisplay/artdisplay/CoverArtDatabase.py: change
3082 os.path.unlink to os.unlink, so removing stuff works.
3084 2006-07-10 James Livingston <doclivingston@gmail.com>
3086 patch by: Ed Catmur <ed@catmur.co.uk>
3087 and Peter <bugzilla-gnome-org@maubp.freeserve.co.uk>
3089 * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3090 * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3091 * plugins/artdisplay/artdisplay/LocalCoverArtSearch.py:
3092 * plugins/artdisplay/artdisplay/Makefile.am: Redesign much of the
3093 internals of the cover database and Amazon lookup engine, and add
3094 support for loading art from the local file system. Fixes #345688.
3096 * plugins/rb/Coroutine.py:
3097 * plugins/rb/Makefile.am:
3098 * plugins/rb/__init__.py: Add the Coroutine class to the common python
3101 2006-07-10 James Livingston <doclivingston@gmail.com>
3103 * tests/Makefile.am: don't run the benchmark when doing "make check"
3105 * po/POTFILES.in: more build fixes, from Matti Lindell
3106 <feenixx@hotmail.com>. Fixes #347049.
3109 2006-07-10 James Livingston <doclivingston@gmail.com>
3111 * plugins/cd-recorder/Makefile.am: build fixes
3113 * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry): don't
3114 attempt to change properties if we couldn't create an entry.
3116 * shell/rb-source-header.c: (rb_source_header_init),
3117 (rb_source_header_view_browser_changed_cb),
3118 (rb_source_header_sync_control_state):
3119 * shell/rb-tray-icon.c:
3120 * widgets/Makefile.am:
3121 * widgets/disclosure-widget.c:
3122 * widgets/disclosure-widget.h: remove the remanents of the disclosure
3123 widget, as it hasn't been used for a while.
3125 2006-07-09 William Jon McCann <mccann@jhu.edu>
3129 * data/ui/rhythmbox-ui.xml:
3130 * plugins/Makefile.am:
3131 * plugins/cd-recorder/.cvsignore:
3132 * plugins/cd-recorder/Makefile.am:
3133 * plugins/cd-recorder/cd-recorder.rb-plugin.desktop.in:
3134 * plugins/cd-recorder/rb-cd-recorder-plugin.c:
3135 (rb_cd_recorder_plugin_class_init), (rb_cd_recorder_plugin_init),
3136 (rb_cd_recorder_plugin_finalize), (burn_source_iter_func),
3137 (source_burn), (cmd_burn_source), (playlist_entries_changed),
3138 (playlist_row_inserted_cb), (update_source),
3139 (shell_selected_source_notify_cb), (impl_activate),
3141 * shell/Makefile.am:
3142 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_source),
3143 (rb_playlist_manager_cmd_save_playlist):
3144 * shell/rb-shell.c: (rb_shell_select_source):
3145 * sources/Makefile.am:
3146 * sources/rb-playlist-source-recorder.c:
3147 (rb_playlist_source_recorder_new):
3148 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3149 (rb_playlist_source_add_to_map):
3150 * sources/rb-playlist-source.h:
3151 Move cd burning into a plugin. Fixes #344300.
3153 2006-07-10 James Livingston <doclivingston@gmail.com>
3155 * lib/eel-gconf-extensions.c:
3156 * shell/rb-shell.c: remove some ununsed gnomeui includes
3158 * widgets/Makefile.am:
3159 * widgets/rb-song-display-box.c:
3160 * widgets/rb-song-display-box.h: remove RBSongDisplayBox from cvs,
3161 since it isn't acutally used anywhere. Fixes #346926
3163 2006-07-09 James Livingston <doclivingston@gmail.com>
3165 * bindings/python/rb.defs:
3166 * bindings/python/rb.override:
3167 * lib/rb-debug.c: (rb_debug_real):
3169 * plugins/rb/__init__.py: don't print out an extra newline when
3170 diverting python print statements to RB's debug log.
3172 2006-07-09 James Livingston <doclivingston@gmail.com>
3174 * rhythmdb/rhythmdb-property-model.c:
3175 (rhythmdb_property_model_drag_data_get):
3176 * sources/rb-sourcelist-model.c:
3177 (rb_sourcelist_model_row_draggable),
3178 (rb_sourcelist_model_drag_data_get): check that the path/iter we get
3179 from the row reference is still valid. Fixes #346709.
3181 2006-07-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
3183 patch by: Peter <bugzilla-gnome-org@maubp.freeserve.org.uk>
3185 * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple):
3186 If all selected entries have the same rating, use that as the initial
3187 rating for the multiple song info dialog. Fixes #345970.
3189 2006-07-09 James Livingston <doclivingston@gmail.com>
3191 * plugins/artdisplay/artdisplay/__init__.py: some minor changes to try
3193 - don't ever scale to 1x1, just hide the image in that case
3194 - don't fade when the window is minimised
3195 - use the last-good allocation width, not the current one - as
3196 it sometimes get weird values.
3198 2006-07-08 William Jon McCann <mccann@jhu.edu>
3200 * data/ui/rhythmbox-ui.xml:
3202 Remove Import audio CD from menu. Fixes #339732
3204 2006-07-08 James Livingston <doclivingston@gmail.com>
3206 * metadata/test-metadata.c: (print_metadata_string),
3207 (load_metadata_cb): print out all the metadata we have read, not just
3210 * sources/rb-playlist-source-recorder.c: (insert_media_request_cb),
3211 (ask_rewrite_disc), (warn_data_loss_cb): Fix some GDK lock issues.
3213 2006-07-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
3215 * plugins/lyrics/lyrics.py:
3216 Change the lyrics cache location to match Quod Libet's,
3217 and fix the '&' -> 'and' substitution to require spaces.
3219 2006-07-08 James Livingston <doclivingston@gmail.com>
3221 * bindings/python/rb.defs:
3222 * bindings/python/rb.override: bind rb_debug_real to rb._debug
3225 * plugins/Makefile.am:
3226 * plugins/rb-python-module.c: (rb_python_module_init_python):
3227 * plugins/rb/Makefile.am: add a place to put common python classes.
3228 plugins/rb/ and $prefix/rhythmbox/plugins/rb will be imported into the
3231 * plugins/lyrics/Makefile.am:
3232 * plugins/lyrics/Loader.py:
3233 * plugins/artdisplay/artdisplay/Makefile.am:
3234 * plugins/artdisplay/artdisplay/Loader.py:
3235 * plugins/rb/Loader.py: move the loader class to rb.Loader
3237 * plugins/rb/__init__.py: redirect stdout from python (e.g.
3238 "print ...") to rb_debug. error output (e.g. exceptions) are still
3241 * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
3242 * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
3243 * plugins/lyrics/lyrics.py: adapt to the above by using rb.Loader
3248 2006-07-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
3250 * shell/rb-shell-player.xml:
3251 * shell/rb-shell-player.h:
3252 Correct the details of the playing-song-property-changed signal.
3254 2006-07-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
3256 * lib/rb-marshal.list:
3257 * shell/rb-shell-player.c: (rb_shell_player_class_init),
3258 (rb_shell_player_entry_changed_cb):
3259 * shell/rb-shell-player.h:
3260 * shell/rb-shell-player.xml:
3261 Emit a dbus signal when a property is changed on the playing entry.
3264 2006-07-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
3266 * rhythmdb/rhythmdb-private.h:
3267 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
3268 Fix build break with gcc 4.1 by changing RBRefString pointers into
3271 2006-07-07 James Livingston <doclivingston@gmail.com>
3273 * rhythmdb/rhythmdb-monitor.c (rhythmdb_start_monitoring):
3274 remove an extraneous !, which caused it not to monitor folders in the
3275 library with no tracks in them. Fixes #346759.
3277 2006-07-07 James Livingston <doclivingston@gmail.com>
3279 * rhythmdb/rhythmdb-private.h:
3280 * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
3281 (rhythmdb_entry_get), (rhythmdb_entry_set_internal),
3282 (rhythmdb_entry_sync_mirrored), (rhythmdb_entry_set_visibility),
3283 (rhythmdb_entry_get_string):
3284 * rhythmdb/rhythmdb.h: make _sync_mirrored private, and have "dirty"
3285 flags for the affected properties. _sync_mirrored will get run
3286 automatically when a dirty property is accessed, which improves
3287 performance a bit (especially during startup) as we don't need to sync
3288 every time they change. From #325215.
3290 * tests/bench-rhythmdb-load.c
3291 * tests/Makefile.am: add a RhythmDB loading benchmark.
3293 2006-07-06 James Livingston <doclivingston@gmail.com>
3295 * bindings/python/rb.defs:
3296 * bindings/python/rb.override: some more fixes, so that
3297 python classes derived from RBSource work correctly.
3299 2006-07-06 James Livingston <doclivingston@gmail.com>
3301 * configure.ac: bump pygtk requirements to 2.8, since we're already
3302 using some features of it, and weird things will happen if people are
3303 actually trying to use pygtk 2.6.
3305 * bindings/python/rb.override:
3306 * bindings/python/rhythmdb.defs:
3307 * bindings/python/rhythmdb.override: allow python to set
3308 RhythmDBEntryType's can_sync_metadata and sync_metadata vfuncs
3310 * sources/rb-browser-source.c: remove some left over member variables
3312 2006-07-06 James Livingston <doclivingston@gmail.com>
3314 * rhythmdb/rhythmdb.c:
3315 * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
3316 (rhythmdb_process_metadata_load), (rhythmdb_entry_set): remove
3317 rhythmdb_entry_set_uninserted and rhythmdb_entry_set_nonotify. The
3318 former is pointless (as rhythmdb already knows which it should use)
3319 and the latter doesn't seem useful at all, and possibly bad. From
3322 * bindings/python/rhythmdb.defs:
3323 * bindings/python/rhythmdb.override:
3324 * daapsharing/rb-daap-connection.c: (entry_set_string_prop),
3325 (handle_song_listing):
3326 * podcast/rb-podcast-manager.c:
3327 (rb_podcast_manager_download_entry), (rb_podcast_manager_add_post),
3328 (rb_podcast_manager_insert_feed):
3329 * sources/rb-audiocd-source.c: (entry_set_string_prop),
3330 (rb_audiocd_create_track_entry):
3331 * sources/rb-ipod-source.c: (entry_set_string_prop),
3332 (add_ipod_song_to_db):
3333 * sources/rb-iradio-source.c: (rb_iradio_source_add_station):
3334 * tests/test-rhythmdb.c: (START_TEST): adapt to the above.
3336 2006-07-05 James Livingston <doclivingston@gmail.com>
3338 * shell/rb-playlist-manager.c: (playlist_load_start_cb),
3339 (playlist_load_end_cb), (rb_playlist_manager_parse_file),
3340 (rb_playlist_manager_cmd_save_playlist): set the playlist name to what
3341 totem-plparser gives us, or the file name if it doesn't give us
3342 anything. Set the default file name when saving too. Fixes #345261
3344 2006-07-05 Jonathan Matthew <jonathan@kaolin.wh9.net>
3346 patch by: Ed Catmur <ed@catmur.co.uk>
3348 * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb):
3349 Skip all hidden directories, not just trash, and skip unreadable
3350 files. Fixes #346322.
3352 2006-07-04 James Livingston <doclivingston@gmail.com>
3354 * plugins/rb-module.h:
3355 * plugins/rb-module.c: (rb_module_load), (rb_module_new_object),
3357 * plugins/rb-plugin.h:
3358 * plugins/rb-plugin.c: (is_configurable), (rb_plugin_class_init),
3359 (rb_plugin_finalise), (rb_plugin_set_property),
3360 (rb_plugin_get_property), (rb_plugin_activate),
3361 (rb_plugin_deactivate), (rb_plugin_create_configure_dialog),
3362 (rb_plugin_find_file):
3363 * plugins/rb-plugins-engine.c: (load_plugin_module):
3364 * plugins/rb-python-module.c: (rb_python_module_new_object),
3365 (rb_python_module_new):
3366 * plugins/rb-python-plugin.c: (rb_python_object_class_init): add a new
3367 rb_plugin_find_file method for locating plugin-specific data. Fixes
3370 * bindings/python/rb.defs:
3371 * plugins/Makefile.am:
3372 * plugins/generic-player/rb-generic-player-plugin.c:
3374 * plugins/ipod/rb-ipod-plugin.c: (impl_activate): Use the above.
3376 2006-07-04 Jonathan Matthew <jonathan@kaolin.wh9.net>
3378 * metadata/rb-metadata-dbus-client.c: (rb_metadata_load),
3379 (rb_metadata_can_save), (rb_metadata_save):
3380 Protect the dbus connection with a mutex.
3382 2006-07-03 James Livingston <doclivingston@gmail.com>
3384 * metadata/rb-metadata-gst.c: (ogg_pad_added_cb): correctly handle the
3385 case of the parser/tagger not being able to be created.
3387 2006-07-03 James Livingston <doclivingston@gmail.com>
3389 patch by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
3391 * widgets/rb-song-info.c: (rb_song_info_init): make the Song Info
3392 window resizable, as it used to be. Fixes #345940.
3394 2006-07-01 James Livingston <doclivingston@gmail.com>
3396 Patch from Ståle Lyngaas <staale@lyngaas.com>
3398 * rhythmdb/rhythmdb.h:
3399 * rhythmdb/rhythmdb-private.h:
3400 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
3401 (rhythmdb_tree_parser_end_element), (save_entry):
3402 * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
3403 (rhythmdb_entry_allocate), (rhythmdb_entry_finalize),
3404 (set_props_from_metadata), (rhythmdb_entry_set_internal),
3405 (rhythmdb_prop_type_get_type), (rhythmdb_entry_get_string): store
3406 MusicBrainz track IDs in the database, and bump the on-disk version
3407 number to trigger a metadata reload.
3409 * backends/gstreamer/rb-player-gst.c: (process_tag):
3410 * metadata/rb-metadata-common.c:
3411 * metadata/rb-metadata-gst.c: (rb_metadata_gst_tag_to_field),
3412 (rb_metadata_gst_field_to_gst_tag):
3413 * metadata/rb-metadata.h: grab MB track IDs and use them.
3415 * plugins/audioscrobbler/rb-audioscrobbler.c:
3416 (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
3417 (rb_audioscrobbler_timeout_cb),
3418 (rb_audioscrobbler_song_changed_cb): send the MB track id along with
3419 the other metadata. Fixes #343491.
3421 2006-06-30 James Livingston <doclivingston@gmail.com>
3423 * bindings/python/rb.defs: bind RBSource's convenienve "show popup"
3426 2006-06-30 James Livingston <doclivingston@gmail.com>
3428 * bindings/python/rb.defs:
3429 * sources/rb-browser-source.c: (rb_browser_source_class_init),
3430 (rb_browser_source_songs_show_popup_cb),
3431 (default_show_entry_popup):
3432 * sources/rb-browser-source.h:
3433 * sources/rb-library-source.c: (rb_library_source_class_init),
3434 (rb_library_source_constructor), (impl_show_popup): allow
3435 RBBrowserSource-derived sources to override the entry context menu
3436 properly - by making it a virtual function, rather than relying on
3437 signal handler order (which doesn't really work).
3439 2006-06-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
3441 * rhythmdb/rhythmdb-query-model.c:
3442 (rhythmdb_query_model_reapply_query_cb):
3443 Use the original query, not the preprocessed query, when redoing
3444 the query to pick up entries that previously didn't match.
3445 Preprocessing the query twice is bad. Fixes #346186.
3447 2006-06-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
3449 * plugins/audioscrobbler/rb-audioscrobbler.c:
3450 (rb_audioscrobbler_song_changed_cb):
3451 Just check if the elapsed time has been reset, rather
3452 than checking if it's a different track. Fixes #344827.
3454 2006-06-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
3456 * backends/gstreamer/rb-player-gst.c:
3457 Set cdda source read-speed to 1. Fixes gaps in playback while the
3458 drive spins up, #344576.
3460 2006-06-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
3462 * plugins/audioscrobbler/rb-audioscrobbler.c:
3463 (rb_audioscrobbler_perform):
3464 Use HTTP/1.1. Fixes #345895.
3466 2006-06-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
3468 * lib/rb-preferences.h:
3469 * lib/rb-proxy-config.c: (rb_proxy_config_init),
3470 (check_auto_proxy_config), (get_proxy_config):
3471 Don't try to use a HTTP proxy if no proxy host is specified.
3472 Alert the user to the fact that we don't support automatic proxy
3473 configuration as infrequently as possible. From #345712.
3475 2006-06-25 James Livingston <doclivingston@gmail.com>
3477 * rhythmdb/rhythmdb-property-model.c:
3478 (rhythmdb_property_model_set_property): connect to the
3479 "post-entry-delete" signal, rather than "entry-deleted". This ensures
3480 things get removed correctly, fixes #338183.
3482 2006-06-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
3484 * rhythmdb/rhythmdb-query-model.c:
3485 (rhythmdb_query_model_drag_data_received):
3488 2006-06-25 James Livingston <doclivingston@gmail.com>
3490 patch by Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
3492 * widgets/rb-search-entry.c: (rb_search_entry_init),
3493 (rb_search_entry_check_style), (rb_search_entry_changed_cb): make the
3494 search box have a pale yellow background when it's in use, except for
3495 when the user has an "accessability" theme. Code based heavily on
3496 Epiphany's. Fixes #344416.
3498 2006-06-25 James Livingston <doclivingston@gmail.com>
3500 * plugins/lyrics/lyrics.py:
3501 * plugins/pythonconsole/pythonconsole.py:
3502 * plugins/sample-python/sample-python.py: don't import gettext stuff
3503 as _, as the C code does this for us. Fixes i18n for python plugins,
3506 2006-06-25 James Livingston <doclivingston@gmail.com>
3508 * rhythmdb/rhythmdb-query-model.c:
3509 (rhythmdb_query_model_drag_data_received): Make drag-and-drop withing
3510 a model use a reorder rather then deleting and re-adding the entry.
3511 This means it does do weird things like stop playback of a track that
3512 is dragged, fixing #337657.
3514 2006-06-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
3516 * metadata/rb-metadata-dbus-service.c:
3517 Add missing #include <glib/gi18n.h> from previous commit.
3519 2006-06-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
3521 patch by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
3523 * metadata/rb-metadata-dbus-service.c: (main):
3524 Initialize gettext in the metadata helper.
3525 * metadata/rb-metadata-gst.c:
3526 Make some strings translatable. Fixes #345286.
3528 2006-06-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
3532 * lib/rb-stock-icons.c: (rb_stock_icons_init):
3533 Inline the custom icons so they can always be loaded, but are still
3534 themable. Fixes #345796.
3536 2006-06-23 James Livingston <doclivingston@gmail.com>
3538 * sources/rb-auto-playlist-source.c:
3539 (rb_auto_playlist_source_do_query): stop the search box being applied
3540 for limits in auto playlists. Fixes #345307.
3542 2006-06-23 James Livingston <doclivingston@gmail.com>
3544 * shell/rb-shell-clipboard.c:
3545 (rb_shell_clipboard_set_source_internal),
3546 (rb_shell_clipboard_sync), (add_playlist_to_menu),
3547 (rebuild_playlist_menu): don't use the add-to-playlist menu for
3548 non-library tracks, as we don't supprot it yet. From #345248.
3550 2006-06-23 James Livingston <doclivingston@gmail.com>
3552 patch by: Brian Cameron <brian.cameron@sun.com>
3554 * plugins/generic-player/rb-generic-player-plugin.c:
3555 * plugins/generic-player/rb-generic-player-source.c:
3556 * plugins/generic-player/rb-nokia770-source.c:
3557 * plugins/generic-player/rb-psp-source.c: Fix the build on Solaris.
3560 2006-06-22 James Livingston <doclivingston@gmail.com>
3562 * backends/rb-player.c: (rb_player_interface_init):
3563 * lib/rb-marshal.list:
3564 * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3565 * rhythmdb/rhythmdb-query-model.c:
3566 (rhythmdb_query_model_class_init):
3567 * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
3568 * shell/rb-shell-player.c: (rb_shell_player_class_init):
3569 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init):
3570 * sources/rb-sourcelist.c: (rb_sourcelist_class_init):
3571 * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3572 * widgets/rb-song-info.c: (rb_song_info_class_init): fix the C
3573 marshallers to use s/POINTER/BOXED/. Could fix #345384 but quite
3576 2006-06-20 James Livingston <doclivingston@gmail.com>
3578 patch by Alex Lancaster <alexl@users.sourceforge.net>
3580 * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): send the YEAR
3581 metadata to clients. Fixes #345276.
3583 2006-06-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
3585 * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
3586 (rb_add_id3_tagger):
3587 Fix plugin/element version detection for id3v2mux.
3589 2006-06-20 Jonathan Matthew <jonathan@kaolin.wh9.net>
3591 * sources/rb-source.c: (rb_source_finalize),
3592 (rb_source_set_property), (rb_source_post_entry_deleted_cb),
3593 (_autohide_update_visibility),
3594 (_rb_autohide_source_post_entry_deleted_cb),
3595 (_rb_autohide_source_row_inserted_cb),
3596 (_rb_source_hide_when_empty):
3597 Use post-entry-delete signal to update status and autohide sources.
3599 2006-06-20 James Livingston <doclivingston@gmail.com>
3601 * widgets/rb-entry-view.c: (rb_entry_view_finalize): remove the
3602 "selection changed" idle callback, if present.
3604 2006-06-19 James Livingston <doclivingston@gmail.com>
3606 patch by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
3608 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
3609 don't try to translate the empty string. Fixes #345285.
3611 2006-06-19 James Livingston <doclivingston@gmail.com>
3613 * bindings/python/rhythmdb.override: more python binding fixes
3615 2006-06-19 James Livingston <doclivingston@gmail.com>
3617 * lib/rb-util.c: (rb_copy_function):
3618 * lib/rb-util.h: add a function that returns the same pointer it was
3621 * rhythmdb/rhythmdb.h:
3622 * rhythmdb/rhythmdb.c: (rhythmdb_entry_ref), (rhythmdb_entry_unref),
3623 (rhythmdb_entry_get_type), (rhythmdb_entry_type_get_type): drop the
3624 "db" parameter to rhythmdb_entry_{ref,unref}, and change RhythmDBEntry
3625 and RhythmDBEntryType into boxed types. This allows them to be used
3626 from python. Note that entry-types aren't actually reference counted
3629 * bindings/python/rb.defs:
3630 * bindings/python/rhythmdb.defs:
3631 * bindings/python/rhythmdb.override: Adapt to the above, and fix the
3632 return types of some bindings.
3634 * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
3635 (process_added_entries_cb), (rhythmdb_entry_finalize),
3636 (rhythmdb_entry_delete):
3637 * daapsharing/rb-daap-connection.c:
3638 (rb_daap_connection_class_init), (rb_daap_connection_set_property),
3639 (rb_daap_connection_get_property):
3640 * plugins/generic-player/rb-generic-player-source.c:
3641 (rb_generic_player_source_load_songs), (load_playlist_file):
3642 * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
3643 * rhythmdb/rhythmdb-property-model.c: (query_model_cb):
3644 * rhythmdb/rhythmdb-query-model.c: (rhythmdb_query_model_finalize),
3645 (idle_process_update), (rhythmdb_query_model_add_entry),
3646 (rhythmdb_query_model_insert_into_main_list),
3647 (rhythmdb_query_model_insert_into_limited_list),
3648 (rhythmdb_query_model_remove_from_main_list),
3649 (rhythmdb_query_model_remove_from_limited_list),
3650 (rhythmdb_query_model_drag_data_received),
3651 (rhythmdb_query_model_add_results),
3652 (rhythmdb_query_model_get_column_type),
3653 (rhythmdb_query_model_get_value):
3654 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
3655 (rhythmdb_tree_entry_delete), (remove_one_song):
3656 * shell/rb-play-order-linear-loop.c:
3657 (rb_linear_play_order_loop_get_next),
3658 (rb_linear_play_order_loop_get_previous):
3659 * shell/rb-play-order-linear.c: (rb_linear_play_order_get_next),
3660 (rb_linear_play_order_get_previous):
3661 * shell/rb-play-order-queue.c: (rb_queue_play_order_get_next),
3662 (rb_queue_play_order_get_previous):
3663 * shell/rb-play-order-random.c: (rb_random_play_order_init),
3664 (rb_random_filter_history), (rb_random_play_order_get_next),
3665 (rb_random_play_order_go_next), (rb_random_db_changed),
3666 (rb_random_playing_entry_changed):
3667 * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_init),
3668 (remove_from_history), (add_randomly_to_history),
3669 (rb_shuffle_db_changed), (rb_shuffle_playing_entry_changed):
3670 * shell/rb-play-order.c: (rb_play_order_class_init),
3671 (rb_play_order_set_property), (rb_play_order_get_property),
3672 (rb_play_order_update_have_next_previous):
3673 * shell/rb-play-order.h:
3674 * shell/rb-shell-clipboard.c:
3675 (rb_shell_clipboard_process_deletions),
3676 (rb_shell_clipboard_entry_deleted_cb), (add_playlist_to_menu):
3677 * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
3678 * sources/rb-auto-playlist-source.c:
3679 (rb_auto_playlist_source_constructor):
3680 * sources/rb-browser-source.c: (rb_browser_source_class_init),
3681 (rb_browser_source_set_property), (rb_browser_source_get_property),
3682 (rb_browser_source_do_query):
3683 * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
3684 * sources/rb-import-errors-source.c: (rb_import_errors_source_new):
3685 * sources/rb-ipod-source.c: (add_rb_playlist),
3686 (add_ipod_song_to_db), (impl_paste):
3687 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
3688 (rb_iradio_source_set_property), (rb_iradio_source_get_property):
3689 * sources/rb-library-source.c: (layout_example_label_update):
3690 * sources/rb-missing-files-source.c:
3691 (rb_missing_files_source_class_init),
3692 (rb_missing_files_source_set_property),
3693 (rb_missing_files_source_get_property),
3694 (rb_missing_files_source_new):
3695 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
3696 (rb_playlist_source_set_property),
3697 (rb_playlist_source_get_property):
3698 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
3699 (rb_podcast_source_set_property), (rb_podcast_source_get_property),
3700 (construct_query_from_selection):
3701 * sources/rb-removable-media-source.c: (impl_delete_thyself):
3702 * sources/rb-static-playlist-source.c:
3703 (rb_static_playlist_source_constructor),
3704 (rb_static_playlist_source_add_location_internal):
3705 * widgets/rb-entry-view.c: (rb_entry_view_class_init):
3706 * widgets/rb-header.c: (rb_header_class_init),
3707 (rb_header_set_property), (rb_header_get_property):
3708 * widgets/rb-library-browser.c: (rb_library_browser_class_init),
3709 (rb_library_browser_set_property),
3710 (rb_library_browser_get_property):
3711 * widgets/rb-song-info.c: (rb_song_info_class_init),
3712 (rb_song_info_get_property): Adjust for the _ref/_unref prototype
3713 change, do s/pointer/boxed/ in many places and free entry-types
3716 2006-06-18 James Livingston <doclivingston@gmail.com>
3718 * lib/rb-util.c: (purge_useless_threads), (rb_threads_init): purge
3719 unushed GThreadPool non-exclusive threads every now and then.
3721 * rhythmdb/rhythmdb-private.h:
3722 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
3723 (rhythmdb_do_full_query_async_parsed): Use a thread pool for query
3724 threads. Fixes #341593
3726 2006-06-19 James Livingston <doclivingston@gmail.com>
3728 * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3729 the "Track number" checkbox actually work for playlists. From #329986.
3731 2006-06-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
3733 * plugins/generic-player/rb-generic-player-source.c:
3734 Get playlist and audio folder information from HAL. Fixes #333845.
3736 2006-06-18 James Livingston <doclivingston@gmail.com>
3738 patch by: Alex Lancaster <alexl@users.sourceforge.net>
3740 * widgets/rb-entry-view.h:
3741 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
3742 (rb_entry_view_append_column_custom),
3743 (rb_entry_view_insert_column_custom): add support for inserting custom
3744 columns at arbitrary locations, rather than just appending to the end.
3746 * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
3747 the playlists "track number" column go at the start, and add a normal
3748 track number column. Fixes #329986.
3750 2006-06-18 Dennis Cranston <dennis_cranston@yahoo.com>
3752 * data/glade/library-prefs.glade: Capitalization fixes. Fix
3753 a mnemonic conflict. Add ellipses to the edit button.
3754 * sources/rb-library-source.c:
3755 (rb_library_source_edit_profile_clicked_cb),
3756 (impl_get_config_widget): Hide dialog separator. Assign a
3757 mnemonic widget to the labels. Fixes #344114.
3759 2006-06-18 James Livingston <doclivingston@gmail.com>
3761 * configure.ac: bump version
3762 * NEWS: add NEWS for 0.9.5
3764 2006-06-18 Jonathan Matthew <jonathan@kaolin.wh9.net>
3766 * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
3767 (rb_uri_handle_recursively):
3768 Don't attempt to recurse into directories we can't open.
3771 2006-06-18 James Livingston <doclivingston@gmail.com>
3773 patch by: Jaap A. Haitsma <jaap@haitsma.org>
3775 * shell/rb-shell.c: Add F11 as a shortcut for Party Mode. Fixes
3778 2006-06-18 Jonathan Matthew <jonathan@kaolin.wh9.net>
3780 * bindings/python/rb.defs:
3781 * shell/rb-shell-player.c: (rb_shell_player_play_entry), (eos_cb):
3782 * shell/rb-shell-player.h:
3783 * shell/rb-shell.c: (rb_shell_play_entry):
3784 Add source parameter to rb_shell_player_play_entry, using the selected
3785 source if not specified.
3787 * shell/rb-play-order.c: (rb_play_order_class_init),
3788 (rb_play_order_finalize), (rb_play_order_query_model_changed),
3789 (rb_play_order_row_deleted_cb), (sync_playing_entry_cb),
3790 (default_playing_entry_removed):
3791 * shell/rb-play-order.h:
3792 Move entry removal handling back to the row-deleted signal, as we need
3793 the entry to be present in the model. When changing to the next entry
3794 after the playing entry is deleted, set the new entry as the playing
3795 entry and then sync it to the player in an idle handler, so we don't
3796 end up playing it if it was removed too.
3797 * shell/rb-play-order-queue.c:
3798 (rb_queue_play_order_playing_entry_changed),
3799 (rb_queue_play_order_playing_entry_removed):
3800 Use the playing-entry-removed handler from the play order class,
3801 setting a flag so we don't try to remove the already-removed entry
3804 This makes removal of the playing entry from playlists etc. work more
3805 or less correctly for all play orders. Fixes #344627.
3807 2006-06-17 James Livingston <doclivingston@gmail.com>
3809 patch by: Elijah Newren <newren@gmail.com>
3811 * tests/test-rhythmdb.c: fix the build with older versions of check
3812 (again). Fixes #343718.
3814 2006-06-17 James Livingston <doclivingston@gmail.com>
3816 * player/rb-recorder-gst.c: (rb_recorder_construct): use the right
3817 name for capsfilter's "caps" property. Fixes #344968.
3819 2006-06-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
3821 * shell/rb-shell-player.c: (rb_shell_player_playpause):
3822 Don't leak the selected entry list when finding an entry to play.
3824 2006-06-17 James Livingston <doclivingston@gmail.com>
3826 * widgets/rb-entry-view.c: (rb_entry_view_emit_selection_changed),
3827 (rb_entry_view_selection_changed_cb): don't do O(n) operations here,
3828 as a O(1) one works fine, and it will get called often when the user
3829 deleted multiple tracks. Part of #344922.
3831 2006-06-17 James Livingston <doclivingston@gmail.com>
3833 * shell/rb-shell-player.c: (rb_shell_player_stop): make
3834 rb_shell_player_stop and rb_shell_player_playpause not mutually
3835 recursive. Fixed #336912.
3837 2006-06-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
3839 * podcast/rb-podcast-parse.c: (rb_podcast_parser_start_element):
3840 Treat nested elements inside properties as unknown. Fixes parsing of
3841 podcast feeds with unescaped HTML in description tags, bug #344532.
3843 2006-06-15 William Jon McCann <mccann@jhu.edu>
3845 * shell/rb-shell.c (rb_shell_quit): Unset the playing source
3846 when quitting. Fixes #344875.
3848 2006-06-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
3850 * shell/rb-play-order.c: (rb_play_order_post_entry_delete_cb):
3851 Move the playing-entry-removed handling to after the normal entry
3852 delete handling, since we're called after the entry has been removed
3853 from the query model now. Fixes crashes described in #344627.
3855 2006-06-13 William Jon McCann <mccann@jhu.edu>
3857 * widgets/rb-rating-helper.c: (rb_rating_render_stars),
3858 (rb_rating_get_rating_from_widget):
3859 * widgets/rb-rating.c: (rb_rating_class_init),
3860 (rb_rating_finalize), (rb_rating_get_property),
3861 (rb_rating_set_property), (rb_rating_new), (rb_rating_expose),
3862 (rb_rating_button_press_cb):
3863 Don't crash when ratings icons can't be found. Fixes #344533.
3865 2006-06-12 Jonathan Matthew <jonathan@kaolin.wh9.net>
3867 * remote/dbus/Makefile.am: Fix build with builddir != srcdir.
3869 2006-06-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
3873 * remote/Makefile.am:
3874 * remote/dbus/Makefile.am:
3875 * remote/dbus/rb-client.c:
3876 * shell/Makefile.am:
3877 New dbus client program providing --play/--next etc. arguments.
3878 Fixes #340863, #155763.
3880 2006-06-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
3882 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post):
3883 g_mkdir_with_parents returns -1 on error, not 0. Fixes #344316.
3885 2006-06-10 Ryan P Skadberg <skadz@stigmata.org>
3887 patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
3889 * rhythmdb/rhythmdb-query-model.c:
3890 (rhythmdb_query_model_drag_data_get): Fix for Podcasts getting added
3891 to Library incorrectly
3893 2006-06-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
3895 * lib/rb-file-helpers.c: (rb_canonicalise_uri):
3896 Return input string untouched if gnome_vfs_uri_new returns NULL.
3897 * sources/rb-static-playlist-source.c: (impl_receive_drag),
3898 (rb_static_playlist_source_add_list_uri):
3899 Use rb_uri_list_parse rather than gnome_vfs_uri_list_parse so DAAP
3900 URIs don't break it. Fixes #339033.
3902 2006-06-08 James Livingston <doclivingston@gmail.com>
3904 * lib/rb-tree-dnd.c: (scroll_row_timeout): fix "select on drag hover"
3905 for sources on the edge (i.e. the queue). Fixes #328409.
3907 * sources/rb-ipod-source.c: fix typo
3909 2006-06-08 James Livingston <doclivingston@gmail.com>
3912 * sources/rb-ipod-source.c: (rb_ipod_source_class_init): add a
3913 --enable-ipod-writing to enable the ipod syncing code.
3915 2006-06-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
3917 * sources/rb-library-source.c: (layout_example_label_update):
3918 add missing comma so we don't generate broken markup.
3920 2006-06-08 James Livingston <doclivingston@gmail.com>
3922 * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): check for backwards
3923 tag-merging with id3v2mux as well as id3mux. From #342330.
3925 2006-06-07 James Livingston <doclivingston@gmail.com>
3927 * tests/test-rhythmdb.c: #define fail_if for old version of check
3928 which don't have it. Hopefully fixes #343718.
3930 2006-06-07 James Livingston <doclivingston@gmail.com>
3932 * shell/rb-playlist-manager.c:
3933 (rb_playlist_manager_cmd_edit_automatic_playlist): don't call
3934 g_value_array_free with NULL. Fixes #341053.
3936 2006-06-07 James Livingston <doclivingston@gmail.com>
3938 * shell/rb-playlist-manager.c:
3939 (rb_playlist_manager_playlist_entries_changed),
3940 (rb_playlist_manager_set_source): use the "post-entry-delete" signal
3941 instead of "row-removed", which fixes updating "burn playlist"
3942 sensitivity. Fixes #331119.
3944 2006-06-07 James Livingston <doclivingston@gmail.com>
3946 * shell/rb-shell-player.c: (rb_shell_player_error): display errors
3947 rather than restarting if the source uses _RETRY and there is an
3948 actual error (like an undecodable stream) rather than it just dropping
3949 out and causing EOS.
3951 2006-06-07 James Livingston <doclivingston@gmail.com>
3953 * widgets/rb-rating-helper.c: (rb_rating_pixbufs_free): don't try to
3954 free the pixbufs if they couldn't be loaded. Fixed #343852.
3956 2006-06-07 James Livingston <doclivingston@gmail.com>
3958 * sources/rb-playlist-source-recorder.c: (response_cb): make pressing
3959 the close button on the dialog work. Fixes #335346.
3961 2006-06-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
3963 * sources/rb-sourcelist-model.c: (path_is_droppable),
3964 (path_is_reorderable):
3965 * sources/rb-sourcelist.c: (rb_sourcelist_selection_changed_cb),
3966 (row_activated_cb), (emit_show_popup), (key_release_cb),
3967 (rb_sourcelist_title_cell_data_func), (source_name_edited_cb):
3968 Ignore group marker rows in the source list. Fixes #344089, a couple
3969 of other crashers, and some weird UI glitches too.
3971 2006-06-07 James Livingston <doclivingston@gmail.com>
3973 * backends/gstreamer/rb-player-gst.c: check if we have a duration if
3974 the seeking query fails. This is needed because many gst elements
3975 don't implement the seeking query yet. Should fix 329977.
3977 2006-06-06 James Livingston <doclivingston@gmail.com>
3979 * configure.ac: bump version for a prerelease, turn on track transfer
3982 * sources/rb-ipod-source.c: (rb_ipod_source_class_init): disable the
3983 ipod transfer stuff, since it has big issues and we'll hopefully land
3984 real support (bug 310774) after 0.9.5
3986 2006-06-06 James Livingston <doclivingston@gmail.com>
3988 * metadata/rb-metadata-gst.c: (rb_add_id3_tagger): actually use
3989 id3v2mux once we've detected it.
3991 2006-06-06 James Livingston <doclivingston@gmail.com>
3994 * tests/test-rhythmdb.c: undo accidental commit which caused
3995 rb-thread.c to be built (which it isn't normally)
3997 2006-06-06 James Livingston <doclivingston@gmail.com>
3999 * tests/test-rhythmdb.c: (test_rhythmdb_setup),
4000 (test_rhythmdb_shutdown), (START_TEST): add message strings to all
4001 fail_{if/unless} calls, as some versions of check need them (they are
4002 optional in others). Should fix bug 343718.
4004 2006-06-06 James Livingston <doclivingston@gmail.com>
4006 * lib/rb-debug.c: (rb_profiler_new): fix if statement, from bug
4010 * lib/rb-thread.c: (process_actions):
4011 * tests/test-rhythmdb.c: (START_TEST): fix distcheck, and disable
4012 tests that don't pass.
4014 2006-06-05 James Livingston <doclivingston@gmail.com>
4016 * data/glade/Makefile.am:
4017 * data/glade/load-failure.glade:
4018 * data/rhythmbox.schemas: remove the remainder of the old load-failure
4021 2006-06-05 Jonathan Matthew <jonathan@kaolin.wh9.net>
4023 * bindings/python/rb.defs: Remove rb_debug stuff I accidentally
4026 2006-06-04 Jonathan Matthew <jonathan@kaolin.wh9.net>
4028 * bindings/python/rb.defs:
4029 * sources/rb-source.h:
4030 * sources/rb-source.c: (rb_source_class_init),
4031 (rb_source_set_property), (rb_source_get_property),
4032 (rb_sourcelist_group_get_type):
4033 Add 'sourcelist-group' property on the RBSource class, describing how
4034 sources should be grouped in the source list.
4036 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_finalize),
4037 (rb_sourcelist_model_new), (real_row_is_separator),
4038 (rb_sourcelist_model_is_row_visible),
4039 (rb_sourcelist_model_row_is_separator), (get_group_for_path),
4040 (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
4041 (rb_sourcelist_model_row_draggable),
4042 (rb_sourcelist_model_row_inserted_cb),
4043 (rb_sourcelist_model_row_deleted_cb),
4044 (rb_sourcelist_model_get_group_path):
4045 * sources/rb-sourcelist-model.h:
4046 * sources/rb-sourcelist.c: (rb_sourcelist_init),
4047 (rb_sourcelist_append):
4048 Add group marker rows for each sourcelist group, and use these to
4049 insert sources in the right place. Sort transient sources (DAAP
4050 shares) by name. Show the group marker rows as separators when the
4051 next visible row is a source. Make persistant sources (playlists) and
4052 removable sources reorderable using drag and drop, restricting them
4053 within the source groups.
4055 * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4056 * sources/rb-auto-playlist-source.c: (rb_auto_playlist_source_new):
4057 * sources/rb-daap-source.c: (rb_daap_source_new):
4058 * sources/rb-ipod-source.c: (rb_ipod_source_new):
4059 * sources/rb-static-playlist-source.c:
4060 (rb_static_playlist_source_new):
4061 * plugins/generic-player/rb-generic-player-source.c:
4062 (rb_generic_player_source_new):
4063 * plugins/generic-player/rb-nokia770-source.c:
4064 (rb_nokia770_source_new):
4065 * plugins/generic-player/rb-psp-source.c: (rb_psp_source_new):
4066 Add source list group information to existing source classes.
4068 Fixes #318754 and #336492.
4070 2006-06-04 James Livingston <doclivingston@gmail.com>
4072 * widgets/rb-song-info.c: (rb_song_info_populate_dialog),
4073 (rb_song_info_update_year), (rb_song_info_sync_entries_multiple):
4076 2006-06-03 Jonathan Matthew <jonathan@kaolin.wh9.net>
4078 * rhythmdb/rhythmdb-query-model.c:
4079 (rhythmdb_query_model_class_init),
4080 (rhythmdb_query_model_remove_from_main_list):
4081 * rhythmdb/rhythmdb-query-model.h:
4082 Add a new 'post-entry-delete' signal, emitted when the entry has been
4083 removed from the model's data structures.
4085 * shell/rb-play-order.c: (rb_play_order_finalize),
4086 (rb_play_order_query_model_changed),
4087 (rb_play_order_post_entry_delete_cb):
4088 Use the new signal to update the play order, so the queue play order
4089 doesn't try to scroll to entries that don't exist in a way that causes
4090 the tree view to crash. Fixes #340216.
4092 2006-06-03 Jonathan Matthew <jonathan@kaolin.wh9.net>
4094 * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb):
4095 Fix rb_debug call I missed previously.
4097 2006-06-03 Jonathan Matthew <jonathan@kaolin.wh9.net>
4099 * metadata/rb-metadata-gst.c:
4100 Don't use NULL as the error message for ignored files, as it crashes
4101 with some C libraries. Fixes #343713.
4103 2006-06-03 Jonathan Matthew <jonathan@kaolin.wh9.net>
4105 * widgets/rb-dialog.c: (rb_error_dialog):
4106 * widgets/rb-dialog.h:
4107 Mark rb_error_dialog as taking printf-like arguments, and use a format
4108 string for the primary message rather than passing in the message
4111 * lib/eel-gconf-extensions.c: (eel_gconf_handle_error):
4112 * shell/rb-shell-player.c: (rb_shell_player_cmd_play),
4113 (info_available_cb):
4114 * shell/rb-playlist-manager.c: (load_playlist_response_cb):
4115 * shell/rb-removable-media-manager.c:
4116 (rb_removable_media_manager_eject_medium_cb):
4117 Make sure all calls to rb_error_dialog use string constants for the
4118 format string rather than passing the error message directly. Remove
4119 an extra %s from the message used when playback fails. Fixes #343562.
4122 * sources/rb-audiocd-source.c:
4123 * plugins/audioscrobbler/rb-audioscrobbler.c:
4124 (rb_audioscrobbler_do_handshake), (rb_audioscrobbler_submit_queue):
4125 Mark rb_debug as taking printf-like arguments and fix a few resulting
4128 2006-06-02 James Livingston <doclivingston@gmail.com>
4131 + macros/check.m4: add support for using check for unit tests, the .m4
4132 files is so autogen can run without check being installed
4134 * tests/Makefile.am:
4135 + tests/test-rhythmdb.c: update the tests to new rhythmdb API, port
4136 some of the old tests, and add some new ones. Currently
4137 deserialisation tests 2 and 3 fail, for reasons I haven't figured out
4138 yet (the query doesn't return any entries).
4140 - tests/deserialization-test1.xml:
4141 - tests/deserialization-test2.xml:
4142 - tests/deserialization-test3.xml:
4143 - tests/test-rhythmdb-indexing.c:
4144 - tests/test-rhythmdb-simple.c:
4145 - tests/test-rhythmdb-tree-deserialization.c: remove old tests that
4149 - tests/test-cmdline.c: remove obsolete tests
4151 2006-06-02 James Livingston <doclivingston@gmail.com>
4153 * metadata/rb-metadata-gst.c: (rb_gst_plugin_greater),
4154 (rb_add_id3_tagger), (rb_metadata_init): add support for using
4155 id3v2mux, and check whether we are using a version of id3mux that has
4156 the correct merge-mode behaviour.
4158 * plugins/sample-python/Makefile.am: fix distcheck.
4160 * rhythmdb/rhythmdb-monitor.c: (rhythmdb_finalize_monitoring): check
4161 the changed-files source was added before trying to remove it.
4163 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_evaluate_query): fix an
4164 *old* bug which would crash if a query with top-level disjunctions
4165 tried to check later disjunctive parts. Hooray for unit-testing.
4167 2006-06-02 William Jon McCann <mccann@jhu.edu>
4169 * player/rb-recorder-gst.c (rb_recorder_set_device):
4170 Check for a null drive.
4172 2006-05-31 Jonathan Matthew <jonathan@kaolin.wh9.net>
4175 * lib/rb-stock-icons.c: (rb_stock_icons_init):
4176 Register the app icon as a builtin if the icon theme can't find it.
4178 2006-05-31 James Livingston <doclivingston@gmail.com>
4180 * player/rb-recorder-gst.c: add missing include.
4182 2006-05-30 William Jon McCann <mccann@jhu.edu>
4184 * metadata/sj-metadata-musicbrainz.c: (lookup_cd):
4185 * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
4186 (tick_timeout_cb), (rb_recorder_sync_pipeline),
4187 (nautilus_burn_drive_get_device), (rb_recorder_get_device),
4188 (rb_recorder_set_device), (rb_recorder_get_default_device):
4189 * shell/main.c: (main):
4190 * shell/rb-removable-media-manager.c:
4191 (rb_removable_media_manager_finalize),
4192 (get_nautilus_burn_drive_for_path),
4193 (rb_removable_media_manager_playing_uri_changed_cb),
4194 (rb_removable_media_manager_load_media),
4195 (nautilus_burn_drive_get_device),
4196 (rb_removable_media_manager_scan):
4197 * sources/rb-playlist-source-recorder.c: (ask_rewrite_disc):
4199 Update for libnautilus-burn 2.15.3 API changes.
4202 2006-05-30 James Livingston <doclivingston@gmail.com>
4204 * daapsharing/rb-daap-connection.c: (handle_login): add a missing
4205 "return" to that it asks for the password again if it was wrong.
4207 2006-05-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
4209 * metadata/rb-metadata-gst.c: Don't leak a reference to decodebin's
4212 2006-05-30 James Livingston <doclivingston@gmail.com>
4214 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
4215 (download_progress_cb): don't do wonky things if the transfer
4216 "suceeds" without transferring any data.
4218 2006-05-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
4220 * sources/rb-library-source.c: (layout_example_label_update),
4221 (build_filename): Fix crash when no audio profile is selected.
4224 2006-05-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
4226 * shell/rb-shell.c: (rb_shell_clear_queue):
4228 * shell/rb-shell.xml:
4229 * sources/rb-play-queue-source.c:
4230 (rb_play_queue_source_clear_queue),
4231 (rb_play_queue_source_cmd_clear):
4232 * sources/rb-play-queue-source.h:
4233 Add clearQueue dbus method.
4235 2006-05-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
4237 * shell/main.c: (main): Implement --quit option.
4239 2006-05-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
4241 * rhythmdb/rhythmdb-private.h:
4242 * rhythmdb/rhythmdb-tree.h:
4243 * rhythmdb/rhythmdb.c: (process_added_entries_cb),
4244 (rhythmdb_entry_insert), (rhythmdb_entry_set),
4245 (rhythmdb_entry_set_nonotify), (rhythmdb_entry_set_uninserted),
4246 (rhythmdb_entry_set_internal), (rhythmdb_entry_sync_mirrored),
4247 (rhythmdb_entry_get_boolean):
4248 Replace 'visibility' and 'inserted' in RhythmDBEntry with a flag
4249 bitmask, giving the db backend anything past the first 16 bits for
4250 its own private use.
4252 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4253 (save_entry), (rhythmdb_tree_entry_new), (rhythmdb_tree_entry_set):
4254 Add a 'loading' flag to indicate that an entry is being loaded from
4255 disk, and use that to ignore entry_set operations on such entries
4256 rather than the 'inserted' flag, which doesn't quite mean the same
4257 thing. Fixes #342694.
4259 2006-05-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
4261 * shell/rb-shell.xml: Remove visibility property, since it causes
4262 crashes (dbus bug 7057) and doesn't do much else.
4264 2006-05-28 James Livingston <doclivingston@gmail.com>
4266 * plugins/audioscrobbler/Makefile.am: fix some distcheck issues.
4268 patch by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
4269 * po/POTFILES.in: fix some more i18n issues.
4271 2006-05-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
4273 * bindings/python/rb.defs:
4274 * shell/rb-shell-player.c: (rb_shell_player_playpause),
4276 * shell/rb-shell-player.h:
4277 Deprecate the useless 'ignore_stop' parameter to
4278 rb_shell_player_playpause, leaving it in place to avoid breaking dbus
4279 API. From bug #334829.
4281 2006-05-28 Jonathan Matthew <jonathan@kaolin.wh9.net>
4283 * plugins/generic-player/rb-generic-player-source.c:
4284 (visit_playlist_dirs), (default_transform_playlist_uri):
4285 When playlist parsing fails, unref the playlist, not the parent
4286 source. Fix memory leak in playlist uri transform.
4287 * plugins/generic-player/rb-nokia770-source.c:
4288 (impl_transform_playlist_uri):
4289 Fix memory leak in playlist uri transform.
4291 2006-05-27 Ryan P Skadberg <skadz@stigmata.org>
4293 * doc/reference/Makefile.am: fix grk-doc build
4295 2006-05-27 James Livingston <doclivingston@gmail.com>
4297 patch by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
4299 * plugins/lyrics/lyrics.py:
4300 * po/POTFILES.in: Make strings in plugins translatable. From bug
4303 2006-05-27 James Livingston <doclivingston@gmail.com>
4305 * backends/Makefile.am:
4306 * backends/gstreamer/Makefile.am:
4308 * plugins/audioscrobbler/Makefile.am:
4309 * plugins/generic-player/Makefile.am:
4311 * rhythmdb/rhythmdb-monitor.c:
4312 * rhythmdb/rhythmdb.c:
4313 * sources/Makefile.am:
4314 * widgets/Makefile.am: fix compilation after some CVS surgery was
4317 2006-05-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
4319 * bindings/python/rhythmdb.defs:
4320 * rhythmdb/rhythmdb-query.c: (write_encoded_gvalue),
4321 (rhythmdb_read_encoded_property), (rhythmdb_query_serialize),
4322 (rhythmdb_query_deserialize):
4323 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_entry_allocate),
4324 (rhythmdb_entry_get_type_data), (rhythmdb_entry_finalize),
4325 (rhythmdb_entry_set_internal), (rhythmdb_entry_register_type),
4326 (rhythmdb_entry_register_type_alias),
4327 (rhythmdb_entry_type_get_by_name), (rhythmdb_entry_song_get_type),
4328 (rhythmdb_entry_ignore_get_type), (rhythmdb_entry_iradio_get_type),
4329 (_podcast_data_destroy), (rhythmdb_entry_podcast_post_get_type),
4330 (rhythmdb_entry_podcast_feed_get_type),
4331 (rhythmdb_entry_import_error_get_type),
4332 (rhythmdb_entry_get_string), (rhythmdb_entry_get_ulong):
4333 * rhythmdb/rhythmdb.h:
4334 Allocate a specified amount of extra memory for each db entry, to be
4335 used to store fields specific to the entry type. Optionally associate
4336 a name with each entry type, to be used when saving entries and
4337 auto playlists to disk. Allow entry types to have multiple names
4338 to handle older playlist files that used '0' to represent 'song'.
4339 Use private data to store podcast fields.
4341 * rhythmdb/rhythmdb-private.h:
4342 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
4343 (rhythmdb_tree_parser_end_element), (save_entry),
4344 (rhythmdb_tree_entry_set):
4345 Simplify property handling by using existing code to convert
4346 properties from strings to GValues and to set properties on entries.
4347 Other assorted changes due to the above.
4349 * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
4350 * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new):
4351 * sources/rb-generic-player-source.c:
4352 (rb_generic_player_source_new):
4353 * sources/rb-ipod-source.c: (rb_ipod_source_new):
4354 * sources/rb-nokia770-source.c: (rb_nokia770_source_new):
4355 * sources/rb-psp-source.c: (rb_psp_source_new):
4356 Update for changes to rhythmdb_entry_register_type. None of these
4357 entry types need names or use private data.
4361 2006-05-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
4363 * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
4364 Fix creation of ignored-file db entries - need to check for
4365 RHYTHMDB_ENTRY_TYPE_INVALID as well as _SONG.
4367 2006-05-25 James Livingston <doclivingston@gmail.com>
4370 * MAINTAINERS: update my email address
4372 2006-05-25 James Livingston <doclivingston@gmail.com>
4374 * plugins/lyrics/lyrics.py: strip annotations like "(live ...)" and
4375 "(... mix)" when searching for lyrics. Cache the lyrics under
4376 ~/.gnome2/rhythmbox/lyrics/. Fixes bug 342319.
4378 2006-05-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
4380 * sources/rb-import-errors-source.c:
4381 (rb_import_errors_source_class_init):
4382 * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
4383 * sources/rb-browser-source.c: (rb_browser_source_class_init):
4384 * sources/rb-source.c: (rb_source_class_init),
4385 (default_move_to_trash):
4386 Implement the basic move-to-trash operation once in rb-source.c,
4387 rather than in each source type that supports it.
4389 * plugins/ipod/rb-ipod-plugin.c:
4390 * shell/rb-removable-media-manager.c:
4391 * shell/rb-shell.c: (rb_shell_constructor):
4392 Only scan removable media once after loading plugins. Add a flag
4393 plugins can use to check if the initial scan has been done.
4395 * data/rhythmbox.schemas:
4396 Enable ipod and generic-player plugins by default.
4399 * data/ui/Makefile.am:
4400 * data/ui/generic-player-ui.xml:
4401 * data/ui/rhythmbox-ui.xml:
4402 * plugins/Makefile.am:
4403 * plugins/generic-player/Makefile.am:
4404 * plugins/generic-player/generic-player.rb-plugin.desktop.in:
4405 * plugins/generic-player/rb-generic-player-plugin.c:
4406 * sources/Makefile.am:
4407 * sources/rb-generic-player-source.c:
4408 * sources/rb-generic-player-source.h:
4409 * sources/rb-nokia770-source.c:
4410 * sources/rb-nokia770-source.h:
4411 * sources/rb-psp-source.c: (visit_playlist_dirs):
4412 * sources/rb-psp-source.h:
4413 Pluginise generic player (and nokia770 and PSP) support and add
4414 move-to-trash for players not mounted read-only.
4417 2006-05-24 William Jon McCann <mccann@jhu.edu>
4419 * daapsharing/rb-daap-connection.c (handle_song_listing):
4420 Lower bound check for batch commit. Fixes #342848
4422 * sources/rb-daap-source.c (rb_daap_source_get_status):
4423 Always set output variables if provided.
4425 2006-05-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
4427 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new),
4428 (rhythmdb_tree_entry_delete), (remove_one_song):
4429 * rhythmdb/rhythmdb.c: (process_deleted_entries_cb):
4430 Fix two db entry reference counting problems.
4431 The initial reference on the entry is held by the db backend, but it
4432 was never being dropped. The reference count was incremented when
4433 adding an entry to the deleted_entries map and to the
4434 deleted_entries_to_emit list, but only decremented for one of those.
4436 2006-05-24 William Jon McCann <mccann@jhu.edu>
4438 * daapsharing/rb-daap-connection.c (http_response_handler)
4439 (rb_daap_connection_dispose):
4440 Call soup_session_abort to make sure there are no outstanding
4441 requests when we dispose of the connection. Ignore cancelled
4442 messages in the callback.
4444 2006-05-24 William Jon McCann <mccann@jhu.edu>
4446 * sources/rb-daap-source.c (rb_daap_source_connection_cb)
4447 (rb_daap_source_disconnect): Set a flag when disconnecting
4448 the source. Check this flag in connection callback
4449 to see if we should release the connection.
4451 2006-05-24 William Jon McCann <mccann@jhu.edu>
4453 * daapsharing/Makefile.am:
4454 * daapsharing/rb-daap-connection.c: (rb_daap_connection_finalize),
4455 (rb_daap_connection_class_init), (connection_connected),
4456 (connection_disconnected), (connection_operation_done),
4457 (build_message), (connection_set_error_message),
4458 (actual_http_response_handler), (http_get),
4459 (entry_set_string_prop), (emit_progress_idle),
4460 (handle_server_info), (handle_login), (handle_update),
4461 (handle_database_info), (handle_song_listing), (handle_playlists),
4462 (handle_playlist_entries), (handle_logout),
4463 (rb_daap_connection_new), (rb_daap_connection_is_connected),
4464 (connection_response_data_free), (connected_cb),
4465 (rb_daap_connection_connect), (disconnected_cb),
4466 (rb_daap_connection_finish), (rb_daap_connection_disconnect),
4467 (rb_daap_connection_state_done), (rb_daap_connection_do_something),
4468 (rb_daap_connection_dispose), (rb_daap_connection_set_property),
4469 (rb_daap_connection_get_property):
4470 * daapsharing/rb-daap-connection.h:
4471 * daapsharing/rb-daap-hash.c: (byteReverse), (OpenDaap_MD5Init),
4472 (OpenDaap_MD5Update), (OpenDaap_MD5Final), (MD5Transform),
4473 (DigestToString), (GenerateStatic_42), (GenerateStatic_45),
4474 (rb_daap_hash_generate):
4475 * daapsharing/rb-daap-hash.h:
4476 * sources/rb-daap-source.c: (rb_daap_source_class_init),
4477 (rb_daap_get_icon), (remove_source), (stop_browsing),
4478 (create_pixbufs), (destroy_pixbufs), (rb_daap_sources_shutdown),
4479 (connection_connecting_cb), (connection_disconnected_cb),
4480 (release_connection), (rb_daap_source_connection_cb),
4481 (rb_daap_source_activate), (rb_daap_source_disconnect_cb),
4482 (rb_daap_source_cmd_disconnect), (rb_daap_source_disconnect):
4484 Adds a better async API for connect and disconnect. Doesn't share
4485 callback data for every async call. Adds a connect signal. Uses
4486 an operation-done signal to trigger the callbacks. Displays an
4487 error when connections fail. A few refcounting fixes to fix
4488 crashes. Uses a weak pointer to set the connection to NULL so we
4489 don't clobber references. Wait for each disconnect when shutting
4490 down sources. Split out DAAP hash stuff into its own file. Fix
4495 2006-05-24 Jonathan Matthew <jonathan@kaolin.wh9.net>
4497 * sources/rb-auto-playlist-source.c:
4498 (rb_auto_playlist_source_new_from_xml):
4499 Initialize the gvalue used to hold the size limit correctly.
4502 2006-05-23 Jonathan Matthew <jonathan@kaolin.wh9.net>
4504 * shell/rb-shell.c: (rb_shell_window_delete_cb),
4505 (rb_shell_cmd_quit), (rb_shell_quit), (session_die_cb):
4507 * shell/rb-shell.xml:
4508 Convert rb_shell_quit into a dbus method, and add visibility dbus
4511 2006-05-22 James Livingston <doclivingston@gmail.com>
4513 * rhythmdb/rhythmdb.h:
4514 * rhythmdb/rhythmdb.c: (sync_entry_changed),
4515 (rhythmdb_entry_is_editable), (action_thread_main),
4516 (song_can_sync_metadata), (default_sync_metadata): Add entry-type
4517 vfuncs for can_sync_metadata, and sync_metadata. The default is always
4518 false, and syncing into the file.
4520 (rhythmdb_entry_register_type), (rhythmdb_entry_song_get_type),
4521 (rhythmdb_entry_iradio_get_type),
4522 (rhythmdb_entry_import_error_get_type):
4523 * sources/rb-audiocd-source.c: (rb_audiocd_source_new): Set the above
4524 vfuncs to do the right thing. IRADIO and Audio-cd entry-type just
4527 2006-05-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
4529 * rhythmdb/Makefile.am:
4530 * rhythmdb/rhythmdb-monitor.c:
4531 * rhythmdb/rhythmdb-private.h:
4532 * rhythmdb/rhythmdb-query.c:
4533 * rhythmdb/rhythmdb.c:
4534 Split up rhythmdb.c a bit.
4536 2006-05-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
4538 * data/glade/audioscrobbler-prefs.glade:
4539 Add a link to the last.fm server status page.
4541 2006-05-20 Dennis Cranston <dennis_cranston@yahoo.com>
4543 * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
4545 * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
4546 (impl_create_configure_dialog): UI layout fixes, remove
4547 dialog separator, and capitalization fix for window title.
4548 * shell/rb-shell.c: (rb_shell_cmd_plugins): UI layout fixes,
4549 and remove dialog separator.
4550 * data/glade/plugins.glade: UI layout fixes.
4551 * data/glade/audioscrobbler-prefs.glade: UI layout fixes,
4552 and capitalization fix. Fixes #342438.
4554 2006-05-20 Dennis Cranston <dennis_cranston@yahoo.com>
4556 * data/glade/podcast-properties.glade: Fix layout of the download
4557 location. Fixes #342431.
4559 2006-05-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
4561 * data/ui/rhythmbox-ui.xml:
4562 We only need one copy of the 'add to queue' action in the edit menu.
4564 2006-05-20 James Livingston <doclivingston@gmail.com>
4566 * data/ui/rhythmbox-ui.xml:
4567 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_class_init),
4568 (rb_shell_clipboard_finalize), (rb_shell_clipboard_set_property),
4569 (rb_shell_clipboard_get_property), (rb_shell_clipboard_new),
4570 (rb_shell_clipboard_sync),
4571 (rb_shell_clipboard_cmd_add_to_playlist_new),
4572 (rb_shell_clipboard_cmd_queue_song_info),
4573 (rb_shell_clipboard_playlist_add_cb), (generate_action_name),
4574 (rb_shell_clipboard_playlist_deleted_cb),
4575 (rb_shell_clipboard_playlist_renamed_cb),
4576 (rb_shell_clipboard_playlist_visible_cb), (add_playlist_to_menu),
4577 (rebuild_playlist_menu), (rb_shell_clipboard_playlist_added_cb):
4578 * shell/rb-shell-clipboard.h: add an "add to playlist" menu, which is
4579 dynamically generated with all the static playlists. Fixes bug 323364.
4581 * shell/rb-shell.c: (construct_widgets), (construct_sources): use the
4582 right child, so it doesn't go weird when art appears and disappears.
4584 2006-05-20 James Livingston <doclivingston@gmail.com>
4586 patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
4588 * rhythmdb/rhythmdb-query-model.c:
4589 (rhythmdb_query_model_set_property),
4590 (rhythmdb_query_model_finalize),
4591 (rhythmdb_query_model_reapply_query_cb):
4592 * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess),
4593 (rhythmdb_query_append_prop_multiple),
4594 (rhythmdb_query_is_time_relative):
4595 * rhythmdb/rhythmdb.h: re-run queries every minutes if they have
4596 time-based criteria, fixes bug 341131.
4598 2006-05-20 James Livingston <doclivingston@gmail.com>
4600 * plugins/artdisplay/artdisplay/__init__.py: don't display the art if
4601 we have already changed playing entries. Interpolate the art size so
4602 it doesn't jump when the old and new images have different aspect
4605 2006-05-20 Jonathan Matthew <jonathan@kaolin.wh9.net>
4607 * rhythmdb/rhythmdb-private.h:
4608 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4610 * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
4611 (rhythmdb_entry_set_internal), (rhythmdb_query_preprocess),
4612 (rhythmdb_entry_get_ulong):
4613 Include the GDate directly in RhythmDBEntry (it's only 8 bytes)
4614 and elsewhere, use them on the stack rather than allocating on
4615 the heap. From bug #342333.
4617 2006-05-19 William Jon McCann <mccann@jhu.edu>
4619 * player/rb-recorder-gst.c: (rb_recorder_error_quark),
4620 (rb_recorder_get_default_drive), (rb_recorder_gst_free_pipeline),
4621 (add_track), (eos_cb), (error_signal_idle),
4622 (rb_recorder_gst_signal_error), (rb_recorder_new_pad_cb),
4623 (rb_recorder_construct), (recorder_track_free),
4624 (rb_recorder_finalize):
4625 * sources/rb-playlist-source-recorder.c:
4626 Support libnautilus-burn size -> capacity API change. Add
4627 some braces to blocks.
4629 2006-05-19 William Jon McCann <mccann@jhu.edu>
4631 * metadata/sj-metadata-musicbrainz.c:
4632 (sj_metadata_musicbrainz_instance_init), (get_rdf), (lookup_cd):
4633 Sync with sound-juicer in CVS. Fixes #342177
4634 * sources/rb-audiocd-source.c: Don't declare variables
4635 in the middle of a block (c99ism). Fix order of #includes.
4636 Use gi18n.h. Don't include rhythmdb.h twice. Declare
4637 one variable per line. Update copyright date.
4639 2006-05-19 James Livingston <doclivingston@gmail.com>
4641 patch by: Hendrik Richter <hendi@gnome-de.org>
4643 * shell/rb-shell.c: (rb_shell_cmd_about): change the separator in
4644 "translator_credits" to a hyphen, so it doesn't cause problems for
4645 tools that check access keys. Fixes bug 341832.
4647 2006-05-19 James Livingston <doclivingston@gmail.com>
4649 * po/POTFILES.in: remove references to files that don't exist any more
4650 (fixes make distcheck).
4652 2006-05-19 Dennis Cranston <dennis_cranston@yahoo.com>
4654 * plugins/lyrics/lyrics.py: Fix layout close button in
4655 Song Lyrics dialog. Fixes bug 342322.
4657 2006-05-19 James Livingston <doclivingston@gmail.com>
4659 patch by: Loïc Minier <lool+gnome@via.ecp.fr>
4661 * widgets/eggtrayicon.c: (egg_tray_icon_unrealize),
4662 (egg_tray_icon_cancel_message), (egg_tray_icon_notify): Make the
4663 version checks not break when libnotify goes to 1.0.0. Fixes bug
4666 2006-05-18 James Livingston <doclivingston@gmail.com>
4668 * shell/rb-shell-clipboard.c:
4670 * sources/rb-podcast-source.c: Fix some conflicting keybindings.
4672 2006-05-17 William Jon McCann <mccann@jhu.edu>
4674 * sources/rb-playlist-source-recorder.c (get_song_description):
4675 Reverse artist and title in song description. This
4676 is useful because at least the title will be visible
4677 when there is limited space.
4679 2006-05-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
4681 * daapsharing/rb-daap-connection.c: (connection_get_password):
4682 Take gdk lock before emitting authenticate signal.
4683 * sources/rb-daap-source.c: (connection_connecting_cb):
4684 Get rid of the unnecessary idle handler (it's already called from one)
4685 Fixes #342047 once more.
4687 2006-05-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
4689 * shell/rb-shell.c: (rb_shell_class_init):
4691 * widgets/rb-song-info.c: (rb_song_info_class_init),
4692 (rb_song_info_construct_single), (rb_song_info_construct_multiple),
4693 (rb_song_info_constructor), (rb_song_info_get_property),
4694 (rb_song_info_append_page), (rb_song_info_backward_clicked_cb),
4695 (rb_song_info_forward_clicked_cb):
4696 * widgets/rb-song-info.h:
4697 * data/glade/song-info-multiple.glade:
4698 * lib/rb-marshal.list:
4699 * bindings/python/Makefile.am:
4700 * bindings/python/rb.defs:
4701 * bindings/python/rb.override:
4702 Allow plugins to add pages to the notebooks used in song info windows,
4703 and to track the current song displayed in single-entry windows.
4706 * plugins/Makefile.am:
4707 * plugins/lyrics/Loader.py:
4708 * plugins/lyrics/Makefile.am:
4709 * plugins/lyrics/lyrics.py:
4710 * plugins/lyrics/lyrics.rb-plugin.desktop.in:
4711 Add a plugin that retrieves song lyrics from leoslyrics.com, displayed
4712 as a separate window (for the playing song) or as a page in the song
4713 info window. A few TODO items left, but this fixes #319320.
4715 2006-05-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
4717 Patch by: Roozbeh Pournader
4720 * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime):
4721 Update eel_strdup_strftime from eel CVS HEAD. Fixes #341938.
4723 2006-05-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
4725 * sources/rb-daap-source.c: (update_connection_status):
4726 Correct return value. Fixes #342047 again.
4728 2006-05-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
4730 * sources/rb-daap-source.c: (update_connection_status),
4731 (connection_connecting_cb):
4732 Update status in an idle handler so we don't rely on the gdk lock
4733 being recursive (because it isn't any more). Fixes #342047.
4735 2006-05-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
4737 * lib/rb-util.c: (rb_make_duration_string),
4738 (rb_make_elapsed_time_string):
4740 Add a function for formatting an elapsed time string.
4742 * shell/rb-shell-player.c: (rb_shell_player_init),
4743 (rb_shell_player_sync_with_source),
4744 (rb_shell_player_get_playing_time_string), (tick_cb):
4745 Store elapsed time in the private data structure, and use the above
4748 * widgets/rb-header.c:
4749 * widgets/rb-header.h:
4750 Make RBHeader use the RBShellPlayer object, rather than the RBPlayer
4751 object, so everything has the same idea of the elapsed time.
4754 2006-05-16 James Livingston <doclivingston@gmail.com>
4756 * bindings/python/rhythmdb.defs:
4757 * bindings/python/rhythmdb.override: give rhythmdb.query_model_new
4758 some parametre defaults, so you don't have to pass None, False for the
4761 2006-05-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
4763 * bindings/python/rhythmdb.defs:
4764 * rhythmdb/rhythmdb-query-model.c:
4765 (rhythmdb_query_model_compute_status_normal):
4766 * rhythmdb/rhythmdb-query-model.h:
4767 * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal):
4768 * rhythmdb/rhythmdb.h:
4769 Change the various compute_status methods to accept a singular/plural
4770 pair to use in the status string.
4772 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
4773 (rb_podcast_source_cmd_new_podcast), (impl_get_status):
4774 * sources/rb-source.c: (default_get_status):
4775 Call entries 'songs' by default, and 'episodes' in the podcast source.
4778 2006-05-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
4780 patch by: Paul Drain
4782 * plugins/ipod/Makefile.am: add $(plugin_in_files) to EXTRA_DIST.
4785 2006-05-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
4787 * rhythmdb/rhythmdb-query-model.c: (apply_updated_entry_sequence):
4788 Generate reorder maps correctly.
4789 * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb):
4790 Scroll to the first entry from the old selection.
4793 2006-05-15 William Jon McCann <mccann@jhu.edu>
4795 * data/ui/rhythmbox-ui.xml:
4796 * lib/rb-preferences.h:
4797 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
4798 (rb_shell_playlist_created_cb),
4799 (rb_shell_view_sidepane_changed_cb),
4800 (rb_shell_sync_sidepane_visibility),
4801 (rb_shell_sync_pane_visibility), (rb_shell_sync_smalldisplay),
4802 (sidepane_visibility_changed_cb):
4803 * sources/rb-podcast-source.c:
4804 Convert sourcelist visibility to side-pane visbility.
4807 2006-05-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
4809 * widgets/rb-header.c:
4810 * widgets/rb-header.h: Stop RBHeader from referring to itself as
4811 'player', and make it use the private data structure allocated for it.
4813 2006-05-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
4815 * configure.ac: enable metadata helper with dbus < 0.35.
4817 2006-05-15 James Livingston <doclivingston@gmail.com>
4819 patch by: Alex Lancaster <alexl@users.sourceforge.net>
4821 * data/glade/song-info.glade:
4822 * widgets/rb-song-info.c: (rb_song_info_construct_single),
4823 (rb_song_info_populate_dialog), (rb_song_info_update_duration),
4824 (rb_song_info_update_filesize): Add the file size into the song info
4825 window. Fixes bug 340861.
4827 2006-05-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
4829 * bindings/python/rhythmdb.defs:
4830 * rhythmdb/rhythmdb-query-model.c:
4831 (rhythmdb_query_model_set_property),
4832 (rhythmdb_query_model_new_empty), (rhythmdb_query_model_chain):
4833 * rhythmdb/rhythmdb-query-model.h:
4834 Add a new method to chain query models without importing entries from
4835 the parent into the child. This is useful when the subset of entries
4836 in the child can be more easily determined by running a query than by
4837 filtering entries from the parent.
4839 * bindings/python/rb.defs:
4840 * widgets/rb-library-browser.c: (rb_library_browser_class_init),
4841 (rb_library_browser_set_property),
4842 (rb_library_browser_get_property), (rb_library_browser_new),
4843 (rebuild_child_model):
4844 * widgets/rb-library-browser.h:
4845 * sources/rb-auto-playlist-source.c:
4846 (rb_auto_playlist_source_constructor):
4847 * sources/rb-static-playlist-source.c:
4848 (rb_static_playlist_source_constructor):
4849 * sources/rb-browser-source.c: (rb_browser_source_constructor):
4850 Use more efficient queries for constructing the browser query model
4851 chain. Include the entry type at each level (allowing the rhythmdb-tree
4852 backend to optimise the query) and run new queries rather than
4853 filtering entries from the parent. Fixes #341402.
4855 * configure.ac: remove reference to rhythmbox.pc that I missed earlier.
4857 2006-05-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
4860 * shell/Makefile.am:
4861 * shell/main.c: (main), (load_uri_args), (send_present_message),
4862 (unregister_dbus_handler), (handle_dbus_message),
4863 (register_dbus_handler):
4864 Add minimal support for dbus 0.31 - 0.35.
4866 * doc/reference/Makefile.am:
4867 * doc/reference/rhythmbox.types:
4869 * data/GNOME_Rhythmbox.server.in:
4870 * data/rhythmbox.pc.in:
4873 Remove remaining bonobo and generic remote interface files.
4875 2006-05-14 James Livingston <doclivingston@gmail.com>
4877 * shell/rb-shell.c: (construct_widgets):
4878 * sources/rb-browser-source.c: (rb_browser_source_constructor): Never
4879 resize the browser and queue-sidebar section of their panes, unless
4880 the other section is below the minimum size. Fixes bug 331927.
4882 2006-05-13 James Livingston <doclivingston@gmail.com>
4884 * rhythmdb/rhythmdb-query-model.c:
4885 (rhythmdb_query_model_class_init),
4886 (rhythmdb_query_model_set_property),
4887 (rhythmdb_query_model_get_property),
4888 (rhythmdb_query_model_finalize), (rhythmdb_query_model_new),
4889 (rhythmdb_query_model_insert_into_main_list),
4890 (rhythmdb_query_model_insert_into_limited_list),
4891 (rhythmdb_query_model_do_reorder),
4892 (rhythmdb_query_model_set_sort_order), (_reverse_sorting_func),
4893 (rhythmdb_query_model_location_sort_func),
4894 (rhythmdb_query_model_title_sort_func),
4895 (rhythmdb_query_model_album_sort_func),
4896 (rhythmdb_query_model_artist_sort_func),
4897 (rhythmdb_query_model_genre_sort_func),
4898 (rhythmdb_query_model_track_sort_func),
4899 (rhythmdb_query_model_double_ceiling_sort_func),
4900 (rhythmdb_query_model_ulong_sort_func),
4901 (rhythmdb_query_model_date_sort_func),
4902 (rhythmdb_query_model_string_sort_func):
4903 * rhythmdb/rhythmdb-query-model.h: Make the sorting data be a gpointer
4904 instead of a RhythmDBPropType (which can be put in a gpointer). Add a
4905 "data destroy" property. Fixed bug 341543.
4907 * bindings/python/rhythmdb.defs:
4908 * bindings/python/rhythmdb.override: bind rhythmdb_query_model_new and
4909 rhythmdb_query_model_set_sorting_order
4911 * rhythmdb/rhythmdb-property-model.c:
4912 (rhythmdb_property_model_drag_data_get):
4913 * sources/rb-import-errors-source.c:
4914 (rb_import_errors_source_constructor):
4915 * sources/rb-missing-files-source.c:
4916 (rb_missing_files_source_constructor):
4917 * widgets/rb-entry-view.c: (rb_entry_view_append_column),
4918 (rb_entry_view_append_column_custom), (rb_entry_view_resort_model):
4919 * widgets/rb-entry-view.h: adapt to the above change.
4921 2006-05-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
4923 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
4924 (rhythmdb_tree_load):
4925 Commit loaded entries in batches, rather than individually.
4926 More startup time reduction.
4928 2006-05-12 Ryan P Skadberg <skadz@stigmata.org>
4930 * doc/reference/Makefile.am: fix gtk-doc compilation
4932 2006-05-12 William Jon McCann <mccann@jhu.edu>
4934 * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
4935 * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
4936 * plugins/artdisplay/artdisplay/Loader.py:
4937 Correct fallback to medium size. Convert & to "and" when doing comparisons.
4938 Only call the first artist the best match when album==Unknown.
4939 Don't perform each query twice if album doesn't include "Vol N".
4940 Fix searching for compilations. Fix blacklisting.
4943 2006-05-12 William Jon McCann <mccann@jhu.edu>
4946 * bindings/python/Makefile.am:
4947 * bindings/python/rb.defs:
4948 * bindings/python/rb.override:
4950 * doc/reference/Makefile.am:
4951 * plugins/Makefile.am:
4952 * plugins/audioscrobbler/Makefile.am:
4953 * plugins/ipod/Makefile.am:
4954 * plugins/lirc/Makefile.am:
4955 * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_read_code),
4956 (impl_activate), (impl_deactivate):
4957 * plugins/sample/Makefile.am:
4958 * remote/Makefile.am:
4959 * shell/Makefile.am:
4960 * shell/main.c: (main), (main_shell_weak_ref_cb):
4961 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_set_property),
4962 (rb_shell_get_property), (rb_shell_window_state_cb),
4963 (idle_hide_mainwindow), (rb_shell_set_visibility),
4964 (rb_shell_playing_entry_changed_cb), (tray_destroy_cb),
4965 (rb_shell_set_song_property):
4967 * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
4968 (rb_tray_icon_sync_action), (rb_tray_icon_set_property),
4969 (rb_tray_icon_get_property), (rb_tray_icon_new),
4970 (rb_tray_icon_button_press_event_cb),
4971 (rb_tray_icon_scroll_event_cb), (rb_tray_icon_drop_cb),
4972 (rb_tray_icon_show_window_changed_cb):
4973 * shell/rb-tray-icon.h:
4975 Remove bonobo, require DBUS.
4976 Patch from Jonathan Matthew <jonathan@kaolin.wh9.net>
4979 2006-05-13 James Livingston <doclivingston@gmail.com>
4981 * bindings/python/rb.override: fix some pointer-type warnings
4983 2006-05-12 James Livingston <doclivingston@gmail.com>
4985 * lib/rb-util.c: (rb_value_free):
4986 * lib/rb-util.h: Add function to unset and free a GValue* that was
4987 allocated in the heap.
4989 * metadata/rb-metadata-dbus-client.c: (rb_metadata_load): don't leak
4990 the metadata hastable values
4991 * metadata/rb-metadata-dbus-service.c: (rb_metadata_dbus_save): don't
4992 leak the metadata hashtable structure
4993 * metadata/rb-metadata-dbus.c:
4994 (rb_metadata_dbus_read_from_message):use g_value_set_string instead of
4995 using g_strdup and then _take_string
4997 * rhythmdb/rhythmdb.c: (rhythmdb_start_action_thread),
4998 (rhythmdb_execute_stat): Don't leak the GnomeVFSURIs every time we
5001 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_do_handshake): don't
5002 leak the encoded string
5004 * widgets/rb-property-view.c:
5005 (rb_property_view_selection_changed_cb): set some variables to have
5006 inital values, because some code paths may not set them before we use
5009 * plugins/rb-plugins-engine.c: (rb_plugins_engine_load): turn the "you
5010 don't have python warning into a debug message".
5012 2006-05-10 William Jon McCann <mccann@jhu.edu>
5014 * data/rhythmbox.schemas: Use zero instead of null for
5015 default burn speed. Fixes #341283.
5017 2006-05-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
5019 * bindings/python/rb.defs:
5020 * widgets/rb-library-browser.c:
5021 (rb_library_browser_get_property_view):
5022 * widgets/rb-library-browser.h:
5023 Add a method to get the property view for a given property.
5025 * sources/rb-browser-source.c:
5026 (rb_browser_source_cmd_choose_genre),
5027 (rb_browser_source_cmd_choose_artist),
5028 (rb_browser_source_cmd_choose_album):
5029 Change the browser selection by changing the property view selection.
5030 Makes the selection change visible, fixing #331740.
5032 2006-05-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
5034 * bindings/python/rb.defs:
5035 * bindings/python/rb.override:
5036 * rhythmdb/rhythmdb.c: (rhythmdb_is_busy):
5037 * shell/rb-statusbar.c: (*),
5038 * sources/rb-import-errors-source.c: (impl_get_status):
5039 * sources/rb-iradio-source.c: (impl_get_status):
5040 * sources/rb-missing-files-source.c: (impl_get_status):
5041 * sources/rb-source.c: (default_get_status),
5042 (rb_source_get_status):
5043 * sources/rb-source.h:
5044 Allow sources to provide a progress value for the status bar.
5045 Simplify status bar processing (much less polling).
5046 Consider rhythmdb busy while it's still loading the database.
5048 * daapsharing/rb-daap-connection.c: (*)
5049 * daapsharing/rb-daap-connection.h:
5050 * lib/rb-marshal.list:
5051 * sources/rb-daap-source.c: (rb_daap_source_class_init),
5052 (rb_daap_source_init), (connection_connecting_cb),
5053 (rb_daap_source_activate), (rb_daap_source_get_paned_key),
5054 (rb_daap_source_get_status):
5055 Provide status information for DAAP connections, and move processing
5056 of large responses into a separate thread.
5057 Fixes bugs #322020 and #338978.
5059 2006-05-09 James Livingston <doclivingston@gmail.com>
5061 Split the artdisplay plugin into several files.
5062 Fix loader and amazon-search re-use issues.
5063 Add some better search heuristics.
5066 * plugins/artdisplay/Makefile.am:
5067 * plugins/artdisplay/artdisplay.py:
5068 * plugins/artdisplay/artdisplay/AmazonCoverArtSearch.py:
5069 * plugins/artdisplay/artdisplay/CoverArtDatabase.py:
5070 * plugins/artdisplay/artdisplay/Loader.py:
5071 * plugins/artdisplay/artdisplay/Makefile.am:
5072 * plugins/artdisplay/artdisplay/__init__.py:
5074 2006-05-09 James Livingston <doclivingston@gmail.com>
5076 * sources/rb-browser-source.h: remove the _has_first_added_column
5077 stuff since it isn't actually used anywhere. Sources that want it
5078 should just add it themselves, as the library already does
5080 * bindings/python/rb.defs:
5081 * sources/rb-daap-source.c: (rb_daap_source_class_init):
5082 * sources/rb-library-source.c: (rb_library_source_class_init):
5083 * sources/rb-removable-media-source.c:
5084 (rb_removable_media_source_class_init): Remove the remanants of the
5087 2006-05-09 James Livingston <doclivingston@gmail.com>
5089 * bindings/python/rb.defs:
5090 * sources/rb-browser-source.h: remove a function that was declared in
5091 the header, but not defined anywhere.
5093 2006-05-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
5095 * plugins/artdisplay/.cvsignore:
5096 * plugins/ipod/.cvsignore: Added.
5098 2006-05-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
5100 * sources/rb-auto-playlist-source.c:
5101 (rb_auto_playlist_source_new_from_xml):
5102 Fix reading of older playlist files where all three limits were
5103 specified so we take the first nonzero limit. From #341053.
5105 2006-05-09 James Livingston <doclivingston@gmail.com>
5107 * bindings/python/Makefile.am:
5108 * bindings/python/rb.defs:
5109 * bindings/python/rb.override: bind RBBrowserSource,
5110 RBRemovableMediaSource and RBRemovableMediamanager.
5112 2006-05-09 James Livingston <doclivingston@gmail.com>
5114 patch by: Baptiste Mille-Mathias <bmm80@free.fr>
5116 * data/glade/plugins.glade: make the plugin dialog look a bit better.
5119 2006-05-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
5121 * widgets/rb-query-creator.c: (rb_query_creator_load_query):
5122 Don't explode when trying to edit a query with no limit set.
5124 2006-05-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
5126 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5127 Clear the should_queue flag when switching to a non-submittable entry,
5128 so we don't submit songs that played for three seconds before
5129 switching to a podcast episode.
5131 * rhythmdb/rhythmdb-query-model.c
5132 (rhythmdb_query_model_drag_data_get): Don't try to include NULL uris
5133 in the drag data list.
5135 2006-05-08 James Livingston <doclivingston@gmail.com>
5137 * lib/rb-util.c: (rb_value_array_append_data):
5138 * lib/rb-util.h: add function which is basically a combination of
5139 G_VALUE_COLLECT and g_value_array_append.
5141 * rhythmdb/rhythmdb-query-model.h:
5142 * rhythmdb/rhythmdb-query-model.c:
5143 (rhythmdb_query_model_class_init),
5144 (rhythmdb_query_model_set_property),
5145 (rhythmdb_query_model_get_property),
5146 (rhythmdb_query_model_finalize),
5147 (rhythmdb_query_model_update_limited_entries),
5148 (rhythmdb_query_model_set_sort_order),
5149 (rhythmdb_query_model_within_limit),
5150 (rhythmdb_query_model_limit_type_get_type): Make query model limits
5151 saner. Rather than having <count=N, time=N, size=N> we now have a
5152 <type, value> pair. This will also make it much easier to add new
5153 limit types in the future.
5155 * shell/rb-playlist-manager.c:
5156 (rb_playlist_manager_set_automatic_playlist),
5157 (rb_playlist_manager_cmd_edit_automatic_playlist):
5158 * sources/rb-auto-playlist-source.c:
5159 (rb_auto_playlist_source_finalize),
5160 (rb_auto_playlist_source_new_from_xml), (impl_receive_drag),
5161 (_save_write_ulong), (_save_write_uint64),
5162 (impl_save_contents_to_xml), (rb_auto_playlist_source_do_query),
5163 (rb_auto_playlist_source_set_query),
5164 (rb_auto_playlist_source_get_query):
5165 * sources/rb-auto-playlist-source.h:
5166 * sources/rb-library-source.c:
5167 (rb_library_source_add_child_source):
5168 * sources/rb-psp-source.c: (visit_playlist_dirs):
5169 * widgets/rb-query-creator.c: (rb_query_creator_load_query),
5170 (rb_query_creator_new_from_query), (rb_query_creator_get_limit):
5171 * widgets/rb-query-creator.h: Adapt to the above change.
5173 2006-05-08 James Livingston <doclivingston@gmail.com>
5175 * shell/rb-playlist-manager.c:
5176 (rb_playlist_manager_cmd_edit_automatic_playlist):
5177 * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml),
5178 (rb_auto_playlist_source_set_query),
5179 (rb_auto_playlist_source_get_query): copy the query in the _get method
5180 and free it in things calling that. Fixes a crasher.
5182 2006-05-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
5184 * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5185 Make entries on newly mounted volumes visible immediately, hiding them
5186 later if they turn out to be missing. Fixes #340068.
5188 2006-05-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
5190 * metadata/rb-metadata-gst.c: (rb_metadata_finalize):
5191 Ignore zip files and ignore errors for files we've decided to ignore.
5193 2006-05-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
5195 * sources/rb-ipod-source.c: (hal_udi_is_ipod):
5196 Add missing }, should fix #340844.
5198 2006-05-06 James Livingston <doclivingston@gmail.com>
5200 * plugins/artdisplay/artdisplay.py: fade between covers, and fix a
5203 2006-05-06 James Livingston <doclivingston@gmail.com>
5205 * widgets/eggtrayicon.c: (egg_tray_icon_notify): fix version check so
5206 that we work with libnotify >= 0.4
5208 2006-05-06 James Livingston <doclivingston@gmail.com>
5210 patch by: Joe Barnett <thejoe@gmail.com>
5212 * configure.ac: check if we're using a version of libgpod that
5213 supports the Motorola ROKR
5215 * sources/rb-ipod-source.c: (rb_ipod_get_itunesdb_path): ask libgpod
5216 for the db path, if we using the newer version.
5218 (rb_ipod_volume_has_ipod_db): detect Motorola ROKR phones.
5220 2006-05-05 Jonathan Matthew <jonathan@kaolin.wh9.net>
5222 * rhythmdb/rhythmdb-query-model.c:
5223 (rhythmdb_query_model_drag_data_get):
5224 Use playback URI, not location, for drag data. Fixes #322597.
5226 2006-05-03 Dennis Cranston <dennis_cranston@yahoo.com>
5228 * data/glade/general-prefs.glade: HIG fixes from bug 340588.
5230 2006-05-03 James Livingston <doclivingston@gmail.com>
5232 * metadata/rb-metadata-gst.c: (rb_add_flac_tagger),
5233 (rb_add_id3_tagger), (rb_metadata_save):
5234 Set the tags on the tagging element when it is
5235 created, not during pipeline creation - which is required for
5236 dynamically created elements.
5238 (ogg_pad_added_cb), (rb_add_ogg_tagger), (rb_metadata_init): add
5239 support for using the "vorbistag" element to re-tag ogg vorbis files.
5242 2006-05-03 James Livingston <doclivingston@gmail.com>
5244 patch by: Martin Szulecki <gnomebugzilla@sukimashita.com>
5246 * plugins/artdisplay/artdisplay.py:
5247 - Fix small bug callback of data loader getting overwritten on fast
5249 - Add asynchronous loading with gnomevfs and urllib fallback (thx to
5251 - Fix Rhythmbox UI blocking while loading/searching cover art
5252 - Split logic into CoverArtDatabase, AmazonCoverArtSearch
5253 - Initial approach to allow additional "art search engines"
5254 - Further modularization in a couple of places
5255 - Minor fixes for empty entries (iradio, album, artist etc.)
5257 2006-05-03 James Livingston <doclivingston@gmail.com>
5259 * shell/rb-playlist-manager.c:
5260 (rb_playlist_manager_playlist_entries_changed),
5261 (rb_playlist_manager_set_source): don't show the edit/delete/rename
5262 options for non-local sources, rather than showing disabled ones.
5264 * sources/rb-library-source.c: (add_child_sources_idle),
5265 (rb_library_source_constructor), (rb_library_source_new),
5266 (rb_library_source_library_location_changed),
5267 (rb_library_source_add_child_source),
5268 (rb_library_source_sync_child_sources): Create "child library" sources
5269 when the user has multiple library locations set. Fixes bug 100552.
5271 2006-05-03 Jonathan Matthew <jonathan@kaolin.wh9.net>
5273 * plugins/rb-plugins-engine.c: (rb_plugins_engine_load):
5274 * plugins/sample/sample.rb-plugin.desktop.in:
5275 Finish changing 'Author' to 'Authors'
5277 * rhythmdb/rhythmdb.c: (_get_import_error_playback_uri),
5278 (rhythmdb_entry_import_error_get_type):
5279 Implement get_playback_uri for import errors (returns NULL)
5281 * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
5282 Use rhythmdb_entry_get_playback_uri to figure out if we can play the
5283 entry, rather than doing entry type checks.
5285 2006-05-02 James Livingston <doclivingston@gmail.com>
5287 patch from Alessandro Decina <alessandro@nnva.org>
5289 * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_encode): fix
5290 the signal emission in the case of fatal-on-init errors. From bug
5293 2006-05-02 James Livingston <doclivingston@gmail.com>
5295 * rhythmdb/rhythmdb.h:
5296 * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
5297 (rhythmdb_entry_finalize), (_get_podcast_playback_uri),
5298 (rhythmdb_entry_podcast_post_get_type),
5299 (rhythmdb_entry_get_double), (rhythmdb_entry_get_playback_uri): add a
5300 virtual function to entry-types for getting the playback URI. From bug
5303 * backends/gstreamer/rb-encoder-gst.c:
5304 (create_pipeline_and_source), (extract_track):
5305 * shell/rb-shell-player.c: (rb_shell_player_open_entry): use the above
5308 2006-05-02 James Livingston <doclivingston@gmail.com>
5310 patch by: Brian Cameron <brian.cameron@sun.com>
5312 * sources/rb-nokia770-source.c: more Solaris build fixes, from bug
5315 2006-05-01 William Jon McCann <mccann@jhu.edu>
5317 * plugins/artdisplay/artdisplay.py: Use set_from_pixbuf
5318 instead of clear. Use regex matching to strip "disc N"
5319 from album. Match titles in ProductName. Perform
5320 fallback queries including various artist compilations.
5321 Include "us" locale. Improve queries when artist or album
5322 is unknown. Use medium size image if large is unavailable.
5324 patch by: Alex Lancaster <alexl@users.sourceforge.net>,
5325 William Jon McCann <mccann@jhu.edu>
5327 2006-04-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
5329 * rhythmdb/rhythmdb-tree.c: (get_genres_hash_for_type):
5330 RhythmDBEntryType is a pointer now, so GINT_TO_POINTER is unnecessary.
5331 (conjunctive_query): Sanity check.
5332 (evaluate_conjunctive_subquery):
5333 Don't return TRUE immediately when a relative-time query criterion
5334 matches. Fixes #339972.
5336 2006-04-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
5338 * widgets/eggtrayicon.c: (egg_tray_icon_notify):
5339 Don't crash if primary or secondary are NULL.
5341 2006-04-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
5343 * doc/reference/Makefile.am: fix gtk-doc build yet again
5345 2006-04-28 James Livingston <doclivingston@gmail.com>
5347 * plugins/pythonconsole/pythonconsole.py: import "rhythmdb" into the
5348 python console. Fixes bug 339934.
5350 2006-04-27 Jonathan Matthew <jonathan@kaolin.wh9.net>
5352 * rhythmdb/rhythmdb-property-model.c:
5353 (rhythmdb_property_model_drag_data_get):
5354 When creating uri list drag data, create a new query model based on
5355 the query model the property model is attached to. Makes the
5356 resulting query use the right entry type and include the upstream
5357 query criteria. Fixes half of #327540.
5359 2006-04-27 James Livingston <doclivingston@gmail.com>
5361 * backends/gstreamer/rb-encoder-gst.c: (encoder_match_mime),
5362 (profile_bin_find_encoder), (get_profile_from_mime_type): more gst 0.8
5365 2006-04-27 James Livingston <doclivingston@gmail.com>
5367 * player/rb-player-gst.c: (error_cb): Fix build with GStreamer 0.8
5369 2006-04-27 Jonathan Matthew <jonathan@kaolin.wh9.net>
5371 * shell/rb-playlist-manager.c: (rb_playlist_manager_init),
5372 (rb_playlist_manager_save_data),
5373 (rb_playlist_manager_save_playlists):
5374 * shell/rb-playlist-manager.h:
5375 * shell/rb-shell.c: (rb_shell_sync_state),
5376 (idle_save_playlist_manager):
5377 Remove a bit more threading insanity from the playlist manager.
5379 2006-04-27 Jonathan Matthew <jonathan@kaolin.wh9.net>
5381 * shell/rb-playlist-manager.c:
5382 * shell/rb-playlist-manager.h:
5383 Remove dead code, add gtk-doc, remove threading insanity (mostly).
5385 * shell/rb-shell.c: (rb_shell_sync_state),
5386 (idle_save_playlist_manager), (construct_sources),
5387 (rb_shell_select_source), (rb_shell_sync_party_mode):
5388 Adjustments for above changes.
5390 2006-04-26 William Jon McCann <mccann@jhu.edu>
5392 * sources/rb-browser-source.c (impl_browser_toggled):
5393 Reset browser when hidden. Fixes #339617.
5395 2006-04-26 James Livingston <doclivingston@gmail.com>
5397 * backends/Makefile.am:
5398 * backends/gstreamer/Makefile.am: work again with separated
5401 2006-04-26 James Livingston <doclivingston@gmail.com>
5403 * shell/rb-removable-media-manager.c:
5404 (rb_removable_media_manager_set_uimanager): fix compilation with
5405 -Werror and --enable-track-transfer.
5407 2006-04-26 James Livingston <doclivingston@gmail.com>
5409 Turn RBPlayer into a full gobject interface, with RBPlayerGst as an
5410 implementing class. In theory allows alternate player implementations
5411 to be selected at run-time rather than compile-time. Fixes bug 338667.
5414 * backends/Makefile.am:
5415 * backends/gstreamer/Makefile.am:
5416 * backends/gstreamer/rb-player-gst.h:
5417 * backends/rb-player.c: (rb_player_interface_init),
5418 (rb_player_get_type), (rb_player_open), (rb_player_opened),
5419 (rb_player_close), (rb_player_play), (rb_player_pause),
5420 (rb_player_playing), (rb_player_set_volume),
5421 (rb_player_get_volume), (rb_player_set_replaygain),
5422 (rb_player_seekable), (rb_player_set_time), (rb_player_get_time),
5423 (rb_player_new), (_rb_player_emit_eos), (_rb_player_emit_info),
5424 (_rb_player_emit_buffering), (_rb_player_emit_error),
5425 (_rb_player_emit_tick), (rb_player_error_quark):
5426 * player/Makefile.am:
5427 * player/rb-player-gst.c: (rb_player_gst_class_init),
5428 (rb_player_init), (tick_timeout), (rb_player_gst_init),
5429 (rb_player_gst_finalize), (rb_player_gst_gst_free_playbin),
5430 (destroy_idle_signal), (emit_signal_idle), (eos_cb), (error_cb),
5431 (process_tag), (found_tag_cb), (buffering_cb),
5432 (rb_player_gst_bus_cb), (rb_player_gst_construct),
5433 (rb_player_gst_new):
5434 * player/rb-player.h:
5435 * shell/Makefile.am:
5436 * sources/rb-audiocd-source.c:
5437 * widgets/Makefile.am:
5438 * widgets/rb-header.c: (rb_header_class_init):
5440 2006-04-26 James Livingston <doclivingston@gmail.com>
5442 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
5443 don't try to download an episode if it couldn't be parsed. Fixes bug
5446 * shell/rb-removable-media-manager.c:
5447 (rb_removable_media_manager_set_uimanager): don't show the "Copy to
5448 Library" option when track transfer is disabled. Fixes bug 339728.
5450 2006-04-26 James Livingston <doclivingston@gmail.com>
5452 * data/ui/Makefile.am:
5453 * data/ui/daap-ui.xml:
5454 * data/ui/rhythmbox-ui.xml:
5455 * sources/rb-daap-source.c: (rb_daap_sources_init),
5456 (rb_daap_sources_shutdown): separate the DAAP ui stuff out in the same
5457 way that the ipod ui is. Fixes bug 339743.
5459 2006-04-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
5461 * rhythmdb/rhythmdb.c: (rhythmdb_emit_entry_signals_idle),
5462 (process_added_entries_cb), (process_deleted_entries_cb),
5463 (rhythmdb_commit_internal):
5464 Combine the idle functions to emit entry-added and entry-deleted,
5465 and combine as many invocations of same as possible. Another
5466 significant reduction in startup time.
5468 (rhythmdb_process_events), (rhythmdb_idle_poll_events):
5469 Delay the next call to rhythmdb_process_events if the queue is
5470 empty or if we can't process any of the events in the queue because
5471 the database is read only.
5473 This patch brought to you by the numbers 3, 2, 5, 2, 1, and 5.
5475 2006-04-25 William Jon McCann <mccann@jhu.edu>
5477 * player/rb-recorder-gst.c (rb_recorder_burn): Add debug.
5479 * sources/rb-playlist-source-recorder.c (burn_cd_idle, burn_cd):
5480 Don't special case errors quite so much.
5482 2006-04-25 William Jon McCann <mccann@jhu.edu>
5484 * data/rhythmbox.schemas: Remove default speed.
5486 * sources/rb-playlist-source-recorder.c (update_speed_combobox):
5487 Add n-c-b 2.15 support. Make the default speed to slowest since
5488 that is all that works reliably.
5490 2006-04-25 William Jon McCann <mccann@jhu.edu>
5492 * backends/gstreamer/rb-encoder-gst.c (profile_bin_find_encoder):
5493 Fix compiler error from last commit.
5495 2006-04-25 James Livingston <doclivingston@gmail.com>
5497 patch by Alessandro Decina <alessandro@nnva.org> to fix some
5498 transcoding-related issues. From bug 322268.
5500 * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_finalize):
5501 don't emit the signal, since the object is being finalised, which os a
5504 (profile_bin_find_encoder), (get_profile_from_mime_type),
5505 (transcode_track): find the encoding element by iterating looking for
5506 element in the class Codec/Encoder/Audio rather than the one named
5509 2006-04-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
5511 * shell/rb-shell-player.xml:
5512 * shell/rb-shell.xml:
5513 Add signal argument information.
5514 Patch by Tim Moloney <t.moloney@verizon.net>
5516 * shell/rb-shell.c: (rb_shell_window_state_cb):
5517 Use the right value for the visibility_changed signal. Most of the
5520 2006-04-25 Jonathan Matthew <jonathan@kaolin.wh9.net>
5522 * plugins/audioscrobbler/audioscrobbler.rb-plugin.desktop.in:
5523 * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5524 (impl_create_configure_dialog):
5525 * data/glade/audioscrobbler-prefs.glade:
5526 * shell/rb-audioscrobbler.c (*):
5527 * lib/rb-preferences.h:
5528 * data/rhythmbox.schemas:
5529 Remove 'audioscrobbler' from the UI, replacing it with 'last.fm'.
5530 Add status information (# tracks submitted, # queued, last submit
5531 time, result of last submission) to the plugin config window.
5532 Remove 'enabled' setting, since it's easier to just disable the
5533 plugin. Call the plugin 'last.fm profile', to distinguish it from the
5534 nonexistant (so far) 'last.fm streaming' plugin.
5536 * help/C/rhythmbox.xml: Update documentation for last.fm profile
5539 Fixes some of #325848. We still don't provide a way to view the
5542 2006-04-25 James Livingston <doclivingston@gmail.com>
5544 patch by: Anders Petersson <demitar@worldforge.org>
5546 * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): Parse dates in
5547 the YY-MM-DD format.
5549 2006-04-23 James Livingston <doclivingston@gmail.com>
5551 * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
5552 (_helper_wrap_boxed_gptrarray), (_helper_unwrap_pointer_pylist):
5553 * bindings/python/override_common.h:
5554 * bindings/python/rb.override: python binding fixes
5556 2006-04-23 James Livingston <doclivingston@gmail.com>
5558 * shell/rb-statusbar.c: (rb_statusbar_finalize),
5559 (rb_statusbar_sync_with_source),
5560 (rb_statusbar_source_status_changed_cb): do the sync in an idle
5561 callback, rather than immediately every time. Takes ~5% off my warm-cache
5564 * bindings/python/rhythmdb.defs: fix the types using for
5567 2006-04-22 James Livingston <doclivingston@gmail.com>
5569 * data/ui/rhythmbox-ui.xml:
5571 * sources/rb-daap-source.c: (rb_daap_source_class_init),
5572 (remove_source), (rb_daap_sources_init),
5573 (rb_daap_sources_shutdown), (rb_daap_source_cmd_disconnect),
5574 (rb_daap_source_disconnect):
5575 * sources/rb-source.c: (rb_source_class_init),
5576 (rb_source_deactivate):
5577 * sources/rb-source.h: move the "disconnect" functionality from into
5578 RBSource to RBDaapSource where it belongs. Fixes bug 338464.
5580 2006-04-22 James Livingston <doclivingston@gmail.com>
5582 * widgets/rb-library-browser.c: (rb_library_browser_constructor):
5583 actually get the translated strings for browser headers (they were
5584 already marked as translatable). Fixes bug 339380.
5586 2006-04-22 James Livingston <doclivingston@gmail.com>
5588 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): remove the
5589 submission timeout when the object is finalised.
5591 * bindings/python/Makefile.am:
5592 * bindings/python/rb.defs:
5593 * bindings/python/rb.override:
5594 * bindings/python/rhythmdb.defs: fix some python binding stuff.
5596 * widgets/rb-library-browser.c:
5597 (rb_library_browser_construct_query), (rebuild_output_model),
5598 (rebuild_child_model):
5599 * widgets/rb-library-browser.h: change from GPtrArray to
5600 RhythmDBQuery (which in C is the same thing).
5602 2006-04-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
5604 * shell/rb-shell.c: (rb_shell_get_song_properties):
5605 Don't try to include entry-type (or anything else not easily
5606 marshallable) in the song properties hash table.
5608 * rhythmdb/rhythmdb.c: (rhythmdb_entry_get): Handle G_TYPE_POINTER
5610 * sources/rb-playlist-source.c: (rb_playlist_source_init),
5611 (rb_playlist_source_constructor): Fix entry-type initialization as
5612 with previous commit.
5614 2006-04-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
5616 * sources/rb-iradio-source.c: (rb_iradio_source_init),
5617 (rb_iradio_source_constructor), (rb_iradio_source_do_query):
5618 * sources/rb-podcast-source.c: (rb_podcast_source_init),
5619 (rb_podcast_source_constructor):
5620 Set default values for entry-type after base class construction,
5621 rather than in _init, because gobject will set the entry-type property
5622 to NULL after _init if no value is provided. Fixes #339206.
5624 2006-04-20 Ryan P Skadberg <skadz@stigmata.org>
5626 patch by: Gunnar Steinn Magnusson
5629 * backends/gstreamer/rb-encoder-gst.c:
5630 * backends/gstreamer/rb-encoder-gst.h:
5631 * backends/rb-encoder.c:
5632 * backends/rb-encoder.h:
5633 * bindings/python/override_common.c:
5634 * bindings/python/override_common.h:
5635 * daapsharing/rb-daap-connection.c:
5636 * daapsharing/rb-daap-connection.h:
5637 * daapsharing/rb-daap-dialog.c:
5638 * daapsharing/rb-daap-dialog.h:
5639 * daapsharing/rb-daap-mdns-browser-avahi.c:
5640 * daapsharing/rb-daap-mdns-browser-howl.c:
5641 * daapsharing/rb-daap-mdns-browser.h:
5642 * daapsharing/rb-daap-mdns-publisher-avahi.c:
5643 * daapsharing/rb-daap-mdns-publisher-howl.c:
5644 * daapsharing/rb-daap-mdns-publisher.h:
5645 * daapsharing/rb-daap-share.c:
5646 * daapsharing/rb-daap-share.h:
5647 * daapsharing/rb-daap-sharing.c:
5648 * daapsharing/rb-daap-sharing.h:
5649 * daapsharing/rb-daap-src.c:
5650 * daapsharing/rb-daap-src.h:
5651 * daapsharing/rb-daap-structure.c:
5652 * daapsharing/rb-daap-structure.h:
5653 * help/C/fdl-appendix.xml:
5655 * help/ja/fdl-appendix.xml:
5656 * iradio/rb-new-station-dialog.c:
5657 * iradio/rb-new-station-dialog.h:
5658 * iradio/rb-station-properties-dialog.c:
5659 * iradio/rb-station-properties-dialog.h:
5662 * lib/rb-cut-and-paste-code.c:
5663 * lib/rb-cut-and-paste-code.h:
5666 * lib/rb-file-helpers.c:
5667 * lib/rb-file-helpers.h:
5668 * lib/rb-glade-helpers.c:
5669 * lib/rb-glade-helpers.h:
5670 * lib/rb-preferences.h:
5671 * lib/rb-proxy-config.c:
5672 * lib/rb-stock-icons.c:
5673 * lib/rb-stock-icons.h:
5676 * lib/rb-tree-dnd.c:
5677 * lib/rb-tree-dnd.h:
5680 * metadata/rb-metadata-common.c:
5681 * metadata/rb-metadata-dbus-client.c:
5682 * metadata/rb-metadata-dbus-service.c:
5683 * metadata/rb-metadata-dbus.c:
5684 * metadata/rb-metadata-dbus.h:
5685 * metadata/rb-metadata-gst.c:
5686 * metadata/rb-metadata.h:
5687 * metadata/sj-error.c:
5688 * metadata/sj-error.h:
5689 * metadata/sj-metadata-musicbrainz.c:
5690 * metadata/sj-metadata-musicbrainz.h:
5691 * metadata/sj-metadata.c:
5692 * metadata/sj-metadata.h:
5693 * metadata/sj-structures.c:
5694 * metadata/sj-structures.h:
5695 * metadata/test-metadata.c:
5696 * player/rb-player-gst.c:
5697 * player/rb-player.h:
5698 * player/rb-recorder-gst.c:
5699 * player/rb-recorder.h:
5700 * plugins/artdisplay/artdisplay.py:
5701 * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
5702 * plugins/ipod/rb-ipod-plugin.c:
5703 * plugins/lirc/rb-lirc-plugin.c:
5704 * plugins/pythonconsole/pythonconsole.py:
5705 * plugins/rb-module.c:
5706 * plugins/rb-module.h:
5707 * plugins/rb-plugin-manager.c:
5708 * plugins/rb-plugin-manager.h:
5709 * plugins/rb-plugin.c:
5710 * plugins/rb-plugin.h:
5711 * plugins/rb-plugins-engine.c:
5712 * plugins/rb-plugins-engine.h:
5713 * plugins/rb-python-module.c:
5714 * plugins/rb-python-module.h:
5715 * plugins/rb-python-plugin.c:
5716 * plugins/rb-python-plugin.h:
5717 * plugins/sample/rb-sample-plugin.c:
5729 * podcast/rb-feed-podcast-properties-dialog.c:
5730 * podcast/rb-feed-podcast-properties-dialog.h:
5731 * podcast/rb-new-podcast-dialog.c:
5732 * podcast/rb-new-podcast-dialog.h:
5733 * podcast/rb-podcast-manager.c:
5734 * podcast/rb-podcast-manager.h:
5735 * podcast/rb-podcast-parse.c:
5736 * podcast/rb-podcast-parse.h:
5737 * podcast/rb-podcast-properties-dialog.c:
5738 * podcast/rb-podcast-properties-dialog.h:
5739 * remote/bonobo/libmain.c:
5740 * remote/bonobo/rb-nautilus-context-menu.c:
5741 * remote/bonobo/rb-nautilus-context-menu.h:
5742 * remote/bonobo/rb-remote-bonobo.c:
5743 * remote/bonobo/rb-remote-bonobo.h:
5744 * remote/rb-remote-client-proxy.c:
5745 * remote/rb-remote-client-proxy.h:
5746 * remote/rb-remote-common.c:
5747 * remote/rb-remote-common.h:
5748 * remote/rb-remote-proxy.c:
5749 * remote/rb-remote-proxy.h:
5750 * rhythmdb/gsequence.c:
5751 * rhythmdb/gsequence.h:
5752 * rhythmdb/rb-refstring.c:
5753 * rhythmdb/rb-refstring.h:
5754 * rhythmdb/rhythmdb-gda.c:
5755 * rhythmdb/rhythmdb-gda.h:
5756 * rhythmdb/rhythmdb-private.h:
5757 * rhythmdb/rhythmdb-property-model.c:
5758 * rhythmdb/rhythmdb-property-model.h:
5759 * rhythmdb/rhythmdb-query-model.c:
5760 * rhythmdb/rhythmdb-query-model.h:
5761 * rhythmdb/rhythmdb-query-results.c:
5762 * rhythmdb/rhythmdb-query-results.h:
5763 * rhythmdb/rhythmdb-tree.c:
5764 * rhythmdb/rhythmdb-tree.h:
5765 * rhythmdb/rhythmdb.c:
5766 * rhythmdb/rhythmdb.h:
5768 * shell/rb-audioscrobbler.c:
5769 * shell/rb-audioscrobbler.h:
5770 * shell/rb-history.c:
5771 * shell/rb-history.h:
5772 * shell/rb-play-order-linear-loop.c:
5773 * shell/rb-play-order-linear-loop.h:
5774 * shell/rb-play-order-linear.c:
5775 * shell/rb-play-order-linear.h:
5776 * shell/rb-play-order-queue.c:
5777 * shell/rb-play-order-queue.h:
5778 * shell/rb-play-order-random-by-age-and-rating.c:
5779 * shell/rb-play-order-random-by-age-and-rating.h:
5780 * shell/rb-play-order-random-by-age.c:
5781 * shell/rb-play-order-random-by-age.h:
5782 * shell/rb-play-order-random-by-rating.c:
5783 * shell/rb-play-order-random-by-rating.h:
5784 * shell/rb-play-order-random-equal-weights.c:
5785 * shell/rb-play-order-random-equal-weights.h:
5786 * shell/rb-play-order-random.c:
5787 * shell/rb-play-order-random.h:
5788 * shell/rb-play-order-shuffle.c:
5789 * shell/rb-play-order-shuffle.h:
5790 * shell/rb-play-order.c:
5791 * shell/rb-play-order.h:
5792 * shell/rb-playlist-manager.c:
5793 * shell/rb-playlist-manager.h:
5794 * shell/rb-removable-media-manager.c:
5795 * shell/rb-removable-media-manager.h:
5796 * shell/rb-shell-clipboard.c:
5797 * shell/rb-shell-clipboard.h:
5798 * shell/rb-shell-player.c:
5799 * shell/rb-shell-player.h:
5800 * shell/rb-shell-preferences.c:
5801 * shell/rb-shell-preferences.h:
5804 * shell/rb-source-header.c:
5805 * shell/rb-source-header.h:
5806 * shell/rb-statusbar.c:
5807 * shell/rb-statusbar.h:
5808 * shell/rb-tray-icon.c:
5809 * shell/rb-tray-icon.h:
5810 * sources/rb-audiocd-source.c:
5811 * sources/rb-audiocd-source.h:
5812 * sources/rb-auto-playlist-source.c:
5813 * sources/rb-auto-playlist-source.h:
5814 * sources/rb-browser-source.c:
5815 * sources/rb-browser-source.h:
5816 * sources/rb-daap-source.c:
5817 * sources/rb-daap-source.h:
5818 * sources/rb-generic-player-source.c:
5819 * sources/rb-generic-player-source.h:
5820 * sources/rb-import-errors-source.c:
5821 * sources/rb-import-errors-source.h:
5822 * sources/rb-ipod-source.c:
5823 * sources/rb-ipod-source.h:
5824 * sources/rb-iradio-source.c:
5825 * sources/rb-iradio-source.h:
5826 * sources/rb-library-source.c:
5827 * sources/rb-library-source.h:
5828 * sources/rb-missing-files-source.c:
5829 * sources/rb-missing-files-source.h:
5830 * sources/rb-nokia770-source.c:
5831 * sources/rb-nokia770-source.h:
5832 * sources/rb-play-queue-source.c:
5833 * sources/rb-play-queue-source.h:
5834 * sources/rb-playlist-source-recorder.c:
5835 * sources/rb-playlist-source-recorder.h:
5836 * sources/rb-playlist-source.c:
5837 * sources/rb-playlist-source.h:
5838 * sources/rb-playlist-xml.h:
5839 * sources/rb-podcast-source.c:
5840 * sources/rb-podcast-source.h:
5841 * sources/rb-psp-source.c:
5842 * sources/rb-psp-source.h:
5843 * sources/rb-removable-media-source.c:
5844 * sources/rb-removable-media-source.h:
5845 * sources/rb-source.c:
5846 * sources/rb-source.h:
5847 * sources/rb-sourcelist-model.c:
5848 * sources/rb-sourcelist-model.h:
5849 * sources/rb-sourcelist.c:
5850 * sources/rb-sourcelist.h:
5851 * sources/rb-static-playlist-source.c:
5852 * sources/rb-static-playlist-source.h:
5854 * tests/test-cmdline.c:
5855 * tests/test-rhythmdb-indexing.c:
5856 * tests/test-rhythmdb-query.c:
5857 * tests/test-rhythmdb-simple.c:
5858 * tests/test-rhythmdb-tree-deserialization.c:
5859 * tests/test-rhythmdb-tree-serialization.c:
5860 * tests/test-rhythmdb-view.c:
5861 * widgets/bacon-volume.c:
5862 * widgets/bacon-volume.h:
5863 * widgets/disclosure-widget.c:
5864 * widgets/disclosure-widget.h:
5865 * widgets/eel-gconf-extensions.c:
5866 * widgets/eel-gconf-extensions.h:
5867 * widgets/eggtrayicon.c:
5868 * widgets/eggtrayicon.h:
5869 * widgets/libsexy/sexy-icon-entry.c:
5870 * widgets/libsexy/sexy-icon-entry.h:
5871 * widgets/rb-cell-renderer-pixbuf.c:
5872 * widgets/rb-cell-renderer-pixbuf.h:
5873 * widgets/rb-cell-renderer-rating.c:
5874 * widgets/rb-cell-renderer-rating.h:
5875 * widgets/rb-dialog.c:
5876 * widgets/rb-dialog.h:
5877 * widgets/rb-druid.c:
5878 * widgets/rb-druid.h:
5879 * widgets/rb-entry-view.c:
5880 * widgets/rb-entry-view.h:
5881 * widgets/rb-header.c:
5882 * widgets/rb-header.h:
5883 * widgets/rb-library-browser.c:
5884 * widgets/rb-library-browser.h:
5885 * widgets/rb-property-view.c:
5886 * widgets/rb-property-view.h:
5887 * widgets/rb-query-creator-private.h:
5888 * widgets/rb-query-creator-properties.c:
5889 * widgets/rb-query-creator.c:
5890 * widgets/rb-query-creator.h:
5891 * widgets/rb-rating-helper.c:
5892 * widgets/rb-rating-helper.h:
5893 * widgets/rb-rating.c:
5894 * widgets/rb-rating.h:
5895 * widgets/rb-search-entry.c:
5896 * widgets/rb-search-entry.h:
5897 * widgets/rb-song-display-box.c:
5898 * widgets/rb-song-display-box.h:
5899 * widgets/rb-song-info.c:
5900 * widgets/rb-song-info.h: Fix FSF address EVERYWHERE
5902 2006-04-20 Ryan P Skadberg <skadz@stigmata.org>
5904 patch by: Gareth Murphy, James Livingston
5906 * bindings/python/rb.defs:
5908 * plugins/Makefile.am:
5909 * plugins/artdisplay/Makefile.am:
5910 * plugins/artdisplay/artdisplay.py:
5911 * plugins/artdisplay/artdisplay.rb-plugin.desktop.in:
5912 * plugins/rb-python-module.c: (rb_python_module_init_python):
5913 * shell/rb-shell.c: (construct_widgets),
5914 (rb_shell_druid_response_cb), (rb_shell_get_box_for_ui_location),
5915 (rb_shell_add_widget), (rb_shell_remove_widget),
5916 (rb_shell_ui_location_get_type):
5917 * shell/rb-shell.h: Initial Art Display (and Download) Plugin Support
5919 2006-04-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
5921 * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted):
5922 Fix build failure caused by the combination of the previous two
5925 2006-04-20 James Livingston <doclivingston@gmail.com>
5927 patch by: Christophe Fergeau <teuf@gnome.org> to make
5928 RhythmDBEntryTypes be a structure rather than a uint. Add a vfunc
5929 table to the entry types, which will allow us to get rid of some of
5930 the "if entry type == WHATEVER" code everywhere. From bug
5932 * bindings/python/rb.defs:
5933 * bindings/python/rb.override:
5934 * bindings/python/rhythmdb.defs:
5935 * bindings/python/rhythmdb.override:
5936 * daapsharing/rb-daap-connection.c:
5937 (rb_daap_connection_class_init), (rb_daap_connection_init),
5938 (rb_daap_connection_set_property),
5939 (rb_daap_connection_get_property):
5940 * daapsharing/rb-daap-share.c: (db_entry_added_cb):
5941 * podcast/rb-podcast-manager.c:
5942 (rb_podcast_manager_entry_downloaded),
5943 (rb_podcast_manager_subscribe_feed),
5944 (rb_podcast_manager_db_entry_added_cb),
5945 (rb_podcast_manager_db_entry_deleted_cb),
5946 (rb_podcast_manager_insert_feed):
5947 * rhythmdb/rhythmdb-private.h:
5948 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
5949 (conjunctive_query):
5950 * rhythmdb/rhythmdb.c: (sync_entry_changed),
5951 (process_added_entries_cb), (rhythmdb_entry_allocate),
5952 (rhythmdb_entry_finalize), (rhythmdb_entry_unref),
5953 (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
5954 (rhythmdb_process_metadata_load),
5955 (rhythmdb_process_file_created_or_modified), (action_thread_main),
5956 (rhythmdb_add_uri), (entry_type_to_string), (entry_type_from_uint),
5957 (write_encoded_gvalue), (read_encoded_property),
5958 (rhythmdb_prop_type_get_type), (rhythmdb_entry_register_type),
5959 (rhythmdb_entry_song_get_type), (rhythmdb_entry_ignore_get_type),
5960 (rhythmdb_entry_iradio_get_type),
5961 (rhythmdb_entry_podcast_post_get_type),
5962 (rhythmdb_entry_podcast_feed_get_type),
5963 (rhythmdb_entry_import_error_get_type),
5964 (rhythmdb_entry_get_entry_type), (rhythmdb_entry_get_pointer),
5965 (rhythmdb_entry_get_ulong), (rhythmdb_entry_get_type),
5966 (rhythmdb_entry_type_get_type):
5967 * rhythmdb/rhythmdb.h:
5968 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
5969 * shell/rb-playlist-manager.c: (handle_playlist_entry_cb):
5970 * shell/rb-shell-player.c: (rb_shell_player_open_entry),
5971 (rb_shell_player_entry_activated_cb), (info_available_cb):
5972 * shell/rb-shell.c: (rb_shell_get_source_by_entry_type),
5973 (rb_shell_register_entry_type_for_source),
5974 (rb_shell_playing_from_queue_cb),
5975 (rb_shell_playing_entry_changed_cb),
5976 (rb_shell_player_stream_song_changed_cb),
5977 (rb_shell_jump_to_entry_with_source),
5978 (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
5979 (handle_playlist_entry_cb), (rb_shell_load_uri):
5981 * sources/rb-auto-playlist-source.c: (impl_receive_drag):
5982 * sources/rb-browser-source.c: (rb_browser_source_class_init),
5983 (rb_browser_source_init), (rb_browser_source_set_property),
5984 (rb_browser_source_get_property):
5985 * sources/rb-ipod-source.c: (impl_paste):
5986 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
5987 (rb_iradio_source_init), (rb_iradio_source_set_property),
5988 (rb_iradio_source_get_property):
5989 * sources/rb-library-source.c: (impl_paste):
5990 * sources/rb-missing-files-source.c:
5991 (rb_missing_files_source_class_init),
5992 (rb_missing_files_source_init),
5993 (rb_missing_files_source_set_property),
5994 (rb_missing_files_source_get_property):
5995 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
5996 (rb_playlist_source_init), (rb_playlist_source_set_property),
5997 (rb_playlist_source_get_property):
5998 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
5999 (rb_podcast_source_init), (rb_podcast_source_set_property),
6000 (rb_podcast_source_get_property):
6001 * sources/rb-static-playlist-source.c:
6002 (rb_static_playlist_source_add_location_internal):
6004 2006-04-20 Jonathan Matthew <jonathan@kaolin.wh9.net>
6006 * rhythmdb/rhythmdb.c: (rhythmdb_init),
6007 (rhythmdb_add_import_error_entry),
6008 (entry_volume_mounted_or_unmounted),
6009 (rhythmdb_volume_unmounted_cb):
6010 When a volume is unmounted, delete import errors for files stored on
6011 it. When a volume is mounted, stat all tracks stored on it, rather
6012 than assuming they're present. Fixes #339023.
6014 2006-04-20 James Livingston <doclivingston@gmail.com>
6016 patch by: Alex Lancaster <alexl@users.sourceforge.net> to remember
6017 browser visibility for non-gconf-using sources (like playlists). Part
6020 * shell/rb-source-header.c: (sourcestate_free),
6021 (rb_source_header_init), (rb_source_header_finalize),
6022 (rb_source_header_source_weak_destroy_cb): switch from storing the
6023 search string to storing a "source state" structure
6025 (rb_source_header_set_source_internal), (rb_source_state_sync),
6026 (rb_source_header_search_cb), (rb_source_header_clear_search),
6027 (rb_source_header_disclosure_toggled_cb): as well as storing the
6028 string, stop the visibility of the source's browser.
6030 2006-04-20 James Livingston <doclivingston@gmail.com>
6032 * sources/rb-library-source.c: (impl_paste): ignore attempts to paste
6033 library entries back into the library. Fixes bug 339065.
6035 2006-04-20 James Livingston <doclivingston@gmail.com>
6037 * plugins/rb-plugin.h: remove the use of g_intern_static_string as it
6038 only exists in glib 2.10.
6040 2006-04-20 James Livingston <doclivingston@gmail.com>
6042 patch by Brian Cameron <brian.cameron@sun.com> to fix building on
6043 Solaris. From bug 335318.
6045 * rhythmdb/rhythmdb.c: (rhythmdb_query_append_prop_multiple):
6046 * shell/rb-audioscrobbler.c:
6047 * sources/rb-psp-source.c:
6049 2006-04-20 James Livingston <doclivingston@gmail.com>
6051 * data/glade/Makefile.am: remove the use of $(NULL) since it causes
6052 issues for some people.
6054 * shell/rb-playlist-manager.c: (save_playlist_response_cb): fix an
6055 accidental s/suffix/prefix/
6057 * sources/rb-auto-playlist-source.c:
6058 (rb_auto_playlist_source_set_query): fix the invered logic preventing
6059 you from sorting playlists which aren't limited by time.
6061 2006-04-19 James Livingston <doclivingston@gmail.com>
6063 * rhythmdb/rhythmdb.c: (metadata_field_from_prop): don't try to write
6064 duration or bitrate back to the file, since they are properties of the
6065 audio data, not tags we can set.
6067 2006-04-19 James Livingston <doclivingston@gmail.com>
6069 patch by: Götz Waschk <waschk@mandriva.org> to use $(LIBTOOL) instead
6070 of libtool, to fix builds which are using a different version. Fixes
6073 * shell/Makefile.am:
6075 2006-04-19 James Livingston <doclivingston@gmail.com>
6077 * rhythmdb/rhythmdb.c: (sync_entry_changed): emit a warning if we try
6078 to sync data to a file which is uneditable.
6080 2006-04-19 James Livingston <doclivingston@gmail.com>
6082 patch by: Gavin Stewart <gavin@brokentrain.net>
6084 * data/glade/playlist-save.glade:
6085 * data/glade/Makefile.am:
6086 * po/POTFILES.in: add the playlist saving dialog.
6088 * shell/rb-playlist-manager.c: (save_playlist_response_cb),
6089 (export_set_extension_cb), (filter_get_export_filter_label),
6090 (setup_format_menu), (rb_playlist_manager_cmd_save_playlist):
6091 * shell/rb-playlist-manager.h: Allow saving of playlists in alternate
6092 formats (PLS and M3U at the moment). Fixes bug 316295.
6094 2006-04-19 James Livingston <doclivingston@gmail.com>
6096 * shell/rb-playlist-manager.c:
6097 (rb_playlist_manager_set_source_internal): don't let you edit remove
6100 * sources/rb-auto-playlist-source.c:
6101 (rb_auto_playlist_source_set_query): correctly handle time-limited
6104 2006-04-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
6106 Patch by: Mikael Olenfalk <mikael.olenfalk@gmail.com>
6108 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
6109 Don't crash if the queue file contains no newlines.
6112 2006-04-18 Christophe Fergeau <teuf@gnome.org>
6114 * sources/rb-ipod-source.c: (generate_ipod_filename): fixed wrong loop
6117 2006-04-18 Christophe Fergeau <teuf@gnome.org>
6119 * sources/rb-ipod-source.c: ipod music dirs can be lower or upper
6120 case. Moreover, they may not exist yet, so take that into account when
6121 generating the iPod filename.
6123 2006-04-18 Christophe Fergeau <christophe@anevia.com>
6125 * sources/rb-ipod-source.c: added support for drag and drop from the
6126 library to the iPod (only enabled if --enable-track-transfer was
6127 passed to configure)
6129 2006-04-17 Christophe Fergeau <teuf@gnome.org>
6132 * lib/rb-marshal.list:
6135 * plugins/Makefile.am:
6136 * plugins/ipod/Makefile.am:
6137 * plugins/ipod/ipod.rb-plugin.desktop.in:
6138 * plugins/ipod/rb-ipod-plugin.c:
6139 * plugins/rb-plugin.h:
6140 * shell/Makefile.am:
6141 * shell/rb-removable-media-manager.c:
6142 * shell/rb-removable-media-manager.h:
6144 * sources/Makefile.am:
6145 * sources/rb-ipod-source.c:
6146 * sources/rb-ipod-source.h: turn rb-ipod-source.c into a plugin. The
6147 various iPod related files should be moved to plugins/ipod/ now...
6149 2006-04-17 James Livingston <doclivingston@gmail.com>
6151 Updated documentation from Baptiste Mille-Mathias <bmm80@free.fr>
6154 * help/C/figures/rb-iradio-main.png:
6155 * help/C/figures/rb-notification-area-menu.png:
6156 * help/C/figures/rb-notification-window.png:
6157 * help/C/figures/rb-notification-zone.png:
6158 * help/C/figures/rb-podcast-main.png:
6159 * help/C/figures/rb-statusbar.png:
6160 * help/C/figures/rb-volume-changer.png:
6161 * help/C/figures/rb-window-small.png:
6162 * help/C/figures/rb-window.png:
6163 * help/C/rhythmbox.xml:
6165 2006-04-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
6167 * metadata/test-metadata.c: (load_metadata_cb): Report ignored files
6170 * metadata/rb-metadata-gst.c: (rb_metadata_init),
6171 (make_undecodable_error), (rb_metadata_gst_error_cb),
6172 (rb_metadata_gst_new_decoded_pad_cb),
6173 (rb_metadata_gst_unknown_type_cb), (rb_metadata_bus_handler):
6174 Ignore really small files (<4kB) for which typefinding fails.
6175 Always link decoded pads from decodebin to fakesink.
6176 Shut the pipeline down by posting an error on the bus when decodebin
6177 emits unknown-type signals. Fixes bug #338062.
6179 2006-04-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
6181 * shell/rb-shell.c: (rb_shell_load_uri):
6182 Fix glaring mistakes in previous commit: actually pass arguments to
6183 rb_debug, and specify the right entry type when adding a new iradio
6184 station so we don't try to add local playlist files to the library.
6186 2006-04-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
6188 * shell/main.c: (load_uri_args): Don't check that remote URLs exist
6189 before trying to add them, as iradio streams often fail rb_uri_exists().
6191 * shell/rb-shell-player.c: (notify_playing_idle),
6192 (rb_shell_player_open_playlist_url), (playlist_entry_cb),
6193 (open_location_thread), (rb_shell_player_open_location),
6194 (rb_shell_player_play), (rb_shell_player_set_playing_entry),
6195 (eos_cb): When playing an iradio stream using a playlist, keep a list
6196 of all the stream URLs, and try them in turn. If we get through the
6197 whole playlist too quickly, error out. Various other fixes that make
6198 iradio work a lot better.
6200 * shell/rb-shell.c: (add_to_library_response_cb),
6201 (rb_shell_guess_type_for_uri), (rb_shell_add_uri),
6202 (handle_playlist_entry_cb), (rb_shell_load_uri):
6203 Add playlists containing streams as iradio stations. If the playlist
6204 is local, add each stream URL, but if the playlist is remote, just add
6207 * sources/rb-iradio-source.c: (new_station_location_added):
6208 Add new station URLs as-is, rather than parsing the playlist and
6211 * rhythmdb/rhythmdb-query-model.c:
6212 (rhythmdb_query_model_entry_changed_cb),
6213 (rhythmdb_query_model_emit_reorder),
6214 (rhythmdb_query_model_do_reorder):
6215 Emit row-changed notifications when an entry changes but is not
6218 * widgets/rb-entry-view.c: (rb_entry_view_playing_cell_data_func):
6219 Display the playback error icon when the entry has an error and
6220 there's nothing else to display.
6222 Fixes bug #320336 and some of #324402.
6224 2006-04-16 Christophe Fergeau <teuf@gnome.org>
6226 * sources/rb-ipod-source.c: use a GHashTable for the
6227 RhythmDBEntry=>Itdb_Track mapping, this is better imo, and at the same
6228 time, this fixes compilation breakage for people not having libgpod
6231 2006-04-16 Ryan P Skadberg <skadz@stigmata.org>
6233 patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
6235 * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
6236 (rb_podcast_manager_insert_feed):
6237 * podcast/rb-podcast-manager.h: Actually automatically podcasts,
6240 2006-04-16 James Livingston <doclivingston@gmail.com>
6242 * sources/rb-library-source.c:
6243 (rb_library_source_library_location_cb): return FALSE like we are
6244 supposed to, not void.
6246 patch by: FreeBSD GNOME Project
6247 * configure.ac: fix some bash-isms.
6249 patch by: Pawel Worach <pawel.worach@gmail.com>
6250 * metadata/rb-metadata-dbus-client.c:
6251 * rhythmdb/rhythmdb-query-model.c:
6252 (rhythmdb_query_model_album_sort_func): fix build issues on FreeBSD
6255 2006-04-16 James Livingston <doclivingston@gmail.com>
6257 Patch from: Alessandro Decina <alessandro@nnva.org> to add support
6258 for transcoding to RBEncoderGst.
6260 * backends/gstreamer/rb-encoder-gst.c: (rb_encoder_gst_emit_error),
6261 (rb_encoder_gst_emit_completed), (bus_watch_cb), (gst_error_cb),
6262 (start_pipeline), (add_encoding_pipeline), (new_decoded_pad_cb),
6263 (add_decoding_pipeline), (encoder_match_mime),
6264 (get_profile_from_mime_type), (extract_track), (transcode_track),
6265 (rb_encoder_gst_cancel), (rb_encoder_gst_encode):
6267 2006-04-16 Christophe Fergeau <teuf@gnome.org>
6269 * sources/rb-ipod-source.c: (add_ipod_song_to_db),
6270 (load_ipod_db_idle_cb): moved RhythmDBEntry creation from
6271 load_ipod_db_idle_cb to a new separate function
6273 2006-04-16 Christophe Fergeau <teuf@gnome.org>
6275 * sources/rb-ipod-source.c: added 'move to trash' support to the iPod
6278 2006-04-16 Christophe Fergeau <teuf@gnome.org>
6280 * sources/rb-ipod-source.c: (rb_ipod_is_volume_ipod): removed unused
6283 2006-04-16 Christophe Fergeau <teuf@gnome.org>
6285 * data/ui/Makefile.am:
6286 * data/ui/ipod-ui.xml: added new ui file containing the iPod context
6288 * lib/rb-util.c: check if the widget we got from the UI manager isn't
6289 NULL before using it as a popup menu
6290 * sources/rb-ipod-source.c: added the possibility to 'rename' and
6293 2006-04-16 Christophe Fergeau <teuf@gnome.org>
6295 * sources/rb-ipod-source.c: when hal tells us a partition is on an
6296 iPod, check if it contains an iPod database before using it (in case
6297 the iPod was repartitionned somehow). Should fix bug #325034
6299 2006-04-16 Steve Frécinaux <steve@istique.net>
6301 * configure.ac: bump GTK+ version requirement from 2.5.4 to 2.6.0.
6303 * data/Makefile.am: install application icon into the default theme.
6305 * data/rhythmbox.desktop.in: don't specify icon file extension.
6307 * shell/main.c: (main): set default window icon from theme.
6309 * shell/rb-shell.c: (rb_shell_init, rb_shell_cmd_about): remove legacy
6310 code concerning window icon, and fix leak by unreferencing the about
6311 logo pixbuf once it's not used anymore.
6313 2006-04-16 James Livingston <doclivingston@gmail.com>
6315 * configure.ac: bump version to 0.9.4
6316 * NEWS: update NEWS and 0.9.4 insert translations
6318 2006-04-16 James Livingston <doclivingston@gmail.com>
6320 * plugins/pythonconsole/pythonconsole.py: import the rhythmdb
6321 namespace automatically.
6323 2006-04-16 James Livingston <doclivingston@gmail.com>
6325 * data/rhythmbox.schemas: add the plugin's stuff to the gconf schema
6327 * doc/reference/Makefile.am:
6328 * doc/reference/rhythmbox.types: make distcheck work again
6330 * doc/reference/tmpl/eggnotificationbubble.sgml:
6331 * doc/reference/tmpl/eggtrayicon.sgml:
6332 * doc/reference/tmpl/rb-debug.sgml:
6333 * doc/reference/tmpl/rb-entry-view.sgml:
6334 * doc/reference/tmpl/rb-enums.sgml:
6335 * doc/reference/tmpl/rb-metadata.sgml:
6336 * doc/reference/tmpl/rb-new-station-dialog.sgml:
6337 * doc/reference/tmpl/rb-playlist-manager.sgml:
6338 * doc/reference/tmpl/rb-refstring.sgml:
6339 * doc/reference/tmpl/rb-shell-player.sgml:
6340 * doc/reference/tmpl/rb-shell-preferences.sgml:
6341 * doc/reference/tmpl/rb-shell.sgml:
6342 * doc/reference/tmpl/rb-song-info.sgml:
6343 * doc/reference/tmpl/rb-station-properties-dialog.sgml:
6344 * doc/reference/tmpl/rb-statusbar.sgml:
6345 * doc/reference/tmpl/rhythmbox-unused.sgml:
6346 * doc/reference/tmpl/rhythmdb-query-model.sgml:
6347 * doc/reference/tmpl/rhythmdb.sgml: update generared api doc stuff
6349 2006-04-16 James Livingston <doclivingston@gmail.com>
6351 patch by: Christian Kirbach <Christian.Kirbach@student.uni-siegen.de>
6353 * po/LINGUAS: don't split the variable across two lines, as it breaks
6354 the build. Fixes bug 338625.
6356 2006-04-15 James Livingston <doclivingston@gmail.com>
6358 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
6359 add a "sourcelist-model" gobject property.
6361 2006-04-14 William Jon McCann <mccann@jhu.edu>
6364 * backends/.cvsignore:
6365 * backends/gstreamer/.cvsignore:
6366 * bindings/.cvsignore:
6367 * bindings/python/.cvsignore:
6368 * help/es/.cvsignore:
6369 * metadata/.cvsignore:
6370 * plugins/.cvsignore:
6371 * plugins/audioscrobbler/.cvsignore:
6372 * plugins/lirc/.cvsignore:
6373 * plugins/pythonconsole/.cvsignore:
6374 * plugins/sample-python/.cvsignore:
6375 * plugins/sample/.cvsignore:
6377 * widgets/libsexy/.cvsignore:
6378 Make CVS ignore files.
6380 2006-04-14 James Livingston <doclivingston@gmail.com>
6382 * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): make
6383 the track-loading thread hold a reference on the source, so it doesn't
6384 explode if the cd is removed before it is done. Fixes bug 337237.
6386 2006-04-14 James Livingston <doclivingston@gmail.com>
6388 * bindings/python/override_common.c:
6389 (_helper_unwrap_pointer_pylist):
6390 * bindings/python/override_common.h:
6391 * bindings/python/rb.override:
6392 * bindings/python/rhythmdb.override: Bind some more functions and
6395 * shell/rb-shell.c: (rb_shell_select_source):
6396 * shell/rb-source-header.c: (rb_source_header_set_source_internal):
6397 * sources/rb-audiocd-source.c:
6398 * sources/rb-auto-playlist-source.c: (impl_get_search_actions):
6399 * sources/rb-browser-source.c: (impl_get_search_actions):
6400 * sources/rb-iradio-source.c: (impl_get_ui_actions):
6401 * sources/rb-play-queue-source.c: (impl_get_ui_actions):
6402 * sources/rb-playlist-source.c: (impl_get_ui_actions):
6403 * sources/rb-podcast-source.c: (impl_get_ui_actions),
6404 (impl_get_search_actions):
6405 * sources/rb-static-playlist-source.c: (impl_get_search_actions): Make
6406 the impl_get_ui_actions and impl_get_search_actions functions return
6407 lists that contain copies of the strings, instead of constant ones.
6410 2006-04-14 James Livingston <doclivingston@gmail.com>
6412 * bindings/python/rhythmdb.defs:
6413 * bindings/python/rhythmdb.override: fix the method argument format
6416 2006-04-14 James Livingston <doclivingston@gmail.com>
6418 * bindings/python/rhythmdb.defs:
6419 * bindings/python/rhythmdb.override:
6420 * rhythmdb/rhythmdb.c: (rhythmdb_entry_get),
6421 (entry_to_rb_metadata), (record_entry_change),
6422 (rhythmdb_entry_set_visibility):
6423 * rhythmdb/rhythmdb.h:
6424 * shell/rb-shell.c: (rb_shell_get_song_properties): change
6425 rhythmdb_entry_get to take the db as the first parameter. Fixes the
6426 python bindings of it. The rhythmdb_entry_get_* ones are left the same
6427 since they are used in too many places, and not in the Python
6430 2006-04-13 William Jon McCann <mccann@jhu.edu>
6432 * lib/rb-debug.c: (_rb_profile_log):
6433 * plugins/rb-plugins-engine.c: (rb_plugins_engine_init):
6434 * rhythmdb/rhythmdb.c: (rhythmdb_load):
6435 * shell/main.c: (main):
6436 * shell/rb-shell.c: (rb_shell_constructor),
6437 (rb_shell_set_visibility), (rb_shell_sync_window_state),
6439 Fix profile output indentation. Add more profiling points.
6440 Fixes part of #338114
6442 2006-04-13 James Livingston <doclivingston@gmail.com>
6444 * shell/rb-shell.c: (rb_shell_source_deleted_cb): deal with the
6445 library source being deleted, by setting the active source to NULL.
6448 2006-04-12 Jonathan Matthew <jonathan@kaolin.wh9.net>
6450 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
6451 Update the last-seen string when hiddenness changes.
6453 2006-04-12 James Livingston <doclivingston@gmail.com>
6455 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): fix an issue
6456 which caused the first-seen time to be reset when a metadata load was
6457 done. Fixes bug 336874.
6459 * shell/rb-shell.h: remove old function declaration.
6461 * bindings/python/rhythmdb.defs:
6462 * bindings/python/rhythmdb.override: Fix some python binding stuff.
6464 2006-04-11 James Livingston <doclivingston@gmail.com>
6466 * shell/rb-shell.c: (rb_shell_sync_toolbar_state),
6467 (rb_shell_sync_smalldisplay): fix toolbar-style/small-mode
6468 interaction. Fixes bug 337999.
6470 2006-04-11 James Livingston <doclivingston@gmail.com>
6472 patch by: Christohpe Fergeau <teuf@gnome.org> to fix building without
6473 track transfer. Fixes bug 338056.
6475 * shell/Makefile.am:
6477 2006-04-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
6479 * widgets/Makefile.am: Fix automake complaints about LIBSEXY_LIBS
6481 2006-04-10 William Jon McCann <mccann@jhu.edu>
6483 * lib/rb-debug.c: (rb_profiler_free), (profile_add_indent),
6486 * shell/rb-shell.c: (construct_db), (construct_widgets),
6487 (construct_sources), (construct_load_ui), (rb_shell_constructor):
6488 Add profiling. Fixes #337387
6490 2006-04-10 William Jon McCann <mccann@jhu.edu>
6492 * sources/rb-play-queue-source.c (rb_play_queue_source_track_info_cell_data_func):
6493 * widgets/rb-header.c:
6494 Use italics for artist and album. Fixes #336748
6496 2006-04-10 James Livingston <doclivingston@gmail.com>
6499 * backends/gstreamer/Makefile.am:
6501 * data/glade/library-prefs.glade:
6502 * shell/Makefile.am:
6503 * shell/rb-removable-media-manager.c:
6504 * shell/rb-removable-media-manager.h:
6505 * sources/Makefile.am:
6506 * sources/rb-audiocd-source.c:
6507 * sources/rb-library-source.c: (rb_library_source_class_init),
6508 (rb_library_source_finalize), (impl_get_config_widget),
6509 (rb_library_source_preferences_sync), (impl_can_paste): add a
6510 --enable-track-transfer configure option, abd make cd ripping disabled
6513 * shell/rb-source-header.c:
6514 * sources/rb-source.c: (rb_source_class_init),
6515 (rb_source_delete_thyself), (default_get_entry_view):
6516 * lib/rb-glade-helpers.c:
6517 * shell/rb-shell.c: (rb_shell_view_queue_as_sidebar_changed_cb): Fix
6518 some compiler warnings, and also bug 337427.
6520 2006-04-10 James Livingston <doclivingston@gmail.com>
6522 * shell/rb-shell-player.c: (rb_shell_player_shuffle_changed_cb),
6523 (rb_shell_player_repeat_changed_cb): don't fail to set the play order
6524 if the gconf key is missing. Fixes bug 337742.
6526 2006-04-10 James Livingston <doclivingston@gmail.com>
6528 patch by: Alex Lancaster <alexl@users.sourceforge.net>
6529 to fix build problems I caused with a commit yesterday. Fixed bug
6532 * daapsharing/rb-daap-mdns-browser-howl.c:
6533 (rb_daap_mdns_browser_class_init):
6534 * podcast/Makefile.am:
6535 * rhythmdb/Makefile.am:
6536 * widgets/eggtrayicon.h:
6538 2006-04-09 Steve Frécinaux <steve@istique.net>
6543 Move ALL_LANGUAGES content to the po/LINGUAS file, to make our
6544 translators' life easier.
6546 2006-04-09 James Livingston <doclivingston@gmail.com>
6548 * bindings/python/rb.defs:
6549 * bindings/python/rb.override: add bindings for most RBSource virtual
6552 * sources/rb-source.h:
6553 * sources/rb-source.c: (rb_source_class_init): make
6554 impl_get_browser_key return a non-consht string, since Python can't
6555 really give us constant strings.
6557 * shell/rb-source-header.c: (rb_source_header_finalize),
6558 (rb_source_header_set_source_internal):
6559 * sources/rb-daap-source.c: (rb_daap_source_get_browser_key):
6560 * sources/rb-iradio-source.c: (impl_get_browser_key):
6561 * sources/rb-library-source.c: (impl_get_browser_key):
6562 * sources/rb-playlist-source.c:
6563 * sources/rb-browser-source.c: (rb_browser_source_constructor),
6564 (rb_browser_source_state_prefs_sync):
6565 * sources/rb-podcast-source.c: (impl_get_browser_key): Adapt to the
6568 * plugins/sample-python/sample-python.py: show how to add a new
6571 2006-04-09 James Livingston <doclivingston@gmail.com>
6573 * daapsharing/Makefile.am:
6574 * daapsharing/rb-daap-connection.c:
6575 (rb_daap_connection_class_init):
6576 * daapsharing/rb-daap-marshal.list:
6577 * daapsharing/rb-daap-mdns-browser-avahi.c:
6578 (rb_daap_mdns_browser_class_init):
6579 * lib/rb-marshal.list:
6580 * player/Makefile.am:
6581 * player/rb-recorder-gst.c: (rb_recorder_class_init):
6582 * player/rb-recorder-marshal.list:
6583 * podcast/Makefile.am:
6584 * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init):
6585 * podcast/rb-podcast-marshal.list:
6586 * rhythmdb/Makefile.am:
6587 * rhythmdb/rhythmdb-marshal.list:
6588 * rhythmdb/rhythmdb-query-model.c:
6589 (rhythmdb_query_model_class_init):
6590 * rhythmdb/rhythmdb.c: (rhythmdb_class_init): merge all the marshalers
6591 into one file, as there is no point having several of them.
6593 2006-04-09 James Livingston <doclivingston@gmail.com>
6597 * widgets/Makefile.am:
6598 * widgets/eggnotificationbubble.c:
6599 * widgets/eggnotificationbubble.h:
6600 * widgets/rb-song-info.c: remove lib/rb-enums.h and
6601 widgets/eggnotificationbubble.{c,h}, since they aren't used any more
6603 * rhythmdb/rhythmdb-property-model.h:
6604 * rhythmdb/rhythmdb-query-model.h:
6605 * rhythmdb/rhythmdb.h:
6606 * shell/rb-playlist-manager.h:
6607 * widgets/rb-cell-renderer-pixbuf.h:
6608 * widgets/rb-cell-renderer-rating.h:
6609 * widgets/rb-rating.h: fix the prototypes of various class-closures.
6611 2006-04-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
6613 * widgets/libsexy/Makefile.am: Actually use internal libsexy headers,
6614 so we can build without a system-wide installed copy.
6616 2006-04-09 James Livingston <doclivingston@gmail.com>
6618 * data/glade/general-prefs.glade:
6619 * data/rhythmbox.schemas:
6620 * lib/rb-glade-helpers.c: (rb_glade_boldify_label),
6621 (rb_combo_box_hyphen_separator_func):
6622 * lib/rb-glade-helpers.h:
6623 * lib/rb-preferences.h:
6624 * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6625 (rb_shell_preferences_sync),
6626 (rb_shell_preferences_toolbar_style_cb),
6627 (rb_shell_preferences_browser_views_activated_cb):
6628 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
6629 (rb_shell_sync_toolbar_state), (toolbar_state_changed_cb): Allow the
6630 overriding of the toolbar style, as the HIG suggests. Fixes bug 336797.
6632 2006-04-09 James Livingston <doclivingston@gmail.com>
6634 * sources/rb-audiocd-source.c: (entry_set_string_prop): validate the
6635 data that MusicBrainz returns to us. Last part of bug 334167.
6637 2006-04-09 James Livingston <doclivingston@gmail.com>
6639 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
6640 crasher if xmlCreateMemoryParserCtxt returns NULL. Fixes bug 336842.
6642 2006-04-09 James Livingston <doclivingston@gmail.com>
6644 * widgets/rb-entry-view.c: (rb_entry_view_rows_reordered_cb): update
6645 the entry view properly when the rows are reordered. Fixes bug 337019.
6647 2006-04-09 James Livingston <doclivingston@gmail.com>
6650 * widgets/Makefile.am:
6651 * widgets/libsexy/Makefile.am:
6652 * widgets/libsexy/sexy-icon-entry.c:
6653 * widgets/libsexy/sexy-icon-entry.h: add an internal copy of part of
6654 libsexy, and allow building against it or a system-wide installed
6658 * widgets/rb-search-entry.c: (rb_search_entry_init),
6659 (rb_search_entry_changed_cb): use libsexy to add a clear button to the
6660 search box. Fixes bug 128109.
6662 2006-04-09 James Livingston <doclivingston@gmail.com>
6664 patch by: Alex Lancaster <alexl@users.sourceforge.net>
6666 * widgets/rb-entry-view.c: (rb_entry_view_init),
6667 (rb_entry_view_finalize), (rb_entry_view_constructor): use the Play
6668 and Pause icons rather than the volume ones in the Now Playing column.
6671 2006-04-08 James Livingston <doclivingston@gmail.com>
6673 * bindings/python/override_common.h:
6674 * bindings/python/rb.override:
6675 * bindings/python/rhythmdb.override: bind some more functions
6677 2006-04-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
6679 * metadata/rb-metadata-dbus-service.c: (_send_error):
6680 Send NULL error messages as empty strings, so _NOT_AUDIO_IGNORE errors
6681 are sent properly and we don't get 'method doesn't exist' messages
6684 2006-04-08 James Livingston <doclivingston@gmail.com>
6686 * bindings/python/override_common.h:
6687 * bindings/python/override_common.c: (_helper_wrap_pointer_glist),
6688 (_helper_wrap_boxed_glist), (_helper_unwrap_string_pylist): add some
6689 more utility functions for C<->Python conversions
6691 * widgets/rb-entry-view.c: (rb_entry_view_column_get_type),
6692 (rb_entry_view_state_get_type):
6693 * widgets/rb-entry-view.h: make the colume type and entry view state
6696 * bindings/python/Makefile.am:
6697 * bindings/python/rb.defs:
6698 * bindings/python/rb.override: bind RBEntryView, RBPropertyView and
6701 2006-04-08 James Livingston <doclivingston@gmail.com>
6703 * backends/gstreamer/rb-encoder-gst.c: (bus_watch_cb): add a missing
6704 initialiser for a GError
6706 * sources/rb-source.c: (rb_source_eof_type_get_type):
6707 * sources/rb-source.h: add a GType for RBSourceEOFType
6709 * bindings/python/Makefile.am:
6710 * bindings/python/rb.defs:
6711 * bindings/python/rb.override: bind RBSource and RBSourceList
6713 2006-04-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
6715 * shell/rb-shell-player.c: (rb_shell_player_class_init),
6716 (rb_shell_player_get_property),
6717 (rb_shell_player_get_active_source),
6718 (rb_shell_player_set_playing_source_internal):
6719 * shell/rb-shell-player.h:
6720 Change 'playing-from-queue' from being a signal to being a property.
6722 * shell/rb-shell.c: (rb_shell_constructor),
6723 (rb_shell_playing_from_queue_cb),
6724 (rb_shell_view_queue_as_sidebar_changed_cb),
6725 (rb_shell_jump_to_entry_with_source):
6726 When the queue side pane is used, make 'jump to current' jump to the
6727 entry in the registered source for its type, rather than in the queue,
6728 and show it as playing in that source.
6730 * sources/rb-sourcelist.c: (rb_sourcelist_set_playing_source):
6731 * sources/rb-sourcelist.h:
6732 Remove the 'preempted source' stuff, since it wasn't doing anything
6735 2006-04-07 Jonathan Matthew <jonathan@kaolin.wh9.net>
6737 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
6738 (download_progress_cb): Canonicalise downloaded file location before
6739 setting the mountpoint property of the corresponding entry.
6740 Fixes #337287 and a couple of memory leaks.
6742 2006-04-06 Jonathan Matthew <jonathan@kaolin.wh9.net>
6744 * metadata/rb-metadata-dbus-service.c: (test_can_save),
6745 (test_load), (main): Call g_set_prgname, report errors more
6746 usefully in test mode.
6747 * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb),
6748 (rb_metadata_load): Don't ignore the have-type signal for non-audio
6749 files. Run the event loop when the state change fails so we get the
6750 error messages from the bus. Fixes #336921.
6752 2006-04-05 William Jon McCann <mccann@jhu.edu>
6754 * data/art/Makefile.am: Install media-eject.
6756 * lib/rb-stock-icons.c (rb_stock_icons_init): Check
6757 return value of rb_file.
6761 2006-04-05 Jonathan Matthew <jonathan@kaolin.wh9.net>
6763 Patch by: William Jon McCann <mccann@jhu.edu>
6765 * metadata/test-metadata.c: (main): Use GOption to parse arguments.
6766 * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata):
6769 2006-04-04 William Jon McCann <mccann@jhu.edu>
6771 * backends/gstreamer/rb-encoder-gst.c (add_tags_from_entry):
6772 Don't try to add a date when we don't have one. Fixes #336741.
6774 Also fix variable declaration in middle of block.
6776 2006-04-04 Jonathan Matthew <jonathan@kaolin.wh9.net>
6778 * shell/rb-shell-player.c: (rb_shell_player_playpause):
6779 Don't crash if source is already NULL. Hackishly fixes bug #336912.
6781 2006-04-02 James Livingston <doclivingston@gmail.com>
6783 * metadata/rb-metadata-gst.c: (rb_metadata_gst_typefind_cb): fix the
6784 inverted logic causing imports to fail.
6786 2006-04-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
6788 * shell/main.c: (main): Fix dbusless build.
6790 2006-04-02 Christophe Fergeau <teuf@gnome.org>
6792 * player/rb-recorder-gst.c: fix packing of the C struct holding a
6793 wav header for non-gcc compilers (not tested much, was only written
6796 2006-04-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
6798 * shell/main.c: (main): Check if we got a dbus connection before
6799 trying to create a proxy for the shell object. Fixes #336634.
6801 2006-04-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
6803 * doc/reference/Makefile.am:
6804 * plugins/lirc/rb-lirc-plugin.c: (rb_lirc_plugin_class_init):
6805 * shell/rb-source-header.c:
6806 * sources/rb-generic-player-source.c:
6807 (default_transform_playlist_uri):
6808 Fix various build issues. Patch approximately 50% by Alex Lancaster
6809 <alexl@users.sourceforge.net>
6811 2006-04-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
6813 * configure.ac: Detect LIRC.
6815 * plugins/Makefile.am:
6816 * plugins/lirc/Makefile.am:
6817 * plugins/lirc/lirc.rb-plugin.desktop.in:
6818 * plugins/lirc/rb-lirc-plugin.c:
6821 * shell/Makefile.am, shell/rb-remote.c, shell/rb-remote.h:
6822 Remove obsolete files.
6824 2006-04-02 James Livingston <doclivingston@gmail.com>
6826 * sources/rb-generic-player-source.c:
6827 (default_transform_playlist_uri): consider playlist paths as relative
6828 to the volume root by default, since that is what most players use.
6830 2006-04-02 James Livingston <doclivingston@gmail.com>
6832 * lib/rb-util.c: (rb_mime_get_friendly_name):
6833 * lib/rb-util.h: add helper function to get the "friendly" name for a
6836 * metadata/rb-metadata-gst.c: (rb_metadata_init),
6837 (rb_metadata_gst_typefind_cb), (rb_metadata_gst_unknown_type_cb): give
6838 the user better error messages about undecodable streams, using the
6839 "friendly" name if possible. Fixes bug 128109.
6841 2006-04-02 James Livingston <doclivingston@gmail.com>
6843 * backends/gstreamer/rb-encoder-gst.c: (progress_timeout_cb),
6844 (start_pipeline): fix building with gstreamer 0.8
6846 2006-04-02 James Livingston <doclivingston@gmail.com>
6848 * sources/rb-podcast-source.c: (impl_delete),
6849 (rb_podcast_source_cmd_delete_feed),
6850 (rb_podcast_source_cmd_update_feed): copy the list before traversing
6851 it, since it may change during traversal. Fixes bug 336204.
6853 2006-04-01 James Livingston <doclivingston@gmail.com>
6855 * data/art/media-eject.png: add the media-eject icon from Banshee
6856 (BSD-licensed), for use when the user's icon theme doesn't have one.
6858 * lib/rb-stock-icons.c: (rb_stock_icons_init): use the above. Fixes
6861 2006-04-01 James Livingston <doclivingston@gmail.com>
6863 * shell/rb-shell-player.h:
6864 * shell/rb-shell-player.c: (rb_shell_player_play),
6865 (rb_shell_player_stop), (rb_shell_player_pause), (filter_mmkeys): add
6866 new rb_shell_player_{play,pause} functions, so everyone doesn't have
6867 to do rb_shell_player_playing followed by rb_shell_player_playpause.
6869 * shell/rb-shell.c: (rb_shell_sync_smalldisplay),
6870 (rb_shell_get_playlist_manager_path), (rb_shell_get_ui_manager):
6871 * shell/rb-shell.h: add rb_shell_get_ui_manager.
6873 * bindings/python/rb.defs: bind the above to Python, and remove some
6874 useless stuff from the bindings.
6876 2006-04-01 James Livingston <doclivingston@gmail.com>
6878 * backends/gstreamer/rb-encoder-gst.c: (add_tags_from_entry): add disc
6882 * shell/rb-shell.h: export rb_shell_get_source_by_entry_type.
6884 * sources/rb-daap-source.c: (rb_daap_source_class_init): set _can_copy
6887 * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
6888 * sources/rb-podcast-source.c: (rb_podcast_source_class_init): reorder
6889 method assigning, so it's understandable
6891 * sources/rb-library-source.c: (rb_library_source_class_init),
6892 (impl_paste): rather than hard-coding the types to ignore, use
6895 2006-03-31 Jonathan Matthew <jonathan@kaolin.wh9.net>
6897 * sources/rb-library-source.c:
6898 (rb_library_source_preferences_sync):
6899 Don't crash if no audio profile is selected and the gconf schemas are
6902 2006-03-31 James Livingston <doclivingston@gmail.com>
6904 * plugins/rb-python-module.c: (rb_python_module_load): add a missing
6905 "*" which caused compilation to fail
6907 2006-03-31 James Livingston <doclivingston@gmail.com>
6911 * backends/Makefile.am:
6912 * backends/gstreamer/Makefile.am:
6913 * backends/gstreamer/rb-encoder-gst.c:
6914 * backends/gstreamer/rb-encoder-gst.h:
6915 * backends/rb-encoder.c:
6916 * backends/rb-encoder.h: add a interface for transcoding, and a
6917 GStreamer implementation of it (based on Sound-Juicer's code).
6919 * shell/Makefile.am:
6920 * shell/rb-removable-media-manager.c:
6921 (rb_removable_media_manager_class_init),
6922 (rb_removable_media_manager_init),
6923 (rb_removable_media_manager_dispose),
6924 (rb_removable_media_manager_finalize),
6925 (rb_removable_media_manager_scan), (emit_progress), (error_cb),
6926 (progress_cb), (completed_cb), (do_transfer),
6927 (rb_removable_media_manager_queue_transfer), (copy_entry),
6928 (rb_removable_media_manager_cmd_copy_tracks):
6929 * shell/rb-removable-media-manager.h: use the encoder interface to
6930 perform transfers of entries to other locations
6932 * shell/rb-shell-player.c: (open_location_thread):
6933 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
6934 (rb_shell_constructor), (rb_shell_transfer_progress_cb),
6936 * shell/rb-statusbar.c: (rb_statusbar_set_progress): display transfer
6937 progress in the status bar.
6939 * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
6940 (rb_shell_preferences_sync),
6941 (rb_shell_preferences_browser_views_activated_cb):
6942 * data/glade/general-prefs.glade: move the browser views setting from
6943 the library tab to the general one.
6945 * data/glade/library-prefs.glade: add settings for the layout of the
6946 user's library, and their preferred encoding format (e.g. for CD
6949 * lib/rb-preferences.h:
6950 * data/rhythmbox.schemas: add keys for the above options (and a few
6953 * rhythmdb/rhythmdb.c: (rhythmdb_entry_example_new):
6954 * rhythmdb/rhythmdb.h: add a new function for creating an "example"
6955 entry, that isn't inserted into the database.
6957 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init),
6958 (rb_audiocd_create_track_entry):
6959 * data/ui/rhythmbox-ui.xml: add a toolbar button for ripping audio
6960 cds, and set the mime-type of audio cd tracks correctly.
6962 * sources/rb-library-source.c: (rb_library_source_class_init),
6963 (rb_library_source_finalize),
6964 (rb_library_source_edit_profile_clicked_cb),
6965 (impl_get_config_widget), (rb_library_source_preferences_sync),
6966 (impl_receive_drag), (rb_library_source_path_changed_cb),
6967 (rb_library_source_filename_changed_cb),
6968 (rb_library_source_format_changed_cb), (sanitize_path),
6969 (filepath_parse_pattern), (layout_example_label_update),
6970 (rb_library_source_layout_path_changed),
6971 (rb_library_source_layout_filename_changed), (build_filename),
6972 (impl_can_paste), (completed_cb), (impl_paste): allow the copying of
6973 entries to the library. Large chunks of code for determining the
6974 destination file name stolen from Sound-Juicer.
6976 * sources/rb-sourcelist-model.c: (path_is_droppable):
6977 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync):
6978 * sources/rb-static-playlist-source.c:
6979 (rb_static_playlist_source_class_init):
6980 * sources/rb-removable-media-source.c:
6981 (rb_removable_media_source_class_init):
6982 * sources/rb-source.c: (rb_source_class_init), (rb_source_can_cut),
6983 (rb_source_can_paste):
6984 * sources/rb-source.h: add a new _can_paste method, and use it (rather
6985 than _can_copy) to determine whether we can paste into the source.
6988 2006-03-31 Steve Frécinaux <steve@istique.net>
6990 * plugins/rb-python-module.c: allow import of python modules with a '.'
6991 (gedit's bug 336403). Patch by Johan Dahlin.
6993 2006-03-31 James Livingston <doclivingston@gmail.com>
6995 * sources/rb-library-source.c:
6996 * sources/rb-library-source.h:
6997 * sources/rb-browser-source.c:
6998 * sources/rb-browser-source.h: Split RBLibrarySource into two.
6999 RBBrowserSource now contains all the stuff for having a source which
7000 views a particular entry type (including browsers and searching).
7001 RBLibrarySource derives from this, and includes the library-specific
7002 stuff, like importing and library watching. Fixes some issues where
7003 library-derived sources were doing things that should be
7004 library-specific. Fixes bug 335185.
7006 * data/ui/rhythmbox-ui.xml:
7007 * sources/Makefile.am: modifications for the above
7009 * sources/rb-daap-source.c: (rb_daap_source_class_init),
7010 (rb_daap_source_get_paned_key):
7011 * sources/rb-daap-source.h:
7012 * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
7013 * sources/rb-removable-media-source.c:
7014 (rb_removable_media_source_class_init):
7015 * sources/rb-removable-media-source.h: derive from RBBrowserSource
7016 instead of RBLibrarySource.
7018 2006-03-31 James Livingston <doclivingston@gmail.com>
7020 * rhythmdb/rhythmdb-query-model.c: use guin64 instead of guint, which
7021 I buggered up when changing from GnomeVFSFileSize.
7023 2006-03-30 James Livingston <doclivingston@gmail.com>
7025 * configure.ac: lower pygtk deps to 2.6, and add a makefile variable
7028 * bindings/python/rb.override:
7029 * bindings/python/Makefile.am: make the RB python bindings depend on
7030 the RhythmDB ones, and use "-Wno-error" since the machine-generated
7031 code sometimes emits warnings.
7033 * shell/rb-shell-player.c: (rb_shell_player_class_init),
7034 (rb_shell_player_error_get_type):
7035 * shell/rb-shell-player.h:
7036 * bindings/python/rb.defs: add bindings for RBShellPlayer
7038 * rhythmdb/rhythmdb.c: (rhythmdb_init),
7039 (rhythmdb_query_type_get_type), (rhythmdb_prop_type_get_type),
7040 (rhythmdb_entry_get_type), (rhythmdb_query_get_type):
7041 * rhythmdb/rhythmdb.h:
7042 * shell/rb-shell.c: (rb_shell_get_song_properties):
7043 * widgets/rb-entry-view.c: (propid_from_name):
7044 * widgets/rb-property-view.c: (rb_property_view_class_init):
7045 * bindings/python/rhythmdb.defs: make RhythmDBQuery a type (rather
7046 than just plain GPtrArray, and add bindings for it.
7048 * bindings/python/rhythmdb.override: wrap some functions that use
7051 2006-03-30 Jonathan Matthew <jonathan@kaolin.wh9.net>
7053 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
7054 Only watch directories from which entries of type SONG have been
7057 2006-03-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
7059 * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7060 No need to restore the selection after rebuilding the child model,
7061 since that can't have changed the selection.
7063 2006-03-29 James Livingston <doclivingston@gmail.com>
7065 * bindings/python/override_common.c:
7066 * bindings/python/override_common.h: add some for missing files to
7069 2006-03-29 James Livingston <doclivingston@gmail.com>
7072 * bindings/python/Makefile.am: remove usage of gtksourceview, it was
7073 copied from gedit's autofoo and we don't need it
7075 * bindings/python/rhythmdb.defs:
7076 * bindings/python/rhythmdb.override: add missing files to cvs
7078 2006-03-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
7080 * data/ui/rhythmbox-ui.xml: Add 'add to queue' menu item.
7081 * metadata/rb-metadata-dbus-service.c: (main): Call rb_debug_init
7082 before running any of the debug/test modes.
7083 * plugins/rb-plugins-engine.c: (rb_plugins_engine_load_all):
7084 Make plugin loading work when running uninstalled from the shell/
7087 2006-03-29 James Livingston <doclivingston@gmail.com>
7089 * rhythmdb/rhythmdb-property-model.c:
7090 (rhythmdb_property_model_sync),
7091 (rhythmdb_property_model_column_get_type):
7092 * rhythmdb/rhythmdb-property-model.h: make the column enum a GType
7094 * rhythmdb/rhythmdb-private.h:
7095 * rhythmdb/rhythmdb-query-model.c:
7096 (rhythmdb_query_model_class_init):
7097 * rhythmdb/rhythmdb-query-model.h:
7098 * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
7099 (rhythmdb_compute_status_normal), (rhythmdb_get_property_type),
7100 (rhythmdb_entry_get_type):
7101 * rhythmdb/rhythmdb.h: make RhythmDBEntry a GType.
7103 * widgets/rb-query-creator-properties.c:
7104 * widgets/rb-song-display-box.c: #include <gnome-vfs-utils.h>, which
7107 * bindings/python/Makefile.am:
7108 * bindings/python/rb.defs:
7109 * bindings/python/rb.override:
7110 * plugins/rb-python-module.c: (rb_python_module_init_python): add
7111 Python bindings for RhythmDB.
7113 2006-03-29 James Livingston <doclivingston@gmail.com>
7115 * shell/rb-shell.c: (rb_shell_constructor): don't activate DAAP
7116 sharing when using --no-registration
7118 2006-03-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
7120 * rhythmdb/rhythmdb-query-model.c:
7121 (rhythmdb_query_model_reapply_query):
7122 Don't remove entries while iterating, as it breaks the sequence
7123 nodes. Instead, collect a list of removed entries and process it
7124 after iterating the sequence. Fixes #334642.
7126 2006-03-29 James Livingston <doclivingston@gmail.com>
7128 * plugins/rb-plugin-manager.c: (active_toggled_cb),
7129 (row_activated_cb), (plugin_manager_toggle_all):
7130 * sources/rb-sourcelist.c: (rb_sourcelist_source_to_iter),
7131 (rb_sourcelist_visible_source_to_iter), (row_activated_cb),
7132 (button_press_cb), (source_name_edited_cb):
7133 * widgets/rb-property-view.c: (rb_property_view_set_property),
7134 (rb_property_view_post_row_deleted_cb),
7135 (rb_property_view_row_activated_cb),
7136 (rb_property_view_selection_changed_cb),
7137 (rb_property_view_button_press_cb): fix warnings with GTK HEAD, about
7138 ignoring the return value of gtk_tree_model_get_iter. Fixes bug 335516.
7140 2006-03-29 Jonathan Matthew <jonathan@kaolin.wh9.net>
7142 * rhythmdb/rhythmdb-query-model.c:
7143 (rhythmdb_query_model_drag_data_received):
7144 Increment the reference count for entries added by drag and drop.
7147 2006-03-27 Jonathan Matthew <jonathan@kaolin.wh9.net>
7149 * daapsharing/rb-daap-connection.c: (entry_set_string_prop):
7150 * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag):
7151 Ignore invalid UTF-8 strings. Fixes most of #334167.
7153 2006-03-27 James Livingston <doclivingston@gmail.com>
7155 * shell/rb-shell.c: (rb_shell_constructor),
7156 (rb_shell_sync_window_state): fix a maximise-realise race that would
7157 cause some widgets to be resized after we had explicity set theri
7158 size. Hopefully fixes bug 331927.
7160 2006-03-27 James Livingston <doclivingston@gmail.com>
7162 * plugins/rb-plugin-manager.c: (active_toggled_cb),
7163 (row_activated_cb), (plugin_manager_set_active),
7164 (plugin_manager_toggle_active), (plugin_manager_toggle_all): update
7165 configure button sensitivity when a plugin is enabled/disabled.
7167 2006-03-27 James Livingston <doclivingston@gmail.com>
7169 * data/glade/plugins.glade: turn from a GtkDialog to a GtkWindow to
7170 stop warnings, only the vbos is used anyway
7172 * plugins/rb-plugins-engine.c: (garbage_collect_cb),
7173 (rb_plugins_engine_init), (rb_plugins_engine_shutdown): run gabage
7174 collection every now an then.
7176 * plugins/rb-python-plugin.c: (rb_python_object_finalize): don't crash
7177 if we are finalising because the python object couldn't be created.
7179 * plugins/rb-python-module.c: (rb_python_module_new_object): return
7180 NULL if the python-side object couldn't be created. Stops crashes when
7181 the object is later used when it doesn't exist in Python.
7183 (run_gc), (rb_python_garbage_collect), (finalise_collect_cb),
7184 (rb_python_shutdown): do better garbage collection when shutting down.
7185 Fixes the problem where Python was holding a reference to the shell,
7186 causing RB not to exit.
7188 2006-03-27 James Livingston <doclivingston@gmail.com>
7190 * configure.ac: don't define HAVE_LIBSOUP when we don't. Fixes bug
7193 2006-03-27 James Livingston <doclivingston@gmail.com>
7195 * data/iradio-initial.pls: Change the AfterHours DJ stream address.
7198 2006-03-26 James Livingston <doclivingston@gmail.com>
7200 * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_location): set the
7201 library location list to NULL after we free it. Fixes bug 336047.
7203 2006-03-26 James Livingston <doclivingston@gmail.com>
7205 patch by: Alex Lancaster <alexl@users.sourceforge.net>
7207 * sources/rb-audiocd-source.c: use the release-date that MusicBrainz
7208 supplies. Fixes bug 335947.
7210 2006-03-25 James Livingston <doclivingston@gmail.com>
7212 * data/glade/audioscrobbler-prefs.glade:
7213 * shell/rb-audioscrobbler.c:
7214 (rb_audioscrobbler_enabled_check_changed_cb): move and rename the
7215 "submit songs" checkbox, and make it not disable username/password
7216 entry. This will be needed when we support other last.fm stuff
7217 (profile access, radio, etc).
7219 2006-03-24 Dennis Cranston <dennis_cranston@yahoo.com>
7221 * widgets/bacon-volume.c: (bacon_volume_scale_value_changed):
7222 Volume should not display stock_volume-0 for volume > 0. Fixes bug
7225 2006-03-24 James Livingston <doclivingston@gmail.com>
7227 * shell/rb-shell-player.c: (rb_shell_player_set_property),
7228 (rb_shell_player_sync_play_order),
7229 (rb_shell_player_play_order_update_cb),
7230 (actually_set_playing_source): update the next/previous availablility
7231 in places where it was missing. Fixes bug 335490.
7233 2006-03-24 James Livingston <doclivingston@gmail.com>
7235 * lib/rb-glade-helpers.c: (rb_glade_boldify_label): don't crash if we
7236 can't find the widget
7238 * lib/rb-util.c: (rb_uri_list_parse):
7239 * lib/rb-util.h: add function for parsing a URI list into strings.
7241 * metadata/Makefile.am: make the metdata helper build when linking
7244 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): use
7245 g_mkdir_with_parents instead of coding our own.
7247 * podcast/rb-podcast-parse.c: (rb_set_channel_value): prefer
7248 <itunes:author> over <generator>, instead of using whichever comes
7251 * rhythmdb/rhythmdb-private.h:
7252 * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate): remove the "magic"
7253 field, as we don't ever check it (to detect corruption). Saves a bit
7256 2006-03-24 Jonathan Matthew <jonathan@kaolin.wh9.net>
7258 * lib/rb-file-helpers.c: (escape_extra_gnome_vfs_chars),
7259 (rb_uri_handle_recursively_cb), (rb_canonicalise_uri):
7260 Escape '&' and '=' in the paths we get back from
7261 gnome_vfs_directory_visit. Fixes #333998 a bit more.
7263 2006-03-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
7265 * shell/rb-shell.c: (rb_shell_constructor):
7266 Issue startup notification after creating the main window, so
7267 notification is issued whether the window is visible or not.
7270 2006-03-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
7272 * sources/rb-auto-playlist-source.c: (impl_search),
7273 (rb_auto_playlist_source_query_complete_cb),
7274 (rb_auto_playlist_source_do_query):
7275 * sources/rb-library-source.c: (impl_search),
7276 (rb_library_source_query_complete_cb),
7277 (rb_library_source_do_query):
7278 Defer subset searches (where text is appended to an existing search)
7279 until the original query is complete.
7281 2006-03-21 Ryan P Skadberg <skadz@stigmata.org>
7283 patch by: Jonathan Matthew <jonathan@kaolin.wh9.net>
7285 * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7286 (rb_refstring_get_sort_key): fixes for strict-aliasing
7288 2006-03-21 James Livingston <jrl@ids.org.au>
7290 * shell/rb-shell.c: (rb_shell_load_uri): don't add a new playlist when
7291 importing a single file. Fixes bug 335307.
7293 2006-03-21 James Livingston <jrl@ids.org.au>
7295 * shell/Makefile.am: remove the reference to backends/ that I
7296 accidently included.
7298 2006-03-21 James Livingston <jrl@ids.org.au>
7300 patch by: Brian Cameron <brian.cameron@sun.com> to fix comilation
7301 with Forte (on Solaris). Closes bug 335318.
7305 * player/rb-recorder-gst.c:
7306 * podcast/rb-podcast-parse.c:
7307 * remote/bonobo/Makefile.am:
7308 * remote/rb-remote-proxy.c: (rb_remote_proxy_set_repeat):
7309 * rhythmdb/rhythmdb-query-model.c: (idle_process_update),
7310 (rhythmdb_query_model_add_entry),
7311 (rhythmdb_query_model_add_results):
7312 * rhythmdb/rhythmdb.c: (rhythmdb_entry_foreach):
7313 * rhythmdb/rhythmdb.h:
7314 * shell/Makefile.am:
7315 * sources/rb-playlist-source-recorder.c: (get_write_speeds),
7316 (update_speed_combobox):
7317 * sources/rb-sourcelist-model.c:
7319 2006-03-21 James Livingston <jrl@ids.org.au>
7321 Patch by: Alex Lancaster <alexl@users.sourceforge.net>
7323 * player/Makefile.am:
7324 * shell/Makefile.am: work correctly with a separate build root.
7326 2006-03-21 James Livingston <jrl@ids.org.au>
7328 * rhythmdb/rhythmdb.c: (rhythmdb_monitor_uri_path): don't crash if we
7331 2006-03-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
7333 * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry):
7334 Only create ignore entries when importing into the library.
7335 Ignore entries for files in removable media sources don't help.
7337 2006-03-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
7339 * shell/rb-source-header.c: (rb_source_header_focus_search_box):
7340 * shell/rb-source-header.h:
7341 * widgets/rb-search-entry.c: (rb_search_entry_grab_focus):
7342 * widgets/rb-search-entry.h:
7343 Add functions to make the search box grab focus.
7345 * shell/rb-shell.c: (rb_shell_cmd_view_all):
7346 Focus the search box after handling the 'view all' action.
7348 2006-03-20 Jonathan Matthew <jonathan@kaolin.wh9.net>
7350 * rhythmdb/rhythmdb.h:
7351 * rhythmdb/rhythmdb.c: (rhythmdb_init),
7352 (rhythmdb_execute_multi_stat_info_cb),
7353 (rhythmdb_start_action_thread), (rhythmdb_execute_stat_info_cb),
7354 (rhythmdb_execute_stat), (queue_stat_uri), (rhythmdb_execute_load),
7355 (action_thread_main):
7356 Collect all the get_file_info requests on startup into one gnome-vfs
7357 job to reduce overhead and avoid contention for the rhythmdb lock.
7358 Add a new method to call when all initial query models are set up.
7360 * shell/rb-shell.c: (idle_handle_load_complete):
7361 Call rhythmdb startup complete function when we've loaded all the
7362 playlists. Fixes #334106.
7364 2006-03-20 James Livingston <jrl@ids.org.au>
7366 * widgets/rb-entry-view.c: (rb_entry_view_set_property),
7367 (rb_entry_view_selection_changed_cb),
7368 (rb_entry_view_have_complete_selection): make has_complete_selection
7369 not slow. Fixes a performance issue I added a week or so ago.
7371 2006-03-20 James Livingston <jrl@ids.org.au>
7373 * shell/rb-shell-player.c: (volume_pre_unmount_cb): check for NULL
7374 before passing to strcmp. From bug 334559.
7376 2006-03-20 Jonathan Matthew <jonathan@kaolin.wh9.net>
7380 * lib/rb-proxy-config.c:
7381 * lib/rb-proxy-config.h:
7382 Add a new object to watch the HTTP proxy configuration and emit
7383 signals when it changes.
7385 * shell/rb-audioscrobbler.c:
7386 * shell/rb-audioscrobbler.h:
7387 Use rb-proxy-config to watch HTTP proxy configuration.
7390 Construct rb-proxy-config object on startup, and remove all
7391 audioscrobbler references.
7393 * shell/Makefile.am:
7394 * plugins/audioscrobbler/Makefile.am:
7395 * plugins/audioscrobbler/rb-audioscrobbler-plugin.c:
7396 Move all audioscrobbler code into the plugin. We should move
7397 rb-audioscrobbler.* from shell/ to plugins/audioscrobbler/ at some
7398 point. Don't use a private data structure in the plugin, since the
7399 class definition isn't in a header file. Fixes #335091.
7401 2006-03-20 James Livingston <jrl@ids.org.au>
7403 * shell/rb-shell-player.c: (rb_shell_player_play_order_update_cb):
7404 don't enable Next if the source has an EOS type other than
7405 RB_SOURCE_EOF_NEXT. Fixes bug 315120.
7407 2006-03-20 James Livingston <jrl@ids.org.au>
7409 * widgets/rb-song-info.c: (rb_song_info_backward_clicked_cb),
7410 (rb_song_info_forward_clicked_cb): deal with there being no
7411 next/previous entry.
7413 (rb_song_info_query_model_inserted_cb),
7414 (rb_song_info_query_model_deleted_cb),
7415 (rb_song_info_query_model_reordered_cb),
7416 (rb_song_info_query_model_changed_cb): monitor the query for changes,
7417 to update the button status. Fixes bug 333293.
7419 2006-03-20 James Livingston <jrl@ids.org.au>
7421 * shell/rb-shell.c: (rb_shell_set_visibility): fix minor sizing issue
7422 caused by my last commit
7424 2006-03-20 James Livingston <jrl@ids.org.au>
7426 * bindings/python/Makefile.am:
7427 * bindings/python/rb.defs:
7428 * bindings/python/rb.override: add python bindings of RBRemoteProxy
7430 * shell/rb-shell.c: (rb_shell_constructor),
7431 (rb_shell_set_visibility), (rb_shell_window_delete_cb): change
7432 tray-icon detection slightly
7434 2006-03-19 Steve Frécinaux <steve@istique.net>
7436 * data/ui/rhythmbox-ui.xml:
7439 Add an empty Tool Menu (hidden by default) containing placeholders for
7443 * plugins/Makefile.am:
7444 * plugins/pythonconsole/Makefile.am:
7445 * plugins/pythonconsole/pythonconsole.py:
7446 * plugins/pythonconsole/pythonconsole.rb-plugin.desktop.in:
7448 Python Console plugin
7450 2006-03-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
7452 * lib/rb-file-helpers.c: (rb_canonicalise_uri):
7453 Extra step to encode '&' and '=' to match what gnome-vfs does
7455 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
7456 (rhythmdb_tree_save):
7457 Increment rhythmdb xml version to 1.2, and force another uri
7458 re-canonicalisation when loading v1.1 databases.
7461 2006-03-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
7463 * daapsharing/rb-daap-mdns-browser-avahi.c: (client_cb),
7464 (avahi_client_init), (browse_cb):
7465 * daapsharing/rb-daap-mdns-publisher-avahi.c: (client_cb),
7466 (avahi_client_init):
7467 Fix compilation with Avahi 0.5.x (bug #334551).
7469 2006-03-19 James Livingston <jrl@ids.org.au>
7471 Add Increase/Decrease Volume menu items and keybindings. From bug
7474 * data/ui/rhythmbox-ui.xml:
7475 * shell/rb-shell-player.c: (rb_shell_player_constructor),
7476 (rb_shell_player_init), (rb_shell_player_cmd_volume_up),
7477 (rb_shell_player_cmd_volume_down), (rb_shell_player_sync_volume):
7479 2006-03-19 James Livingston <jrl@ids.org.au>
7481 patch by: Mikhail Zabaluev <mhz@altlinux.org>
7483 * shell/Makefile.am: fix the link order, so that we compile with
7484 "LDFLAGS=-Wl,--as-needed". Fixes bug 334852.
7486 2006-03-19 James Livingston <jrl@ids.org.au>
7488 patch by: Adam Petaccia <adam@tpetaccia.com>
7490 * data/ui/rhythmbox-ui.xml: move preferences below "configure
7491 plugins". Fixes bug 335037.
7493 2006-03-18 James Livingston <jrl@ids.org.au>
7495 * rhythmdb/rb-refstring.c: (rb_refstring_get_folded),
7496 (rb_refstring_get_sort_key): fix type-punning warnings. Closes bug
7499 * widgets/rb-header.c: don't make artist/album info in the header the
7500 small size, since it's hard to read.
7502 2006-03-16 William Jon McCann <mccann@jhu.edu>
7504 * rhythmdb/rhythmdb.c (rhythmdb_init): Make deleted_entries a hash.
7505 (rhythmdb_finalize): Don't leak the hash tables.
7506 (rhythmdb_emit_entries_deleted_idle, process_deleted_entries_cb)
7507 (rhythmdb_commit_internal): Make sure to process the deletions.
7508 (rhythmdb_entry_delete): Use a hash.
7510 * podcast/rb-podcast-manager.c: Random analness about char*
7511 (rb_podcast_manager_remove_feed): Add debugging.
7512 (rb_podcast_manager_db_entry_deleted_cb): Ditto. Check
7513 the result of gnome_vfs_unlink. Don't leak a uri.
7517 2006-03-18 James Livingston <jrl@ids.org.au>
7519 * NEWS: update NEWS file
7521 2006-03-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
7523 * rhythmdb/rhythmdb-property-model.c:
7524 (rhythmdb_property_model_prop_changed_cb):
7525 Remove entries from the hash table after processing visible->hidden
7528 2006-03-16 William Jon McCann <mccann@jhu.edu>
7530 * sources/rb-daap-source.c (connection_connected_cb)
7531 (connection_disconnected_cb): Add debug.
7532 (rb_daap_source_get_headers): Check for NULL connection.
7534 * daapsharing/rb-daap-src.c (rb_daap_src_open):
7535 Check return value of rb_daap_source_get_headers.
7539 2006-03-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
7541 * widgets/rb-library-browser.c: (rb_library_browser_set_selection):
7542 Restore the selection after rebuilding the child model, so the
7543 selection is shown correctly after using the 'browse this
7544 album/artist/genre' menu items.
7546 2006-03-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
7548 * widgets/rb-entry-view.c: (rb_entry_view_set_property):
7549 Clear the selection before changing the active model.
7550 Fixes crash reported in bug 334549.
7552 2006-03-15 James Livingston <jrl@ids.org.au>
7554 * shell/rb-tray-icon.c: (rb_tray_icon_constructor),
7555 (rb_tray_icon_sync_action):
7556 * widgets/eggtrayicon.c: (egg_tray_icon_send_message),
7557 (egg_tray_icon_cancel_message), (egg_tray_icon_notify): remove support
7558 for non-libnotify notification bubbles. Fixes bug 331721.
7560 2006-03-15 James Livingston <jrl@ids.org.au>
7562 Add search-bar options to playlists. Fixes bug 334407.
7564 * sources/rb-auto-playlist-source.c:
7565 (rb_auto_playlist_source_class_init),
7566 (rb_auto_playlist_source_constructor),
7567 (rb_auto_playlist_source_do_query), (impl_get_search_actions),
7568 (search_action_to_prop), (search_action_changed):
7569 * sources/rb-static-playlist-source.c:
7570 (rb_static_playlist_source_class_init),
7571 (rb_static_playlist_source_constructor),
7572 (construct_query_from_selection), (impl_get_search_actions),
7573 (search_action_to_prop), (search_action_changed):
7575 2006-03-14 William Jon McCann <mccann@jhu.edu>
7577 * shell/rb-source-header.c (rb_source_header_set_source_internal):
7578 Remove broken attempt at making the search bar buttons not
7579 homogeneous. It wasn't working and was causing some UI sizing weirdness.
7581 2006-03-14 William Jon McCann <mccann@jhu.edu>
7583 * sources/rb-static-playlist-source.c (rb_static_playlist_source_dispose):
7584 Chain up to parent's dispose instead of finalize. Fixes #334479.
7586 2006-03-14 William Jon McCann <mccann@jhu.edu>
7588 * widgets/rb-header.c (rb_header_sync): Escape album and
7589 artist before adding to markup.
7591 2006-03-14 William Jon McCann <mccann@jhu.edu>
7593 * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
7594 * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
7595 (rb_header_set_property), (rb_header_get_property),
7597 Remove the GnomeUrl song links until we can do it properly.
7600 2006-03-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
7602 * shell/rb-source-header.c: (rb_source_header_clear_search):
7603 Remove the stored search text from the hash table, so it doesn't
7604 reappear after switching to another source and back.
7606 * sources/rb-auto-playlist-source.c: (impl_search):
7607 * sources/rb-library-source.c: (impl_search), (impl_reset_filters):
7608 * sources/rb-static-playlist-source.c: (impl_search):
7609 Make sure all sources treat impl_search(NULL) and impl_search("") the
7610 same. Fixes #334525.
7612 2006-03-14 James Livingston <jrl@ids.org.au>
7614 Store which thread created new entries, and make rhythmdb_commit only
7615 insert the entries for the thread that calls it. This stops one thread
7616 calling rhythmdb_commit inserting entries that are half-way through
7617 construction by another thread (as happens with audio cds). From bug
7620 * rhythmdb/rhythmdb.c: (rhythmdb_init),
7621 (rhythmdb_emit_entries_added_idle), (process_added_entries_cb),
7622 (rhythmdb_commit_internal), (timeout_rhythmdb_commit),
7623 (rhythmdb_add_timeout_commit), (rhythmdb_commit),
7624 (rhythmdb_entry_insert), (rhythmdb_add_import_error_entry),
7625 (rhythmdb_process_metadata_load),
7626 (rhythmdb_process_queued_entry_set_event),
7627 (rhythmdb_prop_get_type):
7629 2006-03-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
7631 * rhythmdb/rhythmdb-query-model.c:
7632 (rhythmdb_query_model_class_init), (rhythmdb_query_model_dispose),
7633 (rhythmdb_query_model_finalize):
7634 Move object unrefs from _finalize into _dispose.
7636 * shell/rb-play-order.c: (rb_play_order_query_model_changed):
7637 Remove extra g_object_ref that was causing query model leaks.
7639 * sources/rb-iradio-source.c: (rb_iradio_source_dispose),
7640 (rb_iradio_source_constructor), (impl_search), (genre_selected_cb),
7641 (genre_selection_reset_cb), (rb_iradio_source_do_query):
7642 Remove the cached 'all' query, since it doesn't really help and it
7643 makes the code more complicated. Attach the genre property view to
7644 the query model build from the search text, so only genres for
7645 stations matching the search terms are displayed. Preserve the genre
7646 selection across searches.
7648 * widgets/rb-library-browser.c:
7649 (rb_library_browser_class_init), (rb_library_browser_get_property):
7650 Add properties for the input and output models for the browser, and
7651 remove the 'changed' signal as we can just use notify::output-model.
7652 (ignore_selection_changes),
7653 (selection_restore_data_destroy), (query_complete_cb),
7654 (restore_selection): Helper functions for preserving selections across
7655 query model rebuilds.
7656 (rebuild_output_model): New function for creating a query model to
7657 use as the display model for a source using the browser.
7658 (rebuild_child_model): Add a call to rebuild_output_model, add missing
7659 g_object_unrefs, reuse the parent's query model when there's no
7660 selection, and use ignore_selection_changes and restore_selection.
7661 (rb_library_browser_set_selection): rebuild_child_model emits the
7662 changed signal, so no need to do it here.
7663 (rb_library_browser_set_model): Add missing g_object_unrefs, and use
7664 ignore_selection_changes and restore_selection.
7665 * widgets/rb-library-browser.h: Remove 'changed' signal, and add a
7666 flag to rb_library_browser_set_model indicating whether the query is
7669 * sources/rb-static-playlist-source.c:
7670 (rb_static_playlist_source_class_init),
7671 (rb_static_playlist_source_dispose):
7672 (rb_static_playlist_source_constructor): Add an extra reference on
7673 the base model, so it doesn't vanish when we set a new display model
7674 based on a search or browser selection.
7675 (impl_search): Ensure the search_text field in the source is NULL if
7676 the search box is empty.
7677 (construct_query_from_selection),
7678 (rb_static_playlist_source_do_query): Use the query model constructed
7679 from the search as the input model for the browser.
7680 (rb_static_playlist_source_browser_changed_cb): Use the browser's
7681 output model as the query model for the source.
7683 * sources/rb-auto-playlist-source.c:
7684 (rb_auto_playlist_source_finalize): Free more stuff.
7685 (rb_auto_playlist_source_constructor),
7686 (rb_auto_playlist_source_browser_changed_cb):
7687 Update for rb-library-browser changes, use the browser's output query
7688 model as the query model for the source.
7689 (impl_reset_filters), (impl_search),
7690 (rb_auto_playlist_source_do_query),
7691 (rb_auto_playlist_source_set_query):
7692 Use the query model constructed from the search text as the input to
7693 the library browser, and when adding text to an existing search, apply
7694 the new query to the existing query model.
7696 * sources/rb-library-source.c: (rb_library_source_dispose):
7697 (rb_library_source_finalize): Chain dispose up to the parent class.
7698 (rb_library_source_constructor): Update for rb-library-browser
7700 (impl_search): Ensure search_text is NULL if the search box is empty,
7701 and use the subset flag to _do_query if text has been appended to an
7703 (search_action_changed), (impl_reset_filters):
7704 (rb_library_source_browser_changed_cb),
7705 (rb_library_source_do_query): Use the browser's output model as the
7706 query model for the source.
7708 Rework library and playlist sources to use a single query chain,
7709 and to limit the entries shown in property views based on the search
7710 terms. Fixes bug #322787.
7712 2006-03-14 Jonathan Matthew <jonathan@kaolin.wh9.net>
7714 * configure.ac: Enable metadata helper by default, and fix a typo.
7716 2006-03-13 James Livingston <jrl@ids.org.au>
7718 Make RBRefStrings lazily create the folded and sort-key strings when
7719 they are first used. This will same some memory by not creating ones
7720 that are never used, and delaying some of the others to when the user
7721 resorts or performs a similar action. Fixes bug 332992.
7723 * rhythmdb/rb-refstring.c: (rb_refstring_free),
7724 (rb_refstring_system_init), (rb_refstring_new), (rb_refstring_ref),
7725 (rb_refstring_get), (rb_refstring_get_folded),
7726 (rb_refstring_get_sort_key), (rb_refstring_hash),
7727 (rb_refstring_equal):
7728 * rhythmdb/rb-refstring.h:
7729 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
7731 2006-03-12 William Jon McCann <mccann@jhu.edu>
7733 * data/ui/rhythmbox-ui.xml:
7734 * lib/rb-stock-icons.c: (rb_stock_icons_init):
7735 * lib/rb-stock-icons.h:
7736 * shell/rb-shell-player.c:
7737 * shell/rb-shell.c: (rb_shell_constructor):
7738 * shell/rb-source-header.c: (force_no_shadow),
7739 (ui_manager_add_widget_cb), (rb_source_header_constructor),
7740 (rb_source_header_class_init), (rb_source_header_init),
7741 (merge_source_ui_cb), (toolbar_set_homogeneous),
7742 (rb_source_header_set_source_internal),
7743 (rb_source_header_set_property), (rb_source_header_get_property),
7744 (rb_source_header_set_source), (rb_source_header_new),
7745 (rb_source_header_filter_changed_cb):
7746 * shell/rb-source-header.h:
7747 * sources/rb-library-source.c: (rb_library_source_class_init),
7748 (rb_library_source_init), (search_action_to_prop),
7749 (search_action_changed), (rb_library_source_constructor),
7750 (impl_search), (impl_reset_filters), (impl_get_search_actions),
7751 (construct_query_from_selection):
7752 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
7753 (rb_podcast_source_init), (search_action_to_prop),
7754 (search_action_changed), (rb_podcast_source_constructor),
7755 (construct_query_from_selection), (impl_get_ui_actions),
7756 (impl_get_search_actions):
7757 * sources/rb-source.c: (rb_source_class_init),
7758 (rb_source_get_ui_actions), (default_get_search_actions),
7759 (rb_source_get_search_actions):
7760 * sources/rb-source.h:
7762 Add a search bar. Fixes #328618
7764 2006-03-12 James Livingston <jrl@ids.org.au>
7766 * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal):
7767 * shell/main.c: (main): make --no-update not stat files checking for
7768 changes, instead of doing nothing. Fixes bug 125177.
7770 2006-03-12 James Livingston <jrl@ids.org.au>
7772 * podcast/rb-podcast-manager.c:
7773 (rb_podcast_manager_thread_parse_feed):
7774 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
7775 * podcast/rb-podcast-parse.h: ask the user before rejecting a feed for
7776 having an invalid mime-type. Fixed bug 329813.
7778 2006-03-12 James Livingston <jrl@ids.org.au>
7780 Make ide tag-editing work on 0.10, if id3mux 0.10.2 is present.
7781 Finally lets us close bug 309609.
7783 * metadata/rb-metadata-gst.c: (id3_pad_added_cb),
7784 (rb_add_id3_tagger), (rb_metadata_init): make id3 tag editing work on
7787 * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix the
7788 inverted logic of the editable check.
7790 2006-03-12 James Livingston <jrl@ids.org.au>
7792 Make API doc generation work again. Fixes bug 334276.
7794 * doc/reference/Makefile.am:
7795 * doc/reference/tmpl/rb-debug.sgml:
7796 * doc/reference/tmpl/rb-druid.sgml:
7797 * doc/reference/tmpl/rb-entry-view.sgml:
7798 * doc/reference/tmpl/rb-load-failure-dialog.sgml:
7799 * doc/reference/tmpl/rb-metadata.sgml:
7800 * doc/reference/tmpl/rb-shell.sgml:
7801 * doc/reference/tmpl/rhythmbox-unused.sgml:
7802 * doc/reference/tmpl/rhythmdb.sgml:
7804 2006-03-12 James Livingston <jrl@ids.org.au>
7806 * shell/rb-shell-clipboard.c:
7807 (rb_shell_clipboard_set_source_internal),
7808 (rb_shell_clipboard_sync): don't try to use the source's entry view if
7809 it doesn't have one. Fixes bug 331673.
7811 * sources/rb-source.c: (rb_source_class_init): provide a default
7812 have_url implementation that returns FALSE.
7814 2006-03-12 James Livingston <jrl@ids.org.au>
7816 * plugins/audioscrobbler/Makefile.am: don't delete as-powered.png when
7817 doing a distclean. Fixes bug 334221.
7820 Patch from Alex Lancaster <alexl@users.sourceforge.net>
7822 * data/glade/Makefile.am: add plugins.glade. Fixes bug 334201.
7824 2006-03-11 James Livingston <jrl@ids.org.au>
7826 * shell/rb-shell.c: (rb_shell_window_state_cb),
7827 (rb_shell_set_visibility), (rb_shell_window_configure_cb): don't
7828 update the window width/height when iconified. Stops the window
7829 changing size when it is restored from the tray, fixing bug 333824.
7831 2006-03-11 James Livingston <jrl@ids.org.au>
7833 Try to get cvs to actually add the necessary files for plugin support
7835 2006-03-11 James Livingston <jrl@ids.org.au>
7837 Add a plugin framework, with basic support for Python plugins (based
7838 on gedit's). Closes bug 330523.
7841 * shell/Makefile.am:
7842 * configure.ac: necessary autofoo.
7844 * data/ui/rhythmbox-ui.xml: add Edit->Plugins...
7846 * lib/rb-file-helpers.c: (rb_uri_get_dir_name):
7847 * lib/rb-file-helpers.h:
7849 * data/glade/plugins/glade:
7850 * lib/rb-preferences.h:
7852 * bindings/*: plugin framework
7855 * plugins/sample-python/*: sample plugins
7857 * plugins/audioscrobbler/*:
7858 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
7859 (rb_audioscrobbler_set_property),
7860 (rb_audioscrobbler_gconf_changed_cb): turn audioscrobbler song
7861 submission into a plugin. shell/audioscrobbler.* should really be
7862 moved, but that sucks with cvs.
7865 * shell/rb-shell.c: (rb_shell_constructor),
7866 (rb_shell_cmd_preferences), (rb_shell_plugins_window_delete_cb),
7867 (rb_shell_plugins_response_cb), (rb_shell_cmd_plugins),
7868 (rb_shell_quit): start and stop plugin framework.
7870 2006-03-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
7872 * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
7873 (rhythmdb_entry_delete):
7874 Emit entry-deleted signals when rhythmdb_commit is called, rather than
7875 immediately, so we can't get change notifications afterwards.
7877 (rhythmdb_process_metadata_load): Add a commit after removing an
7878 entry so we can recreate it with a different type without getting
7881 2006-03-11 James Livingston <jrl@ids.org.au>
7883 * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): don't
7884 use the drive name for audio CDs, use "Unknown CD".
7886 2006-03-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
7888 patch by: James Henstridge <james@jamesh.id.au>
7890 * sources/rb-removable-media-source.c:
7891 (rb_removable_media_source_constructor):
7892 Get the device name from the GnomeVFSDrive if possible,
7893 since this is usually a more descriptive name. Fixes #333080.
7895 2006-03-09 Jonathan Matthew <jonathan@kaolin.wh9.net>
7897 patch by: Alex Lancaster <alexl@users.sourceforge.net>
7899 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
7900 Don't automatically download episodes when configured for manual
7901 updating. Fixes #331564.
7903 2006-03-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
7905 * rhythmdb/rhythmdb-property-model.c:
7906 (rhythmdb_property_model_iter_from_string):
7907 Return an iterator for the 'all' property when name == NULL,
7908 and don't write to *iter if iter == NULL.
7910 2006-03-06 Jonathan Matthew <jonathan@kaolin.wh9.net>
7912 * shell/rb-shell-player.c: (rb_shell_player_do_next):
7913 When switching to the play queue, still call _go_next on the normal
7914 play order, so self-emptying auto playlists ("play count = 0" etc.)
7915 don't restart once the queue is empty.
7917 * shell/rb-tray-icon.c:
7918 Change shortcut for 'show notifications' to 'o' so it doesn't clash
7921 2006-03-05 James Livingston <jrl@ids.org.au>
7923 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
7924 don't submit tracks which could not be played. Fixed bug 333013.
7926 * shell/rb-shell-player.c: (eos_cb): Don't update statistics for
7927 tracks which could not be played.
7929 2006-03-05 James Livingston <jrl@ids.org.au>
7931 Sync musicbrainz lookup code from Sound-Juicer cvs.
7933 * metadata/sj-metadata-musicbrainz.c:
7934 (sj_metadata_musicbrainz_instance_init), (metadata_interface_init),
7935 (get_offline_track_listing), (artist_and_title_from_title),
7936 (cache_rdf), (get_cached_rdf), (get_rdf), (lookup_cd),
7937 (mb_list_albums), (mb_get_submit_url):
7938 * metadata/sj-metadata.c: (sj_metadata_get_submit_url):
7939 * metadata/sj-metadata.h:
7940 * metadata/sj-structures.c: (track_details_free),
7941 (album_details_free):
7942 * metadata/sj-structures.h:
7944 2006-03-05 Jonathan Matthew <jonathan@kaolin.wh9.net>
7947 * lib/rb-debug.c: (rb_debug_real), (rb_debug_init),
7948 (rb_debug_init_match), (rb_profiler_new), (rb_profiler_dump),
7949 (rb_profiler_reset), (rb_profiler_free):
7950 Filter debug output by matching the file and function names against a
7953 * shell/main.c: (main):
7954 Add -D command line option to specify the debug match string.
7956 * shell/rb-removable-media-manager.c:
7957 (rb_removable_media_manager_mount_volume):
7958 Fix some typos in debug output.
7960 2006-03-03 James Livingston <jrl@ids.org.au>
7962 * shell/rb-playlist-manager.c: (rb_playlist_manager_parse_file):
7963 * shell/rb-shell.c: (rb_shell_load_uri):
7964 * sources/rb-generic-player-source.c: (visit_playlist_dirs):
7965 * sources/rb-iradio-source.c: (rb_iradio_source_add_from_playlist):
7966 use the new "recurse" property from totem-plparser, if present. Stop
7967 RB hanging for new users who don't have a 'net connection. From bug
7970 2006-03-02 Bastien Nocera <hadess@hadess.net>
7972 * shell/rb-removable-media-manager.c:
7973 (rb_removable_media_manager_mount_volume):
7974 * sources/Makefile.am:
7975 * sources/rb-nokia770-source.c: (rb_nokia770_is_volume_player):
7976 Fix missing files on make dist (conditional files), only build the
7977 N770 support if there's HAL support, as we have no other ways of
7980 2006-03-03 James Livingston <jrl@ids.org.au>
7982 * shell/rb-shell-clipboard.c:
7983 (rb_shell_clipboard_set_source_internal): really fix it this time.
7986 2006-03-03 James Livingston <jrl@ids.org.au>
7988 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync): fix issue
7989 with the idle function not being removed.
7991 2006-03-02 James Livingston <jrl@ids.org.au>
7993 * widgets/rb-entry-view.c: (rb_entry_view_have_complete_selection):
7994 * widgets/rb-entry-view.h: add function for determining whether all
7995 entries are selected.
7997 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_init),
7998 (rb_shell_clipboard_set_source_internal),
7999 (rb_shell_clipboard_finalize),
8000 (rb_shell_clipboard_idle_poll_deletions),
8001 (rb_shell_clipboard_entryview_changed_cb),
8002 (rb_shell_clipboard_entries_changed_cb): watch for entry additions and
8003 removals, to update things.
8005 (rb_shell_clipboard_sync): update the Select All and Select None
8006 sensitivity, based on what is selected. Fixed bug 172220.
8008 2006-03-02 James Livingston <jrl@ids.org.au>
8010 * widgets/rb-library-browser.c: (rebuild_child_model): save and
8011 restore the selections of later models. This means that selecting the
8012 artist for the selected album does not reset the album selection.
8014 2006-03-02 James Livingston <jrl@ids.org.au>
8016 * data/ui/rhythmbox-ui.xml: add the missing UI for generic players.
8017 Stops it emitting critical warnings.
8019 2006-03-02 James Livingston <jrl@ids.org.au>
8021 * lib/rb-file-helpers.c: (rb_uri_append_uri):
8022 * lib/rb-file-helpers.h: Add uri concatenation function for when the
8023 second fragment is already escaped.
8025 * sources/rb-generic-player-source.c:
8026 (rb_generic_player_source_class_init),
8027 (rb_generic_player_source_constructor), (impl_show_popup),
8028 (rb_generic_player_source_load_playlists),
8029 (rb_generic_player_source_transform_playlist_uri),
8030 (handle_playlist_entry_cb), (visit_playlist_dirs),
8031 (default_load_playlists), (default_transform_playlist_uri):
8032 * sources/rb-generic-player-source.h: scan for playlists (m3u, pls) on
8033 the device. Allow subclasses to override the playlist loading, and
8034 (playlist uri)->(actual uri) mapping. A lot of devices which have
8035 playlists won't work right now, but people will see them and hopefully
8038 * sources/rb-psp-source.c: (rb_psp_source_class_init),
8039 (rb_psp_source_create_playlists): Adapt the PSP for the above change
8041 * sources/Makefile.am:
8042 + sources/rb-nokia770-source.{c,h}:
8043 * shell/rb-removable-media-manager.c:
8044 (rb_removable_media_manager_mount_volume): Add support for reading
8045 playlists of Nokia 770s.
8047 2006-03-02 Jonathan Matthew <jonathan@kaolin.wh9.net>
8049 * data/glade/podcast-properties.glade:
8050 * podcast/rb-podcast-properties-dialog.c:
8051 (rb_podcast_properties_dialog_init),
8052 (rb_podcast_properties_dialog_update),
8053 (rb_podcast_properties_dialog_update_location),
8054 (rb_podcast_properties_dialog_update_download_location):
8055 Add 'download location' field showing the path to the downloaded copy.
8058 2006-03-01 Bastien Nocera <hadess@hadess.net>
8060 * configure.ac: simplify HAVE_HAL define
8062 2006-03-01 Bastien Nocera <hadess@hadess.net>
8065 * lib/rb-file-helpers.c: (rb_uri_append_path):
8066 * lib/rb-file-helpers.h:
8067 * shell/rb-removable-media-manager.c:
8068 (rb_removable_media_manager_mount_volume):
8069 * sources/Makefile.am:
8070 * sources/rb-ipod-source.c:
8071 * sources/rb-psp-source.*:
8072 Patch from James Livingston <jrl@ids.org.au> to add read-only Sony PSP
8073 support, additional HAL < 0.5 support by yours truly (Closes: #332337)
8075 2006-03-02 James Livingston <jrl@ids.org.au>
8077 * shell/rb-shell-player.c: (rb_shell_player_set_property),
8078 (rb_shell_player_play), (rb_shell_player_jump_to_current),
8079 (swap_playing_source), (rb_shell_player_playpause),
8080 (rb_shell_player_sync_buttons), (actually_set_playing_source),
8081 (rb_shell_player_set_playing_source_internal): check for the entry
8082 view being NULL before trying to use it. Lets us support sources which
8083 don't have an entry view. From bug 331673.
8085 2006-03-01 Bastien Nocera <hadess@hadess.net>
8087 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_load_queue):
8088 use gnome_vfs_read_entire_file with a URI, not a local filename
8090 2006-03-01 James Livingston <jrl@ids.org.au>
8092 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): handle
8093 first-seen and last-seen when merging duplicate entries.
8095 2006-03-01 Jonathan Matthew <jonathan@kaolin.wh9.net>
8097 * widgets/rb-property-view.c: (rb_property_view_set_search_func):
8098 * widgets/rb-property-view.h: New function, allowing custom
8099 interactive search functions for property views.
8101 * sources/rb-podcast-source.c:
8102 (feed_select_change_cb): Only do a new query when the selection
8104 (rb_podcast_source_constructor),
8105 (rb_podcast_source_feed_title_search_func):
8106 Interactive search function for podcast feed titles. Fixes #327451.
8108 2006-03-01 James Livingston <jrl@ids.org.au>
8110 * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb): don't chaneg
8111 the uri in the callback, since it causes symbols to not be escaped.
8114 * data/ui/rhythmbox-ui.xml:
8115 * sources/rb-import-errors-source.c:
8116 (rb_import_errors_source_class_init),
8117 (rb_import_errors_source_constructor), (impl_get_status),
8118 (impl_move_to_trash),
8119 (rb_import_errors_source_songs_show_popup_cb): add move-to-trash for
8120 import errors source
8122 * widgets/rb-entry-view.c: (rb_entry_view_location_cell_data_func),
8123 (rb_entry_view_append_column): unescape the URI for display.
8125 2006-03-01 James Livingston <jrl@ids.org.au>
8127 * rhythmdb/rhythmdb.c: (rhythmdb_add_import_error_entry),
8128 (rhythmdb_process_metadata_load): fix crashers when the vfs get info
8131 2006-02-28 Dennis Cranston <dennis_cranston@yahoo.com>
8133 * shell/rb-shell-clipboard.c: Use lowercase "to" in "Move to Trash".
8134 * shell/rb-shell.c: Use "Play Queue" and "Side Pane" terminology.
8135 * sources/rb-play-queue-source.c:
8136 (rb_play_queue_source_constructor), (rb_play_queue_source_new),
8137 (rb_play_queue_source_update_count): Use "Play Queue" instead
8142 2006-03-01 James Livingston <jrl@ids.org.au>
8144 * data/rhythmbox.schemas: change "boolean" to "bool" in the schema.
8147 2006-03-01 James Livingston <jrl@ids.org.au>
8149 * daapsharing/rb-daap-mdns-browser-howl.c:
8150 (rb_daap_mdns_browser_class_init), (rb_daap_mdns_browser_finalize):
8151 * daapsharing/rb-daap-mdns-publisher-avahi.c:
8152 (rb_daap_mdns_publisher_class_init),
8153 (rb_daap_mdns_publisher_finalize):
8154 * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_finalize):
8155 * player/rb-recorder-gst.c: (rb_recorder_class_init),
8156 (rb_recorder_finalize):
8157 * rhythmdb/rhythmdb-query-model.c:
8158 (rhythmdb_query_model_constructor):
8159 * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor):
8160 * sources/rb-ipod-source.c: (rb_ipod_source_constructor):
8161 * sources/rb-playlist-source-recorder.c:
8162 (rb_playlist_source_recorder_style_set),
8163 (rb_playlist_source_recorder_class_init),
8164 (rb_playlist_source_recorder_finalize):
8165 * widgets/rb-query-creator.c: (rb_query_creator_constructor): fix the
8166 other classes in the same way, so they don't break when derived from.
8168 2006-03-01 James Livingston <jrl@ids.org.au>
8170 * sources/rb-generic-player-source.c:
8171 (rb_generic_player_source_constructor): don't get the parent class in
8172 a dumb way, and it breaks when the class is derived from.
8174 2006-02-28 Abel Cheung <maddog@linuxhall.org>
8176 * configure.ac: Added "zh_HK" to ALL_LINGUAS.
8178 2006-03-01 James Livingston <jrl@ids.org.au>
8180 * rhythmdb/gsequence.c: fix a typo in the last commit, that makes it
8181 not work in glib 2.8 systems.
8183 2006-03-01 James Livingston <jrl@ids.org.au>
8185 * lib/rb-file-helpers.c: (rb_uri_is_local): just check for the file://
8186 prefix instead of using gnome_vfs_uri_is_local, since the gnomevfs dev
8189 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post),
8190 (rb_podcast_manager_db_entry_deleted_cb): don't stop people putting
8191 podcasts on ion-local places
8193 * rhythmdb/gsequence.c: (g_sequence_node_new),
8194 (g_sequence_node_free): use gslice if we are building against glib
8197 * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): always async stats for
8198 local files too, so it doesn't block.
8200 2006-02-28 James Livingston <jrl@ids.org.au>
8202 * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal): just check for the
8203 file:// prefix, instead of using gnome_vfs_uri_is_local, since that
8204 stats the file. Stops the UI blocking while stats are done.
8206 2006-02-28 James Livingston <jrl@ids.org.au>
8208 * sources/rb-static-playlist-source.c:
8209 (rb_static_playlist_source_class_init),
8210 (rb_static_playlist_source_constructor), (impl_reset_filters),
8211 (impl_get_property_views), (impl_browser_toggled),
8212 (rb_static_playlist_source_do_query),
8213 (rb_static_playlist_source_browser_changed_cb): add browsers to static
8214 playlists. From bug 118862.
8216 * sources/rb-play-queue-source.c:
8217 (rb_play_queue_source_class_init): disable them for the play queue.
8219 2006-02-27 Dennis Cranston <dennis_cranston@yahoo.com>
8221 * data/glade/library-prefs.glade: Add a mnemonic.
8222 * sources/rb-library-source.c:
8223 (rb_library_source_location_button_clicked_cb): Use title
8224 capitalization for window title.
8226 2006-02-28 James Livingston <jrl@ids.org.au>
8228 * sources/rb-auto-playlist-source.c:
8229 (construct_query_from_selection): don't create a subquery for only one
8230 criteria, as it's a silly effifiency degredation.
8232 2006-02-28 James Livingston <jrl@ids.org.au>
8234 * rhythmdb/rhythmdb.h:
8235 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
8236 (save_entry), (rhythmdb_tree_save): add a new "Ignore" type, which is
8239 * rhythmdb/rhythmdb.c: (set_props_from_metadata),
8240 (rhythmdb_process_stat_event), (rhythmdb_add_import_error_entry),
8241 (rhythmdb_process_metadata_load), (rhythmdb_entry_song_get_type),
8242 (rhythmdb_entry_ignore_get_type): When loading a file, which is marked
8243 IGNORE (e.g. known video stream) create an entry of the Ignore type.
8244 This will make importing files quicker as we don't need to try files
8245 that we know are not going to be interesting - especially useful when
8246 using the library watching facility.
8250 2006-02-28 James Livingston <jrl@ids.org.au>
8252 * shell/rb-shell.c: (rb_shell_constructor),
8253 (rb_shell_set_visibility): fix browser and source-list pane
8254 positioning, that I broke with the "remember visibility" patch.
8256 2006-02-27 Jonathan Matthew <jonathan@kaolin.wh9.net>
8258 * metadata/rb-metadata-dbus-service.c: (main):
8259 Change argument handling so you can use --debug with the --load and
8260 --can-save test modes.
8261 * metadata/rb-metadata-dbus-client.c: (start_metadata_service):
8262 Use a separate GMainContext, not the default one. Probably fixes
8265 2006-02-27 James Livingston <jrl@ids.org.au>
8267 * shell/rb-shell.c: (rb_shell_constructor): focus the entry view when
8268 first starting up. Fixes bug 330342.
8270 2006-02-27 James Livingston <jrl@ids.org.au>
8272 * sources/rb-sourcelist-model.c:
8273 (rb_sourcelist_model_set_dnd_targets):
8274 * widgets/rb-entry-view.c: (rb_entry_view_constructor): only use the
8275 COPY action for draging sources and tracks, not MOVE as well. Stops
8276 Nautilus moving file away, and fixes bug 332488.
8278 2006-02-27 James Livingston <jrl@ids.org.au>
8280 patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
8282 * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read the Rating
8283 and Last Played metadata off iPods. Closes bug 324648.
8285 2006-02-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
8287 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor):
8288 Disable audioscrobbler when run with the --no-registration flag, since
8289 last.fm doesn't allow multiple concurrent clients per user.
8291 2006-02-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
8293 * sources/rb-sourcelist.c: (rb_sourcelist_init), (key_release_cb):
8294 Rename renamable sources when F2 is pressed when the sourcelist has
8295 focus. Fixes #330700.
8297 2006-02-26 Jonathan Matthew <jonathan@kaolin.wh9.net>
8299 * shell/rb-playlist-manager.c: (cleanup_edit_data),
8300 (edit_auto_playlist_response_cb), (edit_auto_playlist_deleted_cb),
8301 (rb_playlist_manager_cmd_edit_automatic_playlist):
8302 Fix various crashes when deleting auto playlists previously edited
8303 by disconnecting signal handlers when the query editor is closed or
8304 the playlist is deleted.
8306 2006-02-24 Jonathan Matthew <jonathan@kaolin.wh9.net>
8308 * metadata/rb-metadata-gst.c: Correct comment referring to the now
8309 removed load failure dialog, and actually use the friendly file type
8310 name in error messages.
8312 2006-02-24 James Livingston <jrl@ids.org.au>
8314 patch by: Baptiste Mille-Mathias <bmm80@free.fr>
8316 * sources/rb-library-source.c:
8317 (rb_library_source_location_button_clicked_cb),
8318 (rb_library_source_preferences_sync),
8319 (rb_library_source_library_location_cb): convert the library URI to
8320 for display, and back again. Fixes bug 332356.
8322 2006-02-23 James Livingston <jrl@ids.org.au>
8324 * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
8325 (rhythmdb_process_metadata_load), (monitor_subdirectory),
8326 (rhythmdb_sync_library_location): don't monitor files at all if
8327 watching is turned off. From bug 323096.
8329 2006-02-23 James Livingston <jrl@ids.org.au>
8331 * data/rhythmbox.schemas:
8332 * lib/rb-preferences.h:
8333 * shell/rb-shell.c: (rb_shell_constructor),
8334 (rb_shell_set_visibility): remember main window visibility between
8335 sessions. Fixes bug 127320.
8337 2006-02-23 James Livingston <jrl@ids.org.au>
8339 * data/glade/library-prefs.glade:
8340 * sources/rb-library-source.c: (impl_get_config_widget),
8341 (rb_library_source_location_button_clicked_cb),
8342 (rb_library_source_preferences_sync),
8343 (rb_library_source_library_location_cb),
8344 (rb_library_source_watch_toggled_cb): change the library-location
8345 widgets from the file-chooser drop menu to a text entry and Browse
8346 button. This is needed to prevent the location from chaning if the
8347 directory cannot be found. Fixes bug 328414.
8349 2006-02-23 James Livingston <jrl@ids.org.au>
8351 * sources/rb-podcast-source.c: add icon to the Cancel Download menu
8352 item. Fixes bug 329042.
8354 2006-02-23 James Livingston <jrl@ids.org.au>
8356 patch by: Alex Lancaster <alexl@users.sourceforge.net>
8358 * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): deal with extra
8359 comma in some podcast feeds. Fixes bug 332194.
8361 2006-02-23 James Livingston <jrl@ids.org.au>
8363 * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat): execute the stats at a
8366 * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry): change
8367 the internal audio cd URIs from "cdda://device:track" to
8368 "cdda://track#device" as it makes processing much easier.
8370 * shell/rb-shell-player.c: (rb_shell_player_open_location):
8371 * player/rb-player-gst.c: don't have the shell close the player
8372 between songs, as doing that should be backend-specific. Make the
8373 gstreamer backend close before starting a new track, unless the old
8374 and new ones are both tracks on the same audio cd. Just seek in that
8377 2006-02-23 Jonathan Matthew <jonathan@kaolin.wh9.net>
8379 * doc/reference/rhythmbox.types: Fix doc build a bit more.
8381 2006-02-23 Jonathan Matthew <jonathan@kaolin.wh9.net>
8383 * configure.ac: Enable more warnings in my stupid setup too.
8384 * shell/rb-shell.c: Fix compile errors from last commit. Fixes
8387 2006-02-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
8389 * sources/rb-missing-files-source.h,
8390 * sources/rb-missing-files-source.c,
8391 * sources/rb-import-errors-source.h,
8392 * sources/rb-import-errors-source.c:
8393 Add library meta-sources, showing missing files and import errors.
8394 Fixes #167763, #142322.
8396 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_new):
8397 * sources/rb-sourcelist-model.h:
8398 * sources/rb-sourcelist.c: (rb_sourcelist_append),
8399 (match_source_to_iter), (rb_sourcelist_source_to_iter),
8400 (rb_sourcelist_visible_source_to_iter), (rb_sourcelist_remove),
8401 (visibility_notify_cb):
8402 Store source visibility in the sourcelist model, so we can determine
8403 child source counts correctly and get the sourcelist expander column
8406 * widgets/rb-entry-view.h:
8407 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8408 (rb_entry_view_append_column), (set_column_visibility):
8409 Allow the creator of the entry view to specify which columns are
8412 * sources/rb-source.h:
8413 * sources/rb-source.c: (_autohide_update_visibility),
8414 (_rb_autohide_source_row_deleted_cb),
8415 (_rb_autohide_source_row_inserted_cb),
8416 (_rb_source_hide_when_empty):
8417 Allow sources to automatically hide themselves when empty.
8419 * sources/rb-iradio-source.c: (rb_iradio_source_constructor):
8420 * sources/rb-library-source.c: (rb_library_source_constructor):
8421 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8422 * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
8423 Explicitly specify which columns are always visible.
8425 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
8426 (rb_shell_playing_entry_changed_cb), (add_to_library_response_cb):
8427 Remove load error signal handling and load failure dialog.
8428 Create missing files and import errors sources for the library.
8430 * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
8431 (rhythmdb_add_import_error_entry), (rhythmdb_process_metadata_load):
8432 Create DB entries for import errors rather than emitting the 'load
8433 error' signal; mark loaded entries visible.
8434 (rhythmdb_entry_sync_mirrored), (rhythmdb_prop_get_type),
8435 (rhythmdb_entry_get_string), (rhythmdb_entry_set_visibility),
8436 (rhythmdb_prop_get_type): Store string form of last seen time for
8437 hidden entries, since it's used in the missing files source.
8438 (rhythmdb_entry_import_error_get_type):
8439 Add entry type for import errors.
8440 (rhythmdb_process_file_deleted), (rhythmdb_volume_mounted_cb),
8441 (rhythmdb_volume_unmounted_cb): Add missing rhythmdb_commit calls.
8442 (rhythmdb_entry_move_to_trash_set_error),
8443 (rhythmdb_entry_move_to_trash):
8444 Correct spelling, add missing rhythmdb_commit.
8445 * rhythmdb/rhythmdb.h:
8446 Add import error entry type and last seen string property.
8447 * rhythmdb/rhythmdb-private.h: Add string form of last seen time.
8448 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
8449 (save_entry): Ignore string form of 'last seen' property.
8451 * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
8452 Don't try to play hidden entries or import error entries.
8454 * data/ui/rhythmbox-ui.xml: Add popup for missing files source.
8455 * sources/Makefile.am: Add meta-source files
8456 * widgets/Makefile.am: Remove load failure dialog files
8458 2006-02-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
8460 update by: Baptiste Mille-Mathias <bmm80@free.fr>
8461 * help/C/rhythmbox.xml: add a 'getting started' section, and fix a
8462 few bits and pieces.
8464 2006-02-22 Jonathan Matthew <jonathan@kaolin.wh9.net>
8466 * metadata/test-metadata.c: (load_metadata_cb):
8467 Fix compile warning for ignoring return value from getcwd, #332064.
8469 2006-02-21 James Livingston <jrl@ids.org.au>
8471 * shell/rb-playlist-manager.c: (edit_auto_playlist_response_cb),
8472 (edit_auto_playlist_deleted_cb),
8473 (rb_playlist_manager_cmd_edit_automatic_playlist): make the auto
8474 playlist editor non-modal. Fixes bug 320030.
8476 2006-02-21 James Livingston <jrl@ids.org.au>
8478 * shell/rb-shell.c: (rb_shell_constructor):
8479 * widgets/rb-header.c: (rb_header_init), (rb_header_set_urldata),
8480 (rb_header_set_show_artist_album):
8481 * widgets/rb-song-display-box.c: (rb_song_display_box_init),
8482 (rb_song_display_box_sync): make the queue sidebar and song display
8483 not get affected by gtk_widget_show_all. Fixes bug 332001.
8485 2006-02-21 James Livingston <jrl@ids.org.au>
8487 Patch by: Alex Lancaster <alexl@users.sourceforge.net>
8489 * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): add support for
8490 feeds which use timezone names instead of offsets. Doesn't actually
8491 parse the timezone name since they are not standardised. Fixes bug
8494 2006-02-21 James Livingston <jrl@ids.org.au>
8496 * help/C/figures/rb-notification-area.png:
8497 * help/C/figures/rb-sidebar.png:
8498 * help/C/quick-reference.xml: remove obsolete files from CVS.
8500 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
8501 * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
8502 (rhythmdb_query_free), (rhythmdb_query_serialize),
8503 (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
8504 * rhythmdb/rhythmdb.h: Add operators for string prefix and suffix.
8506 * widgets/rb-query-creator-properties.c: add prefix and suffix
8507 (escapedStringCriteriaGetWidgetData): use better escaping, so it
8508 doesn't escape the ':' separator in uris.
8510 2006-02-21 James Livingston <jrl@ids.org.au>
8512 * shell/rb-shell.c: (rb_shell_constructor): ensure the window is shown
8515 2006-02-21 James Livingston <jrl@ids.org.au>
8517 * NEWS: update with recent changes
8519 2006-02-21 James Livingston <jrl@ids.org.au>
8521 * shell/rb-shell.c: (rb_shell_constructor),
8522 (rb_shell_player_volume_changed_cb), (rb_shell_druid_response_cb):
8523 * widgets/rb-druid.c: (rb_druid_finalize), (rb_druid_init_widgets),
8524 (rb_druid_browse_clicked_cb), (do_response):
8525 * widgets/rb-druid.h: Make running the druid not block RBShell
8526 starting up. This is required so that bonobo registration doesn't time
8527 out. Fixed bug 318766.
8529 2006-02-21 James Livingston <jrl@ids.org.au>
8531 * rhythmdb/rhythmdb-property-model.c:
8532 (rhythmdb_property_model_entry_removed_cb): remove the entry from the
8533 hash table after using it, not before. Fixed bug 331922.
8535 2006-02-21 Jonathan Matthew <jonathan@kaolin.wh9.net>
8537 * shell/rb-shell.c: (rb_shell_playing_from_queue_cb),
8538 (rb_shell_view_queue_as_sidebar_changed_cb):
8539 When playing from the queue, only attempt to highlight the queue
8540 source in the source list if it's actually visible there. Otherwise,
8541 leave the preempted source highlighted. Mostly fixes #330819.
8543 2006-02-20 James Livingston <jrl@ids.org.au>
8545 * rhythmdb/rhythmdb-property-model.c:
8546 (rhythmdb_property_model_row_inserted_cb),
8547 (rhythmdb_property_model_prop_changed_cb),
8548 (rhythmdb_property_model_insert), (rhythmdb_property_model_delete):
8549 store the roperty value in the entry-mapping table, so that receiving
8550 the remove signal from a query model before we get notified of a
8551 change doesn't cause a crash. Fixes bug 331770.
8553 2006-02-20 James Livingston <jrl@ids.org.au>
8555 * data/ui/rhythmbox-ui.xml:
8556 * sources/rb-play-queue-source.c:
8557 (rb_play_queue_source_class_init),
8558 (rb_play_queue_source_cmd_clear), (impl_show_popup): don't display
8559 playlist things in the queue popup source. From 330490.
8561 * widgets/rb-song-info.c: (rb_song_info_sync_entries): fix mistake in
8564 2006-02-20 James Livingston <jrl@ids.org.au>
8566 * widgets/rb-song-info.c: (rb_song_info_response_cb),
8567 (rb_song_info_sync_entry_single), (rb_song_info_sync_entries): don't
8568 attempt to sync data for non-editable entries when using
8569 next/previous. Don't write our Year if it wasn't changed. Fixes bug
8572 2006-02-19 Luca Ferretti <elle.uca@libero.it>
8579 * help/Makefile.am: ported to gnome-doc-utils
8580 * help/rhythmbox.omf.in: added, needed by gnome-doc-utils
8581 * help/ChangeLog: added, for translators
8582 * help/C/rhytmbox-C.omf: removed, no longer used
8583 Know issue: figures are installed, but some are not showed; manual
8584 description added, but not showed in Yelp while browsing. I'll
8585 investigate, maybe are needed some little changes to
8586 help/C/rhythmbox.xml.
8588 2006-02-20 James Livingston <jrl@ids.org.au>
8590 * data/ui/rhythmbox-ui.xml:
8591 * help/C/figures/rb-adv.png:
8592 * help/C/figures/rb-asst-finish.png:
8593 * help/C/figures/rb-asst-library.png:
8594 * help/C/figures/rb-asst-start.png:
8595 * help/C/figures/rb-basic.png:
8596 * help/C/figures/rb-browser.png:
8597 * help/C/figures/rb-context-menu.png:
8598 * help/C/figures/rb-empty.png:
8599 * help/C/figures/rb-full-play.png:
8600 * help/C/figures/rb-group-auto.png:
8601 * help/C/figures/rb-group-create.png:
8602 * help/C/figures/rb-group.png:
8603 * help/C/figures/rb-imported.png:
8604 * help/C/figures/rb-iradio-add.png:
8605 * help/C/figures/rb-iradio.png:
8606 * help/C/figures/rb-nextprev.png:
8607 * help/C/figures/rb-nobrowse-play.png:
8608 * help/C/figures/rb-notification-area-menu.png:
8609 * help/C/figures/rb-player.png:
8610 * help/C/figures/rb-prefs-general.png:
8611 * help/C/figures/rb-prefs-ipod.png:
8612 * help/C/figures/rb-prefs-library.png:
8613 * help/C/figures/rb-prefs.png:
8614 * help/C/figures/rb-repeat.png:
8615 * help/C/figures/rb-search.png:
8616 * help/C/figures/rb-shuffle.png:
8617 * help/C/figures/rb-stats.png:
8618 * help/C/figures/rb-toolbar-editor.png:
8619 * help/C/figures/rb-volume-mute.png:
8620 * help/C/figures/rhythmbox-group.png:
8621 * help/C/figures/rhythmbox-tray-icon.png:
8622 * help/C/user-guide.xml: remove old stuff from cvs
8624 2006-02-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
8626 * metadata/rb-metadata-dbus-client.c:
8627 * metadata/rb-metadata-dbus-service.c:
8628 * metadata/rb-metadata-dbus.c:
8629 * metadata/rb-metadata-dbus.h:
8630 New files, adding an external service for reading and writing
8631 metadata, and an implementation of the RBMetaData interface that uses
8632 dbus to communicate with it.
8634 * metadata/rb-metadata.h,
8635 * metadata/rb-metadata-common.c: (rb_metadata_get_field_type),
8636 (rb_metadata_get_field_name): Put metadata details in a static array
8637 instead of using a hash table, and add a field for language code (not
8639 * metadata/rb-metadata-gst.c: Updates for changes in
8640 rb-metadata-common.c, fix signal handler closure leak for the typefind
8641 element's have-type signal, and add XML to the list of types we ignore.
8642 * rhythmdb/rhythmdb.c: (extract_gtype_from_enum_entry):
8643 Update for changes to rb_metadata_get_field_type
8644 (rhythmdb_entry_allocate): Don't make songs hidden initially, as
8645 rhythmdb_commit_internal do that for non-local files. Saves us a stat
8648 * configure.ac: Add --enable-metadata-helper option (not enabled by
8649 default) to use the external metadata service
8650 * metadata/Makefile.am: Add new files
8651 * metadata/test-metadata.c: Test program for the metadata service
8655 2006-02-19 Jonathan Matthew <jonathan@kaolin.wh9.net>
8657 * shell/rb-shell.c: (rb_shell_cmd_add_file_to_library):
8658 * sources/rb-podcast-source.c: (impl_get_ui_actions),
8659 (rb_podcast_source_cmd_new_podcast):
8660 Move 'new podcast' action to the podcast source, and add it to the
8661 toolbar. Fixes #331562.
8663 2006-02-19 James Livingston <jrl@ids.org.au>
8665 * data/ui/rhythmbox-ui.xml: Move add-to-queue to the top of the context
8666 menus, and away from move-to-trash. Fixes bug 331013.
8668 2006-02-19 James Livingston <jrl@ids.org.au>
8670 * shell/rb-play-order.c: (default_playing_entry_removed): don't crash
8671 when deleting last entry. Fixes bug 331712.
8673 2006-02-18 Jonathan Matthew <jonathan@kaolin.wh9.net>
8675 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
8676 (rb_entry_view_button_press_cb):
8677 * widgets/rb-entry-view.h: Emit show-popup when right clicked
8678 anywhere, and include a flag indicating whether the click was over an
8681 * sources/rb-playlist-source.c: (default_show_entry_view_popup),
8682 (rb_playlist_source_songs_show_popup_cb):
8683 * sources/rb-playlist-source.h:
8684 Add the 'over entry' flag to the class show popup method, and in the
8685 default handler, ignore right clicks when not over an entry.
8687 * sources/rb-iradio-source.c:
8688 (rb_iradio_source_songs_show_popup_cb):
8689 * sources/rb-library-source.c:
8690 (rb_library_source_songs_show_popup_cb):
8691 * sources/rb-podcast-source.c:
8692 (rb_podcast_source_songs_show_popup_cb):
8693 Show the source list popup menu when right clicked while not over an
8696 * sources/rb-play-queue-source.c: (impl_show_entry_view_popup):
8697 For the queue sidebar, always display the popup so the 'clear queue'
8698 action is available regardless of where you click. For the queue
8699 source, only display the popup when right clicked over an entry.
8702 2006-02-19 James Livingston <jrl@ids.org.au>
8704 * daapsharing/rb-daap-share.c: (add_playlist_to_mlcl):
8705 * shell/rb-shell.c: (rb_shell_select_source): don't get the source's
8706 entry view, when we're not even using it
8708 * rhythmdb/rhythmdb-property-model.c:
8709 (rhythmdb_property_model_row_inserted_cb): use the query-model utility
8710 function, rather than a copy of the code.
8712 * shell/rb-playlist-manager.c:
8713 (rb_playlist_manager_playlist_row_inserted_cb),
8714 (rb_playlist_manager_set_source_internal),
8715 (rb_playlist_manager_playlist_entries_changed): use the query-model
8716 directly, rather than the source's entry view.
8718 * shell/rb-source-header.c: don't use the entry view, just select the
8721 2006-02-18 James Livingston <jrl@ids.org.au>
8723 update by: Baptiste Mille-Mathias <bmm80@free.fr>
8725 * help/C/figures/rb-iradio-main.png:
8726 * help/C/figures/rb-notification-area-menu.png:
8727 * help/C/figures/rb-notification-window.png:
8728 * help/C/figures/rb-notification-zone.png:
8729 * help/C/figures/rb-podcast-main.png:
8730 * help/C/figures/rb-statusbar.png:
8731 * help/C/figures/rb-toolbar-prevplaynext.png:
8732 * help/C/figures/rb-toolbar-repeat.png:
8733 * help/C/figures/rb-toolbar-shuffle.png:
8734 * help/C/figures/rb-toolbar.png:
8735 * help/C/figures/rb-volume-changer.png:
8736 * help/C/figures/rb-window-small.png:
8737 * help/C/figures/rb-window.png:
8738 * help/C/rhythmbox.xml: Update user guide with some of the changes
8739 that have occurred after 0.8.8. From bug 314001.
8741 2006-02-18 Jonathan Matthew <jonathan@kaolin.wh9.net>
8743 * rhythmdb/rhythmdb-query-results.h,
8744 rhythmdb/rhythmdb-query-results.c:
8745 New interface for objects that accept query results from RhythmDB.
8747 * rhythmdb/rhythmdb-query-model.c:
8748 (rhythmdb_query_model_query_results_init),
8749 (rhythmdb_query_model_set_query),
8750 (rhythmdb_query_model_add_results),
8751 (rhythmdb_query_model_query_complete):
8752 * rhythmdb/rhythmdb-query-model.h:
8753 Make RhythmDBQueryModel implement the RhythmDBQueryResults interface.
8755 * rhythmdb/rhythmdb-tree.c: (handle_entry_match),
8756 (rhythmdb_tree_do_full_query):
8757 * rhythmdb/rhythmdb.c: (rhythmdb_event_free),
8758 (rhythmdb_query_internal), (rhythmdb_do_full_query_async_parsed),
8759 (rhythmdb_do_full_query_async), (rhythmdb_do_full_query_internal),
8760 (rhythmdb_do_full_query_parsed), (rhythmdb_do_full_query):
8761 * rhythmdb/rhythmdb.h:
8762 Pass query results through the RhythmDBQueryResults interface, rather
8763 than directly to a RhythmDBQueryModel.
8765 * podcast/rb-podcast-manager.c: (rb_podcast_manager_update_feeds),
8766 (rb_podcast_manager_db_entry_deleted_cb):
8767 * sources/rb-auto-playlist-source.c:
8768 (rb_auto_playlist_source_do_query),
8769 (rb_auto_playlist_source_set_query):
8770 * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
8771 * sources/rb-library-source.c: (rb_library_source_constructor),
8772 (rb_library_source_do_query):
8773 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8774 (rb_podcast_source_do_query):
8775 * rhythmdb/rhythmdb-property-model.c:
8776 (rhythmdb_property_model_drag_data_get):
8777 Cast the query model to RhythmDBQueryResults when passing to one of
8778 the RhythmDB query methods.
8780 * rhythmdb/Makefile.am: Add new files.
8782 2006-02-18 James Livingston <jrl@ids.org.au>
8784 * data/ui/rhythmbox-ui.xml:
8785 * shell/rb-playlist-manager.c:
8786 (_queue_track_cb), (rb_playlist_manager_cmd_queue_playlist): Add
8787 "queue playlist" item to source context menu. Fixes bug 330490.
8789 2006-02-18 James Livingston <jrl@ids.org.au>
8791 * data/glade/general-prefs.glade:
8792 * shell/rb-shell-preferences.c:
8793 (rb_shell_preferences_column_check_changed_cb),
8794 (rb_shell_preferences_sync):
8795 * sources/rb-library-source.c: (rb_library_source_constructor):
8796 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
8797 * widgets/rb-entry-view.c: (rb_entry_view_quality_cell_data_func),
8798 (rb_entry_view_append_column): Add a "quality" colume which indicates
8799 the bitrate of media. Part of bug 167659.
8801 2006-02-18 James Livingston <jrl@ids.org.au>
8803 * shell/rb-play-order.c: (do_next_idle_cb),
8804 (default_playing_entry_removed): move to next track when playing entry
8805 is deleted. Fixes bug 131150.
8807 * shell/rb-shell-player.h: remove ancient stuff
8809 2006-02-17 William Jon McCann <mccann@jhu.edu>
8811 * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_source_internal)
8812 (rb_shell_clipboard_set_property):
8813 * shell/rb-shell.c (rb_shell_sync_party_mode):
8814 Trigger a resync of the clipboard properties when changing party mode.
8816 2006-02-17 William Jon McCann <mccann@jhu.edu>
8818 * sources/rb-static-playlist-source.c: Fix includes.
8820 * sources/rb-source.c (rb_source_can_rename)
8821 (rb_source_can_delete, rb_source_can_move_to_trash):
8822 Return FALSE if in party mode.
8824 * shell/rb-shell.[ch] (rb_shell_finalize, rb_shell_constructor):
8825 Replace fullscreen with party mode.
8826 (rb_shell_window_delete_cb): Don't quit if in party mode.
8827 (rb_shell_view_party_mode_changed_cb): Setup party mode.
8828 (window_state_event_cb): Try to deiconify shell when iconified
8830 (rb_shell_sync_party_mode): Sync party mode properties.
8831 Currently, that means [de]sensitizing close, quit, and small-display,
8832 going into fullscreen mode with window stuck and kept above, and
8833 toggling queue-only for the shell player.
8834 (rb_shell_sync_smalldisplay): Sensitive party mode.
8835 (rb_shell_get_party_mode): Get party mode setting.
8837 * shell/rb-shell-player.c (rb_shell_player_class_init)
8838 (rb_shell_player_set_property, rb_shell_player_get_property):
8839 Add queue-only property.
8840 (rb_shell_player_entry_activated_cb): If in party mode
8841 only queue the entry on activation.
8843 * shell/rb-playlist-manager.c (rb_playlist_manager_set_source_internal):
8844 Break out from set_properties. Desensitize some actions when
8846 (rb_playlist_manager_set_property): Break out set_source_internal.
8848 * data/rhythmbox.schemas: Remove fullscreen mode.
8850 * data/ui/rhythmbox-ui.xml: Replace fullscreen
8851 action with party mode.
8853 Partial fix for #323933
8855 2006-02-17 James Livingston <jrl@ids.org.au>
8858 * shell/rb-removable-media-manager.c:
8859 (get_nautilus_burn_drive_for_path),
8860 (rb_removable_media_manager_playing_uri_changed_cb): only use
8861 nautilus_burn_drive_new_by_path when it exists, fall back to iterating
8862 over the list when it doesn't.
8864 2006-02-17 James Livingston <jrl@ids.org.au>
8866 * sources/rb-iradio-source.c: (rb_iradio_source_constructor),
8867 (rb_iradio_source_first_time_changed): Only do the import on the
8868 first change from FALSE to TRUE.
8870 * sources/rb-library-source.c:
8871 (rb_library_source_preferences_sync),
8872 (rb_library_source_library_location_cb): set the first-run done flag
8873 if the user presses close and then sets their watches library
8874 location. Fixes bug 325997.
8876 2006-02-17 James Livingston <jrl@ids.org.au>
8878 * shell/rb-shell.c: (rb_shell_class_init): make the shell player and
8879 removable media manager gobject properties
8881 * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor),
8882 (split_drive_from_cdda_uri),
8883 (rb_removable_media_manager_playing_uri_changed_cb),
8884 (rb_removable_media_manager_load_media): stop polling a cd drive
8885 when we are playing from it. Part of bug 330716.
8887 2006-02-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
8889 * rhythmdb/rhythmdb-query-model.c:
8890 (rhythmdb_query_model_set_property),
8891 (rhythmdb_query_model_finalize),
8892 (rhythmdb_query_model_base_entry_removed):
8893 Propagate entry removal from base models out to attached property
8894 models. Fixes the rest of #331165.
8896 2006-02-17 Jonathan Matthew <jonathan@kaolin.wh9.net>
8898 * rhythmdb/rhythmdb-property-model.c:
8899 (rhythmdb_property_model_row_inserted_cb),
8900 (rhythmdb_property_model_prop_changed_cb),
8901 (rhythmdb_property_model_insert):
8902 Don't store NULL as a hash table value if we want to use
8903 g_hash_table_lookup to check if a key exists, and get the checks for
8904 how and whether to handle entry changes the right way around.
8905 Fixes #331211 and half of #331165.
8907 2006-02-16 James Livingston <jrl@ids.org.au>
8909 * sources/rb-audiocd-source.c: (rb_audiocd_source_constructor): read
8910 the audio cd's TOC in a separate thread, so it doesn't block the UI.
8913 2006-02-16 James Livingston <jrl@ids.org.au>
8915 * widgets/rb-library-browser.c: (reset_view_cb): make View All
8916 actually reset the browsers.
8918 2006-02-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
8920 * widgets/eggtrayicon.c: (egg_tray_icon_notify):
8921 Escape the strings we pass into libnotify so we don't get blank
8922 notifications when the song name contains '&' etc. Fixes #330784.
8924 2006-02-16 James Livingston <jrl@ids.org.au>
8926 * shell/rb-source-header.c: (rb_source_header_sync_control_state):
8927 enable "View All" when there is only a search box and no browser.
8930 2006-02-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
8932 * data/ui/rhythmbox-ui.xml: Add 'clear queue' to the sidebar queue
8933 popup menu, which I forgot to commit with the patch for bug #330014.
8935 2006-02-16 Jonathan Matthew <jonathan@kaolin.wh9.net>
8937 * shell/rb-shell-player.c: (open_location_thread):
8938 Sync button and entry view state once we've started the player, so the
8939 entry view gets into the playing state for iradio.
8941 2006-02-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
8943 * shell/rb-shell-player.c: (open_location_thread):
8944 Take GDK lock before doing anything UI-related.
8946 2006-02-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
8948 * shell/rb-shell.c: Move 'new iradio station' action to
8951 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
8952 (rb_iradio_source_init), (rb_iradio_source_finalize),
8953 (rb_iradio_source_constructor):
8954 Remove some unused stuff.
8956 (guess_uri_scheme), (rb_iradio_source_add_station),
8957 (rb_iradio_source_add_from_playlist),
8958 (impl_get_ui_actions), (new_station_location_added),
8959 (rb_iradio_source_cmd_new_station): Handle 'new iradio station'
8960 action, include it in the toolbar, and make sure the URI we add has a
8961 scheme. Fixes #327059, more or less.
8963 2006-02-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
8965 * sources/rb-play-queue-source.c:
8966 (rb_play_queue_source_class_init),
8967 (rb_play_queue_source_constructor),
8968 (rb_play_queue_source_update_count),
8969 (rb_play_queue_source_cmd_clear), (impl_get_ui_actions):
8970 Add a toolbar button to clear the play queue, and make it sensitive
8971 only when there are entries in the queue. Fixes #330014.
8973 * sources/rb-source.c: (_rb_source_register_action_group):
8974 * sources/rb-source.h: Add helper function to register an
8975 action group for a source.
8977 * sources/rb-library-source.c: (rb_library_source_constructor):
8978 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
8979 (register_action_group): Use _rb_source_register_action_group.
8981 2006-02-15 James Livingston <jrl@ids.org.au>
8983 * widgets/rb-song-info.c: (rb_song_info_add_completion),
8984 (rb_song_info_constructor), (rb_song_info_set_property): make
8985 tag-editing completion work for albums too.
8987 2006-02-15 Jonathan Matthew <jonathan@kaolin.wh9.net>
8989 * widgets/rb-query-creator.c: (rb_query_creator_load_query):
8990 Check the 'limit' checkbox for time-limited playlists.
8992 2006-02-14 Sven Herzberg <herzi@gnome-de.org>
8994 * widgets/rb-song-info.c: Prove text-completion when editing title,
8997 2006-02-14 James Livingston <jrl@ids.org.au>
8999 * data/ui/rhythmbox-ui.xml: add a separator above the Quit item of the
9000 tray icon popup menu. Fixes bug 331026.
9002 2006-02-14 James Livingston <jrl@ids.org.au>
9004 * data/iradio-initial.pls: update the Virgin Radio stations to use the
9005 Ogg Vorbis streams, instead of the MP3 ones.
9007 2006-02-14 James Livingston <jrl@ids.org.au>
9009 * rhythmdb/rhythmdb-property-model.c:
9010 (rhythmdb_property_model_class_init),
9011 (rhythmdb_property_model_drag_data_get):
9012 * rhythmdb/rhythmdb-query-model.c:
9013 (rhythmdb_query_model_title_sort_func):
9014 * rhythmdb/rhythmdb-query-model.h: fix drag-and-drop when using the
9015 LOCATION as the key. Fixes bug 330601.
9017 2006-02-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
9019 * sources/rb-playlist-source.c: (playlist_iter_func):
9020 Make it compile with older versions of totem-plparser too.
9022 2006-02-13 James Livingston <jrl@ids.org.au>
9024 * rhythmdb/rhythmdb.h:
9025 * rhythmdb/rhythmdb-private.h: Make definition of RhythmDBEntry
9026 structure private, since things should use the accessor functions
9027 rather than manipulating it directly - Only RhythmDB and the
9028 implementation classes should access it directly. Part of the RhythmDB
9029 cleanup of bug 330226.
9031 * iradio/rb-station-properties-dialog.c:
9032 (rb_station_properties_dialog_update_title),
9033 (rb_station_properties_dialog_update_title_entry),
9034 (rb_station_properties_dialog_update_genre),
9035 (rb_station_properties_dialog_update_location),
9036 (rb_station_properties_dialog_update_play_count),
9037 (rb_station_properties_dialog_update_bitrate),
9038 (rb_station_properties_dialog_update_last_played),
9039 (rb_station_properties_dialog_update_rating),
9040 (rb_station_properties_dialog_update_playback_error),
9041 (rb_station_properties_dialog_sync_entries):
9042 * podcast/rb-feed-podcast-properties-dialog.c:
9043 (rb_feed_podcast_properties_dialog_update_title),
9044 (rb_feed_podcast_properties_dialog_update_title_label),
9045 (rb_feed_podcast_properties_dialog_update_author),
9046 (rb_feed_podcast_properties_dialog_update_location),
9047 (rb_feed_podcast_properties_dialog_update_copyright),
9048 (rb_feed_podcast_properties_dialog_update_language),
9049 (rb_feed_podcast_properties_dialog_update_summary):
9050 * podcast/rb-podcast-manager.c:
9051 (rb_podcast_manager_entry_downloaded),
9052 (rb_podcast_manager_db_entry_added_cb),
9053 (download_progress_update_cb),
9054 (rb_podcast_manager_db_entry_deleted_cb):
9055 * podcast/rb-podcast-properties-dialog.c:
9056 (rb_podcast_properties_dialog_update_title),
9057 (rb_podcast_properties_dialog_update_title_label),
9058 (rb_podcast_properties_dialog_update_feed),
9059 (rb_podcast_properties_dialog_update_location),
9060 (rb_podcast_properties_dialog_update_play_count),
9061 (rb_podcast_properties_dialog_update_bitrate),
9062 (rb_podcast_properties_dialog_update_last_played),
9063 (rb_podcast_properties_dialog_update_rating),
9064 (rb_podcast_properties_dialog_update_date),
9065 (rb_podcast_properties_dialog_update_description):
9066 * rhythmdb/rhythmdb-query-model.c:
9067 (rhythmdb_query_model_entry_changed_cb),
9068 (rhythmdb_query_model_remove_from_main_list),
9069 (rhythmdb_query_model_update_limited_entries),
9070 (rhythmdb_query_model_drag_data_get),
9071 (rhythmdb_query_model_album_sort_func):
9072 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
9074 * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal),
9075 (rhythmdb_prop_get_type), (rhythmdb_entry_dup_string),
9076 (rhythmdb_entry_get_string), (rhythmdb_entry_get_boolean),
9077 (rhythmdb_entry_get_uint64), (rhythmdb_entry_get_ulong),
9078 (rhythmdb_entry_get_double):
9079 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
9080 * shell/rb-play-order-random-by-age-and-rating.c:
9081 (rb_random_by_age_and_rating_get_entry_weight):
9082 * shell/rb-play-order-random-by-age.c:
9083 (rb_random_by_age_get_entry_weight):
9084 * shell/rb-play-order-random-by-rating.c:
9085 (rb_random_by_rating_get_entry_weight):
9086 * shell/rb-playlist-manager.c: (create_name_from_selection_data):
9087 * shell/rb-shell-player.c: (rb_shell_player_open_entry),
9088 (rb_shell_player_set_playing_entry),
9089 (rb_shell_player_sync_replaygain),
9090 (rb_shell_player_sync_with_source),
9091 (rb_shell_player_get_playing_song_duration), (info_available_cb):
9092 * sources/rb-playlist-source.c: (playlist_iter_func),
9093 (burn_playlist_iter_func), (rb_playlist_source_row_deleted),
9094 (rb_playlist_source_entry_added_cb):
9095 * sources/rb-podcast-source.c:
9096 (rb_podcast_source_post_status_cell_data_func):
9097 * sources/rb-source.c: (rb_source_update_play_statistics):
9098 * sources/rb-sourcelist-model.c:
9099 (rb_sourcelist_model_drag_data_get):
9100 * sources/rb-static-playlist-source.c: (impl_save_contents_to_xml),
9101 (rb_static_playlist_source_add_entry),
9102 (rb_static_playlist_source_remove_entry):
9103 * widgets/rb-entry-view.c: (type_ahead_search_func),
9104 (rb_entry_view_playing_cell_data_func),
9105 (rb_entry_view_rating_cell_data_func),
9106 (rb_entry_view_pixbuf_clicked_cb):
9107 * widgets/rb-header.c: (rb_header_get_duration):
9108 * widgets/rb-song-info.c: (rb_song_info_populate_dialog_multiple),
9109 (rb_song_info_populate_dialog),
9110 (rb_song_info_update_playback_error),
9111 (rb_song_info_update_bitrate), (rb_song_info_update_duration),
9112 (rb_song_info_update_location), (rb_song_info_update_play_count),
9113 (rb_song_info_update_last_played), (rb_song_info_update_rating),
9114 (rb_song_info_update_year), (rb_song_info_sync_entries_multiple),
9115 (rb_song_info_sync_entry_single): fix the huge number of times that
9116 the internals got accessed directly.
9118 2006-02-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
9120 * data/ui/rhythmbox-ui.xml: Move separator so 'remove' and 'move to
9121 trash' are grouped together.
9122 * shell/main.c: (main): Pass no-registration flag in to RBShell
9123 constructor, rather than mysteriously always passing TRUE.
9124 * sources/rb-playlist-source.c: (rb_playlist_source_row_deleted):
9125 Set dirty flag when entries are removed from the model, so the play
9126 queue is marked dirty appropriately.
9127 * AUTHORS: update my email address
9129 2006-02-13 Jonathan Matthew <jonathan@kaolin.wh9.net>
9131 Patch by: Baptiste Mille-Mathias <bmm80@free.fr>
9133 * widgets/rb-druid.c: (path_dialog_response_cb):
9134 If the URI is local, don't display the 'file://' prefix.
9137 2006-02-12 Jonathan Matthew <jonathan@kaolin.wh9.net>
9139 * widgets/eggtrayicon.c: (egg_tray_icon_notify):
9140 Attach the notification to the tray icon widget, so libnotify
9141 positions it less badly. Fixes #330876.
9143 2006-02-11 Jonathan Matthew <jonathan@kaolin.wh9.net>
9145 * widgets/rb-entry-view.c: (rb_entry_view_get_selected_entries):
9146 Reverse the selection list before returning it, so we get it in the
9147 right order. Fixes #330283 and some other weirdness.
9149 2006-02-11 James Livingston <jrl@ids.org.au>
9151 * shell/rb-shell.c: (rb_shell_constructor),
9152 (rb_shell_sync_fullscreen), (rb_shell_sync_smalldisplay):
9153 * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9154 make small-mode and fullscreen mutually exclusive, since they don't
9157 * data/ui/rhythmbox-ui.xml: move Fullscreen up to the top with Small
9160 2006-02-10 James Livingston <jrl@ids.org.au>
9162 * player/rb-player-gst.c: turn paranoia of when playing audio cds,
9163 since it can cause it to be slower than real-time. Should fix bug
9166 2006-02-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
9168 * rhythmdb/rhythmdb-query-model.c:
9169 (rhythmdb_query_model_set_property):
9170 Think just a little bit harder about that last commit.
9172 2006-02-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
9174 * rhythmdb/rhythmdb-query-model.c:
9175 (rhythmdb_query_model_set_property):
9176 Get the check for hidden entries the right way around.
9177 Fixes #330527, #330514.
9179 (rhythmdb_query_model_set_sort_order):
9180 Ignore no-op sort order changes, so we don't get critical
9181 messages when selecting 'all' in auto playlist browsers.
9183 2006-02-10 Jonathan Matthew <jonathan@kaolin.wh9.net>
9185 Patch by: Christophe Fergeau <teuf@gnome.org>
9187 * sources/rb-removable-media-source.c:
9188 (rb_removable_media_source_init),
9189 (rb_removable_media_source_constructor):
9190 Move icon setup code to the constructor, as the volume property
9191 haven't been set yet when _init is called.
9193 2006-02-09 William Jon McCann <mccann@jhu.edu>
9195 * sources/rb-sourcelist.c (rb_sourcelist_append, icon_notify_cb):
9196 Make the source pixbuf a dynamic property.
9198 * sources/rb-source.[ch] (rb_source_class_init, rb_source_finalize)
9199 (rb_source_set_pixbuf, rb_source_set_property)
9200 (rb_source_get_property): Add icon property.
9202 * sources/rb-auto-playlist-source.c (rb_auto_playlist_source_class_init)
9203 (rb_auto_playlist_source_init):
9204 * sources/rb-static-playlist-source.c (rb_static_playlist_source_class_init)
9205 (rb_static_playlist_source_init):
9206 * sources/rb-removable-media-source.c (rb_removable_media_source_class_init)
9207 (rb_removable_media_source_init):
9208 * sources/rb-podcast-source.c (rb_podcast_source_class_init)
9209 (rb_podcast_source_init):
9210 * sources/rb-library-source.c (rb_library_source_class_init)
9211 (rb_library_source_set_property, rb_library_source_get_property):
9212 * sources/rb-iradio-source.c (rb_iradio_source_class_init)
9213 (rb_iradio_source_init): Remove impl_get_pixbuf and
9214 set icon property on source base class.
9216 * sources/rb-daap-source.c (rb_daap_get_icon): Get
9217 a different icon for when the share is password protected
9219 (rb_daap_source_new): Set icon property.
9220 (composite_icons): Composite an emblem on a pixbuf.
9221 (create_pixbufs): Load global pixbufs.
9222 (destroy_pixbufs): unref global pixbufs.
9223 (rb_daap_sources_init, rb_daap_sources_shutdown): Pixbuf setup.
9224 (connection_auth_cb, connection_connected_cb)
9225 (connection_disconnected_cb): Update icon when connection
9227 (rb_daap_source_activate): Connect signals.
9229 * daapsharing/rb-daap-share.c (name_collision_cb): Run
9232 * daapsharing/rb-daap-marshal.list: Add new signal.
9234 * daapsharing/rb-daap-dialog.[ch] (rb_daap_password_dialog_new_run)
9235 (rb_daap_collision_dialog_new_run): Set parent of dialog.
9237 * daapsharing/rb-daap-connection.[ch] (rb_daap_connection_class_init):
9238 Add authenticate, connected, and disconnected signals.
9239 (connection_get_password): emit authenticate signal instead
9240 of running dialog directly.
9241 (connection_connected, connection_disconnected): Emit signals.
9242 (handle_login): Emit connected signal.
9243 (handle_logout): Emit disconnected signal.
9244 (rb_daap_connection_do_something): Fix leak.
9248 2006-02-09 James Livingston <jrl@ids.org.au>
9250 * (rhythmdb_query_model_set_property): don't try to insert HIDDEN
9251 entries from the base model if we don't have show-hidden set. Fixes
9254 2006-02-08 William Jon McCann <mccann@jhu.edu>
9256 * daapsharing/rb-daap-share.c (message_get_session_id):
9257 Ugh. Use strtoul instead of atoi.
9258 (session_id_validate): Add debug statements.
9260 2006-02-08 William Jon McCann <mccann@jhu.edu>
9262 * daapsharing/rb-daap-connection.c (http_response_handler):
9263 Report the actual uri from the message in debug statements.
9265 2006-02-08 William Jon McCann <mccann@jhu.edu>
9267 * daapsharing/rb-daap-share.c (server_info_cb, content_codes_cb):
9268 Add context argument.
9269 (message_get_session_id): New function to parse session id from
9271 (message_get_revision_number): Break out function to parse
9272 revision number from the message.
9273 (session_id_validate): New function to validate given session id
9274 is valid for given context (ie. client address).
9275 (session_id_generate): Generate a random session id.
9276 (session_id_create): Create a unique session id and store it.
9277 (session_id_remove): Remove a session id from the store.
9278 (login_cb): Create a session id instead of using a constant one.
9279 (logout_cb): Validate session id.
9280 (update_cb): Use new message_get_revision_number function.
9281 (databases_cb): Validate session id.
9282 (server_cb): Add server context to argument list for callbacks. It
9283 is needed to look up the remote host.
9284 (db_entry_changed_cb): Use braces.
9285 (soup_auth_callback): Remove FIXME.
9286 (rb_daap_share_server_start): Create session id store.
9287 (rb_daap_share_server_stop): Destroy session id store.
9289 * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run):
9290 Don't base64-encode password here since it needs to be
9291 combined with the username first.
9293 * daapsharing/rb-daap-connection.c (build_message):
9294 Add username to Authorization token.
9295 (handle_login, handle_song_listing)
9296 (rb_daap_connection_do_something): Session id
9297 must be an unsigned int.
9301 2006-02-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
9303 * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9304 Don't check if we've got a playing entry, ask the player object (duh).
9305 Might actually fix #329993.
9307 2006-02-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
9309 * sources/rb-static-playlist-source.c:
9310 (rb_static_playlist_source_add_list_uri):
9311 Canonicalise URIs before trying to add them to the playlist, and
9312 don't try to add files to the database for which there is
9315 2006-02-08 Jonathan Matthew <jonathan@kaolin.wh9.net>
9317 * shell/rb-shell-player.c: (rb_shell_player_get_playing):
9318 Don't ask the entry view if we're playing, just check if we've got a
9319 playing entry. Fixes #329993.
9321 2006-02-08 James Livingston <jrl@ids.org.au>
9323 * rhythmdb/rhythmdb-query-model.c:
9324 (rhythmdb_query_model_set_property),
9325 (rhythmdb_query_model_finalize),
9326 (rhythmdb_query_model_base_complete): remove
9327 rhythmdb_query_model_base_entry_prop_changed, so that two signals
9328 don't get emitted for entry changes. Fixes bug 330301.
9330 * widgets/rb-library-browser.c: (rb_library_browser_class_init),
9331 (rb_library_browser_init), (rb_library_browser_constructor),
9332 (rb_library_browser_new): do stuff in the constructor, not the init
9333 function, so that the db property gets set on RBPropertyViews
9334 correctly. Fixes a crash when dragging properties to a playlist.
9336 2006-02-07 William Jon McCann <mccann@jhu.edu>
9338 * daapsharing/rb-daap-share.c (rb_daap_share_server_stop):
9339 Actually stop soup server. Fixes #329816.
9341 2006-02-07 James Livingston <jrl@ids.org.au>
9344 * lib/rb-util.c: (rb_string_list_equal), (list_copy_cb),
9345 (rb_string_list_copy), (rb_list_deep_free), (collate_keys_cb),
9346 (collate_values_cb), (rb_collate_hash_table_keys),
9347 (rb_collate_hash_table_values): add functions to compare, copy and
9348 free string-lists. add functions to collate the keys or values of a
9349 hash table into a list.
9351 * rhythmdb/rhythmdb-property-model.c:
9352 (rhythmdb_property_model_class_init), (entry_from_tree_iter),
9353 (_remove_entry_cb), (_add_entry_cb),
9354 (rhythmdb_property_model_set_property),
9355 (rhythmdb_property_model_get_property),
9356 (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
9357 (rhythmdb_property_model_row_inserted_cb),
9358 (rhythmdb_property_model_prop_changed_cb),
9359 (rhythmdb_property_model_entry_removed_cb): correctly handle entries
9360 that are hidden, storing those that we have counted in a hash-table.
9362 * shell/Makefile.am: fix build order issue
9364 * shell/rb-shell-player.c: (rb_shell_player_set_property):
9365 * sources/rb-source.h:
9366 * shell/rb-source-header.c: (rb_source_header_sync_control_state):
9367 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9368 * sources/rb-podcast-source.c: (feed_select_change_cb): add
9369 browser-toggled method, rename _get_exta_views to _get_property_views,
9370 since several things depend on returning only that.
9372 * sources/rb-source.c: (rb_source_class_init),
9373 (rb_source_browser_toggled), (default_get_property_views),
9374 (rb_source_get_property_views), (rb_source_row_deleted_cb),
9375 (rb_source_gather_hash_keys),
9376 (rb_source_gather_selected_properties): above changes, and move some
9377 utility functions up from RBLibraryView
9379 * widgets/rb-property-view.c:
9380 (rb_property_view_selection_changed_cb): fix leak.
9382 * rhythmdb/rhythmdb-query-model.c:
9383 (rhythmdb_query_model_set_property),
9384 (rhythmdb_query_model_finalize), (apply_updated_entry_sequence),
9385 (rhythmdb_query_model_set_sort_order),
9386 (rhythmdb_query_model_base_rows_reordered): fix handling of the base
9387 query model being resorted.
9389 * rhythmdb/rhythmdb-tree.c: (do_query_recurse): handle being passed a
9392 * rhythmdb/rhythmdb.h:
9393 * rhythmdb/rhythmdb.c: (rhythmdb_query_copy),
9394 (rhythmdb_query_concatenate), (rhythmdb_query_preprocess),
9395 (rhythmdb_query_append_prop_multiple): Add a function to concatenate
9396 two queries. Add a function to append "property={X,Y,Z,...}" to a
9399 * sources/rb-library-source.c: (rb_library_source_class_init),
9400 (rb_library_source_finalize), (rb_library_source_constructor),
9401 (rb_library_source_cmd_choose_genre),
9402 (rb_library_source_cmd_choose_artist),
9403 (rb_library_source_cmd_choose_album), (impl_search),
9404 (impl_get_property_views), (impl_reset_filters),
9405 (rb_library_source_preferences_sync),
9406 (rb_library_source_browser_views_activated_cb),
9407 (rb_library_source_state_prefs_sync),
9408 (construct_query_from_selection), (rb_library_source_do_query),
9409 (rb_library_source_browser_changed_cb):
9410 * widgets/Makefile.am:
9411 * widgets/rb-library-browsers.{c,h}: Add a generalised "library
9412 browser" widgets, which contains several property views, based on the
9413 code from RBLibrarySource. Make RBLibrarySource use it.
9415 * sources/rb-auto-playlist-source.c:
9416 (rb_auto_playlist_source_class_init),
9417 (rb_auto_playlist_source_init), (rb_auto_playlist_source_finalize),
9418 (rb_auto_playlist_source_constructor), (impl_reset_filters),
9419 (impl_get_property_views), (impl_browser_toggled),
9420 (construct_query_from_selection),
9421 (rb_auto_playlist_source_do_query),
9422 (rb_auto_playlist_source_set_query),
9423 (rb_auto_playlist_source_browser_changed_cb): Use the new
9424 library-browser widget to add browsers to automatic playlists.
9426 2006-02-07 James Livingston <jrl@ids.org.au>
9428 * player/rb-player-gst.c: (rb_player_bus_cb): check error type
9430 * shell/rb-shell-player.c: (do_next_idle): use eos_cb, so that the EOF
9431 type of the source is taken into account. Fixes bug 329621.
9433 2006-02-07 James Livingston <jrl@ids.org.au>
9435 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
9436 (rhythmdb_tree_parser_end_element): update the rhythmdb.xml version to
9437 1.1, and perform URI canonicalistion when first upgrading. This should
9438 fix our remaining canonicalisation issues, such as bug 329988.
9440 2006-02-07 Jonathan Matthew <jonathan@kaolin.hn.org>
9442 * widgets/rb-entry-view.c: (rb_entry_view_playing_song_changed):
9443 Track the playing entry when the entry view isn't in the playing
9444 state, so we don't have to get the state changes exactly right.
9447 2006-02-06 James Livingston <jrl@ids.org.au>
9449 * shell/rb-shell-player.c: (open_location_thread),
9450 (rb_shell_player_open_location): fix several iradio issues: having to
9451 press play after double-clicking on a station, not working correctly
9452 without a http:// prefix, and ignoring totem-plparser results other
9453 than success or error (e.g. IGNORE).
9455 2006-02-06 Jonathan Matthew <jonathan@kaolin.hn.org>
9457 Addition of dbus methods for dealing with static playlists and the
9458 play queue. Fixes #329958.
9460 * shell/Makefile.am:
9461 * shell/rb-playlist-manager.h:
9462 * shell/rb-playlist-manager.xml:
9463 * shell/rb-playlist-manager.c: (save_playlist_response_cb),
9464 (rb_playlist_manager_get_playlists),
9465 (rb_playlist_manager_get_playlist_names), (_get_playlist_by_name),
9466 (rb_playlist_manager_create_static_playlist),
9467 (rb_playlist_manager_delete_playlist),
9468 (rb_playlist_manager_add_to_playlist),
9469 (rb_playlist_manager_remove_from_playlist),
9470 (rb_playlist_manager_export_playlist):
9471 Add org.gnome.Rhythmbox.PlaylistManager dbus interface, with methods
9472 to create, delete, list, modify, export, and import static playlists.
9474 * shell/main.c: (main): Register playlist manager object with dbus.
9477 * shell/rb-shell.xml:
9478 * shell/rb-shell.c: (rb_shell_get_playlist_manager),
9479 (rb_shell_get_playlist_manager_path), (rb_shell_add_to_queue),
9480 (rb_shell_remove_from_queue): Provide dbus access to the playlist manager
9481 object, and implement the addToQueue and removeFromQueue methods.
9483 * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
9484 * sources/rb-playlist-source.h: Add flag to choose between PLS and M3U
9487 2006-02-05 James Livingston <jrl@ids.org.au>
9489 * rhythmdb/rhythmdb-tree.c: (parse_boolean),
9490 (rhythmdb_tree_parser_end_element), (save_entry_boolean),
9491 (save_entry): allow storage of booleans in the on-disk db, and
9492 save/load the HIDDEN property.
9494 * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
9495 (rhythmdb_prop_get_type): restore the HIDDEN property of local files
9496 to the state it was when RB shutdown. This makes RB appear to start
9497 faster, as tracks can appear before the stat is done. Remote files
9498 still start hidden. From bug 325215.
9500 2006-02-05 James Livingston <jrl@ids.org.au>
9502 * rhythmdb/rhythmdb.c: (rhythmdb_class_init):
9503 * rhythmdb/rhythmdb.h: remove the "entry-restored" signal nothing
9504 really cares about the difference from "entry-added", and it isn't
9505 emitted by the tree backend anyway.
9507 * rhythmdb/rhythmdb-query-model.c:
9508 (rhythmdb_query_model_constructor):
9509 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9510 remove the references to the entry-restored signal.
9512 2006-02-05 James Livingston <jrl@ids.org.au>
9514 * shell/rb-shell-player.c: (rb_shell_player_error): fix compilation
9517 2006-02-05 James Livingston <jrl@ids.org.au>
9519 * widgets/rb-entry-view.c: (rb_entry_view_finalize): check whether
9520 things are NULL before using g_object_unref. Fixes bug 327452.
9522 * player/rb-recorder-gst.c: (rb_recorder_construct):
9523 * shell/rb-shell-player.c: (rb_shell_player_error): return errors
9524 rather than assertion.
9526 * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
9527 emit a warning, rather than asserting if an unknown playlist type is
9530 2006-02-05 James Livingston <jrl@ids.org.au>
9532 * widgets/Makefile.am:
9533 * widgets/rb-simple-view.c:
9534 * widgets/rb-simple-view.h: Move the two features that this class
9535 provides into RBPropertyView, and remove this class. Closes bug
9538 * podcast/rb-feed-podcast-properties-dialog.c:
9539 * podcast/rb-feed-podcast-properties-dialog.h:
9540 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9541 (rb_podcast_source_feeds_show_popup_cb):
9542 * sources/rb-podcast-source.h:
9543 * widgets/rb-property-view.c: (rb_property_view_class_init),
9544 (rb_property_view_constructor), (rb_property_view_popup_menu_cb),
9545 (rb_property_view_append_column_custom),
9546 (rb_property_view_button_press_cb):
9547 * widgets/rb-property-view.h: Updated for the above change.
9549 2006-02-04 James Livingston <jrl@ids.org.au>
9551 * shell/rb-shell.c: remove the show/hide toolbar shortcut, since it is
9552 too close to Move to Trash and people aren't likely to use it often.
9554 2006-02-04 James Livingston <jrl@ids.org.au>
9556 * shell/rb-shell.c: (rb_shell_cmd_about): Fix the FSF's address
9558 2006-02-04 James Livingston <jrl@ids.org.au>
9560 * rhythmdb/rhythmdb.c: (rhythmdb_add_uri_with_type): handle being
9561 passed a path instead of a URI.
9563 * sources/rb-generic-player-source.c: (default_get_mount_path):
9564 * widgets/rb-druid.c: (path_dialog_response_cb): pass URIs instead of
9565 the path. This fixes bug 329723.
9567 2006-02-04 Jonathan Matthew <jonathan@kaolin.hn.org>
9569 * daapsharing/rb-daap-structure.c:
9570 (rb_daap_content_code_string_as_int32):
9571 Use network byte order.
9573 2006-02-03 William Jon McCann <mccann@jhu.edu>
9575 * sources/rb-daap-source.c: Use RBDaapMdnsBrowser object.
9576 Use a hash for source lookup.
9577 (mdns_service_added, mdns_service_removed): Handle
9578 service-added and service-removed signals from RBDaapMdnsBrowser.
9579 (remove_source): GDestroyNotify function for when sources
9580 are removed from the hash.
9581 (start_browsing): Create RBDaapMdnsBrowser and source lookup.
9582 (stop_browsing): Unref RBDaapMdnsBrowser and destroy source lookup.
9583 (rb_daap_sources_shutdown): Update.
9584 (source_host_find): GHRFunc for finding a source by ip.
9585 (rb_daap_source_find_for_uri): Use the hash source lookup.
9587 * shell/rb-shell-preferences.c (share_check_button_toggled_cb):
9589 (password_check_button_toggled_cb): Handle password enabled.
9590 (share_name_entry_focus_out_event_cb): Namespace keys.
9591 Handle changes more robustly.
9592 (share_password_entry_focus_out_event_cb): Handle password entry.
9593 (add_daap_preferences): Connect to password signals.
9595 * lib/rb-preferences.h: Add DAAP keys.
9597 * data/glade/daap-prefs.glade: Add password UI.
9599 * data/rhythmbox.schemas: Add password keys.
9601 * daapsharing/rb-daap-src.c (rb_daap_src_open): Replace
9602 assert with warning.
9604 * daapsharing/rb-daap-sharing.c: Fix includes. Move
9605 gconf keys to lib/rb-preferences.h. Namespace
9607 (create_share): Add password support.
9608 (enable_sharing_changed_cb): Namespaced keys.
9609 (require_password_changed_cb): Handle key change.
9610 (share_name_changed_cb): Namespaced keys.
9611 (share_password_changed_cb): Handle key change.
9612 (rb_daap_sharing_init): Namespaced keys.
9613 (rb_daap_sharing_shutdown): Ditto.
9615 * daapsharing/rb-daap-share.[ch] (rb_daap_share_class_init):
9616 Add password property.
9617 (rb_daap_share_set_name): Break out prop set function.
9618 (published_cb): New RBDaapMdnsPublisher signal handler.
9619 (name_collision_cb): Ditto.
9620 (rb_daap_share_init): Create publisher object and
9622 (rb_daap_share_set_password, rb_daap_share_set_playlist_manager)
9623 (rb_daap_share_set_property): Break out prop set functions.
9624 (rb_daap_share_dispose): Stop publishing. Stop DAAP server.
9626 (rb_daap_share_new): Add password argument. Start
9627 publishing and DAAP server.
9628 (message_set_from_rb_daap_structure): Change print to debug.
9629 (server_info_cb): Set auth method to publish.
9630 (logout_cb): Handle DAAP client logout.
9631 (update_cb): Remove C++ comments.
9632 (databases_cb): Ditto. Make message a warning. Make print a debug.
9633 (server_cb): Add debug.
9634 (soup_auth_callback): Handle auth requests.
9635 (rb_daap_share_server_start): Split up functions for starting
9636 server and publishing. Add auth handling to server.
9637 (rb_daap_share_server_stop): Split stop server and publish.
9639 (rb_daap_share_publish_start, rb_daap_share_publish_stop):
9640 Start and stop publishing.
9641 (rb_daap_share_restart): Restart server and publishing.
9642 (rb_daap_share_maybe_restart): Conditionally restart.
9644 * daapsharing/rb-daap-dialog.c (rb_daap_password_dialog_new_run)
9645 (rb_daap_collision_dialog_new_run): Don't use
9646 separators in dialogs.
9648 * daapsharing/rb-daap-connection.h: Add private
9649 data to class structure.
9651 * daapsharing/rb-daap-connection.c: Move
9652 some includes to top of file. Make private
9653 data struct name consistent with others.
9654 (rb_daap_connection_class_init): Rename
9656 (rb_daap_connection_init): Get and store the pointer
9657 to the private data once instead of in every
9658 function. Create a username value "Rhythmbox_VERSION".
9659 (connection_get_password): Don't get private.
9660 (build_message): Ditto.
9661 (http_response_handler): Don't init variables in
9662 declaration. Add debug. Spacing.
9663 (http_get, entry_set_string_prop, handle_server_info)
9664 (handle_login, handle_update, handle_database_info)
9665 (handle_song_listing, handle_playlists, handle_playlist_entries)
9666 (rb_daap_connection_constructor, rb_daap_connection_logout)
9667 (rb_daap_connection_state_done): Don't get private.
9668 (rb_daap_connection_get_headers): Ditto. gchar yuck.
9669 spacing. Correctly base64 encode the Authentication token.
9670 Add username to auth token.
9671 (rb_daap_connection_get_playlists): Don't get private.
9672 (rb_daap_connection_dispose): Ditto. Free username.
9673 (rb_daap_connection_set_property)
9674 (rb_daap_connection_get_property): Don't get private.
9676 * daapsharing/Makefile.am: Conditionally
9677 compile MDNS backends. Add marshall stuff.
9679 * daapsharing/.cvsignore: Update.
9681 * configure.ac: Add conditional to see which
9682 MDNS backend we should use.
9684 * daapsharing/rb-daap-mdns.[ch]: Removed files.
9686 * daapsharing/rb-daap-marshal.list:
9687 * daapsharing/rb-daap-mdns-browser-avahi.c:
9688 * daapsharing/rb-daap-mdns-browser-howl.c:
9689 * daapsharing/rb-daap-mdns-browser.h:
9690 * daapsharing/rb-daap-mdns-publisher-avahi.c:
9691 * daapsharing/rb-daap-mdns-publisher-howl.c:
9692 * daapsharing/rb-daap-mdns-publisher.h:
9693 Split rb-daap-mdns.c into two classes. One for
9694 publishing and one for browsing. Split out
9695 the avahi and howl backends into different files.
9699 2006-02-04 James Livingston <jrl@ids.org.au>
9701 patch by: Jan Schmidt <thaytan@mad.scientist.com>
9703 * rhythmdb/rhythmdb.c: (set_metadata_string_default_unknown): fix
9704 crash if metadata reader gives us NULL for strings.
9706 2006-02-03 James Livingston <jrl@ids.org.au>
9708 * shell/rb-shell-player.c: (open_location_thread),
9709 (rb_shell_player_open_location):
9710 retrieve iradio playlists files in a thread, so that with GStreamer
9711 0.10 the UI doesn't block while connecting to stations. The streamer
9712 connection is synchronous with 0.8, so that will still block (a bit).
9715 (rb_shell_player_set_playing_entry): don't call rb_shell_player_play,
9716 because _open_entry does that automatically when it is ready to.
9718 2006-02-03 Jonathan Matthew <jonathan@kaolin.hn.org>
9720 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9721 (rb_podcast_source_post_status_cell_data_func):
9722 Leave the podcast status column blank for episodes that have not been
9725 2006-02-03 James Livingston <jrl@ids.org.au>
9727 Add support for source-specific toolbar items, and make the Burn
9728 Playlist item only available for playlists. Also add Update All
9729 (podcast), Eject and Rip (audio cds). Fixes bug 329041.
9731 * data/ui/rhythmbox-ui.xml:
9732 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
9733 (impl_get_ui_actions): make the Burn CD toolbar item only for
9736 * lib/rb-stock-icons.c: (rb_stock_icons_init):
9737 * lib/rb-stock-icons.h: load the Eject icon as stock.
9739 * shell/rb-removable-media-manager.c: use the eject icon for the eject
9742 * shell/rb-shell.c: (rb_shell_constructor), (merge_source_ui_cb),
9743 (rb_shell_select_source):
9744 * sources/rb-source.c: (rb_source_class_init),
9745 (rb_source_disconnect), (default_get_ui_actions),
9746 (rb_source_get_ui_actions):
9747 * sources/rb-source.h: add support for source-specific toolbar items
9749 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): add
9750 Eject and Rip toolbar items
9752 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
9753 (impl_add_to_queue), (impl_get_ui_actions): add Update All toolbar
9756 2006-02-03 Jonathan Matthew <jonathan@kaolin.hn.org>
9758 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_save):
9759 * shell/main.c: (main):
9760 * shell/rb-shell-player.c: (rb_shell_player_sync_play_order):
9761 Replace all g_critical calls with g_warning, since none of them are
9762 the sort of thing the process should die over. Fixes #329398.
9764 2006-02-03 James Livingston <jrl@ids.org.au>
9766 * configure.ac: mention gst-plugins-base in the error message for not
9767 finding GStreamer 0.10, since not having that will cause it to fail.
9769 2006-02-03 James Livingston <jrl@ids.org.au>
9771 * configure.ac: fix typo that means you get the wrong error message if
9772 you explicity request a particular playback engine, and it can't be
9775 2006-02-03 James Livingston <jrl@ids.org.au>
9777 * data/glade/library-prefs.glade: allow the watched library location
9778 to be a non-local place.
9780 ============ Version 0.9.3
9783 2006-02-02 James Livingston <jrl@ids.org.au>
9786 * configure.ac: bump version to 0.9.3
9788 * data/Makefile.am: pass make distcheck. patch from Christopher Aillon
9789 <caillon@redhat.com>, fixed bug 329517.
9791 2006-02-02 Jonathan Matthew <jonathan@kaolin.hn.org>
9793 Patch from Alex Lancaster <alexl@users.sourceforge.net>
9795 * widgets/rb-song-info.c: (rb_song_info_constructor):
9796 Make year and disc number fields non-editable if tag editing
9797 is disabled. Fixes #329463.
9799 2006-02-01 James Livingston <jrl@ids.org.au>
9801 * rhythmdb/rhythmdb-property-model.c:
9802 (rhythmdb_property_model_row_inserted_cb),
9803 (rhythmdb_property_model_prop_changed_cb),
9804 (rhythmdb_property_model_entry_removed_cb): handle hidden entries
9805 correctly. Fixes bug 327061.
9807 * rhythmdb/rhythmdb-query-model.c:
9808 (rhythmdb_query_model_entry_changed_cb): emit change notification of
9809 the HIDDEN property when an entry is removed for being hidden.
9811 * rhythmdb/rhythmdb-query-model.h:
9812 * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
9813 * widgets/rb-entry-view.c: (rb_entry_view_set_property): remove query
9814 models's "connected" property. Whatever it was needed for seems to
9817 2006-02-01 James Livingston <jrl@ids.org.au>
9819 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
9821 * shell/rb-shell-player.c: (_idle_unblock_signal_cb),
9822 (rb_shell_player_playing_changed_cb): block the signal to prevent
9823 re-entrancy. Fixes bug 329329 and fixes the first click of the play
9826 2006-02-01 James Livingston <jrl@ids.org.au>
9828 * metadata/rb-metadata-gst.c: a few gstreamer 0.10 fixes. Tag editing
9829 /should/ now work, if the neccessary plugins get ported.
9831 2006-01-30 James Livingston <jrl@ids.org.au>
9833 * daapsharing/rb-daap-connection.c: (entry_set_string_prop): Set
9834 string properties to "Unknown" is the string is empty. Kind of fixes
9837 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored): only do the
9838 gettext calls once, rather than once per time the function is used.
9839 This stops us making tens of thousands of gettext calls on startup,
9840 which reduces the cpu-time of startup by 10-20%
9842 2006-01-29 James Livingston <jrl@ids.org.au>
9844 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load):
9846 * metadata/rb-metadata-gst.c: emit RB_METADATA_ERROR_NOT_AUDIO_IGNORE
9847 for files containing known video streams.
9850 2006-01-29 Jonathan Matthew <jonathan@kaolin.hn.org>
9852 * INSTALL.quick: Random unupdates; gst-plugins-good isn't actually
9855 2006-01-29 Jonathan Matthew <jonathan@kaolin.hn.org>
9857 * INSTALL.quick: More random updates
9859 * rhythmdb/rhythmdb-query-model.c:
9860 (rhythmdb_query_model_class_init),
9861 (rhythmdb_query_model_set_property),
9862 (rhythmdb_query_model_get_property),
9863 (rhythmdb_query_model_finalize), (rhythmdb_query_model_new):
9864 Remove user sort data handling, take a property ID and a reverse
9866 (rhythmdb_query_model_insert_into_main_list),
9867 (rhythmdb_query_model_insert_into_limited_list),
9868 (rhythmdb_query_model_do_reorder),
9869 (_reverse_sorting_func):
9870 Handle reverse sorting by calling _reverse_sorting_func, which
9871 calls the real sort function and reverses the result.
9872 (rhythmdb_query_model_set_sort_order):
9873 Allow this to be called to set the initial sort order for limited
9874 queries, and handle reverse sorting when reordering.
9875 (rhythmdb_query_model_location_sort_func),
9876 (rhythmdb_query_model_album_sort_func),
9877 (rhythmdb_query_model_artist_sort_func),
9878 (rhythmdb_query_model_genre_sort_func),
9879 (rhythmdb_query_model_track_sort_func),
9880 (rhythmdb_query_model_double_ceiling_sort_func),
9881 (rhythmdb_query_model_ulong_sort_func),
9882 (rhythmdb_query_model_date_sort_func),
9883 (rhythmdb_query_model_string_sort_func):
9884 Sort functions moved from rb-entry-view.c.
9885 * rhythmdb/rhythmdb-query-model.h:
9886 Add the sort functions, and update the changed functions.
9888 * widgets/rb-entry-view.c: (rb_entry_view_set_property):
9889 Just call _resort_model when the query model is set, since it
9890 does all the same things.
9891 (rb_entry_view_append_column):
9892 Rework bits so the rating column doesn't have to be so much of a
9894 (rb_entry_view_append_column_custom):
9895 Take a property ID to sort on, rather than arbitrary custom data.
9896 (rb_entry_view_resort_model):
9897 Query model does all the reverse sort handling now.
9898 * widgets/rb-entry-view.h: Update _append_column_custom.
9900 * sources/rb-play-queue-source.c:
9901 (rb_play_queue_source_constructor):
9902 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
9903 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9904 (rb_podcast_source_post_date_cell_sort_func),
9905 (rb_podcast_source_post_status_cell_sort_func),
9906 (rb_podcast_source_post_feed_cell_sort_func):
9907 Updates required by all the other changes.
9909 * rhythmdb/rhythmdb-property-model.c:
9910 (rhythmdb_property_model_drag_data_get):
9911 Sort the query results on the selected property,
9912 so they arrive in the expected order. All the other changes were made
9913 to make this possible. Fixes bug #327494.
9915 2006-01-29 Jonathan Matthew <jonathan@kaolin.hn.org>
9917 * shell/rb-shell-clipboard.c:
9918 Use GTK_STOCK_REMOVE icon for the remove action in
9921 2006-01-29 Jonathan Matthew <jonathan@kaolin.hn.org>
9923 * sources/rb-play-queue-source.c:
9924 (rb_play_queue_source_constructor),
9925 (rb_play_queue_source_update_count):
9926 Don't make the 'queued songs' column clickable,
9927 and add the queued song count to the column title.
9929 2006-01-29 James Livingston <jrl@ids.org.au>
9931 * configure.ac: remove "experimental" marking from DAAP, and enable by
9932 default if the dependencies are found.
9934 2006-01-29 James Livingston <jrl@ids.org.au>
9938 2006-01-29 James Livingston <jrl@ids.org.au>
9940 patch by: William Jon McCann <mccann@jhu.edu>
9942 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
9943 (rb_podcast_source_feed_title_cell_data_func): Revert the change of
9944 property used for the feed list. Fixes problem with feeds with no
9945 episodes not showing up.
9947 2006-01-29 Jonathan Matthew <jonathan@kaolin.hn.org>
9949 * shell/rb-play-order-random-by-age-and-rating.c:
9950 (rb_random_by_age_and_rating_get_entry_weight):
9951 Fix compile errors, bug #328978.
9953 2006-01-28 Jonathan Matthew <jonathan@kaolin.hn.org>
9955 * INSTALL.quick, README: Random updates
9956 * README.lirc: Add notes on controlling Rhythmbox with LIRC
9958 2006-01-28 James Livingston <jrl@ids.org.au>
9960 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load): change the
9961 default rating back to 0 (from 2.5, which was needed for autorating).
9963 * shell/rb-play-order-random-by-age-and-rating.c:
9964 (rb_random_by_age_and_rating_get_entry_weight):
9965 * shell/rb-play-order-random-by-rating.c:
9966 (rb_random_by_rating_get_entry_weight): Treat ratings of 0 the same as
9967 2.5 for the purposes of weighting entries.
9969 2006-01-28 James Livingston <jrl@ids.org.au>
9971 * lib/rb-cut-and-paste-code.c: (rb_utf_friendly_time): Add some
9972 translator comments, to make it clearer what the "friendly time"
9973 formatting strings mean.
9975 2006-01-27 Jonathan Matthew <jonathan@kaolin.hn.org>
9977 * daapsharing/rb-daap-connection.c: (http_response_handler):
9978 Fix the sense of the overflow check so it'll accept valid input.
9980 2006-01-27 James Livingston <jrl@ids.org.au>
9982 Patch from Alex Lancaster <alexl@users.sourceforge.net>
9984 * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb): correctly
9985 escape paths when using rb_uri_handle_recursively. Closes bug 139646.
9987 2006-01-27 Jonathan Matthew <jonathan@kaolin.hn.org>
9989 Patch by: Alex Lancaster <alexl@users.sourceforge.net>
9991 * shell/rb-shell-player.c: (rb_shell_player_sync_with_source):
9992 Don't include the artist field in the window title if it's blank.
9995 2006-01-26 William Jon McCann <mccann@jhu.edu>
9997 * shell/rb-shell-clipboard.c (rb_shell_clipboard_actions):
9998 Use stock delete icon for move to trash and stock remove
9999 for remove menu item.
10001 2006-01-26 Jonathan Matthew <jonathan@kaolin.hn.org>
10003 * shell/rb-shell.c: (rb_shell_constructor),
10004 (idle_handle_load_complete): Don't start the playlist save
10005 timeout until we've loaded the playlists, otherwise we'll
10006 write an empty playlist file if startup takes too long.
10008 2006-01-25 William Jon McCann <mccann@jhu.edu>
10010 * shell/rb-shell.c: Make view toolbar toggle use
10011 shift+ctrl+t. Fixes #327585.
10013 2006-01-25 James Livingston <jrl@ids.org.au>
10015 patch by: Christope Fergeau <teuf@gnome.org>
10017 * daapsharing/rb-daap-connection.c: (g_zalloc_wrapper),
10018 (http_response_handler): fix a potential buffer overflow issue.
10020 2006-01-25 James Livingston <jrl@ids.org.au>
10022 * widgets/rb-entry-view.c: (rb_entry_view_append_column): make the
10023 Year column wide enough to display "Unknown"
10025 2006-01-25 James Livingston <jrl@ids.org.au>
10027 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
10028 (rb_podcast_source_post_status_cell_data_func): make the episode
10029 status wording better. Part of bug 321607.
10031 2006-01-25 James Livingston <jrl@ids.org.au>
10033 * data/ui/rhythmbox-ui.xml: separate the Move to Trash menu item from
10034 others with a separator.
10036 * shell/rb-shell-clipboard.c: Rename "Delete" to "Remove" and use the
10039 2006-01-24 Jonathan Matthew <jonathan@kaolin.hn.org>
10041 * data/rhythmbox.desktop.in: Add GTK to categories. Fixes #328047.
10043 2006-01-23 James Livingston <jrl@ids.org.au>
10045 * widgets/eggtrayicon.c: (egg_tray_icon_notify): support libnotify
10046 0.3.2. Fixed bug 328158.
10048 2006-01-23 James Livingston <jrl@ids.org.au>
10050 * metadata/rb-metadata-gst.c: (gst_date_gulong_transform),
10051 (gulong_gst_date_transform), (rb_metadata_class_init):
10052 * metadata/rb-metadata.h: fix support for Year metadata in gst 0.10.
10054 2006-01-23 Jonathan Matthew <jonathan@kaolin.hn.org>
10056 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
10057 (rhythmdb_commit_internal), (rhythmdb_entry_insert),
10058 (record_entry_change): Protect added_entries and changed_entries with
10059 a mutex, so it doesn't crash on startup on SMT/SMP machines.
10061 2006-01-23 James Livingston <jrl@ids.org.au>
10063 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): disable
10064 the browser for audio CDs.
10066 2006-01-22 James Livingston <jrl@ids.org.au>
10068 * daapsharing/rb-daap-mdns.c: (get_avahi_client): don't pass
10069 NEVER_FAIL as it causes the daemon-not-running error to never be
10070 reported, resulting in bug 319438 re-occurring.
10072 2006-01-22 Jonathan Matthew <jonathan@kaolin.hn.org>
10074 * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_all):
10075 Just call the podcast manager's update method. Unbreaks the 'update
10076 all feeds' command.
10078 2006-01-22 Jonathan Matthew <jonathan@kaolin.hn.org>
10080 * sources/Makefile.am: Fix typo. Fixes bug #327970.
10082 2006-01-21 Jonathan Matthew <jonathan@kaolin.hn.org>
10084 * configure.ac: Don't disable DAAP with gstreamer 0.10
10086 * daapsharing/rb-daap-src.c: (_do_init), (rb_daap_src_base_init),
10087 (rb_daap_src_class_init), (rb_daap_src_init),
10088 (rb_daap_src_finalize), (rb_daap_src_set_property),
10089 (rb_daap_src_get_property), (rb_daap_src_write),
10090 (rb_daap_src_read), (_expect_char), (rb_daap_src_read_chunk_size),
10091 (_split_uri), (rb_daap_src_open):
10092 * daapsharing/rb-daap-src.h:
10093 Mostly fix seeking, handle chunked transfer encoding, and port to
10096 * player/rb-player-gst.c:
10097 * sources/rb-daap-source.c: (start_browsing), (stop_browsing):
10098 Remove rb_daap_src_initialize and rb_daap_src_shutdown.
10100 Fixes bugs #326738 and #318852, and brings #309609 one step closer to
10103 2006-01-21 James Livingston <jrl@ids.org.au>
10105 patch by: Alex Lancaster <alexl@users.sourceforge.net> to add support
10106 for Year metadata in DAAP sources. Fixes bug 327700.
10108 * daapsharing/rb-daap-connection.c: (handle_song_listing):
10110 2006-01-20 William Jon McCann <mccann@jhu.edu>
10112 * widgets/rb-simple-view.c (rb_simple_view_button_press_cb): Use
10113 enum values instead of magic numbers.
10115 * widgets/rb-property-view.c (rb_property_view_cell_data_func):
10116 Add number of songs that match each property title into
10117 the cell. Also show the number of properties that match
10119 (rb_property_view_constructor): Use enum values instead of
10122 * sources/rb-podcast-source.c (rb_podcast_source_constructor):
10123 Query podcast posts instead of feeds for browser. Use
10124 post SUBTITLE which is the location for the property view.
10125 (rb_podcast_source_feeds_show_popup_cb): Remove unused code.
10126 (construct_query_from_selection)
10127 (rb_podcast_source_cmd_delete_feed)
10128 (rb_podcast_source_cmd_properties_feed)
10129 (rb_podcast_source_cmd_update_feed): Use variable to make
10130 it clear what the selection data represents.
10131 (rb_podcast_source_feed_title_cell_data_func): Add number
10132 of posts that belong to each feed in the browser.
10134 * rhythmdb/rhythmdb-property-model.c (rhythmdb_property_model_set_property): Allow using SUBTITLE property.
10135 (rhythmdb_property_model_delete_prop): Decrement the refcount
10137 (rhythmdb_property_model_get_column_type): Use column enum
10138 values instead of magic numbers. Add NUMBER column.
10139 (rhythmdb_property_model_get_value): Use enum.
10140 Add NUMBER column that represents the refcount for
10141 the title of that property.
10142 (rhythmdb_property_model_perform_sync): Don't fake up
10143 a title for All here.
10147 2006-01-21 James Livingston <jrl@ids.org.au>
10149 Make Rhythmbox start faster by not blocking the UI while database
10150 initialisation and loading occurs. Closes bug 323348.
10152 * rhythmdb/rhythmdb.c: (rhythmdb_init): make the library monitoring
10153 start 10 seconds later instead of immediately.
10155 (rhythmdb_commit_internal), (rhythmdb_commit): make rhythmdb_commit
10156 safe to call from any thread.
10158 (rhythmdb_process_metadata_load), (rhythmdb_process_events),
10159 (rhythmdb_load_thread_main), (rhythmdb_load): load the db in a thread,
10160 so the UI doesn't block.
10162 2006-01-18 James Livingston <jrl@ids.org.au>
10164 * sources/rb-static-playlist-source.c:
10165 (rb_static_playlist_source_do_query): fix dumb mistake I made that would
10166 cause crashes. Oops. fixes bug 327477.
10168 2006-01-17 William Jon McCann <mccann@jhu.edu>
10170 * player/rb-recorder-gst.c (rb_recorder_gst_free_pipeline):
10171 Set GST element state to NULL before unreffing.
10174 2006-01-18 James Livingston <jrl@ids.org.au>
10176 * sources/rb-static-playlist-source.c:
10177 (rb_static_playlist_source_do_query): don't filter on the SONG entry
10178 type, since the playlists can contain non-song entries. Fixes bug
10181 * sources/rb-play-queue-source.c:
10182 (rb_play_queue_source_class_init): disable the search box for the
10185 2006-01-18 James Livingston <jrl@ids.org.au>
10187 * sources/rb-podcast-source.c: (rb_podcast_source_constructor): allow
10188 dragging of podcast episodes. Fixed bug 327450.
10190 2006-01-18 James Livingston <jrl@ids.org.au>
10192 * rhythmdb/rhythmdb-query-model.c:
10193 (rhythmdb_query_model_drag_data_received): fix possible assertion when
10194 dragging to an emoty playlist.
10196 2006-01-18 Jonathan Matthew <jonathan@kaolin.hn.org>
10198 * sources/rb-playlist-source-recorder.c:
10199 Make the fake NAUTILUS_BURN_CHECK_VERSION macro work properly.
10201 2006-01-17 James Livingston <jrl@ids.org.au>
10203 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
10205 * sources/rb-audiocd-source.c: don't assert if MusicBrainz returns a
10206 different number of tracks than exist on the cd, since that happens
10207 with audio+data hybrid CDs. Part of bug 325046.
10209 2006-01-17 Jonathan Matthew <jonathan@kaolin.hn.org>
10211 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
10212 Remove useless call to gtk_tree_view_column_set_clickable().
10214 * widgets/rb-entry-view.c: (rb_entry_view_append_column_custom):
10215 Don't store sort data for columns if the sort function is NULL,
10216 so only sortable columns will be in the column sort data map.
10217 (rb_entry_view_set_columns_clickable): Only make columns we can sort
10219 (rb_entry_view_constructor): The 'playing icon' column is never
10220 clickable, so don't connect a signal handler for it.
10224 2006-01-17 James Livingston <jrl@ids.org.au>
10226 * metadata/rb-metadata-gst.c: don't set properties with gst 0.10 which
10227 are 0.8 only. Fix element detection.
10229 * rhythmdb/rhythmdb.c: (action_thread_main): reload old metadata is
10230 saving the new metadata failed
10232 2006-01-17 James Livingston <jrl@ids.org.au>
10234 * shell/rb-shell-player.c: (do_next_idle),
10235 (rb_shell_player_cmd_previous), (rb_shell_player_cmd_next),
10236 (eos_cb): release audio device when a playlist finishes. Fixes bug
10239 2006-01-17 James Livingston <jrl@ids.org.au>
10241 * rhythmdb/rhythmdb.c: (set_props_from_metadata), (queue_stat_uri):
10242 canonicalise the URIs when things are added via library watching.
10244 2006-01-16 William Jon McCann <mccann@jhu.edu>
10246 * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10247 Off by one error in default speed index.
10249 2006-01-16 William Jon McCann <mccann@jhu.edu>
10251 * sources/rb-playlist-source-recorder.c (get_write_speeds)
10252 (update_speed_combobox, update_speed_combobox):
10253 Get a list of the actually supported write speeds from
10254 n-c-b >= 2.13.90. Otherwise use fallback list.
10256 2006-01-17 James Livingston <jrl@ids.org.au>
10258 * lib/rb-file-helpers.c: (rb_uri_handle_recursively_cb),
10259 (rb_uri_handle_recursively): use gnome_vfs_directory_visit, so we
10260 don't get stuck on recursive symlinks. Fixed bug 125452.
10262 2006-01-17 James Livingston <jrl@ids.org.au>
10264 Add support for mass-storage audio players. Players are detected via
10265 either the HAL "audio_player" capability, or a ".is_audio_player" file
10266 in the root of the volume. Closes bug 325602.
10268 * configure.ac: separate using HAL from ipod support.
10270 * lib/rb-file-helpers.c: (rb_uri_is_local):
10271 * lib/rb-file-helpers.h: add function to determine whether a URI is
10274 * rhythmdb/rhythmdb.c: (rhythmdb_commit_internal),
10275 (rhythmdb_process_stat_event), (rhythmdb_process_metadata_load),
10276 (rhythmdb_process_file_created_or_modified), (queue_stat_uri),
10277 (queue_stat_uri_tad), (add_thread_main), (action_thread_main),
10278 (rhythmdb_add_uri), (rhythmdb_add_uri_with_type):
10279 * rhythmdb/rhythmdb.h: add rhythmdb_add_uri_with_type, so that
10280 directories can be scanned for files to add as non-SONG entries.
10282 * shell/rb-removable-media-manager.c:
10283 (rb_removable_media_manager_mount_volume): add checking for
10284 mass-storage players.
10286 * sources/rb-audiocd-source.c: (rb_audiocd_source_new):
10287 * sources/rb-ipod-source.c: (rb_ipod_source_new),
10289 * sources/rb-removable-media-source.c:
10290 (rb_removable_media_source_class_init),
10291 (rb_removable_media_source_constructor): move some things up to the
10292 RBRemovableMediaSource, rather than making subclasses do it.
10294 * sources/Makefile.am:
10295 * sources/rb-generic-player-source.c:
10296 * sources/rb-generic-player-source.h: add mass-storage player source.
10298 2006-01-16 James Livingston <jrl@ids.org.au>
10300 patch by: William Jon McCann <mccann@jhu.edu>
10302 * rhythmdb/rhythmdb-query-model.c:
10303 (rhythmdb_query_model_base_row_deleted): fix build issue from last
10306 2006-01-16 James Livingston <jrl@ids.org.au>
10308 Patch to add support for "chained queries" and putting hidden tracks
10309 in query models. Use chained queries to add search box support to
10310 normal playlists, and to make hidden entries not get lost. Fixes bug
10313 * rhythmdb/rhythmdb-query-model.h:
10314 * rhythmdb/rhythmdb-query-model.c:
10315 (rhythmdb_query_model_class_init),
10316 (rhythmdb_query_model_set_property),
10317 (rhythmdb_query_model_get_property):
10318 (rhythmdb_query_model_finalize): add "show-hidden" and
10319 "base-model" properties.
10321 (rhythmdb_query_model_set_connected),
10322 (rhythmdb_query_model_has_pending_changes),
10323 (rhythmdb_query_model_entry_added_cb),
10324 (rhythmdb_query_model_entry_changed_cb), (idle_process_update),
10325 (rhythmdb_query_model_add_entry), (rhythmdb_query_model_do_insert),
10326 (rhythmdb_query_model_remove_entry),
10327 (rhythmdb_query_model_drag_data_received),
10328 (rhythmdb_query_model_base_row_inserted),
10329 (rhythmdb_query_model_base_row_deleted),
10330 (rhythmdb_query_model_base_non_entry_dropped),
10331 (rhythmdb_query_model_base_complete),
10332 (rhythmdb_query_model_base_entry_prop_changed),
10333 (rhythmdb_query_model_base_rows_reordered),
10334 (rhythmdb_query_model_row_drop_possible): handle base-model by
10335 chaining events and operations where necessary. Make hidden entries
10336 not get added only if "show-hidden" is false.
10338 (rhythmdb_query_model_child_index_to_base_index),
10339 (rhythmdb_query_model_base_index_to_child_index),
10340 (rhythmdb_query_model_get_entry_index): utility functions for handling
10341 base-model entries.
10343 (rhythmdb_query_model_reapply_query): apply the current query, and
10344 remove entries that don't match it.
10346 * rhythmdb/rhythmdb-tree.c: (do_query_recurse): small optimisation for
10349 * sources/rb-source.c: (rb_source_set_property): move the unref later
10350 to fix problem if it is the last reference.
10352 * sources/rb-static-playlist-source.c:
10353 (rb_static_playlist_source_class_init),
10354 (rb_static_playlist_source_init),
10355 (rb_static_playlist_source_finalize),
10356 (rb_static_playlist_source_constructor), (impl_reset_filters),
10357 (impl_search), (rb_static_playlist_source_do_query),
10358 (impl_save_contents_to_xml),
10359 (rb_static_playlist_source_add_location_internal): use a chained query
10360 model to filter out hidden entries and implement the search box.
10362 2006-01-15 James Livingston <jrl@ids.org.au>
10364 * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml): fix
10365 the default playlist loading, which I broke earlier.
10367 2006-01-15 James Livingston <jrl@ids.org.au>
10369 patch by: William Jon McCann <mccann@jhu.edu>
10371 * sources/rb-playlist-source.c: (playlist_iter_func): use
10372 totem-plparser's new API version macros to check for API changes.
10373 Handle the recent API change.
10375 2006-01-15 Jonathan Matthew <jonathan@kaolin.hn.org>
10377 * sources/rb-library-source.c: (impl_get_config_widget):
10378 Ref the preferences object to match the unref in the
10379 finalizer. Fixes some portion of #323505.
10381 2006-01-15 Jonathan Matthew <jonathan@kaolin.hn.org>
10383 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_parse_response):
10384 * shell/rb-removable-media-manager.c: (begin_cd_drive_monitor):
10385 Fix valgrind warnings about accessing uninitialised values.
10387 2006-01-14 William Jon McCann <mccann@jhu.edu>
10389 * sources/rb-playlist-source-recorder.c: Make build on 2.12 again.
10391 2006-01-14 Jonathan Matthew <jonathan@kaolin.hn.org>
10393 * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
10394 Use RB_ENTRY_VIEW_NOT_PLAYING state when there's no playing entry.
10395 Stops the 'now playing' icon from being displayed after the play
10398 2006-01-14 Jonathan Matthew <jonathan@kaolin.hn.org>
10400 * podcast/rb-podcast-manager.c:
10401 (rb_podcast_manager_db_entry_deleted_cb):
10402 Don't try to delete files we never downloaded, and cancel downloads
10403 for deleted episodes. Fixes bug #326862.
10404 * sources/rb-podcast-source.c: (rb_podcast_source_cmd_delete_feed):
10405 Don't complain about NULL data items in the selection list.
10407 2006-01-14 James Livingston <jrl@ids.org.au>
10409 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
10410 Make the name ofthe queue non editable. Fixes bug 326918.
10412 2006-01-13 William Jon McCann <mccann@jhu.edu>
10414 * sources/rb-playlist-source-recorder.c (burn_cd)
10415 (ask_rewrite_disc): Don't use our locally copied functions
10416 if we have at least 2.13.
10418 2006-01-13 William Jon McCann <mccann@jhu.edu>
10420 * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init):
10421 Correct the argument type for the process_error signal.
10422 May fix bug #323154.
10424 2006-01-13 James Livingston <jrl@ids.org.au>
10426 save the queue to disk when exiting, and reload on startup. Fixed bug
10429 * shell/rb-playlist-manager.c:
10430 (rb_playlist_manager_load_playlists),
10431 (rb_playlist_manager_save_playlists_async): don't disable saving of
10434 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
10435 add the queue source as a gobject property.
10437 * sources/rb-play-queue-source.c:
10438 (rb_play_queue_source_class_init), (impl_save_contents_to_xml): add
10439 code to save the queue to xml
10441 * sources/rb-playlist-source.c: (rb_playlist_source_new_from_xml):
10442 load the queue from xml.
10443 * sources/rb-playlist-xml.h:
10445 * sources/rb-static-playlist-source.c:
10446 (rb_static_playlist_source_load_from_xml),
10447 (rb_static_playlist_source_new_from_xml):
10448 * sources/rb-static-playlist-source.h: split the playlist xml loading
10449 from the static playlist creation function, so the queue can use it.
10451 2006-01-13 James Livingston <jrl@ids.org.au>
10453 * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_visibility): remove
10454 assertion that should be there. Fixes bug 325923.
10456 * rhythmdb/rhythmdb.c: (rhythmdb_entry_new): make rhythmdb_entry_new
10457 return NULL if the entry already exists (e.g. as another type).
10458 * daapsharing/rb-daap-connection.c: (handle_song_listing):
10459 * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
10460 (rb_podcast_manager_insert_feed):
10461 * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry):
10462 * sources/rb-ipod-source.c: (load_ipod_db_idle_cb):
10463 * sources/rb-iradio-source.c: (rb_iradio_source_add_station): check
10464 for the above function returning NULL.
10466 2006-01-12 James Livingston <jrl@ids.org.au>
10468 * doc/reference/Makefile.am: make gtk-docs build again when libnotify
10469 is enabled. Fixes bug 326673.
10471 * doc/reference/tmpl/eggtrayicon.sgml:
10472 * doc/reference/tmpl/rb-daap-src.sgml:
10473 * doc/reference/tmpl/rb-source.sgml:
10474 * doc/reference/tmpl/rb-statusbar.sgml:
10475 * doc/reference/tmpl/rb-tree-model-sort.sgml:
10476 * doc/reference/tmpl/rhythmbox-unused.sgml:
10477 * doc/reference/tmpl/rhythmdb.sgml: updated gtk-docs
10479 2006-01-11 James Livingston <jrl@ids.org.au>
10481 * widgets/rb-song-info.c: (rb_song_info_constructor),
10482 (rb_song_info_new), (rb_song_info_populate_dialog_multiple),
10483 (rb_song_info_populate_dialog): fill in the fields if all tracks have
10484 the same value for properties. From bug 326054.
10486 2006-01-11 James Livingston <jrl@ids.org.au>
10488 * sources/rb-source.h:
10489 * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry),
10490 (rb_shell_player_set_playing_source_internal), (eos_cb):
10491 add support for RB_SOURCE_EOF_STOP, so that playback will stop after
10494 * sources/rb-podcast-source.c: (impl_handle_eos): make the podcast
10495 source use this. Closes bug 322077.
10497 2006-01-10 William Jon McCann <mccann@jhu.edu>
10499 * widgets/eggtrayicon.c (egg_tray_icon_notify):
10500 In order for set_icon_data_from_pixbuf() to be
10501 effective, one must not set an icon in _new().
10503 2006-01-10 William Jon McCann <mccann@jhu.edu>
10505 * widgets/eggtrayicon.c (egg_tray_icon_init)
10506 (egg_tray_icon_unrealize, egg_tray_icon_cancel_message)
10507 (egg_tray_icon_notify): Add support for libnotify 0.3.
10508 * widgets/Makefile.am: Add missing NOTIFY_CLAGS.
10509 * configure.ac: Determine the version of libnotify.
10512 2006-01-08 James Livingston <jrl@ids.org.au>
10514 * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): fix crasher when
10515 trying to share a track with unknown length.
10517 2006-01-08 Jonathan Matthew <jonathan@kaolin.hn.org>
10519 * shell/rb-shell-player.c: (rb_shell_player_init):
10520 Sync volume on startup so it doesn't default to 0.
10522 2006-01-08 Jonathan Matthew <jonathan@kaolin.hn.org>
10524 * shell/rb-shell-player.c: (rb_shell_player_class_init),
10525 (rb_shell_player_get_property), (rb_shell_player_open_location),
10526 (info_available_cb): Add the iradio streamed song title as a
10527 property, and emit a signal when it changes.
10529 * shell/rb-shell.c: (rb_shell_constructor),
10530 (rb_shell_player_elapsed_changed_cb),
10531 (rb_shell_player_stream_song_changed_cb):
10532 Issue a notification when the iradio song title changes.
10535 2006-01-08 Jonathan Matthew <jonathan@kaolin.hn.org>
10537 * shell/rb-shell-player.c: (rb_shell_player_init),
10538 (rb_shell_player_finalize), (rb_shell_player_set_property),
10539 (rb_shell_player_get_property), (rb_shell_player_sync_volume),
10540 (rb_shell_player_toggle_mute), (rb_shell_player_set_volume),
10541 (rb_shell_player_set_volume_relative),
10542 (rb_shell_player_get_volume), (rb_shell_player_set_mute),
10543 (rb_shell_player_get_mute):
10544 * shell/rb-shell-player.h:
10545 * shell/rb-shell-player.xml:
10546 Store volume as a property on RBShellPlayer, rather than in gconf.
10547 Add some methods to control volume via dbus.
10549 * shell/rb-shell.c: (rb_shell_constructor),
10550 (rb_shell_volume_widget_changed_cb),
10551 (rb_shell_player_volume_changed_cb):
10552 * shell/rb-tray-icon.c: (rb_tray_icon_scroll_event_cb):
10553 Update volume using player properties rather than gconf, and sync the
10554 volume with the volume control button when something else changes it.
10557 2006-01-07 William Jon McCann <mccann@jhu.edu>
10559 * shell/rb-tray-icon.c (tray_popup_position_menu):
10560 Make tray menu align with edge of panel.
10562 patch from Jaap A. Haitsma <jaap@haitsma.org>
10565 2006-01-07 William Jon McCann <mccann@jhu.edu>
10566 * shell/rb-shell.c (sourcelist_drag_received_cb):
10567 * shell/rb-playlist-manager.[ch] (create_name_from_selection_data)
10568 (rb_playlist_manager_new_playlist_from_selection_data):
10569 Make a reasonable default name for playlists created from
10570 dropped data. Fixes #326116.
10572 2006-01-07 William Jon McCann <mccann@jhu.edu>
10574 * sources/rb-playlist-source-recorder.c (update_speed_combobox):
10576 (burn_cd): Always eject CD after burning. Too many drives
10577 get confused if we don't. Save the speed used if the burn
10578 was completed successfully.
10580 * data/rhythmbox.schemas: Use our own speed instead of from
10581 n-c-b. The situation is that the default_speed for n-c-b is most
10582 likely the maximum write speed. This is fine for n-c-b because it
10583 has burn-proof turned on. We can't turn it on for audio CDs
10584 because the results are poor in quality. So we'll just pick a
10585 default that should work for everyone (4).
10587 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
10589 * shell/rb-playlist-manager.c: (reap_dead_playlist_threads),
10590 (rb_playlist_manager_shutdown): Fix more compile errors with GCC 4.1.
10592 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
10594 * shell/rb-shell.c: (rb_shell_add_uri): Fix compile error introduced
10595 in my previous commit. Fixes #326037.
10597 2006-01-06 Ryan P Skadberg <skadz@stigmata.org>
10599 patch by: Jonathan Matthew
10601 * rhythmdb/rhythmdb.c: (rhythmdb_event_free): Fixed compile
10602 error on Fedora Rawhide.
10604 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
10606 * shell/rb-shell.c: (rb_shell_guess_type_for_uri):
10607 Assume HTTP URLs ending with .xml or .rss are podcasts.
10608 (rb_shell_add_uri): Handle adding podcast feeds.
10610 * sources/rb-podcast-source.c: (rb_podcast_source_new):
10611 Register as the source for podcast feeds.
10613 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
10615 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_set_property):
10616 * shell/rb-shell-preferences.c: (rb_shell_preferences_append_page),
10617 (rb_shell_preferences_append_view_page):
10618 * shell/rb-shell-preferences.h:
10619 Fix typo in function name. Fixes #325992.
10621 2006-01-07 Jonathan Matthew <jonathan@kaolin.hn.org>
10623 * shell/rb-audioscrobbler.c:
10624 Add '+' to the list of characters to URI-encode, so it doesn't get
10625 interpreted as a space.
10627 2006-01-06 Jonathan Matthew <jonathan@kaolin.hn.org>
10629 * daapsharing/rb-daap-connection.c: (rb_daap_connection_logout),
10630 (rb_daap_connection_do_something): Don't crash if the DAAP server
10631 goes away while we're still trying to log in.
10633 2006-01-06 James Livingston <jrl@ids.org.au>
10635 * rhythmdb/rhythmdb.c: (rhythmdb_query_preprocess): fix Year criteria.
10637 2006-01-06 James Livingston <jrl@ids.org.au>
10639 Patch from: Alex Lancaster <alexl@users.sourceforge.net> to add
10640 support for Year to automatic playlists. Closes bug 321341.
10642 * rhythmdb/rhythmdb-query-model.c:
10643 (rhythmdb_query_model_set_property):
10644 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
10645 * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
10646 (rhythmdb_query_free), (rhythmdb_query_serialize),
10647 (rhythmdb_query_deserialize), (rhythmdb_query_internal),
10648 (rhythmdb_query_get_type), (rhythmdb_query_preprocess):
10649 * rhythmdb/rhythmdb.h: Support special
10650 RHYTHMDB_QUERY_PROP_YEAR_{EQUALS,GREATER,LESS} database search for
10653 * widgets/rb-query-creator-properties.c:
10654 (yearCriteriaCreateWidget), (yearCriteriaSetWidgetData),
10655 (yearCriteriaGetWidgetData): add Year to the list of criteria options.
10657 2006-01-06 James Livingston <jrl@ids.org.au>
10659 * configure.ac: make the playback backend selection work correctly
10661 * daapsharing/rb-daap-src.c: (rb_daap_src_get_type),
10662 (rb_daap_src_class_init), (rb_daap_src_dispose),
10663 (rb_daap_src_change_state), (rb_daap_src_initialize):
10664 * daapsharing/rb-daap-src.h: revent the G_DEFINE_TYPE change, since it
10665 doesn't work for this class. Fixes bug 325934
10667 2006-01-06 Jonathan Matthew <jonathan@kaolin.hn.org>
10669 * configure.ac: Fix check for libnotify.
10671 2006-01-05 William Jon McCann <mccann@jhu.edu>
10673 * sources/rb-playlist-source.c (xml_get_and_trim_names):
10674 Get name element for current lang and remove all name nodes
10676 (get_playlist_name_from_xml): Try to get name element or
10677 fall back to name attribute.
10678 (rb_playlist_source_new_from_xml): Get name before turning over
10679 to sub-types for parsing so that we can remove name elements
10680 from the tree if necessary.
10682 * shell/rb-playlist-manager.c (rb_playlist_manager_load_playlists):
10683 Load default playlists file if per user playlists are not found.
10685 * data/playlists.xml.in:
10686 * data/Makefile.am:
10687 * data/.cvsignore: Add default set of playlists.
10690 2006-01-05 Jonathan Matthew <jonathan@kaolin.hn.org>
10692 * shell/main.c: (main): Don't use the dbus interface to show the
10693 window if we're also going to use the bonobo interface.
10695 2006-01-05 Jonathan Matthew <jonathan@kaolin.hn.org>
10697 * shell/rb-history.c: (rb_history_set_playing):
10698 Allow setting the playing song to NULL.
10699 (rb_history_append), (rb_history_delete_link):
10700 Don't randomly change position when entries are added and removed,
10701 it confuses play orders.
10703 * shell/rb-play-order-random.c: (rb_random_play_order_class_init):
10704 Random orders always have a next entry if the model is not empty.
10705 (rb_random_play_order_get_next), (rb_random_play_order_go_next):
10706 Go back to the start of the history if we're past its end.
10708 * shell/rb-play-order-shuffle.c: (rb_shuffle_play_order_get_next),
10709 (rb_shuffle_play_order_go_next): Go back to the start of the history
10710 if we're past its end.
10711 (rb_shuffle_sync_history_with_query_model): Go back to the start of
10712 the history if the current entry is removed.
10714 * shell/rb-play-order.c: (rb_play_order_entry_added_cb),
10715 (rb_play_order_entry_deleted_cb): Only update have next/previous for
10716 the play order when the query has finished. This wasted about 10% CPU
10717 while the query was running.
10719 Fixes #324641: assertion failures when the query model was changed
10720 such that the playing song was no longer present.
10722 2006-01-05 James Livingston <jrl@ids.org.au>
10724 * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
10725 (rb_daap_src_dispose), (rb_daap_src_change_state):
10726 * rhythmdb/rhythmdb-gda.c: (rhythmdb_gda_class_init),
10727 (rhythmdb_gda_finalize):
10728 * widgets/rb-cell-renderer-pixbuf.c:
10729 * widgets/rb-cell-renderer-rating.c:
10730 (rb_cell_renderer_rating_class_init),
10731 (rb_cell_renderer_rating_finalize):
10732 * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_finalize):
10733 * widgets/rb-load-failure-dialog.c:
10734 (rb_load_failure_dialog_class_init),
10735 (rb_load_failure_dialog_finalize):
10736 * widgets/rb-rating.c: (rb_rating_class_init),
10737 (rb_rating_finalize):
10738 * widgets/rb-search-entry.c: (rb_search_entry_class_init),
10739 (rb_search_entry_finalize): use G_DEFINE_TYPE
10741 * widgets/rb-tree-model-sort.{c.h}: remove obsolete files from cvs.
10743 2006-01-05 James Livingston <jrl@ids.org.au>
10745 patch by: Lubomir Marinov <lubomir.marinov@gmail.com>
10747 * shell/rb-commander.{c,h}: remove obsolete files, that weren't put in
10750 * shell/rb-history.c: (rb_history_class_init),
10751 (rb_history_finalize):
10752 * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
10753 (rb_playlist_manager_finalize):
10754 * shell/rb-remote.c: (rb_remote_finalize), (rb_remote_class_init),
10755 (rb_remote_init): use G_DEFINE_TYPE.
10757 2006-01-05 James Livingston <jrl@ids.org.au>
10759 * configure.ac: don't try to use libnotify >= 0.3.0 because of API
10762 2006-01-04 William Jon McCann <mccann@jhu.edu>
10764 * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
10765 Disable burn action when source is not a playlist.
10768 2006-01-04 Jonathan Matthew <jonathan@kaolin.hn.org>
10770 Optionally use libnotify to display song change and other
10771 notifications, and provide an option to disable notifications.
10772 Fixes #320355 and innumerable informal complaints.
10774 * widgets/eggtrayicon.c: (egg_tray_icon_init),
10775 (egg_tray_icon_unrealize), (egg_tray_icon_send_message),
10776 (egg_tray_icon_cancel_message), (egg_tray_icon_hide_notify_cb),
10777 (egg_tray_icon_notify):
10778 * widgets/eggtrayicon.h:
10780 * shell/Makefile.am:
10781 Optionally use libnotify instead of eggnotificationbubble.
10783 * shell/rb-tray-icon.c: (rb_tray_icon_class_init),
10784 (rb_tray_icon_constructor),
10785 (rb_tray_icon_show_notifications_changed_cb),
10786 (rb_tray_icon_hide_notify_cb)
10787 (rb_tray_icon_cancel_notify), (rb_tray_icon_notify):
10788 Add 'show notifications' action handling, use G_DEFINE_TYPE, move
10789 EggNotificationBubble pointer to eggtrayicon.
10791 * data/ui/rhythmbox-ui.xml: Add 'show notifications' menu item
10792 * lib/rb-preferences.h: Add #define for /ui/show_notifications key
10793 * data/rhythmbox.schemas: Add schema for /ui/show_notification key
10795 2006-01-04 William Jon McCann <mccann@jhu.edu>
10797 * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10798 Request a minimum size for the progress bar so that
10799 the window doesn't shrink too small.
10801 2006-01-03 Jonathan Matthew <jonathan@kaolin.hn.org>
10803 * daapsharing/rb-daap-share.c: (databases_cb): (db_entry_added_cb),
10804 (add_db_entry), (db_entry_deleted_cb):
10805 Don't track the number of songs currently present, track the next ID
10806 to assign. Fixes potential ID conflict problems.
10808 (db_entry_changed_cb), (rb_daap_share_start_publish),
10809 (rb_daap_share_stop_publish):
10810 Watch for db entry changes, and when songs become non-hidden after
10811 a successful stat, add them to the mapping tables. Fixes #325178,
10812 making the DAAP server usable again.
10814 2006-01-03 Jonathan Matthew <jonathan@kaolin.hn.org>
10816 * shell/rb-statusbar.c: (rb_statusbar_class_init),
10817 (rb_statusbar_construct), (rb_statusbar_init),
10818 (rb_statusbar_finalize), (rb_statusbar_set_property),
10819 (rb_statusbar_get_property), (rb_statusbar_new),
10820 (rb_statusbar_sync_with_source):
10821 * shell/rb-statusbar.h:
10822 Remove visibility management code, stop watching for play order
10823 changes (status bar doesn't show play order any more), remove unused
10824 'player' property, and some other minor cleanup.
10826 * shell/rb-shell.c: (rb_shell_constructor),
10827 (rb_shell_view_statusbar_changed_cb), (rb_shell_sync_smalldisplay),
10828 (rb_shell_sync_statusbar_visibility):
10829 Manage status bar visibility here rather than in the status bar
10830 itself, so we can take small mode into account. Fixes #323589.
10832 2006-01-03 Jonathan Matthew <jonathan@kaolin.hn.org>
10834 * widgets/eggnotificationbubble.c: (draw_bubble):
10835 Move the bubble off the visible screen while setting up bevels.
10838 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
10840 * shell/rb-shell-player.c: (rb_shell_player_init),
10841 (rb_shell_player_finalize):
10842 Remove unused structure members.
10844 (do_next_idle), (rb_shell_player_error):
10845 Only queue one call to do_next_idle, so we don't skip tracks if we get
10846 two errors for the same song. Fixes #325216.
10848 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
10850 * data/glade/podcast-feed-properties.glade,
10851 podcast/rb-feed-podcast-properties-dialog.c:
10852 (rb_feed_podcast_properties_dialog_init),
10853 (rb_feed_podcast_properties_dialog_update):
10854 Add 'last episode' field to the podcast feed properties dialog.
10856 * podcast/rb-feed-podcast-properties-dialog.c:
10857 (rb_feed_podcast_properties_dialog_update_last_update),
10858 (rb_feed_podcast_properties_dialog_update_last_episode),
10859 podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10860 Use last-seen property for the time at which we last updated the feed,
10861 and post-time for the time the last episode was published.
10863 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element):
10864 Handle upgrades from 0.9.2; if no post-time was found for a podcast
10865 feed, use last-seen (which in 0.9.2 was the last post time).
10869 2006-01-01 James Livingston <jrl@ids.org.au>
10871 patch by: Gunnar Steinn Magnusson <gsm@gunnarsteinn.com>
10873 * sources/rb-ipod-source.c: (load_ipod_db_idle_cb): read playcount and
10874 year from the ipod database.
10876 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
10878 * metadata/rb-metadata-gst.c: (rb_metadata_gst_new_decoded_pad_cb):
10879 Only set the pipeline back to NULL state for really uninteresting
10880 files. This was causing deadlocks with various video files.
10883 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
10885 * data/glade/song-info-multiple.glade:
10886 Add disc number label and field.
10887 * widgets/rb-song-info.c: (rb_song_info_construct_single),
10888 (rb_song_info_constructor):
10889 Handle widgets for disc number.
10890 (rb_song_info_sync_entries_multiple):
10891 Set disc number property on selected entries.
10894 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
10896 * iradio/rb-new-station-dialog.c: (rb_new_station_dialog_init):
10897 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
10898 Activate the default widget when enter is pressed in these dialogs.
10901 2006-01-01 Jonathan Matthew <jonathan@kaolin.hn.org>
10903 * shell/rb-shell-player.c: (rb_shell_player_get_playing_path):
10904 Use rb_shell_player_get_playing_entry, so we get the right entry
10905 when playing from the queue. Fixes #325379.
10907 2005-12-31 Jonathan Matthew <jonathan@kaolin.hn.org>
10909 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
10910 Include podcast posts with no publication date. Typically
10911 seen in static collections rather than feeds.
10913 2005-12-31 Jonathan Matthew <jonathan@kaolin.hn.org>
10915 * shell/main.c: (main): Don't attempt to handle
10916 bonobo-only arguments if we couldn't get a bonobo
10919 2005-12-31 Jonathan Matthew <jonathan@kaolin.hn.org>
10921 * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_publish),
10922 (rb_daap_mdns_publish_cancel): Clear our_service_name so we don't
10923 abort if daap sharing is disabled and then re-enabled.
10925 2005-12-29 William Jon McCann <mccann@jhu.edu>
10927 * podcast/rb-podcast-parse.c (rb_insert_item):
10929 (rb_podcast_parser_start_element): Support itunes:image.
10930 Add debugging. Don't abuse the break statement. Warn
10931 if state is unknown.
10932 (rb_podcast_parser_end_element): Add debugging. Warn
10933 if state is unknown.
10934 (rb_podcast_parser_characters): Warn if state is unknown.
10936 Fixes parsing of feeds that use the itunes:image element.
10939 2005-12-28 Jonathan Matthew <jonathan@kaolin.hn.org>
10941 * sources/rb-iradio-source.c: (handle_playlist_entry_cb),
10942 (stations_view_drag_data_received_cb):
10943 Remove calls to rhythmdb_entry_lookup_by_location, as
10944 rb_iradio_source_add_station does that anyway.
10946 (rb_iradio_source_add_from_playlist):
10947 If the URL doesn't point to a playlist, add it as the stream
10950 2005-12-27 Jonathan Matthew <jonathan@kaolin.hn.org>
10952 * rhythmdb/rhythmdb.h: (rhythmdb_entry_get_string):
10953 just return NULL for RHYTHMDB_PROP_SEARCH_MATCH,
10954 so we don't get an assertion failure.
10957 2005-12-24 Jonathan Matthew <jonathan@kaolin.hn.org>
10959 * shell/main.c: (load_uri_args): don't compile this in if
10960 neither bonobo nor dbus are enabled. Fixes #324890.
10962 2005-12-22 Jonathan Matthew <jonathan@kaolin.hn.org>
10964 * sources/rb-audiocd-source.c:
10965 (rb_audiocd_scan_songs): Always return the pipeline to NULL state,
10966 so it closes the device.
10968 2005-12-20 James Livingston <jrl@ids.org.au>
10970 * metadata/rb-metadata-gst.c: make the state changes time-out again,
10971 so that it doesn't spend forever getting stuck on the one file. Don't
10972 report errors for failing to change state on known non-audio files.
10974 * player/rb-player-gst.c: (rb_player_construct): let playbin deal with
10975 audio sink creation if we can't create the gconfaudiosink. This lets
10976 it work with only gst-plugins-base on 0.10.
10978 2005-12-20 Jonathan Matthew <jonathan@kaolin.hn.org>
10980 * rhythmdb/rhythmdb-query-model.c:
10981 (rhythmdb_query_model_set_sort_order):
10982 Fix a tiny memory leak in the previous commit.
10984 2005-12-20 Jonathan Matthew <jonathan@kaolin.hn.org>
10986 * rhythmdb/rhythmdb-query-model.c:
10987 (rhythmdb_query_model_set_sort_order):
10988 Don't try to emit reorders for empty query models, since it doesn't
10989 achieve anything and it results in a few warnings.
10991 2005-12-19 William Jon McCann <mccann@jhu.edu>
10993 * sources/rb-playlist-source-recorder.c (rb_playlist_source_recorder_init):
10994 Make burn dialog non-resizable so that the expander can shrink.
10997 2005-12-19 Jonathan Matthew <jonathan@kaolin.hn.org>
10999 * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): really refuse to
11000 add entries without a location, rather than those with one.
11002 2005-12-19 James Livingston <jrl@ids.org.au>
11004 * shell/rb-shell-player.c: (rb_shell_player_cmd_play): don't crash if
11005 the error isn't set.
11007 2005-12-19 James Livingston <jrl@ids.org.au>
11008 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): don't
11009 add entries without a location. Fixes bug 324290.
11011 * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert): refuse to add entries
11012 without a location.
11014 * shell/main.c: (main): don't crash if dbus initialisation fails
11015 without setting an error
11017 2005-12-19 Jonathan Matthew <jonathan@kaolin.hn.org>
11019 * sources/rb-library-source.c: Remove unused structure members
11020 (rb_library_source_do_query): Actually use the cached 'all' query.
11023 2005-12-16 Jonathan Matthew <jonathan@kaolin.hn.org>
11025 * sources/rb-audiocd-source.c
11026 (rb_audiocd_get_cd_info): tab
11027 (rb_audiocd_scan_songs): Return boolean success/failure,
11028 fix error messages a bit.
11029 (metadata_cb): Don't crash if we have no tracks
11030 (rb_audiocd_load_songs): Don't try to read metadata if we can't read
11034 2005-12-15 William Jon McCann <mccann@jhu.edu>
11036 * shell/rb-shell.c (rb_shell_sync_fullscreen)
11037 (rb_shell_view_fullscreen_changed_cb): Fix sense of fullscreen gconf
11040 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
11043 2005-12-14 William Jon McCann <mccann@jhu.edu>
11045 * shell/rb-shell.c (rb_shell_constructor, rb_shell_finalize)
11046 (rb_shell_view_fullscreen_changed_cb, rb_shell_sync_fullscreen)
11047 (fullscreen_changed_cb):
11048 * lib/rb-preferences.h:
11049 * data/ui/rhythmbox-ui.xml:
11050 * data/rhythmbox.schemas:
11051 Add fullscreen mode.
11055 2005-12-14 Ryan P Skadberg <skadz@stigmata.org>
11057 * configure.ac: Removed DBUS_SERVICES_DIR from top-level
11058 configure. It was not working with RPM.
11059 * data/Makefile.am: Switched dbus directory location to use
11060 datadir instead of variable that was not working.
11062 2005-12-13 James Livingston <jrl@ids.org.au>
11064 patch by: Alex Lancaster <alexl@users.sourceforge.net>
11066 * sources/rb-podcast-source.c: (rb_podcast_source_class_init): make
11067 the podcast browser work again. Closes bug 323856.
11069 2005-12-12 William Jon McCann <mccann@jhu.edu>
11071 * sources/rb-podcast-source.c (rb_podcast_source_cmd_properties_feed):
11074 * lib/rb-cut-and-paste-code.c: (eel_strdup_strftime),
11075 (rb_utf_friendly_time):
11076 * lib/rb-cut-and-paste-code.h:
11078 * podcast/rb-feed-podcast-properties-dialog.c:
11079 (rb_feed_podcast_properties_dialog_parse_time):
11080 * podcast/rb-podcast-properties-dialog.c:
11081 (rb_podcast_properties_dialog_parse_time): use rb_utf8_friendly_time
11082 to display the date in a more user friendly way.
11083 For example, if the feed was updated yesterday it will say:
11084 Last updated: Yesterday 10:00 AM
11085 instead of printing the date.
11087 2005-12-12 William Jon McCann <mccann@jhu.edu>
11089 * podcast/rb-podcast-parse.c (rb_set_channel_value)
11090 (rb_set_item_value, rb_insert_item, rb_validate_channel_propert)
11091 (rb_validate_item_propert, rb_podcast_parser_start_element)
11092 (rb_podcast_parser_end_element, rb_podcast_parser_characters):
11093 Use RB style. Check for NULL before strcmp. No C++ comments.
11094 (rb_podcast_parse_load_feed): Fix double free of xmlSAXHandler.
11095 Don't set invalid mime type when mime type is NULL. Fix leaks.
11096 (rb_podcast_parse_date): Add support for some real world
11098 (rb_podcast_parse_time, rb_podcast_parse_channel_free)
11099 (rb_podcast_parse_item_free): Style and no need to check
11100 for NULL before g_free.
11104 2005-12-12 James Livingston <jrl@ids.org.au>
11106 * player/rb-recorder-gst.c: (rb_recorder_construct): use audioresample
11107 with gstreamer 0.10, which replaced audioscale.
11109 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_finalize): use correct
11110 function to free the SoupSession
11112 * shell/rb-source-header.c: (rb_source_header_set_property),
11113 (rb_source_header_disclosure_toggled_cb),
11114 (rb_source_header_view_browser_changed_cb),
11115 (rb_source_header_sync_control_state):
11116 * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
11117 * sources/rb-library-source.c: (rb_library_source_class_init):
11118 * sources/rb-source.c: (rb_source_class_init),
11119 (rb_source_get_status), (default_get_browser_key),
11120 (rb_source_get_browser_key), (rb_source_can_browse),
11121 (rb_source_notify_status_changed),
11122 (rb_source_notify_filter_changed):
11123 * sources/rb-source.h: seperate the enabling of browsers from the use
11126 2005-12-11 William Jon McCann <mccann@jhu.edu>
11128 * data/glade/podcast-feed-properties.glade:
11129 * data/glade/podcast-properties.glade: Use scrolled viewports
11130 for description text. Fix regression of #320509.
11132 2005-12-11 James Livingston <jrl@ids.org.au>
11134 * sources/rb-auto-playlist-source.c:
11135 (rb_auto_playlist_source_class_init), (impl_reset_filters),
11136 (impl_search), (rb_auto_playlist_source_do_query),
11137 (rb_auto_playlist_source_set_query),
11138 (rb_auto_playlist_source_get_query): add support for the search box
11139 to automatic playlists.
11141 * sources/rb-library-source.c: (rb_library_source_dispose): fix minor
11144 2005-12-11 James Livingston <jrl@ids.org.au>
11146 * NEWS: update NEWS
11148 2005-12-11 James Livingston <jrl@ids.org.au>
11150 * rhythmdb/rhythmdb.c: (rhythmdb_sync_library_idle),
11151 (rhythmdb_load), (monitor_subdirectory),
11152 (rhythmdb_sync_library_location): start the library sync and
11153 monitoring in an idle callback.
11155 2005-12-10 William Jon McCann <mccann@jhu.edu>
11157 * sources/rb-podcast-source.c (rb_podcast_source_class_init)
11158 (rb_podcast_source_constructor): Remove unused pixbuf column.
11159 (rb_podcast_source_set_property, rb_podcast_source_get_property):
11160 Use consistent style.
11164 2005-12-11 James Livingston <jrl@ids.org.au>
11166 * rhythmdb/rhythmdb-property-model.c:
11167 (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
11168 (rhythmdb_property_model_insert),
11169 (rhythmdb_property_model_delete_prop):
11170 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_init),
11171 (rhythmdb_tree_finalize), (rhythmdb_tree_property_new),
11172 (destroy_tree_property):
11173 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_finalize),
11174 (rhythmdb_entry_allocate), (rhythmdb_entry_destroy): remove the use of
11175 GMemChunks, they are crap and deprecated. Improves startup-time and
11176 memory usage slightly.
11178 2005-12-10 William Jon McCann <mccann@jhu.edu>
11180 * shell/rb-shell.c (rb_shell_cmd_about): Updated copyright.
11181 Added license and website info.
11183 * MAINTAINERS.old: Add Colin.
11184 * MAINTAINERS: Add James.
11185 * AUTHORS: Put back in order. Add extra space between name and email
11186 to make it easier to read. Add James and jonathan.
11188 * widgets/rb-song-info.c (rb_song_info_init)
11189 (rb_song_info_constructor): Make sure close button is primary/rightmost.
11191 2005-12-10 Jonathan Matthew <jonathan@kaolin.hn.org>
11193 Play queue implementation. Closes bug 107787.
11195 * data/rhythmbox.schemas: add items for whether the queue should be
11196 displayed as a sidebar, and the height of the sourcelist if it is.
11198 * data/ui/rhythmbox-ui.xml: add 'add to queue' actions for library,
11199 playlist, and podcast popups; add 'view queue as sidebar' menu item,
11200 add popups for queue as source and as sidebar. We need a separate
11201 popup for the sidebar view because otherwise it's hard to tell which
11202 of the visible entry views the action came from.
11204 * lib/rb-preferences.h: Add constant for queue-as-sidebar preference
11206 * po/POTFILES.in: Add new file
11208 * podcast/rb-podcast-manager.{c,h} (rb_podcast_manager_entry_downloaded):
11209 Add helper function for deciding if a podcast episode is available for
11212 * rhythmdb/rhythmdb-query-model.{c,h}: Add ability to programmatically
11213 reorder entries in the query model.
11214 (idle_process_update): Handle new update type used to insert entries
11215 at a particular position in the query model.
11216 (rhythmdb_query_model_add_entry): Use new update type, take an 'index'
11217 parameter to specify the position (-1 meaning 'at the end').
11218 (rhythmdb_query_model_insert_into_main_list): Handle the 'index'
11220 (rhythmdb_query_model_remove_from_main_list): Abort if we're getting
11221 bad entry removal updates for entries that aren't in the model.
11222 (rhythmdb_query_model_emit_reorder): Add helper function for
11224 (rhythmdb_query_model_move_entry): New method for moving entries
11225 around in the model
11226 (rhythmdb_query_model_entry_added_cb),
11227 (rhythmdb_query_model_update_limited_entries),
11228 (rhythmdb_query_model_do_reorder),
11229 (rhythmdb_query_model_do_insert): Pass through the index parameter,
11230 use rhythmdb_query_model_emit_reorder where appropriate.
11232 * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11233 Don't allow the queue to be deleted.
11234 (handle_playlist_entry_cb): Update for method signature change
11235 (rb_playlist_manager_save_playlists_async),
11236 (rb_playlist_manager_get_playlists): Don't save the play queue,
11237 don't report it as a playlist.
11239 * shell/rb-play-order.c: Include queue play order in the list of
11243 (rb_shell_class_init), (rb_shell_get_property): Add new property
11244 for access to the clipboard object.
11245 (rb_shell_constructor): Handle playing-from-queue signal to update the
11246 sourcelist display; add queue sidebar in to UI, listen for queue
11247 sidebar pane changes, and read initial settings from gconf.
11248 (rb_shell_playing_source_changed_cb), (rb_shell_playing_from_queue_cb):
11249 Only tell the sourcelist the source has changed if the new source is
11250 not the queue, as we update the sourcelist differently in that case.
11251 (rb_shell_set_window_title): Only use the cached window title if the
11252 playing state was the same when it was created.
11253 (rb_shell_view_queue_as_sidebar_changed_cb): Mangle UI on request.
11254 (rb_shell_sync_pane_visibility): Only hide the side pane if the
11255 sourcelist is hidden and the queue is shown as a source.
11256 (rb_shell_sync_smalldisplay): Disable 'view queue as sidebar' in small
11257 mode, since it doesn't make any sense.
11258 (sourcelist_visibility_changed_cb): Update the visibility of the pane
11260 (rb_shell_sync_paned): Update the queue sidebar pane separator too.
11261 (sidebar_paned_size_allocate_cb): Update sourcelist height in gconf.
11262 (rb_shell_jump_to_entry_with_source): Handle jump to entry when
11263 playing from queue shown as sidebar.
11265 * shell/rb-shell-clipboard.c: Use G_DEFINE_TYPE, move the
11266 MusicProperties action here from rb-shell-player.c, since it acts like
11267 cut/copy/paste etc.
11268 (rb_shell_clipboard_class_init), (rb_shell_clipboard_set_property),
11269 (rb_shell_clipboard_get_property): new property for queue source.
11270 Watch for selection changes in the sidebar entry view as well as the
11272 (rb_shell_clipboard_sync): Rearrange code slightly, include sidebar
11273 actions and MusicProperties.
11274 (rb_shell_clipboard_cmd_queue_delete),
11275 (rb_shell_clipboard_cmd_add_song_to_queue),
11276 (rb_shell_clipboard_cmd_song_info),
11277 (rb_shell_clipboard_cmd_queue_song_info): New action handlers.
11279 * shell/rb-shell-player.{c,h}: Track the source the current playing entry
11280 actually came from (could be the playing source, or the queue), add a
11281 new play order object for the queue, add a property for the queue
11282 source, add a signal for when we switch between playing from the
11283 source and from the queue.
11284 (rb_shell_player_set_property): Handle playing directly from the
11285 queue so we stop once the queue is empty. Create queue play order
11286 when we get the queue source.
11287 (rb_shell_player_get_playing_source): Return the source we're actually
11289 (rb_shell_player_get_playing_entry): Get playing entry from queue if
11290 that's where it is.
11291 (rb_shell_player_set_playing_entry): Update the queue play order if
11292 that's where we're playing from.
11293 (rb_shell_player_play_order_update_cb): Take has next/previous for the
11294 queue into consideration too.
11295 (swap_playing_source): Helper function for switching the playing
11297 (rb_shell_player_do_previous): Check the queue, even though there's
11298 never a previous entry in it (yet), swap playing source if it changed.
11299 (rb_shell_player_do_next): Check the queue for entries to play before
11300 the normal play order, and swap playing source if it changed.
11301 (rb_shell_player_do_previous_or_seek): Check the queue for previous
11302 entries to go to as well.
11303 (rb_shell_player_playpause): Check the queue before the selection and
11304 the play order, and swap playing source if it changed.
11305 (rb_shell_player_cmd_song_info): Move to rb-shell-clipboard.c
11306 (rb_shell_player_entry_activated_cb): Use
11307 rb_podcast_manager_entry_downloaded, do some tapdancing to make
11308 activating queue entries work properly (move the activated entry to
11309 the start of the queue and then play it); if we were playing from the
11310 queue, clear its playing entry so it'll start again from the start
11311 after the activated entry.
11312 (rb_shell_player_sync_buttons): MusicProperties action handler moved
11313 to rb-shell-clipboard.c
11314 (actually_set_playing_source): Add helper for updating the playing
11316 (rb_shell_player_set_playing_source_internal): Emit playing-from-queue
11317 signal if we stop or start doing so; use actually_set_playing_source;
11318 emit playing-source-changed if we actually did change source.
11320 * sources/rb-ipod-source.c (add_rb_playlist): Add extra parameter for
11321 rb_static_playlist_source_add_location.
11323 * sources/rb-library-source.c (rb_library_source_class_init): Allow
11324 enqueueing of songs from the library.
11326 * sources/rb-playlist-source.c (rb_playlist_source_class_init): Allow
11327 enqueueing of sonsg from playlists.
11328 (rb_playlist_source_entry_added_cb): Add extra parameter for
11329 rhythmdb_query_model_add_entry.
11331 * sources/rb-podcast-source.c (rb_podcast_source_class_init):
11332 Implement (can_)add_to_queue for this class.
11333 (rb_podcast_source_entry_activated): Use
11334 rb_podcast_manager_entry_downloaded.
11335 (impl_can_add_to_queue): Return TRUE if at least one entry that has
11336 been downloaded is selected.
11337 (impl_add_to_queue): Only add downloaded entries to the queue.
11339 * sources/rb-source.{c,h}:
11340 (rb_source_can_add_to_queue), (rb_source_add_to_queue): New virtual
11342 (rb_source_class_init): Don't allow enqueueing by default; implement
11343 add_to_queue though.
11344 (default_add_to_queue): Add all selected entries to the queue.
11346 * sources/rb-sourcelist.{c,h}: Add concept of 'preempted' source (what
11347 would be playing if there wasn't anything in the queue).
11348 (set_source_playing): Helper function for manipulating tree store.
11349 (rb_sourcelist_set_playing_source): Use set_source_playing
11350 (rb_sourcelist_preempt_playing_source): Update preempted source
11351 pointer, manipulate source states.
11353 * sources/rb-static-playlist-source.{c,h}:
11354 (rb_static_playlist_source_add_location_internal),
11355 (rb_static_playlist_source_add_location),
11356 (rb_static_playlist_source_add_entry): Add index parameter for
11357 specifying where in the playlist the new entry goes.
11358 (rb_static_playlist_source_new_from_xml), (impl_paste),
11359 (rb_static_playlist_source_add_list_uri),
11360 (rb_static_playlist_source_add_location_swapped),
11361 (rb_static_playlist_source_add_locations),
11362 (rb_static_playlist_source_non_entry_dropped),
11363 (rb_static_playlist_source_row_inserted):
11364 Handle new index parameter everywhere it appears
11365 (rb_static_playlist_source_move_entry): New method for moving entries
11366 around in the playlist.
11368 * widgets/rb-entry-view.c (rb_entry_view_scroll_to_iter): Silence gtk
11369 warnings when trying to scroll entry views that have never been
11372 * shell/rb-play-order-queue.{c,h}: New files, implementing a linear
11373 play order that removes the old entry when switching to a new one.
11375 * sources/rb-play-queue-source.{c,h}: New files, implementing a
11376 static playlist subclass that has a second entry view for the sidebar
11377 view using alternate formatting, and that displays the number of
11378 entries it contains in its source list entry.
11380 2005-12-10 James Livingston <jrl@ids.org.au>
11382 * rhythmdb/rhythmdb-query-model.c:
11383 (rhythmdb_query_model_add_entry),
11384 (rhythmdb_query_model_drag_data_received):
11385 * sources/rb-static-playlist-source.c:
11386 (rb_static_playlist_source_non_entry_dropped): when things are
11387 dropped, ignore any blank lines in the list of uris. Make the source
11388 responsible for adding new items to the db.
11390 * rhythmdb/rhythmdb.c: (queue_stat_uri): make sure we aren't passed an
11393 2005-12-10 James Livingston <jrl@ids.org.au>
11395 * shell/rb-shell-player.c: (rb_shell_player_set_property),
11396 (rb_shell_player_sync_buttons),
11397 (rb_shell_player_selection_changed_cb): watch for the
11398 "selection-changed" signal, so that the Song Properties get enabled.
11401 2005-12-10 James Livingston <jrl@ids.org.au>
11403 * data/rhythmbox.schemas: fix the gconf schema
11405 2005-12-10 James Livingston <jrl@ids.org.au>
11407 * metadata/rb-metadata-gst.c: don't set the state to NULL when inside
11408 the decoded-pad callback with gstreamer 0.8, it causes problems.
11410 2005-12-10 Jonathan Matthew <jonathan@kaolin.hn.org>
11412 Remove more junk from RBEntryView. Closes bug 323640.
11414 * widgets/rb-entry-view.{c,h}:
11415 Remove unused private structure members, replace 'playing' boolean
11416 with an enum (so we know if we're paused too), and store a pointer to
11417 the RBShellPlayer too.
11418 (rb_entry_view_class_init), (rb_entry_view_set_property),
11419 (rb_entry_view_get_property):
11420 Remove 'entry-selected' and 'changed' signals and
11421 'playing-entry' property, add 'selection-changed' signal and
11422 'shell-player' and 'playing-state' properties.
11423 (rb_entry_view_new): Take the shell player object reference
11424 (rb_entry_view_playing_cell_data_func): Get pixbuf based on state.
11425 (rb_entry_view_set_playing_entry), (rb_entry_view_get_playing_entry):
11426 No longer needed, shell player is the place to get this information.
11427 (rb_entry_view_busy), (rb_entry_view_get_duration),
11428 (rb_entry_view_get_total_size), (rb_entry_view_get_first_entry),
11429 (rb_entry_view_get_next_from_entry),
11430 (rb_entry_view_get_previous_from_entry),
11431 (rb_entry_view_get_next_entry), (rb_entry_view_get_random_entry),
11432 (rb_entry_view_get_num_entries):
11433 Removed, callers should go to the query model directly.
11434 (rb_entry_view_playing_song_changed): Update active query model, emit
11435 row changed signals to update pixbufs, and scroll to the playing song
11436 when the playing song changes, based on a signal from the shell
11438 (queue_changed_sig), (rb_entry_view_row_changed_cb),
11439 (emit_entry_changed): Evil, removed.
11440 (rb_entry_view_selection_changed_cb): Remove old signals, add new
11441 selection-changed signal.
11442 (rb_entry_view_select_none), (rb_entry_view_select_entry):
11443 Remove selection lock. It didn't work anyway.
11444 (rb_entry_view_set_playing): Replaced with rb_entry_view_set_state.
11445 (rb_entry_view_emit_row_changed): Simple helper function to emit
11446 row-changed signals.
11448 * widgets/Makefile.am: Entry view needs headers from the shell/
11450 * widgets/rb-song-info.{c,h}: Use the query model for everything except
11452 scrolling the entry view to show the entry being displayed.
11453 (rb_song_info_class_init), (rb_song_info_get_property): Add new
11454 'source' property so we can watch for query model changes.
11455 (rb_song_info_finalize): Unref objects, disconnect signal handlers
11456 (rb_song_info_set_property): Watch for query model changes, don't
11457 watch for entry view changes.
11458 (rb_song_info_new): Take source as a parameter, use the source's entry
11459 view unless one was specifically supplied.
11460 (rb_song_info_backward_clicked_cb), (rb_song_info_forward_clicked_cb):
11461 Use query model rather than entry view to move between songs.
11462 (rb_song_info_update_buttons): Use query model.
11463 (rb_song_info_query_model_changed_cb): Handle query model changes.
11465 * shell/rb-playlist-manager.c (rb_playlist_manager_set_property):
11466 Only one copy of the code to enable/disable the CD burning action
11467 (rb_playlist_manager_playlist_entries_changed):
11468 Use the query model to get the number of entries, not the entry view.
11470 * shell/rb-play-order-random-by-age-and-rating.c,
11471 shell/rb-play-order-random-by-age.c,
11472 shell/rb-play-order-random-by-rating.c,
11473 shell/rb-play-order-random-equal-weights.c:
11476 * shell/rb-shell-player.{c,h}:
11477 Remove a few unused entries from the structure.
11478 (rb_shell_player_set_property):
11479 Don't use the 'changed' signal on the entry view (it's evil)
11480 (rb_shell_player_have_first): No longer needed
11481 (rb_shell_player_play): Just tell the entry view it's playing
11482 (rb_shell_player_playpause): Tell the entry view it's paused
11484 (rb_shell_player_entry_view_changed_cb): No longer used, removed.
11485 (rb_shell_player_property_row_activated_cb):
11486 Get the entry to play using the query model, not the entry view.
11487 (rb_shell_player_sync_buttons): Update entry view state while we're
11489 (rb_shell_player_set_playing_source_internal): Update entry view state
11490 (rb_shell_player_get_playing): Ask the entry view, not the player.
11491 This now returns TRUE when paused. This makes rb_shell_set_elapsed
11492 and rb_shell_set_window_title work properly, so you get "(Paused)" in
11493 the window title and tray icon tooltip.
11494 (rb_shell_player_get_mm_player): Not used anywhere, so removed.
11496 * sources/rb-iradio-source.c, sources/rb-library-source.c,
11497 sources/rb-podcast-source.c, sources/rb-playlist-source.c:
11498 (rb_iradio_source_constructor): Pass the RBShellPlayer in to the entry
11499 view constructor, pass the source in to the song info widget
11502 * shell/rb-shell-clipboard.c (rb_shell_clipboard_set_property):
11503 Use 'selection-changed' instead of 'changed', since that's what the
11504 clipboard cares about.
11505 (rb_shell_clipboard_set_source): Don't die if source == NULL
11507 2005-12-10 James Livingston <jrl@ids.org.au>
11509 * player/rb-recorder-gst.c: (rb_recorder_get_default_drive):
11510 * sources/rb-playlist-source-recorder.c:
11511 (_nautilus_burn_drive_new_from_path): make more of the libnautilusburn
11512 stuff not use the deprecated API when compiled against 2.13
11514 2005-12-10 James Livingston <jrl@ids.org.au>
11516 patch by: Alex Lancaster <alexl@users.sourceforge.net>
11518 * widgets/rb-song-info.c: (rb_song_info_sync_entry_single): fix
11519 problem where the genre tag was getting set to the artist. Closes bug
11522 2005-12-09 William Jon McCann <mccann@jhu.edu>
11524 * rhythmdb/rhythmdb-query-model.c (rhythmdb_query_model_get_next_from_entry):
11525 Return NULL if can't get first iter.
11529 2005-12-09 William Jon McCann <mccann@jhu.edu>
11531 * sources/rb-iradio-source.[ch] (impl_song_properties): Use
11532 updated rb_station_properties_dialog_new API.
11533 (rb_iradio_source_add_from_playlist): New public function.
11534 (rb_iradio_source_first_time_changed): Use add_from_playlist.
11536 * shell/rb-shell.c (new_station_location_added): Handle
11537 iradio location added signal.
11538 (rb_shell_cmd_new_station): Use new iradio station dialog.
11540 * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_init): Use close button. Fix typo.
11541 (rb_station_properties_dialog_new): Don't squeeze new
11542 station functionality into this class.
11543 (rb_station_properties_dialog_response_cb): ditto.
11544 (rb_station_properties_dialog_update_title): Make
11545 consistent with other properties dialogs.
11546 (rb_station_properties_dialog_location_changed_cb): Do nothing.
11548 * iradio/rb-new-station-dialog.[ch]:
11549 * iradio/Makefile.am: Add new station dialog.
11551 * data/glade/station-new.glade: New file based on
11552 new podcast feed dialog.
11553 * data/glade/station-properties.glade: Updated to
11554 be consistent with song properties dialog.
11558 2005-12-10 James Livingston <jrl@ids.org.au>
11560 patch by: Ståle Lyngaas <staale@lyngaas.com>
11562 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
11563 submit songs longer than 30 minutes. Fixes bug 323639.
11565 2005-12-09 William Jon McCann <mccann@jhu.edu>
11567 * shell/rb-shell.c (idle_save_playlist_manager): Use new
11568 async save function.
11569 (rb_shell_finalize): Remove save timeout sources. Reorder
11570 steps a bit to make saving db and playlists a bit more
11571 failsafe in case something goes wrong later.
11572 (rb_shell_constructor): Keep track of save timeout source.
11573 (add_to_library_response_cb): Keep track of db save timeout source.
11575 * shell/rb-playlist-manager.c (reap_dead_playlist_threads): Use
11577 (rb_playlist_manager_shutdown): New function to shutdown
11578 threads etc. before exit.
11579 (rb_playlist_manager_finalize): Moved handling outstanding
11580 threads stuff to shutdown since if there are outstanding threads
11581 they hold a ref and finalize is never called.
11582 (rb_playlist_manager_save_thread_main): Use cond broadcast instead
11583 of signal which may be required for sync save.
11584 (rb_playlist_manager_save_playlists_async): Renamed old
11585 save_playlists to save_playlists_async. Use g_atomic.
11586 (rb_playlist_manager_save_playlists): New function to
11587 perform sync saves (symmetric with RhythmDB API).
11588 (rb_playlist_manager_cmd_new_automatic_playlist): Style consistency.
11590 * rhythmdb/rhythmdb.c (rhythmdb_action_free, rhythmdb_shutdown):
11591 Style consistency anality.
11592 (rhythmdb_finalize): Remove save timeout source.
11593 (rhythmdb_set_property, rhythmdb_get_property)
11594 (rhythmdb_process_events): More anality and keep track of
11595 save timeout source.
11596 (action_thread_main): No need to call g_thread_exit.
11597 (rhythmdb_entry_set_internal, rhythmdb_entry_sync_mirrored)
11598 (rhythmdb_query_parse_valist, rhythmdb_query_free)
11599 (write_encoded_gvalue, read_encoded_property): La la la.
11603 2005-12-10 James Livingston <jrl@ids.org.au>
11605 * metadata/rb-metadata-gst.c: fix 5 second pauses when encountering
11608 2005-12-10 James Livingston <jrl@ids.org.au>
11611 * configure.ac: remove the rpm spec files, so that automake works.
11614 * rhythmdb/rhythmdb.c: (rhythmdb_save_thread_main): fix a trivial
11617 2005-12-09 James Livingston <jrl@ids.org.au>
11619 * debian/: try to get cvs to actually remove the files
11621 2005-12-09 James Livingston <jrl@ids.org.au>
11623 * rhythmbox.spec.in:
11624 * debian/: remove the distro package stuff, they are *really* old, and
11625 downstream manage it anyway.
11627 2005-12-09 Jonathan Matthew <jonathan@kaolin.hn.org>
11629 Rework play orders to work off query models rather than
11630 entry views, and track the playing entry themselves rather
11631 than relying on the entry view to do it. This makes the entry
11632 view mostly just a widget. Closes bug 323612.
11634 * daapsharing/rb-daap-share.c (add_playlist_to_mlcl), (databases_cb):
11635 Use query model rather than entry view to get the number
11636 of entries in playlists.
11638 * rhythmdb/rhythmdb-query-model.{c.h}
11639 (rhythmdb_query_model_tree_path_to_entry),
11640 (rhythmdb_query_model_iter_to_entry),
11641 (rhythmdb_query_model_get_next_from_entry),
11642 (rhythmdb_query_model_get_previous_from_entry):
11643 New utility functions for iterating through query models.
11644 (rhythmdb_query_model_compute_status_normal):
11645 Have one copy of this code, not four.
11647 * shell/rb-play-order.{c,h}:
11648 Add signals for when next/previous availability changes, and
11649 when the playing entry is removed, and add a property for
11650 the current playing entry. Add gtkdoc comments too.
11651 (rb_play_order_class_init): Add new property and signals.
11652 (rb_play_order_finalize), (rb_play_order_playing_source_changed),
11653 (rb_play_orer_query_model_changed_cb),
11654 (rb_play_order_query_model_changed):
11655 Use query model rather than entry view.
11656 (rb_play_order_set_property), (rb_play_order_get_property):
11657 Handle new playing-entry property. Call playing_entry_changed virtual
11658 method so subclasses can do any processing required.
11659 (rb_play_order_is_playing), (rb_play_order_get_playing_entry),
11660 (rb_play_order_set_playing_entry):
11661 Just use the playing-entry property.
11662 (rb_play_order_get_query_model), (rb_play_order_model_not_empty):
11663 Utility methods for subclasses.
11664 (rb_play_order_entry_added_cb), (rb_play_order_entry_removed_cb):
11665 Update next/previous availability, check if the playing entry
11667 (default_playing_entry_removed):
11668 Keep the current behaviour of just stopping playback when the
11669 playing entry is deleted.
11670 (rb_play_order_go_next), (rb_play_order_go_previous): Implement
11671 these for subclasses that don't have go_next/go_previous, but do
11672 have get_next/get_previous.
11673 (rb_play_order_update_have_next_previous): Emit signal if the
11674 availability of next/previous entries has changed.
11676 * shell/rb-play-order-linear.c, shell/rb-play-order-linear-loop.c,
11677 shell/rb-play-order-shuffle.c, shell/rb-play-order-random.c:
11678 Use G_DEFINE_TYPE, replace entry view iterator with query model
11680 (rb_shuffle_playing_entry_changed): If new_entry is NULL and we're
11681 on the last song in the shuffled order, go back to the start. This
11682 means if you press 'play' again you'll get the whole order again, not
11685 * shell/rb-shell-player.c:
11686 (rb_shell_player_get_playing_entry), (info_available_cb): Ask the
11687 play order rather than the entry view.
11688 (rb_shell_player_set_property): Update the play order when the
11689 selected source changes and we aren't playing anything.
11690 (rb_shell_player_sync_play_order): Copy the playing entry across to
11691 the new play order so playback continues from the same song, and watch
11692 for updates to have_next/have_previous.
11693 (rb_shell_player_play_order_update_cb): Enable/disable the
11694 next/previous actions when next/previous entry availability changes.
11695 (rb_shell_player_jump_to_current): Just use the play order's idea of
11696 what's playing, not the entry view's; if not playing anything, clear
11697 the selection, so when a playlist ends and you hit play again, it'll
11698 start at the start rather than the end.
11699 (rb_shell_player_do_previous): restructure a bit.
11700 (rb_shell_player_do_next): restructure, jump to new playing entry in
11701 an idle handler instead of directly.
11702 (rb_shell_player_do_previous_or_seek): Only try to go to the previous
11703 song if there is one.
11704 (rb_shell_player_playpause): Jump to playing song, don't update the
11705 play order if we got the song from the selection.
11706 (rb_shell_player_playing_entry_deleted_cb): Not needed.
11707 (rb_shell_player_sync_buttons): rb_shell_player_play_order_update_cb
11708 looks after next/previous actions now. Don't break if called while
11709 there is no selected source.
11710 (rb_shell_player_finalize), (rb_shell_player_set_playing_entry),
11711 (rb_shell_player_set_playing_source_internal),
11712 (rb_shell_player_error): No need to track the attempted playing entry
11713 any more, since the play order does that.
11715 * shell/rb-shell.c:
11716 (rb_shell_jump_to_current), (rb_shell_set_rating_impl): Use
11717 rb_shell_player_get_playing_entry rather than going through the entry
11720 * shell/rb-statusbar.c (rb_statusbar_set_property),
11721 (rb_statusbar_source_status_changed_cb): Listen to the source rather
11722 than the entry view for status bar text changes.
11723 (rb_statusbar_sync_status): Ask the query model directly
11725 * sources/rb-source.{c}: Add query model property.
11726 (default_get_status): Get status text from query model, should be
11727 suitable for most sources.
11728 (rb_source_set_property): Listen for changes to the query model
11729 to update the status text.
11730 (rb_source_row_inserted_cb), (rb_source_row_deleted_cb),
11731 (idle_emit_status_changed): Emit status-changed signals when query
11734 * sources/rb-library-source.c, sources/rb-podcast-source.c:
11735 (impl_get_status): Not needed, RBSource does this now
11736 (rb_library_source_do_query) (rb_podcast_source_do_query):
11737 Update RBSource's query model reference.
11739 * sources/rb-playlist-source.c:
11740 Remove query-model property, since RBSource has one now
11741 (impl_get_status): Not needed, RBSource does this now
11742 (rb_playlist_source_row_deleted): Use query model iterator helper
11744 (rb_playlist_source_set_query_model): Update RBSource's query model
11747 * sources/rb-iradio-source.c:
11748 (impl_get_status): Ask the query model directly.
11749 (rb_iradio_source_do_query): Update RBSource's query model reference
11750 when we create a new query.
11752 * sources/rb-sourcelist-model.c (rb_sourcelist_model_drag_data_get):
11753 Use query model rather than entry view.
11755 * widgets/rb-entry-view.{c,h}:
11756 Remove playing_entry_deleted signal (now in play order).
11757 (entry_from_tree_path), (entry_from_tree_iter): Not needed
11758 as RhythmDBQueryModel has equivalent helper functions.
11759 (rb_entry_view_*): Use query model helpers instead of the above two
11762 2005-12-09 James Livingston <jrl@ids.org.au>
11765 * player/rb-recorder-gst.c: (rb_recorder_get_default_drive),
11766 (rb_recorder_enabled):
11767 * shell/rb-removable-media-manager.c: (poll_tray_opened):
11768 * sources/rb-playlist-source-recorder.c:
11769 (_nautilus_burn_drive_new_from_path), (ask_rewrite_disc): check
11770 whether libnautilusburn has the _drive_unref function, and if so use
11771 it. Stops it complaining about deprecated API.
11773 2005-12-09 James Livingston <jrl@ids.org.au>
11775 * configure.ac: drop the minimum gstreamer version back down, it
11776 accidently got pushed up in the gst 0.10 patch. Closes bug 323561.
11778 2005-12-09 James Livingston <jrl@ids.org.au>
11780 * widgets/rb-song-info.c: (rb_song_info_class_init),
11781 (rb_song_info_show), (rb_song_info_constructor),
11782 (rb_song_info_finalize), (rb_song_info_backward_clicked_cb),
11783 (rb_song_info_forward_clicked_cb): save metadata changes when the
11784 Next/Previous buttons are pressed (closes bug 320952). use
11787 2005-12-09 James Livingston <jrl@ids.org.au>
11789 Patch by: <jonathan@kaolin.hn.org>
11791 * sources/rb-iradio-source.c:
11792 (stations_view_drag_data_received_cb):
11793 * sources/rb-podcast-source.c: (impl_receive_drag): fix drag and drop
11794 of urls. Fixes bug 323610.
11796 2005-12-09 James Livingston <jrl@ids.org.au>
11798 patch by Jan Schmidt <thaytan@mad.scientist.com> to add support for
11799 GStreamer 0.10. DAAP support for 0.10 isn't done yet.
11802 * metadata/rb-metadata-gst.c:
11803 * player/rb-player-gst.c: (rb_player_finalize), (rb_player_bus_cb),
11804 (rb_player_construct), (rb_player_new):
11805 * player/rb-recorder-gst.c: (rb_recorder_gst_free_pipeline),
11806 (rb_recorder_gst_signal_error), (pipe_message),
11807 (rb_recorder_new_pad_cb), (rb_recorder_construct),
11809 * shell/main.c: (main):
11810 * sources/rb-audiocd-source.c: (rb_audiocd_create_track_entry),
11811 (rb_audiocd_get_cd_info): port gstreamer-using code to 0.10.
11813 2005-12-07 Jonathan Matthew <jonathan@kaolin.hn.org>
11815 * data/rhythmbox-ui.xml: replace 'smart' with 'auto' for consistency
11817 * shell/rb-playlist-manager.c:
11818 (rb_playlist_manager_set_property), (handle_playlist_entry_cb),
11819 (playlist_load_start_cb), (rb_playlist_manager_new_playlist)
11820 (rb_playlist_manager_set_automatic_playlist),
11821 (rb_playlist_manager_cmd_new_automatic_playlist),
11822 (rb_playlist_manager_cmd_edit_automatic_playlist):
11823 Use new playlist subclasses.
11824 (rb_playlist_manager_save_playlists): Only read the dirty flag
11825 for local playlists, minor pointless reformatting
11827 * sources/Makefile.am: add new files
11829 * sources/rb-playlist-source.c, sources/rb-playlist-source.h:
11830 split lots of stuff out into two
11831 new classes, RBStaticPlaylistSource and RBAutoPlaylistSource,
11832 make RBPlaylistSource abstract, add virtual methods for showing a
11833 popup for the entry view and saving the playlist to XML.
11834 Other stuff is subclass-specific, or already virtual in RBSource.
11836 * sources/rb-playlist-xml: Define playlist XML tags and attributes
11837 in one place, since they're used across three source files now
11839 * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
11840 Use new static playlist class
11842 * sources/rb-ipod-source.c: (add_rb_playlist):
11843 Use new static playlist class
11845 * sources/rb-static-playlist-source.{c,h},
11846 source/rb-auto-playlist-source.{c,h}, sources/rb-playlist-xml.h: new
11849 * po/POTFILES.in: add new files
11851 2005-12-07 James Livingston <jrl@ids.org.au>
11853 * rhythmdb/rhythmdb.c: (emit_entry_changed), (sync_entry_changed),
11854 (rhythmdb_commit_internal), (rhythmdb_process_metadata_load): make
11855 metadata loads not attempt to write changes to disk.
11857 2005-12-07 James Livingston <jrl@ids.org.au>
11859 patch by: Alex Lancaster <alexl@users.sourceforge.net>
11861 * data/glade/song-info-multiple.glade:
11862 * widgets/rb-song-info.c: (rb_song_info_constructor),
11863 (rb_song_info_sync_entries_multiple): allow the year to be changed on
11864 multiple songs at once.
11866 2005-12-06 James Livingston <jrl@ids.org.au>
11868 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11869 (rhythmdb_entry_set_visibility): emit signal when visibility changes.
11871 2005-12-06 James Livingston <jrl@ids.org.au>
11873 * sources/rb-sourcelist.c: (rb_sourcelist_init): ellipsise source
11874 names rather than adding a horizontal scroll bar.
11876 2005-12-06 James Livingston <jrl@ids.org.au>
11878 * rhythmdb/rhythmdb-query-model.c:
11879 (rhythmdb_query_model_update_limited_entries),
11880 (rhythmdb_query_model_drag_data_received): remove some pointless debug
11883 * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event),
11884 (rhythmdb_process_file_deleted), (rhythmdb_entry_move_to_trash):
11885 always hide rather than remove DB entries, which will make RB not lose
11886 information when tag editing happens or people move files to trash and
11887 then change their mind. Also fix some races where the monitoring code
11888 would notice the temporary files generated by saving metadata.
11890 2005-12-05 William Jon McCann <mccann@jhu.edu>
11892 * widgets/rb-song-display-box.[ch] (rb_song_display_box_init):
11893 Hide internals and add tooltips.
11894 (rb_song_display_box_size_allocate): Hide internals.
11895 (sanitize_string, info_url): Copied from rb-header.
11896 (rb_song_display_box_sync): New public function.
11898 * widgets/rb-header.[ch]: Use G_DEFINE_TYPE.
11899 (rb_header_init): Use a separate row for the seek bar.
11900 (rb_header_finalize): Don't unref widgets.
11901 (rb_header_sync): Use rb_song_display_box_sync.
11902 (rb_header_set_urldata)
11903 (rb_header_set_show_artist_album): Hide instead of remove widgets.
11904 (rb_header_set_show_position_slider): Set visibility of seek bar.
11905 (rb_header_set_show_timeline): Set sensitivity of seek bar.
11906 (rb_header_get_elapsed_string): Don't shift when you first start playback.
11908 * shell/rb-statusbar.c (rb_statusbar_init)
11909 (rb_statusbar_sync_state): Remove shuffle and repeat controls.
11911 * shell/rb-shell.c (rb_shell_finalize): Destroy tooltips.
11912 (rb_shell_constructor): Remove hseparator. Monitor
11913 toolbar visibility settings. Add toolbar. Add
11914 volume button to toolbar. Add tooltips for volume button.
11915 (rb_shell_view_toolbar_changed_cb)
11916 (rb_shell_sync_toolbar_visibility)
11917 (toolbar_visibility_changed_cb): Set visibility of
11919 (rb_shell_sync_smalldisplay): Set the toolbar style to
11920 icons only when in small display mode.
11921 (rb_shell_volume_widget_changed_cb): Save volume setting.
11923 * shell/rb-shell-player.c (rb_shell_player_constructor):
11924 Remove pause and stop actions. Make play action "important"
11925 so that text is visible in horizontal toolbar position.
11926 Remove control buttons.
11927 (rb_shell_player_init)
11928 (rb_shell_player_sync_song_position_slider_visibility):
11929 Set visbibility of seek bar.
11930 (rb_shell_player_cmd_play, rb_shell_player_playpause):
11931 Make play action a toggle.
11932 (rb_shell_player_sync_volume): Volume control moved
11934 (gconf_song_position_slider_visibility_changed):
11935 Set visbibility of seek bar.
11936 (rb_shell_player_sync_buttons):
11937 Set sensitivity of actions instead of buttons.
11938 (rb_shell_player_playing_changed_cb): Add callback
11939 for player notify::playing changes.
11941 * lib/rb-preferences.h: Add hide toolbar and seek
11944 * data/ui/rhythmbox-ui.xml: Add hide toolbar and
11945 seek bar menu items. Remove pause and stop actions
11946 from the control menu. Add a toolbar.
11948 * data/rhythmbox.schemas: Add toolbar_hidden
11949 song_position_slider_hidden keys.
11951 Patch by: James Livingston <jrl@ids.org.au>
11952 William Jon McCann <mccann@jhu.edu>
11955 2005-12-05 James Livingston <jrl@ids.org.au>
11957 * data/glade/library-prefs.glade:
11958 * data/rhythmbox.schemas:
11959 * lib/rb-preferences.h:
11960 * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb),
11961 (rhythmdb_sync_library_location):
11962 * sources/rb-library-source.c: (rb_library_source_class_init),
11963 (rb_library_source_finalize), (rb_library_source_constructor),
11964 (impl_get_config_widget), (rb_library_source_preferences_sync),
11965 (rb_library_source_watch_toggled_cb): allow people to disable library
11966 monitoring, because with nothing set the file chooser button selects
11967 the Home folder (and hence that will get monitored).
11969 2005-12-04 Ryan P Skadberg <skadz@stigmata.org>
11971 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): Another
11972 attempt to fix problem with RSS parsing showing invalid feed types.
11975 2005-12-04 James Livingston <jrl@ids.org.au>
11977 * rhythmdb/rhythmdb.c: (rhythmdb_process_metadata_load),
11978 (rhythmdb_execute_stat_info_cb), (rhythmdb_execute_stat): make
11979 importing a remote directory not block the UI.
11981 2005-12-03 Dennis Cranston <dennis_cranston@yahoo.com>
11983 * data/glade/podcast-feed-properties.glade:
11984 * data/glade/podcast-properties.glade: HIG fix, closes bug 323131.
11986 2005-12-04 James Livingston <jrl@ids.org.au>
11988 patch by: Dennis Cranston <dennis_cranston@yahoo.com>
11990 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): change ||
11991 to && to fix a mistake in the earlier podcast patch.
11993 2005-12-03 James Livingston <jrl@ids.org.au>
11995 * data/glade/podcast-new.glade:
11996 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
11997 (rb_new_podcast_dialog_text_changed): remove some unused stuff.
11999 * player/rb-player-gst.c: (rb_player_set_replaygain): initialise the
12000 GValue, which stops occasional errors.
12002 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12005 2005-12-03 James Livingston <jrl@ids.org.au>
12007 patch by: Dennis Cranston <dennis_cranston@yahoo.com>
12009 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): fix a
12010 crasher with some podcasts feeds.
12012 2005-12-03 James Livingston <jrl@ids.org.au>
12014 * data/rhythmbox.schemas: fix the gconf schema
12016 2005-12-03 James Livingston <jrl@ids.org.au>
12018 patch by: Thomas de Grenier de Latour <degrenier@easyconnect.fr> to
12019 add a selection timeout to the sourcelist. This lets you hold a track
12020 over the playlist source, and then have the view switch so you can
12021 insert the track in the middle of the playlist. Closes bug 323044.
12023 * lib/rb-tree-dnd.c: (init_rb_tree_dnd_data), (scroll_row_timeout),
12024 (select_on_drag_timeout), (remove_select_on_drag_timeout),
12025 (rb_tree_dnd_drag_motion_cb), (rb_tree_dnd_drag_leave_cb),
12026 (rb_tree_dnd_add_drag_dest_support):
12027 * lib/rb-tree-dnd.h: Add an option for tree views to have a selection
12030 * sources/rb-sourcelist-model.c:
12031 (rb_sourcelist_model_set_dnd_targets): Use the selection timeout for
12034 2005-12-02 Bastien Nocera <hadess@hadess.net>
12036 * data/glade/audioscrobbler-prefs.glade: add a space before the web
12037 links, so that the text doesn't touch the button
12039 2005-12-02 James Livingston <jrl@ids.org.au>
12041 Add full support for gnome-vfs remote files. Closes bug 140355.
12043 * rhythmdb/rhythmdb.c: (rhythmdb_execute_stat_info_cb),
12044 (rhythmdb_execute_stat): perform stats asynchronously, so that waiting
12045 for authentication information from the user doesn't block the UI.
12047 (rhythmdb_entry_set_visibility): don't emit the signal twice.
12049 * rhythmdb/rhythmdb.c: (rhythmdb_action_free),
12050 (rhythmdb_event_free), (rhythmdb_shutdown), (emit_entry_changed),
12051 (rhythmdb_entry_allocate), (rhythmdb_directory_change_cb),
12052 (rhythmdb_process_stat_event), (emit_load_error_idle),
12053 (rhythmdb_process_metadata_load),
12054 (rhythmdb_process_queued_entry_set_event),
12055 (rhythmdb_process_file_created_or_modified),
12056 (rhythmdb_process_file_deleted), (rhythmdb_process_events),
12057 (queue_stat_uri), (add_thread_main),
12058 (emit_save_error_idle), (action_thread_main), (rhythmdb_add_uri),
12059 (rhythmdb_load), (rhythmdb_save_thread_main),
12060 (threadsafe_entry_set), (rhythmdb_query_internal),
12061 (query_thread_main), (rhythmdb_do_full_query_async_parsed),
12062 (rhythmdb_do_full_query_internal),
12063 (entry_volume_mounted_or_unmounted), (rhythmdb_volume_mounted_cb),
12064 (rhythmdb_volume_unmounted_cb),
12065 (rhythmdb_check_changed_file): trivial changes to support the
12066 asynchronous stats.
12068 * shell/main.c: (main): activate the authentication manager.
12070 * shell/rb-playlist-manager.c:
12071 (rb_playlist_manager_cmd_load_playlist),
12072 (rb_playlist_manager_cmd_save_playlist):
12073 * shell/rb-shell.c: (rb_shell_cmd_add_folder_to_library),
12074 (rb_shell_cmd_add_file_to_library):
12075 * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
12076 * widgets/rb-druid.c: (rb_druid_browse_clicked_cb): Let people select
12079 2005-12-02 James Livingston <jrl@ids.org.au>
12081 * shell/rb-playlist-manager.c: makes playlist menu items use the
12082 elipses correctly. Fixes bug 322283.
12084 2005-12-02 James Livingston <jrl@ids.org.au>
12086 * shell/rb-playlist-manager.c:
12087 (rb_playlist_manager_load_playlists): fix silly mistake
12089 2005-12-02 James Livingston <jrl@ids.org.au>
12091 * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): don't
12092 print out metadata-write unless --debug was passed.
12094 * rhythmdb/rhythmdb.c: (rhythmdb_load):
12095 * shell/rb-playlist-manager.c:
12096 (rb_playlist_manager_load_playlists): block writes to disk if they are
12097 still being loaded.
12099 2005-12-02 James Livingston <jrl@ids.org.au>
12101 * shell/rb-shell-clipboard.c: change the move-to-trash shortcut, to
12102 ctrl-T, because Ctrl-D is used by "small mode"
12104 2005-12-02 James Livingston <jrl@ids.org.au>
12106 * shell/rb-shell-preferences.c:
12107 (rb_shell_preferences_append_view_page):
12108 * sources/rb-library-source.c: (impl_get_config_widget):
12109 * sources/rb-podcast-source.c: (impl_get_config_widget):
12110 * sources/rb-source.c: (rb_source_get_config_widget):
12111 * sources/rb-source.h: Make the preference actually work.
12113 * shell/rb-shell.c: (rb_shell_constructor): set up monitoring correctly
12114 if Rhythmbox is being run for the first time.
12116 2005-12-02 James Livingston <jrl@ids.org.au>
12118 Add support for Rhythmbox to watch your library, and automatically add
12119 new tracks. Fixes bug 160159.
12121 * data/glade/library-prefs.glade: add "library location" preference
12122 * data/rhythmbox.schemas: add gconf key for the library location
12124 * rhythmdb/rhythmdb.c: (rhythmdb_init), (rhythmdb_event_free),
12125 (rhythmdb_unmonitor_directories), (rhythmdb_shutdown),
12126 (rhythmdb_finalize), (rhythmdb_directory_change_cb),
12127 (rhythmdb_monitor_uri_path), (rhythmdb_process_stat_event),
12128 (rhythmdb_process_metadata_load), (rhythmdb_process_events),
12129 (rhythmdb_load_thread_main), (rhythmdb_load),
12130 (monitor_subdirectory), (monitor_library_directory),
12131 (monitor_entry_file), (rhythmdb_sync_library_location),
12132 (library_location_changed_cb), (rhythmdb_check_changed_file),
12133 (rhythmdb_process_changed_files): Let Rhythmbox watch the directories
12134 specifiec in the gconf key for new additions. Also fix monitoring code
12135 so that it works properly, and notices deletions.
12137 * lib/rb-preferences.h:
12138 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
12139 (rb_audioscrobbler_init), (rb_audioscrobbler_set_property):
12140 * shell/rb-audioscrobbler.h:
12141 * shell/rb-shell-preferences.c: (rb_shell_references_append_page),
12142 (rb_shell_preferences_append_view_page),
12143 (rb_shell_preferences_new):
12144 * shell/rb-shell-preferences.h: rework the way audioscrobbler adds
12145 it's preferences pane, so that we don't need #ifdef's through
12146 rb-shell-preferences.
12148 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property),
12149 (rb_shell_select_source), (rb_shell_cmd_preferences): give the shell a
12150 "preferences" property, so that sources can acccess it. This is needed
12151 because the library location pref needs to take effect when the window
12154 * sources/rb-library-source.c:
12155 (rb_library_source_library_location_changed),
12156 (rb_library_source_dispose), (rb_library_source_finalize),
12157 (rb_library_source_constructor), (impl_get_config_widget),
12158 (rb_library_source_preferences_sync),
12159 (rb_library_source_process_library_location_change),
12160 (rb_library_source_prefs_update),
12161 (rb_library_source_process_library_handle_selection),
12162 (rb_library_source_library_location_cb): set up and control the
12163 "library location" preference.
12165 * sources/rb-audiocd-source.c:(rb_source_class_init):
12166 * sources/rb-source.c: (rb_source_class_init): remove some pointless
12169 2005-12-01 William Jon McCann <mccann@jhu.edu>
12171 * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_init)
12172 (rb_feed_podcast_properties_dialog_update_title):
12173 * data/glade/podcast-feed-properties.glade:
12174 Make the feed properties dialog consistent with the podcast
12177 2005-12-01 William Jon McCann <mccann@jhu.edu>
12179 * metadata/.cvsignore:
12181 * podcast/.cvsignore: Updated.
12183 * shell/main.c (main): Support DBus 0.6 flags.
12185 2005-11-30 Bastien Nocera <hadess@hadess.net>
12187 * data/ui/rhythmbox-ui.xml:
12188 * rhythmdb/rhythmdb.c: (rhythmdb_entry_move_to_trash_cb),
12189 (rhythmbd_entry_move_to_trash_set_error),
12190 (rhythmdb_entry_move_to_trash):
12191 * rhythmdb/rhythmdb.h:
12192 * shell/rb-shell-clipboard.c: (rb_shell_clipboard_sync),
12193 (rb_shell_clipboard_cmd_delete),
12194 (rb_shell_clipboard_cmd_move_to_trash):
12195 * sources/rb-library-source.c: (rb_library_source_class_init),
12196 (impl_delete), (impl_move_to_trash):
12197 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12198 (impl_delete), (impl_move_to_trash):
12199 * sources/rb-removable-media-source.c:
12200 (rb_removable_media_source_class_init):
12201 * sources/rb-source.c: (rb_source_class_init),
12202 (rb_source_can_move_to_trash), (rb_source_delete),
12203 (rb_source_move_to_trash):
12204 * sources/rb-source.h:
12205 Add move_to_trash member for the sources, implement move to trash for
12206 the library and playlists
12207 Add a "Move to Trash" context menu item, and menu item (Ctrl+D) to move
12208 local files to the trash, and deleting them from the database
12211 2005-11-30 William Jon McCann <mccann@jhu.edu>
12213 * shell/rb-tray-icon.c (rb_tray_icon_class_init)
12214 (rb_tray_icon_init, rb_tray_icon_finalize):
12215 * shell/rb-statusbar.c (rb_statusbar_class_init)
12216 (rb_statusbar_init, rb_statusbar_finalize):
12217 * shell/rb-source-header.c (rb_source_header_class_init)
12218 (rb_source_header_init, rb_source_header_finalize):
12219 * shell/rb-shell.c (rb_shell_class_init, rb_shell_init)
12220 (rb_shell_finalize):
12221 * shell/rb-shell-preferences.c (rb_shell_preferences_class_init)
12222 (rb_shell_preferences_init, rb_shell_preferences_finalize):
12223 * shell/rb-shell-player.c (rb_shell_player_class_init)
12224 (rb_shell_player_init, rb_shell_player_finalize):
12225 * shell/rb-shell-clipboard.c (rb_shell_clipboard_class_init)
12226 (rb_shell_clipboard_init, rb_shell_clipboard_finalize):
12227 * shell/rb-playlist-manager.c (rb_playlist_manager_class_init)
12228 (rb_playlist_manager_init, rb_playlist_manager_finalize):
12229 * shell/rb-play-order.c (rb_play_order_class_init)
12230 (rb_play_order_init, rb_play_order_finalize):
12231 * shell/rb-play-order-shuffle.c (rb_shuffle_play_order_class_init)
12232 (rb_shuffle_play_order_init, rb_shuffle_play_order_finalize):
12233 * shell/rb-play-order-random.c (rb_random_play_order_class_init)
12234 (rb_random_play_order_init, rb_random_play_order_finalize):
12235 * shell/rb-history.c (rb_history_class_init, rb_history_init)
12236 (rb_history_finalize):
12237 * shell/rb-commander.c (rb_commander_class_init)
12238 (rb_commander_init, rb_commander_finalize):
12239 * shell/rb-audioscrobbler.c (rb_audioscrobbler_class_init)
12240 (rb_audioscrobbler_init, rb_audioscrobbler_finalize):
12241 * remote/bonobo/rb-remote-bonobo.c (rb_remote_bonobo_class_init)
12242 (rb_remote_bonobo_init, rb_remote_bonobo_finalize):
12243 * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_class_init)
12244 (rb_podcast_properties_dialog_init)
12245 (rb_podcast_properties_dialog_finalize):
12246 * podcast/rb-podcast-manager.c (rb_podcast_manager_class_init)
12247 (rb_podcast_manager_init, rb_podcast_manager_finalize):
12248 * podcast/rb-new-podcast-dialog.c (rb_new_podcast_dialog_class_init)
12249 (rb_new_podcast_dialog_init, rb_new_podcast_dialog_finalize):
12250 * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_class_init)
12251 (rb_feed_podcast_properties_dialog_init)
12252 (rb_feed_podcast_properties_dialog_finalize):
12253 * metadata/rb-metadata-gst.c (rb_metadata_class_init)
12254 (rb_metadata_init, rb_metadata_finalize):
12255 * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_class_init)
12256 (rb_station_properties_dialog_init)
12257 (rb_station_properties_dialog_finalize):
12258 * daapsharing/rb-daap-share.c (rb_daap_share_class_init)
12259 (rb_daap_share_init, rb_daap_share_dispose):
12261 Use g_type_class_add_private in all classes. Closes bug 313688.
12263 2005-11-30 James Livingston <jrl@ids.org.au>
12265 patch by: William Jon McCann <mccann@jhu.edu> to use
12266 g_type_class_add_private in all classes. Closes bug 313688.
12268 * lib/rb-thread.c: (rb_thread_class_init), (rb_thread_init),
12269 (rb_thread_finalize):
12270 * player/rb-player-gst.c: (rb_player_class_init), (rb_player_init),
12271 (rb_player_finalize):
12272 * rhythmdb/rhythmdb-property-model.c:
12273 (rhythmdb_property_model_class_init),
12274 (rhythmdb_property_model_init), (rhythmdb_property_model_finalize):
12275 * rhythmdb/rhythmdb-query-model.c:
12276 (rhythmdb_query_model_class_init), (rhythmdb_query_model_init),
12277 (rhythmdb_query_model_finalize):
12278 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_class_init),
12279 (rhythmdb_tree_init), (rhythmdb_tree_finalize):
12280 * rhythmdb/rhythmdb.c: (rhythmdb_class_init), (rhythmdb_init),
12281 (rhythmdb_finalize):
12282 * sources/rb-daap-source.c: (rb_daap_source_class_init),
12283 (rb_daap_source_init), (rb_daap_source_dispose):
12284 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12285 (rb_iradio_source_init), (rb_iradio_source_finalize):
12286 * sources/rb-library-source.c: (rb_library_source_class_init),
12287 (rb_library_source_init), (rb_library_source_finalize):
12288 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12289 (rb_playlist_source_init), (rb_playlist_source_dispose):
12290 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
12291 (rb_podcast_source_init), (rb_podcast_source_finalize):
12292 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
12293 (rb_sourcelist_model_init), (rb_sourcelist_model_finalize):
12294 * sources/rb-sourcelist-model.h:
12295 * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
12296 (rb_sourcelist_init), (rb_sourcelist_finalize):
12297 * sources/rb-sourcelist.h:
12298 * widgets/disclosure-widget.c: (finalize), (class_init), (init):
12299 * widgets/rb-cell-renderer-rating.c:
12300 (rb_cell_renderer_rating_init),
12301 (rb_cell_renderer_rating_class_init),
12302 (rb_cell_renderer_rating_finalize):
12303 * widgets/rb-druid.c: (rb_druid_class_init), (rb_druid_init),
12304 (rb_druid_finalize):
12305 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12306 (rb_entry_view_init), (rb_entry_view_finalize):
12307 * widgets/rb-header.c: (rb_header_class_init), (rb_header_init),
12308 (rb_header_finalize):
12309 * widgets/rb-load-failure-dialog.c:
12310 (rb_load_failure_dialog_class_init), (rb_load_failure_dialog_init),
12311 (rb_load_failure_dialog_finalize):
12312 * widgets/rb-property-view.c: (rb_property_view_class_init),
12313 (rb_property_view_init), (rb_property_view_finalize):
12314 * widgets/rb-rating.c: (rb_rating_class_init), (rb_rating_init),
12315 (rb_rating_finalize):
12316 * widgets/rb-search-entry.c: (rb_search_entry_class_init),
12317 (rb_search_entry_init), (rb_search_entry_finalize):
12318 * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12319 (rb_simple_view_init), (rb_simple_view_finalize):
12320 * widgets/rb-song-display-box.c: (rb_song_display_box_class_init),
12321 (rb_song_display_box_init), (rb_song_display_box_finalize):
12322 * widgets/rb-song-info.c: (rb_song_info_class_init),
12323 (rb_song_info_init), (rb_song_info_finalize):
12324 * widgets/rb-tree-model-sort.c: (rb_tree_model_sort_class_init),
12325 (rb_tree_model_sort_init), (rb_tree_model_sort_finalize):
12327 2005-11-30 James Livingston <jrl@ids.org.au>
12329 * iradio/rb-station-properties-dialog.c:
12330 (rb_station_properties_dialog_init),
12331 (rb_station_properties_dialog_new):
12332 * lib/rb-glade-helpers.c: (rb_glade_boldify_label):
12333 * lib/rb-glade-helpers.h:
12334 * podcast/rb-feed-podcast-properties-dialog.c:
12335 (rb_feed_podcast_properties_dialog_init),
12336 (rb_feed_podcast_properties_dialog_new):
12337 * podcast/rb-podcast-properties-dialog.c:
12338 (rb_podcast_properties_dialog_init),
12339 (rb_podcast_properties_dialog_new):
12340 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_get_config_widget):
12341 * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
12342 * sources/rb-library-source.c: (impl_get_config_widget):
12343 * sources/rb-playlist-source-recorder.c:
12344 (rb_playlist_source_recorder_init):
12345 * widgets/rb-song-info.c: (rb_song_info_construct_single),
12346 (rb_song_info_constructor): create a single rb_glade_boldify_label()
12347 in rb-glade-helpers, rather than having eight implementation
12348 throughout the code.
12350 2005-11-30 James Livingston <jrl@ids.org.au>
12352 * lib/rb-util.c: (rb_search_fold), (rb_make_duration_string):
12354 * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
12355 move the duration->string function into rb-utils, as it gets used in a
12358 patch by: William Jon McCann <mccann@jhu.edu>
12360 * data/glade/podcast-properties.glade:
12361 * podcast/rb-podcast-properties-dialog.c:
12362 (rb_podcast_properties_dialog_init),
12363 (rb_podcast_properties_dialog_update),
12364 (rb_podcast_properties_dialog_update_title),
12365 (rb_podcast_properties_dialog_update_feed),
12366 (rb_podcast_properties_dialog_update_duration),
12367 (rb_podcast_properties_dialog_update_bitrate): Make the podcast
12368 info dialog look more like the song info dialog. Use the same "Feed"
12369 value that is displayed in the treeview (ie. the album field), displays
12370 the duration, uses units in the bitrate field, and sort the fields in
12373 2005-11-29 James Livingston <jrl@ids.org.au>
12375 * rhythmdb/rhythmdb-marshal.list:
12376 * rhythmdb/rhythmdb.h:
12377 * rhythmdb/rhythmdb.c: (rhythmdb_class_init),
12378 (emit_load_error_idle), (rhythmdb_process_metadata_load),
12379 (entry_to_rb_metadata), (emit_save_error_idle),
12380 (action_thread_main): emit error signal when metadata write fails.
12382 * shell/rb-shell.c: (rb_shell_constructor),
12383 (rb_shell_db_load_error_cb), (rb_shell_db_save_error_cb): process the
12384 "metadata save" error and display it to the user.
12386 2005-11-29 James Livingston <jrl@ids.org.au>
12388 * data/ui/rhythmbox-ui.xml:
12389 * sources/rb-podcast-source.c:
12390 (rb_podcast_source_songs_show_popup_cb),
12391 (rb_podcast_source_cmd_download_post),
12392 (rb_podcast_source_cmd_cancel_download): split download and cancel
12393 download commands. Replace usage of "Post" with "Esisode". Fixes bug
12396 2005-11-18 William Jon McCann <mccann@jhu.edu>
12398 * widgets/rb-dialog.c (rb_error_dialog): Don't use a
12399 title on alert dialogs per the HIG.
12401 * sources/rb-playlist-source-recorder.c (burn_cd): Don't use
12403 (free_song_list): Routine to free song list.
12404 (rb_playlist_source_recorder_finalize): Use free_song_list.
12405 (rb_playlist_source_recorder_add_from_model): Return FALSE
12406 if unable to add all songs. Check that duration of all
12407 songs doesn't exceed MAX_PLAYLIST_DURATION which is set to 100 min.
12410 * sources/rb-playlist-source-recorder.c (check_media_length)
12411 (rb_playlist_source_recorder_start): Only check the duration
12412 and current media if the playlist length is longer than a
12413 standard CD (74 min). Otherwise, just let the Recorder do the
12415 * player/rb-recorder-gst.c (rb_recorder_init): Get a default
12417 (rb_recorder_set_device): Don't leak drives.
12418 (rb_recorder_get_media_length): Use drive that was already set.
12419 (rb_recorder_burn): Let the recorder handle checking media type/size.
12422 2005-11-29 James Livingston <jrl@ids.org.au>
12424 * rhythmdb/rhythmdb-query-model.c:
12425 (rhythmdb_query_model_set_sort_order):
12426 * rhythmdb/rhythmdb-query-model.h: add a function to resort the query,
12427 emitting the tree-model "resorted" signal.
12429 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
12430 (rb_entry_view_finalize), (rb_entry_view_set_property),
12431 (rb_entry_view_constructor), (rb_entry_view_resort_model):
12432 * widgets/rb-entry-view.h: add a function to resort the entry view,
12433 using the above function.
12435 * sources/rb-iradio-source.c:
12436 (rb_iradio_source_songs_view_sort_order_changed_cb):
12437 * sources/rb-library-source.c: (rb_library_source_finalize),
12438 (songs_view_sort_order_changed_cb), (rb_library_source_do_query):
12439 * sources/rb-playlist-source.c:
12440 (rb_playlist_source_songs_sort_order_changed_cb):
12441 * sources/rb-podcast-source.c:
12442 (rb_podcast_source_posts_view_sort_order_changed_cb),
12443 (rb_podcast_source_do_query): use the above function instead of
12444 re-creating the query model. This makes changing the sorting an order
12445 of magnitude faster, as it uses a single resorted signal rather than
12446 deleting and re-adding everything (which emits 2N signals). Closes bug
12449 2005-11-29 James Livingston <jrl@ids.org.au>
12451 patch by: Jonathan Matthew <jonathan@kaolin.hn.org> to disable column
12452 autosizing, which results in large speedups. Closes bug 312122.
12454 * po/ja.po: change the date format, so that it is a constant width
12456 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
12457 * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
12458 * widgets/rb-entry-view.c: (rb_entry_view_append_column),
12459 (rb_entry_view_constructor): make columns use fixed widths,
12460 disable column autosizing, and enable fixed-height mode.
12462 * widgets/rb-entry-view.c: (rb_entry_view_set_fixed_column_width),
12463 (rb_entry_view_get_time_date_column_sample):
12464 * widgets/rb-entry-view.h: functions to set a column to a fixed width,
12465 and get the canonical date format for the locale.
12467 ============ Version 0.9.2
12469 2005-11-28 James Livingston <jrl@ids.org.au>
12471 * configure.ac: bump version to 0.9.2
12472 * NEWS: update with changes for 0.9.2
12474 2005-11-28 James Livingston <jrl@ids.org.au>
12476 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12478 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
12479 Disable saving, renaming and delting for DAAP playlists.
12482 2005-11-28 James Livingston <jrl@ids.org.au>
12484 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed): check if
12485 gnome_vfs_get_file_info is returning NULL for the mime-type. Should
12486 prevent bug 322619.
12488 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12489 * sources/rb-removable-media-source.c:
12490 (rb_removable_media_source_class_init): fix ipod browser visibility
12493 2005-11-28 James Livingston <jrl@ids.org.au>
12495 * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse): make
12496 Avahi 0.6 support actually work. Fixes bug 322519.
12498 2005-11-26 Ryan P Skadberg <skadz@stigmata.org>
12500 * configure.ac: Fix configure check for Avahi 0.6/0.5 when
12501 avahi is specified in --with-mdns
12503 2005-11-27 James Livingston <jrl@ids.org.au>
12505 patch by: Bastien Nocera <hadess@hadess.net>
12507 * podcast/rb-podcast-parse.c: use the #define we are supposed to use,
12508 not the private one. Fixes bug 322485.
12510 2005-11-26 James Livingston <jrl@ids.org.au>
12512 patch by Daniel S. Haischt <e@daniel.stefan.haischt.name> to support
12513 Avahi 0.6, as well as 0.5.
12516 * daapsharing/rb-daap-mdns.c: (get_avahi_client), (browse_cb),
12517 (rb_daap_mdns_browse), (resolve_cb), (rb_daap_mdns_resolve),
12520 2005-11-25 James Livingston <jrl@ids.org.au>
12522 * configure.ac: Make --enable-ipod not confuse configure. Closes bug
12525 2005-11-25 James Livingston <jrl@ids.org.au>
12527 * metadata/rb-metadata-gst.c: (rb_metadata_gst_add_tag_data): use
12528 correct type for checking the date against 0. Stops a warning when
12531 2005-11-25 James Livingston <jrl@ids.org.au>
12533 * player/rb-player-gst.c: (rb_player_set_replaygain): limit the volume
12534 adjustment to be inside the element's limits. Without this songs that
12535 have large ReplayGain values will recieve no increase because they are
12536 outside the acceptable range, causing them to remain quiet.
12538 2005-11-25 James Livingston <jrl@ids.org.au>
12540 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init):
12541 * sources/rb-daap-source.c: (rb_daap_source_class_init):
12542 * sources/rb-ipod-source.c:
12543 * sources/rb-source.h:
12544 * sources/rb-library-source.h:
12545 * sources/rb-library-source.c: (rb_library_source_class_init),
12546 (rb_library_source_constructor),
12547 (rb_library_source_has_first_added_column),
12548 (rb_library_source_has_drop_support):
12549 * sources/rb-removable-media-source.c:
12550 (rb_removable_media_source_class_init): Make library-derived sources
12551 not show the Date Added column, as it doesn't make sense. Fixes bug
12553 Move some of the feature funcs from the ipod and audio cd sources up to
12554 the removable media source.
12556 2005-11-24 James Livingston <jrl@ids.org.au>
12558 * sources/rb-iradio-source.c: (rb_iradio_source_dispose): fix compile
12561 2005-11-24 James Livingston <jrl@ids.org.au>
12563 * sources/rb-iradio-source.c: (rb_iradio_source_class_init),
12564 (rb_iradio_source_dispose), (rb_iradio_source_finalize),
12565 (rb_iradio_source_constructor): Chain up dispose method and use
12568 2005-11-24 James Livingston <jrl@ids.org.au>
12570 * shell/rb-shell-player.c: (rb_shell_player_error): fix a silly
12571 mistake in the last commit that can cause crashes.
12573 2005-11-24 James Livingston <jrl@ids.org.au>
12575 * shell/rb-shell-player.c: (rb_shell_player_error): use rb_debug,
12576 instead of g_printerr.
12578 * widgets/rb-entry-view.c: (rb_entry_view_set_sorting_type): use
12579 rb_debug instead of g_warning. The message happens every time for
12580 removable media/daap shares, so it's not unusual.
12582 2005-11-24 James Livingston <jrl@ids.org.au>
12584 patch by: Tom Parker <palfrey@tevp.net>
12586 * configure.ac: fix libsoup test for enabling daap
12588 2005-11-23 James Livingston <jrl@ids.org.au>
12590 * widgets/rb-query-creator.c: (rb_query_creator_class_init),
12591 (rb_query_creator_init), (rb_query_creator_constructor),
12592 (rb_query_creator_dispose), (rb_query_creator_load_query): don't add
12593 empty row to queries with no criteria. Fixes bug 322078. use
12596 2005-11-23 James Livingston <jrl@ids.org.au>
12598 patch by: <baptiste.millemathias@gmail.com>
12600 * help/C/quick-reference.xml: update the quick reference to have the
12601 correct key bindings.
12603 2005-11-22 James Livingston <jrl@ids.org.au>
12605 * sources/rb-library-source.c: (genres_selection_reset_cb),
12606 (artists_selection_reset_cb), (albums_selection_reset_cb): Properly
12607 reset the query when all browser selections are removed.
12609 2005-11-22 Jonathan Matthew <jonathan@kaolin.hn.org>
12611 * podcast/rb-podcast-manager.c:
12612 (rb_podcast_manager_db_entry_deleted_cb):
12613 Use a custom loop to remove podcast posts, rather than
12614 gtk_tree_model_foreach(), as deleting the entries within
12615 that loop causes the iterator to return the first entry
12616 twice. Instead, we need to find the next entry before
12617 removing the current one. Fixes bug 321956.
12618 (rb_podcast_manager_entry_remove_cb): No longer needed.
12620 2005-11-22 James Livingston <jrl@ids.org.au>
12622 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12623 (rb_playlist_source_constructor), (rb_playlist_source_dispose): chain
12624 up dispose method, and use G_DEFINE_TYPE. Fixes bug 321715.
12626 2005-11-22 James Livingston <jrl@ids.org.au>
12628 * sources/rb-podcast-source.c:
12629 (rb_podcast_source_post_date_cell_sort_func),
12630 (rb_podcast_source_post_status_cell_sort_func),
12631 (rb_podcast_source_post_feed_cell_sort_func):
12632 * widgets/rb-entry-view.c: (rb_entry_view_location_sort_func),
12633 (rb_entry_view_album_sort_func),
12634 (rb_entry_view_double_ceiling_sort_func),
12635 (rb_entry_view_ulong_sort_func), (rb_entry_view_string_sort_func): use
12636 the entry's location as a last resort when sorting, so the sort order
12637 is stable. This will stop entries moving around when two entries have
12638 the same sorting, and one of them gets played.
12640 2005-11-22 James Livingston <jrl@ids.org.au>
12642 * daapsharing/rb-daap-connection.c:
12643 (rb_daap_connection_class_init), (rb_daap_connection_init),
12644 (connection_get_password), (build_message),
12645 (http_response_handler), (http_get), (handle_server_info),
12646 (handle_login), (handle_update), (handle_database_info),
12647 (handle_song_listing), (handle_playlists),
12648 (handle_playlist_entries), (rb_daap_connection_new),
12649 (rb_daap_connection_constructor), (rb_daap_connection_logout),
12650 (rb_daap_connection_state_done), (rb_daap_connection_do_something),
12651 (rb_daap_connection_get_headers),
12652 (rb_daap_connection_get_playlists), (rb_daap_connection_dispose),
12653 (rb_daap_connection_set_property),
12654 (rb_daap_connection_get_property):
12655 * daapsharing/rb-daap-connection.h:
12656 * sources/rb-daap-source.c: (rb_daap_source_dispose),
12657 (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
12658 (rb_daap_source_disconnect): GObject-ify RBDaapConnection, fix problem
12659 of destroying the object when it is going to be used by a callback and
12660 fixes a double-free. Fixes bugs 321930 and 322007.
12662 2005-11-22 James Livingston <jrl@ids.org.au>
12664 * podcast/rb-podcast-manager.c: (rb_podcast_manager_head_query_cb),
12665 (rb_podcast_manager_insert_feed): Don't show the "new episodes"
12666 notification if there aren't any. Fixes bug 321968.
12668 2005-11-22 James Livingston <jrl@ids.org.au>
12670 * rhythmdb/rhythmdb-property-model.c:
12671 (rhythmdb_property_model_set_property),
12672 (rhythmdb_property_model_finalize),
12673 (rhythmdb_property_model_compare),
12674 (rhythmdb_property_model_insert),
12675 (rhythmdb_property_model_delete_prop): Fix property model sorting
12676 where the display and sort keys are different. Fixes bug 321980.
12678 2005-11-22 James Livingston <jrl@ids.org.au>
12680 * shell/rb-shell.c: (add_to_library_response_cb): detect playlists
12681 when import as a file or passed on the command line, and load them as
12684 2005-11-22 James Livingston <jrl@ids.org.au>
12686 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
12688 * daapsharing/rb-daap-src.c: (gst_tcp_socket_read),
12689 (gst_tcp_socket_write), (rb_daap_src_open_file): don't hang when using
12690 a broken daap server. Fixes bug 321919.
12692 2005-11-22 James Livingston <jrl@ids.org.au>
12694 * sources/rb-podcast-source.c: (rb_podcast_source_constructor): set up
12695 drag-and-drop for both the episodes and feeds list.
12697 (posts_view_drag_data_received_cb), (impl_receive_drag): handle drops
12698 consistantly and steal a trick from Totem for _NETSCAPE_URL drops.
12699 From Jonathan Matthew <jonathan@kaolin.hn.org>.
12701 * widgets/rb-property-view.c: (rb_property_view_class_init),
12702 (rb_property_view_set_property), (rb_property_view_get_property),
12703 (rb_property_view_new), (rb_property_view_constructor):
12704 * widgets/rb-simple-view.c: (rb_simple_view_class_init),
12705 (rb_simple_view_new), (rb_simple_view_constructor):
12706 * widgets/rb-simple-view.h: add a "draggable" property to property
12707 views and set it to false for the feed list. Fixes bug 321284.
12709 2005-11-22 James Livingston <jrl@ids.org.au>
12711 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
12713 * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
12714 * sources/rb-daap-source.c: (rb_daap_source_connection_cb):
12715 * sources/rb-ipod-source.c: (add_rb_playlist):
12716 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
12717 (rb_playlist_source_set_property),
12718 (rb_playlist_source_get_property), (rb_playlist_source_new),
12719 (impl_receive_drag), (rb_playlist_source_add_location),
12720 (rb_playlist_source_new_from_xml):
12721 * sources/rb-playlist-source.h: give playlists and (optional)
12722 entry-type, and reject entries that don't match. Fixes bug 322006.
12724 2005-11-21 James Livingston <jrl@ids.org.au>
12726 * shell/rb-source-header.c: (rb_source_header_source_weak_unref),
12727 (rb_source_header_finalize): remove the weak references when the
12728 source header is finalised. Stops the callbacks being called after the
12729 object is destroyed.
12731 2005-11-21 James Livingston <jrl@ids.org.au>
12733 * shell/main.c: (main): don't try to acquite bonobo/dbus when
12734 --no-registration was passed. It causes warnings that make it
12735 impossible to run with --no-registration --g-fatal-warnings
12737 2005-11-21 James Livingston <jrl@ids.org.au>
12739 * daapsharing/rb-daap-connection.c: (handle_song_listing): fix freeing
12740 of strings when they are still in use. Fixes bug 321547.
12742 (rb_daap_connection_destroy): fix memory leak
12744 2005-11-21 James Livingston <jrl@ids.org.au>
12746 * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12747 (rb_daap_mdns_browse_cancel), (resolve_cb), (rb_daap_mdns_resolve),
12748 (rb_daap_mdns_resolve_cancel), (publish_cb),
12749 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel): fix Howl
12752 2005-11-21 James Livingston <jrl@ids.org.au>
12754 * widgets/rb-entry-view.c: (rb_entry_view_genre_sort_func): fix
12757 2005-11-20 James Livingston <jrl@ids.org.au>
12759 * podcast/rb-podcast-manager.c:
12760 (rb_podcast_manager_subscribe_feed): make threads non-joinable, so
12761 that we don't leak thread structures. Fixes bug 321636, and probably
12764 2005-11-20 James Livingston <jrl@ids.org.au>
12766 * metadata/sj-metadata-musicbrainz.c: (get_offline_track_listing),
12768 * podcast/rb-podcast-manager.c: (start_job),
12769 (rb_podcast_manager_db_entry_deleted_cb),
12770 (rb_podcast_manager_entry_remove_cb):
12771 * podcast/rb-podcast-parse.c: (rb_insert_item),
12772 (rb_podcast_parse_load_feed):
12773 * rhythmdb/rhythmdb.c: (rhythmdb_entry_insert):
12774 * shell/rb-removable-media-manager.c:
12775 (rb_removable_media_manager_append_media_source):
12776 * shell/rb-shell.c: (add_to_library_response_cb):
12777 * shell/rb-tray-icon.c: (rb_tray_icon_drop_cb):
12778 * sources/rb-audiocd-source.c: (rb_audiocd_scan_songs):
12779 * sources/rb-iradio-source.c:
12780 (stations_view_drag_data_received_cb):
12781 * sources/rb-library-source.c: (string_list_equal),
12782 (impl_get_extra_views), (impl_receive_drag):
12783 * sources/rb-playlist-source.c: (rb_playlist_source_add_list_uri):
12784 * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb),
12785 (impl_receive_drag):
12786 * widgets/rb-entry-view.c: (rb_entry_view_finalize),
12787 (rb_entry_view_append_column_custom), (harvest_entries):
12788 * widgets/rb-property-view.c:
12789 (rb_property_view_selection_changed_cb):
12790 * widgets/rb-simple-view.c: (rb_simple_view_button_press_cb):
12791 switch from using g_list_append to g_list_prepend. This changes
12792 operations from O(n^2) to O(n), which in cases like deleting a lot of
12793 tracks can give huge improvements in speed. Closes bug 321696.
12795 2005-11-20 James Livingston <jrl@ids.org.au>
12797 * sources/rb-sourcelist.c: (rb_sourcelist_init),
12798 (rb_sourcelist_update_expander_visibility): fix indenting of child
12801 2005-11-20 James Livingston <jrl@ids.org.au>
12803 * daapsharing/rb-daap-mdns.c: (browse_cb), (rb_daap_mdns_browse),
12804 (resolve_cb), (rb_daap_mdns_resolve), (publish_cb),
12805 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12806 (rb_daap_mdns_browse_cancel), (rb_daap_mdns_resolve_cancel),
12807 (add_service), (entry_group_cb): dynamically allocate memory, rather
12808 than using static variables.
12810 * daapsharing/rb-daap-share.c: (rb_daap_share_set_property): don't
12811 re-enable the daap share if the name hasn't changed.
12812 * shell/rb-shell-preferences.c:
12813 (share_name_entry_focus_out_event_cb): don't ask the daap share to
12814 change it's name when the checkbox is disabled. Fixed bug 321748.
12816 2005-11-18 James Livingston <jrl@ids.org.au>
12818 * shell/rb-shell.c: (rb_shell_get_visibility): don't count the window
12819 as hidden if it is on the current workspace.
12821 2005-11-17 William Jon McCann <mccann@jhu.edu>
12823 * sources/rb-podcast-source.c (rb_podcast_source_post_date_cell_data_func):
12824 * podcast/rb-podcast-properties-dialog.c (rb_podcast_properties_dialog_update_date)
12825 (rb_podcast_properties_dialog_parse_time):
12826 * podcast/rb-feed-podcast-properties-dialog.c (rb_feed_podcast_properties_dialog_update_last_update)
12827 (rb_feed_podcast_properties_dialog_parse_time):
12828 Rework the way the last mod time strings are created. It was using
12829 thread unsafe functions, not creating value UTF, and not not checking
12830 the value of the result before modifying it. This new method fixes
12833 2005-11-18 James Livingston <jrl@ids.org.au>
12835 Don't reset the search box when viewing a different source, because it
12836 will change what is being played. Closes 321593.
12838 * shell/rb-shell.c: (rb_shell_jump_to_entry_with_source): don't reset
12841 * shell/rb-source-header.c: (rb_source_header_class_init),
12842 (rb_source_header_init), (rb_source_header_finalize): use
12845 (rb_source_header_set_property),
12846 (rb_source_header_source_weak_destroy_cb),
12847 (rb_source_header_search_cb): store the search text when leaving a
12848 source and put it in the search box when viewing it again.
12850 2005-11-18 James Livingston <jrl@ids.org.au>
12852 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
12854 * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
12855 (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
12856 * rhythmdb/rhythmdb.h: Remove LAST_POST property, use LAST_SEEN as a
12859 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): use
12860 last-seen as the timestamp of the last update of the feed. Don't
12861 re-add episodes that have been deleted. Closes 319759.
12863 2005-11-18 James Livingston <jrl@ids.org.au>
12865 * podcast/rb-podcast-parse.c: (rb_podcast_parse_date): parse dates
12866 that don't have the day name at the start. Closes 321645.
12868 2005-11-18 James Livingston <jrl@ids.org.au>
12870 * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
12871 (rb_podcast_manager_copy_post),
12872 (rb_podcast_manager_get_podcast_dir):
12873 * podcast/rb-podcast-manager.h:
12874 * sources/rb-podcast-source.c: (impl_get_config_widget),
12875 (rb_podcast_source_btn_file_change_cb): fix problem of podcast
12876 download location switching to / if the prefs were opened before
12877 downloading an episode. Closes 321611.
12879 2005-11-18 James Livingston <jrl@ids.org.au>
12881 * data/glade/podcast-new.glade:
12882 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
12883 (rb_new_podcast_dialog_set_property),
12884 (rb_new_podcast_dialog_get_property),
12885 (rb_new_podcast_dialog_response_cb),
12886 (rb_new_podcast_dialog_text_changed): use a GtkEntry not a GtkTextView
12887 for entering new podcast urls in. Closes bug 321610.
12889 2005-11-18 James Livingston <jrl@ids.org.au>
12891 * sources/rb-podcast-source.c: (construct_query_from_selection),
12892 (rb_podcast_source_do_query): allow podcast list to be re-sorted
12893 without restarting RB. Closes bug 321612.
12895 2005-11-18 James Livingston <jrl@ids.org.au>
12897 * widgets/rb-entry-view.c: (set_column_visibility),
12898 (rb_entry_view_sync_columns_visible): when changing visibility of one
12899 column, don't hide and re-show all the others. Makes a show/hide
12900 column operation a lot faster.
12902 2005-11-17 Jonathan Matthew <jonathan@kaolin.hn.org>
12906 * iradio/rb-station-properties-dialog.c
12907 (rb_station_properties_dialog_update_bitrate):
12908 Mark the bitrate value as being kbps, using the same
12909 translatable format string as rb-song-info.c
12911 * player/rb-player-gst.c (process_tag): Handle GST_TAG_BITRATE
12912 as a ulong, translating it to RB_METADATA_FIELD_BITRATE.
12914 * shell/rb-shell-player.c (info_available_cb):
12915 Use RB_METADATA_FIELD_BITRATE to update the iradio
12916 station's bitrate value.
12918 2005-11-17 James Livingston <jrl@ids.org.au>
12920 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321699
12922 * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize): don't attempt to
12925 2005-11-17 James Livingston <jrl@ids.org.au>
12927 Patch by: Jonathan Matthew <jonathan@kaolin.hn.org>. Closes bug 321698
12929 * lib/rb-stock-icons.c: emit a single warning rather than multiple
12930 assertions. Lookup the icon size correctly.
12932 2005-11-16 William Jon McCann <mccann@jhu.edu>
12934 * daapsharing/rb-daap-mdns.c (get_sw_discovery)
12935 (rb_daap_mdns_browse_cancel, rb_daap_mdns_resolve_cancel):
12938 2005-11-16 James Livingston <jrl@ids.org.au>
12940 * shell/rb-shell-preferences.c: (rb_shell_preferences_class_init),
12941 (rb_shell_preferences_finalize), (rb_shell_preferences_sync),
12942 (rb_shell_preferences_sync_column_button): block the toggle signal of
12943 the column checkboxes while setting their initial state. This stops
12944 the visibility being re-set, which causes a lot of time being spent
12945 measuring the columns aagin when opening the prefs window.
12949 2005-11-16 James Livingston <jrl@ids.org.au>
12951 * sources/rb-sourcelist.c: (rb_sourcelist_init),
12952 (rb_sourcelist_edit_source_name): don't assume that the editable
12953 source name is in the first column, because it isn't. Fixes bug
12956 2005-11-16 James Livingston <jrl@ids.org.au>
12958 * daapsharing/rb-daap-mdns.h:
12959 * daapsharing/rb-daap-mdns.c: (rb_daap_mdns_error_quark),
12960 (get_sw_discovery), (get_avahi_client): use GErrors, so that other
12961 parts can know why operations failed. Avahi can report that the daemon
12962 was not running. Howl doesn't do this (yet).
12964 (rb_daap_mdns_browse), (rb_daap_mdns_resolve),
12965 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel),
12966 (browse_cb): don't display mdns errors to the user, if it wa because
12967 the daemon was not running.
12969 2005-11-16 James Livingston <jrl@ids.org.au>
12971 * rhythmdb/rhythmdb-property-model.c:
12972 (rhythmdb_property_model_init), (rhythmdb_property_model_finalize),
12973 (rhythmdb_property_model_compare),
12974 (rhythmdb_property_model_insert),
12975 (rhythmdb_property_model_insert_prop),
12976 (rhythmdb_property_model_delete),
12977 (rhythmdb_property_model_delete_prop),
12978 (rhythmdb_property_model_get_value): use RBRefStrings rather than
12979 copying the string and re-creating the sort key. Saves a little bit of
12982 (rhythmdb_property_model_perform_sync),
12983 (rhythmdb_property_model_sync): perform the count sync in an idle
12984 callback, so that it doesn't have to be re-run once per value when
12987 2005-11-16 James Livingston <jrl@ids.org.au>
12989 * rhythmdb/rhythmdb-query-model.c:
12990 (rhythmdb_query_model_entry_deleted_cb),
12991 (rhythmdb_query_model_remove_entry): remove deleted entries from the
12992 limited list. Stops problems if they are deleted, and then things on
12995 2005-11-16 James Livingston <jrl@ids.org.au>
12997 * NEWS: update NEWS
12999 * shell/rb-shell.c: (rb_shell_window_delete_cb): disable close
13000 button's minimise-to-tray action
13002 2005-11-16 James Livingston <jrl@ids.org.au>
13004 * rhythmdb/rhythmdb.c: (rhythmdb_directory_change_cb): fix a memory
13005 leak. Disable adding newly created files for now, because it doesn't
13008 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
13009 (rb_sourcelist_model_finalize):
13010 * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
13011 (rb_sourcelist_finalize): use G_DEFINE_TYPE,
13013 2005-11-16 James Livingston <jrl@ids.org.au>
13015 * sources/rb-audiocd-source.c: (rb_audiocd_is_volume_audiocd): fix
13016 problem where a GError* wasn't being set to NULL. Actually check the
13019 2005-11-16 James Livingston <jrl@ids.org.au>
13021 * doc/reference/tmpl/rb-entry-view.sgml:
13022 * doc/reference/tmpl/rhythmbox-unused.sgml:
13023 * doc/reference/tmpl/rhythmdb-query-model.sgml:
13024 * doc/reference/tmpl/rhythmdb.sgml:
13025 * rhythmdb/rhythmdb.c: (rhythmdb_entry_unref): add some RhythmDB API
13026 docs, including the patch that was on bug
13028 * rhythmdb/rhythmdb.h: remove rhythmdb_entry_destroy from the public
13029 API, because it should only be used by RhythmDB itself.
13031 2005-11-16 James Livingston <jrl@ids.org.au>
13033 * shell/rb-tray-icon.c: (rb_tray_icon_button_press_event_cb): allow
13034 pausing by middle clicking on the tray icon.
13036 2005-11-15 James Livingston <jrl@ids.org.au>
13038 * configure.ac: enable audioscrobbler support by default, if libsoup
13041 2005-11-15 James Livingston <jrl@ids.org.au>
13043 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13047 * daapsharing/rb-daap-connection.c: (build_message),
13048 (g_zalloc_wrapper), (g_zfree_wrapper), (http_response_handler):
13049 support gzip encoded daap connections.
13051 (handle_song_listing): fix leak
13053 2005-11-15 James Livingston <jrl@ids.org.au>
13055 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored):
13056 * sources/rb-podcast-source.c:
13057 (rb_podcast_source_post_date_cell_data_func): make the date format
13058 translatable again, so that translators can choose the best format for
13059 their locale (%x is huge in some locales)
13061 2005-11-15 James Livingston <jrl@ids.org.au>
13063 * podcast/rb-podcast-manager.c: (rb_podcast_manager_save_metadata),
13064 (end_job): mark podcast episodes as failed, if the metadata load
13065 fails. This will prevent people playing non-audio enclosures, helping
13068 2005-11-14 James Livingston <jrl@ids.org.au>
13070 * player/rb-player-gst.c: (rb_player_construct): Explicitly set the
13071 video sink to fakesink. This will stop problems (potentially crashers)
13072 that will occur if the file contains a video stream.
13074 * rhythmdb/rhythmdb.h: define the podcast status number in an enum,
13075 rather than using magic numbers everywhere.
13077 * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb):
13078 * sources/rb-podcast-source.c:
13079 (rb_podcast_source_songs_show_popup_cb),
13080 (rb_podcast_source_cmd_download_post),
13081 (rb_podcast_source_post_status_cell_data_func),
13082 (rb_podcast_source_entry_activated_cb): use the above constants.
13084 * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13085 (rb_podcast_manager_finalize), (rb_podcast_manager_download_entry),
13086 (rb_podcast_manager_next_file), (rb_podcast_manager_copy_post),
13087 (write_job_data), (rb_podcast_manager_cancel_all), (end_job),
13088 (cancel_job), (download_progress_cb),
13089 (rb_podcast_manager_cancel_download),
13090 (rb_podcast_manager_insert_feed): use the constants, and fix a
13091 trhead-safety issue.
13093 2005-11-14 Bastien Nocera <hadess@hadess.net>
13095 * rhythmdb/rhythmdb.c: (rhythmdb_process_stat_event): Patch from
13096 Jonathan Matthew <jonathan@kaolin.hn.org> to avoid lingering
13097 entry-changed events after stats on startup, fixes entry deleted from
13098 filtered views not disappearing
13100 2005-11-14 Jonathan Matthew <jonathan@kaolin.hn.org>
13102 Fix rhythmdb query model refcount and polling problems. Closes bug
13105 * rhythmdb/rhythmdb-property-model.c:
13106 (rhythmdb_property_model_finalize):
13107 Unref the query model if we have one.
13109 * rhythmdb/rhythmdb-query-model.h:
13110 Remove poll and cancel methods. Query cancellation
13111 never did anything anyway.
13113 * rhythmdb/rhythmdb-query-model.c:
13114 (rhythmdb_query_model_init): Remove GAsyncQueues.
13115 Replace the GAsyncQueue-based update processing
13116 with a simpler g_idle_add approach; still has the
13117 same queueing properties, but now we don't poll the
13118 model forever and updates are processed immediately.
13120 (_unref_entry), (rhythmdb_query_model_finalize):
13121 Unref DB entries when finalized
13123 (rhythmdb_query_model_has_pending_changes):
13124 Use our own counter to decide if there are updates pending
13126 (rhythmdb_query_model_process_update), (idle_process_update):
13127 Process updates using g_idle_add, or directly if possible
13129 (rhythmdb_query_model_signal_complete),
13130 (rhythmdb_query_model_add_entries):
13131 Change to new update processing method
13133 (idle_poll_model), (rhythmdb_query_model_poll):
13134 Remove GAsyncQueue-based update processing.
13136 * rhythmdb/rhythmdb.c: (rhythmdb_do_full_query_internal):
13137 No need to poll the model any more - updates are processed
13138 directly for synchronous queries.
13140 * sources/rb-iradio-source.c: (rb_iradio_source_do_query):
13141 Property model needs to be unref'd here
13143 * sources/rb-library-source.c: (rb_library_source_do_query):
13144 Don't try to cancel the active query (it never worked anyway),
13145 remove obsolete poll call, unref property models as required,
13146 and don't unref the cached 'all' query, since hold on to it.
13147 We unref it when the sort order changes, which forces the query
13150 * sources/rb-podcast-source.c: (rb_podcast_source_constructor):
13151 Unref the property model as required
13153 (rb_podcast_source_do_query):
13154 Treat any query with no selected feeds and no search text as
13155 an 'all' query. Unref query models except for the cached
13156 'all' query, since we hold on to that.
13158 (rb_podcast_source_cmd_update_all):
13159 Unref the property model as required.
13161 * widgets/rb-entry-view.c: (rb_entry_view_set_property):
13162 Don't try to cancel the query (it never worked anyway)
13164 (rb_entry_view_poll_model):
13165 No need for this any more.
13167 * widgets/rb-entry-view.h:
13168 Remove obsolete function rb_entry_view_poll_model
13170 * widgets/rb-property-view.c: (rb_property_view_set_property):
13171 Ref and unref the property model as required.
13173 2005-11-14 James Livingston <jrl@ids.org.au>
13175 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13177 * shell/rb-shell-player.c: (rb_shell_player_open_location): fix checks
13178 for error. Closes bug 321416.
13180 2005-11-14 James Livingston <jrl@ids.org.au>
13182 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13184 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed): fix
13185 a crasher if a feed's last-post value isn't set. Closes bug 321353.
13187 2005-11-14 James Livingston <jrl@ids.org.au>
13189 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_uimanager):
13190 * shell/rb-removable-media-manager.c:
13191 (rb_removable_media_manager_set_uimanager):
13192 * shell/rb-tray-icon.c: (rb_tray_icon_constructor): set the
13193 translation domain for GTK action groups.
13195 2005-11-12 James Livingston <jrl@ids.org.au>
13197 * po/POTFILES.in: remove the old station-new files
13199 2005-11-12 James Livingston <jrl@ids.org.au>
13201 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
13202 (rhythmdb_tree_parser_end_element), (save_entry_ulong),
13203 (save_entry): cause Rhythmbox to re-read the metadata from a file,
13204 when upgrading from a pre-Date-supporting version to a version that
13205 supports Date metadata. Closes bug 320760.
13207 2005-11-12 James Livingston <jrl@ids.org.au>
13209 Add "update all podcast feeds" command. Closes bug 319954.
13211 * data/ui/rhythmbox-ui.xml: add to source context menu.
13213 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13214 (register_action_group), (rb_podcast_source_cmd_download_post),
13215 (rb_podcast_source_cmd_delete_feed),
13216 (rb_podcast_source_cmd_properties_feed),
13217 (rb_podcast_source_cmd_update_feed): pass the source to the actions,
13218 rather than the shell.
13220 (rb_podcast_source_update_feed_func),
13221 (rb_podcast_source_cmd_update_all): update every feed.
13223 2005-11-11 James Livingston <jrl@ids.org.au>
13225 * shell/rb-shell-player.c: (rb_shell_player_class_init),
13226 (rb_shell_player_constructor), (rb_shell_player_finalize):
13227 * shell/rb-shell.c: fix some conflicting keybindings, and mak some
13228 others follow the HIG recommentations.
13230 2005-11-11 James Livingston <jrl@ids.org.au>
13232 * podcast/rb-podcast-manager.c:
13233 (rb_podcast_manager_subscribe_feed): check that the url is valid,
13234 before trying to use it.
13236 2005-11-11 James Livingston <jrl@ids.org.au>
13238 * widgets/rb-entry-view.c: (rb_entry_view_date_sort_func),
13239 (rb_entry_view_append_column): When sorting by year, sort by album
13240 within a particular year.
13242 2005-11-11 James Livingston <jrl@ids.org.au>
13246 2005-11-10 Charles Schmidt <cschmidt2@emich.edu>
13247 * daapsharing/rb-daap-connection.c: (build_message): Fixed the
13248 spelling of "Language."
13250 2005-11-11 James Livingston <jrl@ids.org.au>
13252 * rhythmdb/rhythmdb-property-model.c:
13253 (rhythmdb_property_model_row_inserted_cb),
13254 (rhythmdb_property_model_prop_changed_cb),
13255 (rhythmdb_property_model_entry_removed_cb),
13256 (rhythmdb_property_model_insert_prop),
13257 (rhythmdb_property_model_sync): display the count after the "All"
13258 entry of a property model.
13260 * widgets/rb-property-view.c: (rb_property_view_class_init),
13261 (rb_property_view_finalize), (rb_property_view_constructor): use
13264 2005-11-10 James Livingston <jrl@ids.org.au>
13266 * rhythmdb/rhythmdb-query-model.c:
13267 (rhythmdb_query_model_remove_entry):
13268 * rhythmdb/rhythmdb-query-model.h: make
13269 rhythmdb_query_model_remove_entry return whether the entry was in the
13272 * sources/rb-playlist-source.c: (rb_playlist_source_add_location):
13273 don't add non-SONG entries, as it doesn't really work and can cause
13276 (rb_playlist_source_remove_location): assert if the playlist and model
13277 differ on whether the entry is in the playlist
13279 2005-11-10 James Livingston <jrl@ids.org.au>
13281 * podcast/rb-podcast-manager.c: (rb_podcast_manager_init),
13282 (rb_podcast_manager_finalize), (rb_podcast_manager_subscribe_feed),
13283 (rb_podcast_manager_thread_parse_feed),
13284 (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop),
13285 (rb_podcast_manager_abort_subscribe): use a GAsyncQueue rather than
13286 emulating one with a list and mutex. Fixes a couple of threading
13289 (rb_podcast_manager_insert_feed): fix some problems with ignoring
13292 (rb_podcast_manager_download_entry), (rb_podcast_manager_next_file),
13293 (rb_podcast_manager_copy_post), (end_job), (cancel_job),
13294 (download_progress_cb), (rb_podcast_manager_db_entry_deleted_cb),
13295 * podcast/rb-podcast-parse.c: (rb_insert_item),
13296 (rb_podcast_parse_channel_free):
13297 * podcast/rb-podcast-parse.h: Convert C++-style comments to C-style,
13298 fix some typos, and make a bit of code clearer.
13300 2005-11-10 Dennis Cranston <dennis_cranston@yahoo.com>
13302 Make the "delete podcast" dialog better. Closes bug 320899.
13304 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_get_property):
13305 Add PROP_WINDOW for rb_shell_get_property so we can access the
13306 GtkWindow widget of the main window.
13307 * sources/rb-podcast-source.c: (impl_delete): Set parent window &
13308 fix mnemonic conflict; (rb_podcast_source_cmd_delete_feed): Make the
13309 podcast feed delete dialog less confusing as well.
13311 2005-11-09 James Livingston <jrl@ids.org.au>
13313 * shell/rb-removable-media-manager.c:
13314 (rb_removable_media_manager_mount_volume),
13315 (rb_removable_media_manager_scan): Fix a crasher where we were getting
13316 NULL for a cd volume.
13318 2005-11-08 Jonathan Matthew <jonathan@kaolin.hn.org>
13320 * rhythmdb/rhythmdb.h: make RhythmDB's impl_entry_set
13321 method return a gboolean indicating whether the changes
13322 to the entry have already been applied.
13324 * rhythmdb/rhythmdb.c: (rhythmdb_entry_set_internal):
13325 only modify the entry if impl_entry_set returns FALSE.
13327 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_set):
13328 When setting the location of an entry, update the
13329 hash table mapping locations to entries.
13331 2005-11-08 Jonathan Matthew <jonathan@kaolin.hn.org>
13333 * data/glade/Makefile.am:
13334 * iradio/Makefile.am:
13335 Remove 'new station' dialog.
13337 * iradio/rb-station-properties-dialog.h:
13338 * sources/rb-iradio-source.c: (impl_song_properties):
13339 * shell/rb-shell.c: (rb_shell_cmd_new_station):
13340 Add 'new station' mode parameter to
13341 rb_station_properties_dialog_new.
13343 * (rb_station_properties_dialog_response_cb),
13344 (rb_station_properties_dialog_create_station):
13345 When in 'new station' mode, create the station
13346 when OK button is pressed.
13348 * iradio/rb-station-properties-dialog.c:
13349 (rb_station_properties_dialog_location_changed_cb):
13350 Only enable OK button if a location is specified
13351 (rb_station_properties_dialog_init),
13352 (rb_station_properties_dialog_new),
13353 (rb_station_properties_dialog_update),
13354 (rb_station_properties_dialog_update_title),
13355 (rb_station_properties_dialog_rated_cb),
13356 (rb_station_properties_dialog_update_play_count),
13357 (rb_station_properties_dialog_update_bitrate),
13358 (rb_station_properties_dialog_update_last_played),
13359 (rb_station_properties_dialog_update_rating),
13360 (rb_station_properties_dialog_update_playback_error),
13361 (rb_station_properties_dialog_show):
13362 Handle 'new station' mode, where there's no current
13365 2005-11-08 James Livingston <jrl@ids.org.au>
13367 * sources/rb-playlist-source.c: (rb_playlist_source_constructor): make
13368 keybinding for track columns consistent between library and playlist
13371 2005-11-07 James Livingston <jrl@ids.org.au>
13373 * data/ui/rhythmbox-ui.xml:
13374 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property): add
13375 "Edit" item to playlist menu. Closes bug 311470.
13377 2005-11-07 James Livingston <jrl@ids.org.au>
13379 patch by: Jaap A. Haitsma <jaap@haitsma.org>
13381 * widgets/rb-dialog.c: (rb_file_chooser_new): add overwrite
13382 confirmation to save dialogs, with gtk 2.8 or higher.
13384 2005-11-07 James Livingston <jrl@ids.org.au>
13385 * configure.ac: move gnome-vfs 2.7.4 from being an ipod-only
13386 requirement to a general on, because people are going to have it for
13387 the other dependencies.
13389 2005-11-06 Dennis Cranston <dennis_cranston@yahoo.com>
13391 * sources/rb-podcast-source.c: (impl_delete): Make the podcast
13392 delete dialog less confusing. Use HIG recommended button order.
13395 2005-11-06 James Livingston <jrl@ids.org.au>
13397 * sources/rb-audiocd-source.c: (rb_audiocd_source_class_init): remove
13398 drag-and-drop error.
13400 * sources/rb-library-source.c: (rb_library_source_constructor): only
13401 add drag-and-drop for the Library itself, subclasses can add support
13402 themselves if they want it.
13404 * sources/rb-removable-media-source.c:
13405 (rb_removable_media_source_class_init): by default removable media
13406 sources do not support dnd
13408 2005-11-05 Jonathan Matthew <jonathan@kaolin.hn.org>
13410 * data/glade/station-properties.glade:
13411 Add box containing error icon and error message label
13412 * iradio/rb-station-properties-dialog.c:
13413 (rb_station_properties_dialog_class_init),
13414 (rb_station_properties_dialog_finalize):
13415 Change this class to use G_DEFINE_TYPE
13416 (rb_station_properties_dialog_init),
13417 (rb_station_properties_dialog_update),
13418 (rb_station_properties_dialog_update_playback_error):
13419 Display error icon and message when there is one, and hide the error
13421 (rb_station_properties_dialog_show): Hack widget show
13422 method to update the visibility of the error info box when showing
13423 the widget. Otherwise the icon is displayed all the time (same thing
13424 is done in rb-song-info). Closes bug 320749.
13426 2005-11-04 Dennis Cranston <dennis_cranston@yahoo.com>
13428 * podcast/rb-podcast-parse.c: (rb_podcast_parse_time): Fix the
13429 parsing of the duration of podcast episodes from the feed. Closes bug
13432 2005-11-05 James Livingston <jrl@ids.org.au>
13434 patch by Christophe Fergeau <teuf@gnome.org> to add support for the
13435 release date metadata ("Year"). Closes bug 166093.
13437 * metadata/rb-metadata-common.c: (rb_metadata_get_field_type):
13438 * metadata/rb-metadata-gst.c: (rb_metadata_gst_load_tag),
13439 (rb_metadata_gst_add_tag_data):
13440 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13442 * rhythmdb/rhythmdb.c: (metadata_field_from_prop),
13443 (extract_gtype_from_enum_entry), (rhythmdb_entry_finalize),
13444 (set_props_from_metadata), (rhythmdb_entry_set_internal),
13445 (rhythmdb_prop_get_type):
13446 * rhythmdb/rhythmdb.h: add support for "date" property
13448 * data/glade/general-prefs.glade:
13449 * shell/rb-shell-preferences.c: (rb_shell_preferences_init):
13450 * widgets/rb-entry-view.c: (rb_entry_view_year_cell_data_func),
13451 (rb_entry_view_append_column):
13452 * widgets/rb-entry-view.h:
13453 * sources/rb-library-source.c: (rb_library_source_constructor):
13454 * sources/rb-playlist-source.c: (rb_playlist_source_constructor): Add
13457 * data/glade/song-info.glade:
13458 * widgets/rb-song-info.c: (rb_song_info_boldify_label),
13459 (rb_song_info_construct_single), (rb_song_info_constructor),
13460 (rb_song_info_populate_dialog), (rb_song_info_update_year),
13461 (rb_song_info_sync_entry_single): Add "Year" to song info window
13463 * widgets/rb-query-creator-properties.c: Allow auto playlists to be
13466 2005-11-05 James Livingston <jrl@ids.org.au>
13468 * data/glade/podcast-properties.glade: Add a scrollbar to the podcast
13469 description if it's very long.
13471 2005-11-05 James Livingston <jrl@ids.org.au>
13473 pathc by: Artem Baguinski <femistofel@gmail.com>
13475 * help/C/Makefile.am:
13476 * help/ja/Makefile.am: allow Anjuta to import the RB source tree.
13479 2005-11-05 James Livingston <jrl@ids.org.au>
13481 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13483 * daapsharing/rb-daap-share.c: (write_next_chunk),
13484 (message_finished), (databases_cb): Use chunked file loading and
13485 sending in the DAAP server. This should reduce the amount of memory
13486 required to send files to the client.
13488 2005-11-05 James Livingston <jrl@ids.org.au>
13490 * configure.ac: make the nautilus_burn_drive_door_is_open detection
13491 work better on some systems. Closes 320622.
13493 2005-11-05 James Livingston <jrl@ids.org.au>
13495 * data/glade/audioscrobbler-prefs.glade: add a link to the last.fm
13496 homepage, so that users can find out what AudioScrobbler is. Add
13499 * data/glade/daap-prefs.glade:
13500 * data/glade/general-prefs.glade:
13501 * data/glade/library-prefs.glade: make the indent be more consistent
13503 * data/glade/podcast-prefs.glade:
13504 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13505 (impl_get_config_widget): move thing out of code into glade, where
13508 2005-11-05 James Livingston <jrl@ids.org.au>
13510 * shell/rb-shell.c: (rb_shell_constructor): really remove bit of code
13511 related to WITH_CD_BURNER_SUPPORT that I missed in the other commit
13513 2005-11-04 James Livingston <jrl@ids.org.au>
13515 * configure.ac: don't print DAAP configure info twice
13517 2005-11-04 James Livingston <jrl@ids.org.au>
13519 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property):
13520 * sources/rb-playlist-source.c: (burn_playlist_iter_func),
13521 (rb_playlist_source_burn_playlist): remove the WITH_CD_BURNER_SUPPORT
13522 #ifdefs, since we removed the symbol. Oops
13524 2005-11-04 James Livingston <jrl@ids.org.au>
13526 * sources/rb-ipod-source.c: (hal_udi_is_ipod): put the libhal_ctx_init
13527 after the connect line, not before. Oops.
13529 2005-11-04 James Livingston <jrl@ids.org.au>
13531 * sources/rb-podcast-source.c: (rb_podcast_source_cmd_update_feed):
13534 2005-11-03 James Livingston <jrl@ids.org.au>
13536 * NEWS: update the news file
13538 * data/glade/general-prefs.glade: make the prefs refer to "time" not
13541 * data/ui/rhythmbox-ui.xml:
13542 * shell/rb-playlist-manager.c:
13543 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13544 (rb_podcast_source_feeds_show_popup_cb): don't have both "unsubscribe"
13545 and "delete" for feeds.
13547 2005-11-03 James Livingston <jrl@ids.org.au>
13549 * sources/rb-podcast-source.c: (impl_delete),
13550 (rb_podcast_source_cmd_delete_feed): Allow users to cancel deleting a
13551 feed. Closes 319760.
13553 2005-11-03 James Livingston <jrl@ids.org.au>
13555 Don't start playing from the remote site when a un-downloaded podcast
13556 is activated. Closes 319983.
13559 * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13560 (write_job_data), (download_progress_cb): write the local location as
13561 soon as any data is recieved
13563 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element): set
13564 the mountpoint to NULL for podcast episodes that haven't yet been
13567 * shell/rb-shell-player.c: (rb_shell_player_entry_activated_cb): don't
13568 start playing a podcast if it hasn't been downloaded.
13570 * sources/rb-podcast-source.c: (rb_podcast_source_constructor),
13571 (rb_podcast_source_entry_activated_cb): begin downloading when the
13572 podcast is activated.
13574 2005-11-03 Dennis Cranston <dennis_cranston@yahoo.com>
13576 * data/glade/general-prefs.glade: Fix capitalization.
13577 * shell/rb-removable-media-manager.c: Add a mnemonic.
13578 * sources/rb-podcast-source.c:
13579 (rb_podcast_source_songs_show_popup_cb),
13580 (rb_podcast_source_feeds_show_popup_cb): Add mnemonics.
13582 2005-11-03 James Livingston <jrl@ids.org.au>
13584 patch by: Shun-ichi Tahara <jado@flowernet.gr.jp>
13586 * shell/rb-removable-media-manager.c:
13587 (rb_removable_media_manager_mount_volume): don't check network or
13588 autofs mounts, as they're not going to be removable media. Stops
13589 sending lots of warnings to syslog. Closes 320571.
13591 * sources/rb-ipod-source.c: (hal_udi_is_ipod): actually initialise the
13592 DBus connection, so that it doesn't wedge gnome-vfs-daemon. Closes
13595 2005-11-03 James Livingston <jrl@ids.org.au>
13597 Add support for playing audio CDs. Metadata lookup is done using
13598 SoundJuicer's MusicBrainz lookup code, which can be switched to using
13599 the library when it gets broken out of S-J.
13601 Add a "rescan media" menu item, and commands for ejecting removable
13604 Move nautilus-cd-burner from optional to required depenency.
13607 * data/ui/rhythmbox-ui.xml:
13608 * metadata/Makefile.am:
13609 + metadata/sj-error.c:
13610 + metadata/sj-error.h:
13611 + metadata/sj-metadata-marshal.list:
13612 + metadata/sj-metadata-musicbrainz.c:
13613 + metadata/sj-metadata-musicbrainz.h:
13614 + metadata/sj-metadata.c:
13615 + metadata/sj-metadata.h:
13616 + metadata/sj-structures.c:
13617 + metadata/sj-structures.h:
13618 * player/Makefile.am:
13619 * player/rb-player-gst.c: (cdda_got_source_cb), (rb_player_open):
13621 * shell/Makefile.am:
13622 * shell/rb-removable-media-manager.c:
13623 (rb_removable_media_manager_dispose), (poll_tray_opened),
13624 (end_cd_drive_monitor), (begin_cd_drive_monitor),
13625 (rb_removable_media_manager_load_media),
13626 (rb_removable_media_manager_mount_volume),
13627 (rb_removable_media_manager_cmd_eject_medium),
13628 (rb_removable_media_manager_cmd_scan_media),
13629 (rb_removable_media_manager_check_volume),
13630 (rb_removable_media_manager_unmount_volume_swap),
13631 (rb_removable_media_manager_scan):
13632 * sources/Makefile.am:
13633 + sources/rb-audiocd-source.c:
13634 + sources/rb-audiocd-source.h:
13635 * tests/Makefile.am:
13637 2005-11-02 James Livingston <jrl@ids.org.au>
13639 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13641 * sources/rb-iradio-source.c:
13642 (stations_view_drag_data_received_cb):
13643 * sources/rb-podcast-source.c: (posts_view_drag_data_received_cb):
13644 don't crash when the second uri is missing frm the drop, which
13645 browsers sometimes do.
13647 2005-11-01 James Livingston <jrl@ids.org.au>
13649 * podcast/rb-podcast-manager.c: (rb_podcast_manager_add_post),
13650 (rb_podcast_manager_insert_feed):
13651 * podcast/rb-podcast-manager.h:
13652 * podcast/rb-podcast-parse.c: (rb_podcast_initializa_item),
13653 (rb_set_item_value), (rb_validate_item_propert),
13654 (rb_podcast_parse_date), (rb_podcast_parse_time):
13655 * podcast/rb-podcast-parse.h: get the duration of podcast episodes
13658 2005-10-31 James Livingston <jrl@ids.org.au>
13661 * ChangeLog0.8: break off the older Changelog entries, so it isn't so
13664 2005-10-31 James Livingston <jrl@ids.org.au>
13666 * sources/rb-podcast-source.c:
13667 (rb_podcast_source_post_date_cell_data_func): generate the date string
13668 in a way that is correct in all locales.
13670 * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
13671 (rhythmdb_entry_sync_mirrored): make the last played/date added
13672 columns use the same format.
13674 2005-10-30 James Livingston <jrl@ids.org.au>
13677 * podcast/rb-podcast-manager.c:
13678 (rb_podcast_manager_subscribe_feed): fix feed updating, which I broke
13680 * shell/rb-shell-player.c: (rb_shell_player_open_location): report
13681 iradio errors better.
13683 2005-10-30 James Livingston <jrl@ids.org.au>
13685 patch by: Artem Baguinski <femistofel@gmail.com>
13687 * metadata/rb-metadata-gst.c: (rb_metadata_init):
13689 2005-10-30 James Livingston <jrl@ids.org.au>
13691 * podcast/rb-podcast-manager.c:
13692 (rb_podcast_manager_subscribe_feed),
13693 (rb_podcast_manager_insert_feed): Don't crash if the podcast feed has
13694 already been added, usually as a radio station. Closes 319434.
13696 2005-10-29 Dennis Cranston <dennis_cranston@yahoo.com>
13698 * data/glade/podcast-new.glade: HIG fixes (spacing, capitalization,
13699 mnemonics & resize issues)
13700 * data/glade/podcast-prefs.glade: HIG fixes (spacing, capitalization
13702 * sources/rb-podcast-source.c: (impl_get_config_widget): Set mnemonic
13703 widget for the "download location" label.
13707 2005-10-29 James Livingston <jrl@ids.org.au>
13709 Allow the search box to match words from multiple properties. Closes
13710 bug 139196. Thanks to the person from IRC who did a lot of the initial
13714 * lib/rb-util.c: (rb_string_split_words), (rb_search_fold):
13715 * lib/rb-util.h: Add functions to split a string into words, and one
13716 to perform "search folding" which is currently like casefolding but
13717 also strips punctuation
13719 * rhythmdb/rhythmdb.c: (rhythmdb_prop_get_type),
13720 (rhythmdb_query_preprocess):
13721 * rhythmdb/rhythmdb.h: add a SEARCH_MATCH property which will match
13722 against title, artist, album and genre (for the search box)
13724 * rhythmdb/rb-refstring.c: (rb_refstring_new_full):
13725 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13726 (save_entry), (search_match_properties),
13727 (evaluate_conjunctive_subquery): process the SEARCH_MATCH property by
13728 splitting into words and matching across multiple properties.
13730 * sources/rb-library-source.c: (construct_query_from_selection): use
13731 the new SEARCH_MATCH property for the search box
13733 * widgets/rb-entry-view.c: (type_ahead_search_func):
13735 2005-10-29 James Livingston <jrl@ids.org.au>
13737 * lib/rb-stock-icons.c: (rb_stock_icons_init):
13738 * lib/rb-stock-icons.h: bind gnome-icon-theme icons to stock ids.
13740 * shell/rb-playlist-manager.c:
13741 * shell/rb-shell.c: use the above stock ids, so that the icons get set
13744 * shell/rb-shell-player.c: (rb_shell_player_constructor): set the
13745 initial state of the shuffle/repeat menu items correctly. Patch from
13746 Dennis Cranston <dennis_cranston@yahoo.com>, closes 313158.
13748 2005-10-29 James Livingston <jrl@ids.org.au>
13750 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix
13753 * widgets/rb-cell-renderer-pixbuf.c:
13754 (rb_cell_renderer_pixbuf_render): don't colour these, as it makes the
13755 icon go black when row is not selected
13757 * doc/reference/tmpl/rb-daap-connection.sgml:
13758 * doc/reference/tmpl/rhythmdb.sgml: doc updates
13760 2005-10-29 James Livingston <jrl@ids.org.au>
13762 * podcast/rb-podcast-manager.c: (rb_podcast_manager_copy_post): fix a
13763 silly mistake, where it could think partial downloads has been
13766 2005-10-29 James Livingston <jrl@ids.org.au>
13768 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13770 * data/glade/song-info.glade:
13771 * widgets/rb-song-info.c: (rb_song_info_construct_single),
13772 (rb_song_info_populate_num_field), (rb_song_info_populate_dialog),
13773 (rb_song_info_sync_entry_single): show the disc number in the song
13774 info window. From bug 311199.
13776 2005-10-29 James Livingston <jrl@ids.org.au>
13778 * rhythmdb/rhythmdb.c: (rhythmdb_process_events),
13779 (rhythmdb_query_preprocess), (rhythmdb_idle_save): Save database
13780 regularly. Closes 155306.
13782 2005-10-29 James Livingston <jrl@ids.org.au>
13784 * podcast/rb-podcast-manager.c:
13785 (rb_podcast_manager_download_entry),
13786 (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13787 (rb_podcast_manager_insert_feed):
13788 * podcast/rb-podcast-manager.h:
13789 * podcast/rb-podcast-parse.c: (rb_set_item_value),
13790 (rb_podcast_parser_start_element):
13791 * podcast/rb-podcast-parse.h: Detect already-downloaded podcasts, and
13792 don't download them again. However, it can't resume
13793 partially-downloaded ones.
13795 2005-10-28 James Livingston <jrl@ids.org.au>
13797 * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13798 (rb_metadata_gst_add_tag_data), (rb_metadata_save): Make ID3 tagging
13799 work. Don't attempt to write duration as a tag.
13801 Thanks to Artem Baguinski <femistofel@gmail.com>
13803 2005-10-28 James Livingston <jrl@ids.org.au>
13805 * shell/rb-source-header.c: (rb_source_header_sync_control_state):
13806 don't disable the status-bar menu item when the current source doesn't
13807 use the search box.
13809 2005-10-28 James Livingston <jrl@ids.org.au>
13811 * podcast/rb-podcast-manager.c: (download_progress_update_cb): don't
13812 crash if the file has unknown length
13814 2005-10-27 James Livingston <jrl@ids.org.au>
13816 * daapsharing/rb-daap-connection.c:
13817 (rb_daap_connection_state_done): don't assert when a daap server
13818 doesn't have any playlists
13820 2005-10-27 James Livingston <jrl@ids.org.au>
13822 * sources/rb-sourcelist-model.c:
13823 (rb_sourcelist_model_set_dnd_targets): Add the COPY action to the drag
13824 source for the sourcelist. Closes bug 319817.
13826 2005-10-26 Ryan P Skadberg <skadz@stigmata.org>
13828 Patch by: Renato Araujo <renatox@gmail.com>
13830 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13831 Fix for a crasher caused by previous patch.
13833 2005-10-26 James Livingston <jrl@ids.org.au>
13835 * data/glade/podcast-prefs.glade:
13836 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init):
13837 * podcast/rb-podcast-parse.c: (rb_podcast_parse_load_feed):
13838 * sources/rb-podcast-source.c: (rb_podcast_source_new):
13839 * podcast/rb-podcast-manager.c:
13840 (rb_podcast_manager_copy_post), (rb_podcast_manager_add_post),
13841 (rb_podcast_manager_insert_feed), (rb_podcast_manager_event_loop):
13842 * shell/rb-shell.c: Change some strings to make them more consistent.
13843 "Podcast" is now replaces by "Podcast Feed" or "Podcast Episode" which
13844 makes it clearer which is which. "Episode" may not be the best term,
13845 but it seems to be widely used.
13847 Also fix some strings that weren't marked as translatable.
13849 * podcast/rb-feed-podcast-properties-dialog.c:
13850 (rb_feed_podcast_properties_dialog_class_init),
13851 (rb_feed_podcast_properties_dialog_finalize):
13852 * podcast/rb-new-podcast-dialog.c:
13853 (rb_new_podcast_dialog_class_init), (rb_new_podcast_dialog_finalize):
13854 * widgets/rb-simple-view.c: (rb_simple_view_class_init),
13855 (rb_simple_view_finalize), (rb_simple_view_constructor):
13856 * podcast/rb-podcast-properties-dialog.c:
13857 (rb_podcast_properties_dialog_class_init),
13858 (rb_podcast_properties_dialog_finalize):
13859 * podcast/rb-podcast-manager.c: (rb_podcast_manager_class_init),
13860 (rb_podcast_manager_constructor), (rb_podcast_manager_finalize),
13861 * sources/rb-podcast-source.c: (rb_podcast_source_class_init),
13862 (rb_podcast_source_finalize), (rb_podcast_source_constructor):
13863 use G_DEFINE_TYPE, instead of doing it manually.
13865 2005-10-26 James Livingston <jrl@ids.org.au>
13867 Patch by Artem Baguinski <femistofel@gmail.com> and James Livingston
13870 * metadata/rb-metadata-gst.c: (rb_add_id3_tagger),
13871 (rb_metadata_init): Check that the necessary plugins are present to do
13873 (rb_metadata_file_valid), (rb_metadata_save): Ensure the file isn't
13874 corrupted before replacing the original.
13876 2005-10-25 Jonathan Matthew <jonathan@kaolin.hn.org>
13878 reviewed by: James Livingston <jrl@ids.org.au>
13880 Assign sequential IDs to playlists for DAAP rather than using the
13881 address of the playlist object. Less flaky, and should work on 64bit
13882 platforms. Closes bug 319304.
13884 * daapsharing/rb-daap-share.c:
13885 (rb_daap_share_set_property): watch for playlist creation
13886 (_find_by_id), (_find_by_source): playlist list search functions
13887 (rb_daap_share_playlist_created),
13888 (rb_daap_share_process_playlist),
13889 (rb_daap_share_playlist_destroyed):
13890 update playlist list as it changes, use weak refs on
13891 playlists to get notified on destroy.
13892 (rb_daap_share_forget_playlist), (rb_daap_share_dispose):
13893 destroy playlist list on shutdown
13894 (add_playlist_to_mlcl): use playlist ID rather than pointer in
13896 (databases_cb): search for playlist ID in list rather than just
13897 converting it to a pointer; return HTTP 404 if playlist not
13899 (rb_daap_share_start_publish): playlist IDs start at 2, since 1
13900 is already used for the main library
13902 2005-10-26 James Livingston <jrl@ids.org.au>
13904 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13906 * daapsharing/rb-daap-connection.c: (build_message),
13907 (http_response_handler), (http_get), (handle_server_info),
13908 (handle_login), (handle_update), (handle_database_info),
13909 (handle_song_listing), (handle_playlists),
13910 (handle_playlist_entries), (handle_logout),
13911 (rb_daap_connection_new), (rb_daap_connection_logout),
13912 (rb_daap_connection_state_done), (rb_daap_connection_do_something),
13913 (rb_daap_connection_get_headers), (rb_daap_connection_destroy):
13914 * daapsharing/rb-daap-connection.h:
13915 * sources/rb-daap-source.c: (rb_daap_source_activate),
13916 (rb_daap_source_connection_cb), (rb_daap_source_disconnect_cb),
13917 (rb_daap_source_disconnect): Make connecting to DAAP sources
13918 asynchronous, so that non-responsive servers don't hang the UI. Closes
13921 2005-10-26 James Livingston <jrl@ids.org.au>
13923 patch by: Jonathan Matthew <jonathan@kaolin.hn.org>
13925 * rhythmdb/rhythmdb-query-model.c:
13926 (rhythmdb_query_model_do_reorder): generate the row re-order map
13929 * widgets/rb-entry-view.c: (rb_entry_view_set_property),
13930 (rb_entry_view_row_changed_cb), (rb_entry_view_rows_reordered_cb):
13931 Update selection when rows get re-ordered. Closes 319718.
13933 2005-10-26 James Livingston <jrl@ids.org.au>
13935 patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13937 * shell/rb-play-order.c: (rb_play_order_playing_source_changed):
13938 actually set the db pointer in play orders. Closes 319818.
13940 2005-10-25 Ryan P Skadberg <skadz@stigmata.org>
13942 Patch by: Renato Araujo <renatox@gmail.com>
13944 * podcast/rb-podcast-manager.c: (rb_podcast_manager_start_sync),
13945 (rb_podcast_manager_sync_head_cb), (rb_podcast_manager_add_post),
13946 (rb_podcast_manager_update_synctime),
13947 (rb_podcast_manager_config_changed),
13948 (rb_podcast_manager_insert_feed):
13949 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
13951 * rhythmdb/rhythmdb.c: (rhythmdb_entry_finalize),
13952 (rhythmdb_entry_set_internal), (rhythmdb_prop_get_type):
13953 * rhythmdb/rhythmdb.h: Fixes for #319759 and #319755.
13955 2005-10-25 James Livingston <jrl@ids.org.au>
13957 * daapsharing/rb-daap-share.c: (db_entry_added_cb),
13958 (db_entry_deleted_cb): don't share tracks that are hidden because the
13961 2005-10-22 James Livingston <jrl@ids.org.au>
13963 * shell/rb-shell-player.c: (rb_shell_player_set_playing_entry): don't
13964 crash if an entry couldn't be playerd, without streamer setting an
13968 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
13970 * podcast/rb-new-podcast-dialog.c: (rb_new_podcast_dialog_init),
13971 (rb_new_podcast_dialog_text_changed): enable the add button when a url
13972 is pasted into the dialog.
13974 * podcast/rb-podcast-manager.c: (rb_podcast_manager_insert_feed):
13975 * podcast/rb-podcast-parse.c: (rb_set_channel_value),
13976 (rb_set_item_value), (rb_insert_item), (rb_validate_item_propert),
13977 (rb_podcast_parse_channel_free):
13978 * podcast/rb-podcast-parse.h: handle per-entry author names in podcast
13981 2005-10-22 James Livingston <jrl@ids.org.au>
13983 * sources/rb-iradio-source.c:
13984 (rb_iradio_source_first_time_changed): Make merging the default
13985 stations actually work.
13987 * sources/rb-podcast-source.c:
13988 (rb_podcast_source_post_status_cell_data_func): fix problem where some
13989 people weren't seing the percentages in the stats column.
13991 2005-10-21 James Livingston <jrl@ids.org.au>
13993 Patch from Caio Marcelo <cmarcelo@gmail.com>
13995 * shell/rb-shell.c: (rb_shell_window_state_cb),
13996 (rb_shell_get_visibility), (idle_hide_mainwindow),
13997 (rb_shell_set_visibility): Make the "show window" item in the tray
13998 icon menu show the toggle state correctly. Use a better policy on
13999 deciding whether the window is "visible" or not. Closes bug 308053.
14001 2005-10-21 James Livingston <jrl@ids.org.au>
14003 * doc/reference/tmpl/rb-shell-preferences.sgml:
14004 * shell/Makefile.am: fix building with gtk-doc
14006 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_song_changed_cb):
14007 don't submit podcasts to audioscrobbler
14010 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14012 * podcast/rb-podcast-parse.c: (rb_set_channel_value),
14013 (rb_set_item_value): strip spaces surrounding podcast urls
14016 Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14018 * rhythmdb/rhythmdb.h: fix crasher caused by dbus-podcast interaction
14020 2005-10-20 Ryan P Skadberg <skadz@stigmata.org>
14022 Patch from Ruben Vermeersch <ruben@lambda1.be> to add
14023 Audioscrobbler/Last.fm support
14026 * data/glade/Makefile.am:
14027 * data/glade/audioscrobbler-prefs.glade:
14028 * data/rhythmbox.schemas:
14030 * lib/md5.c: (md5_process), (md5_init), (md5_append), (md5_finish):
14032 * lib/rb-preferences.h:
14034 * shell/Makefile.am:
14035 * shell/rb-audioscrobbler.c: (rb_audioscrobbler_class_init),
14036 (rb_audioscrobbler_init), (rb_audioscrobbler_finalize),
14037 (rb_audioscrobbler_new), (rb_audioscrobbler_set_property),
14038 (rb_audioscrobbler_get_property), (rb_audioscrobbler_add_timeout),
14039 (rb_audioscrobbler_timeout_cb), (mkmd5),
14040 (rb_audioscrobbler_parse_response), (rb_audioscrobbler_perform),
14041 (rb_audioscrobbler_do_handshake),
14042 (rb_audioscrobbler_do_handshake_cb),
14043 (rb_audioscrobbler_submit_queue),
14044 (rb_audioscrobbler_submit_queue_cb),
14045 (rb_audioscrobbler_import_settings),
14046 (rb_audioscrobbler_preferences_sync),
14047 (rb_audioscrobbler_get_config_widget), (get_proxy_uri),
14048 (rb_audioscrobbler_gconf_changed_cb),
14049 (rb_audioscrobbler_song_changed_cb),
14050 (rb_audioscrobbler_username_entry_changed_cb),
14051 (rb_audioscrobbler_username_entry_activate_cb),
14052 (rb_audioscrobbler_password_entry_changed_cb),
14053 (rb_audioscrobbler_password_entry_activate_cb),
14054 (rb_audioscrobbler_enabled_check_changed_cb),
14055 (audioscrobbler_entry_init), (audioscrobbler_entry_free),
14056 (rb_audioscrobbler_load_entry_from_string),
14057 (rb_audioscrobbler_load_queue), (rb_audioscrobbler_save_queue),
14058 (rb_audioscrobbler_print_queue),
14059 (rb_audioscrobbler_free_queue_entries):
14060 * shell/rb-audioscrobbler.h:
14061 * shell/rb-shell-preferences.c:
14062 (rb_shell_preferences_append_audioscrobbler_config):
14063 * shell/rb-shell-preferences.h:
14064 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14065 (rb_shell_select_source), (rb_shell_cmd_preferences):
14066 * sources/Makefile.am:
14068 2005-10-21 James Livingston <jrl@ids.org.au>
14070 Patch from Renato Araujo <renatox@gmail.com> to add Podcast support
14075 * data/art/Makefile.am:
14076 * data/glade/Makefile.am:
14077 * data/rhythmbox.schemas:
14078 * data/ui/rhythmbox-ui.xml:
14079 * doc/reference/Makefile.am:
14080 * doc/reference/tmpl/rhythmdb.sgml:
14081 * lib/rb-stock-icons.c: (rb_stock_icons_init):
14082 * lib/rb-stock-icons.h:
14084 * podcast/Makefile.am:
14085 + podcast/rb-feed-podcast-properties-dialog.c:
14086 + podcast/rb-feed-podcast-properties-dialog.h:
14087 + podcast/rb-new-podcast-dialog.c:
14088 + podcast/rb-new-podcast-dialog.h:
14089 + podcast/rb-podcast-manager.c:
14090 + podcast/rb-podcast-manager.h:
14091 + podcast/rb-podcast-marshal.list:
14092 + podcast/rb-podcast-parse.c:
14093 + podcast/rb-podcast-parse.h:
14094 + podcast/rb-podcast-properties-dialog.c:
14095 + podcast/rb-podcast-properties-dialog.h:
14096 * rhythmdb/rhythmdb-property-model.c:
14097 (rhythmdb_property_model_set_property),
14098 (rhythmdb_property_model_enable_drag):
14099 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_start_element),
14100 (rhythmdb_tree_parser_end_element), (save_entry),
14101 (rhythmdb_tree_save):
14102 * rhythmdb/rhythmdb.c: (rhythmdb_entry_allocate),
14103 (rhythmdb_entry_finalize), (rhythmdb_entry_set_internal),
14104 (rhythmdb_prop_get_type), (rhythmdb_entry_podcast_post_get_type),
14105 (rhythmdb_entry_podcast_feed_get_type):
14106 * rhythmdb/rhythmdb.h:
14107 * shell/Makefile.am:
14108 * shell/rb-shell-player.c: (rb_shell_player_open_entry):
14109 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14110 (add_to_library_response_cb), (rb_shell_cmd_new_podcast),
14112 * sources/Makefile.am:
14113 + sources/rb-podcast-source.c:
14114 + sources/rb-podcast-source.h:
14115 * widgets/Makefile.am:
14116 * widgets/rb-property-view.c: (rb_property_view_class_init),
14117 (rb_property_view_constructor),
14118 (rb_property_view_selection_changed_cb),
14119 (rb_property_view_get_treeview):
14120 * widgets/rb-property-view.h:
14121 + widgets/rb-simple-view.c:
14122 + widgets/rb-simple-view.h:
14124 2005-10-20 James Livingston <jrl@ids.org.au>
14126 * NEWS: update with changes since 0.9.1
14128 * configure.ac: check whether collate_key_for_filename is available
14129 * lib/rb-cut-and-paste-code.c: (rb_utf8_collate_key_for_filename):
14130 * lib/rb-cut-and-paste-code.h: add function copied from glib 2.8, use
14131 it if it isn't available in glib (i.e. building against 2.6)
14132 * rhythmdb/rb-refstring.c: (rb_refstring_new_full): use the filename
14133 collation to get "natural sorting". Closes bug 158599.
14135 2005-10-20 James Livingston <jrl@ids.org.au>
14137 Patch from Paul Kuliniewicz <kuliniew@purdue.edu>
14139 * doc/reference/tmpl/rb-shell-player.sgml:
14140 * shell/rb-shell-player.c: (rb_shell_player_class_init),
14141 (volume_pre_unmount_cb), (rb_shell_player_sync_with_source),
14142 (rb_shell_player_get_playing),
14143 (rb_shell_player_get_playing_time_string),
14144 (rb_shell_player_get_playing_time),
14145 (rb_shell_player_set_playing_time), (tick_cb),
14146 (rb_shell_player_get_playing_path), (filter_mmkeys):
14147 * shell/rb-shell-player.h:
14148 * shell/rb-shell-player.xml:
14149 * shell/rb-shell.c: (rb_shell_constructor),
14150 (rb_shell_player_elapsed_changed_cb), (rb_shell_set_elapsed),
14151 (rb_shell_set_window_title), (rb_shell_playing_impl),
14152 (rb_shell_get_playing_time_impl), (rb_shell_set_playing_time_impl):
14153 Merge the duration_changed and elapsed_changed DBUS signals into one
14154 elapsed_changed signal. Check that the output argument isn't NULL
14155 before trying to put things in it.
14157 2005-10-20 James Livingston <jrl@ids.org.au>
14159 * rhythmdb/rhythmdb-query-model.c:
14160 (rhythmdb_query_model_entry_added_cb),
14161 (rhythmdb_query_model_do_insert), (rhythmdb_query_model_poll): fix
14162 problem where hidden entries could be shown in playlists.
14164 * shell/rb-shell.c: (rb_shell_window_state_cb): fix a window-sizing
14165 issues when switching in and out of small mode.
14167 2005-10-19 James Livingston <jrl@ids.org.au>
14169 * shell/rb-shell.c: (rb_shell_class_init), (rb_shell_finalize),
14170 (rb_shell_constructor), (rb_shell_window_state_cb),
14171 (rb_shell_set_visibility), (rb_shell_window_configure_cb),
14172 (rb_shell_sync_window_state), (rb_shell_playlist_created_cb),
14173 (rb_shell_view_smalldisplay_changed_cb),
14174 (rb_shell_sync_smalldisplay), (smalldisplay_changed_cb),
14175 (rb_shell_sync_paned): remove gconf window-state races, prevent
14176 changing small mode too often, fix window event races. Closes 122806.
14179 Patch from Caio Marcelo <cmarcelo@gmail.com>
14181 * data/rhythmbox.schemas:
14182 * shell/rb-shell.c: (rb_shell_window_state_cb),
14183 (rb_shell_window_configure_cb), (rb_shell_sync_window_state):
14184 Remember the position of the window. Closes 315289.
14186 2005-10-19 James Livingston <jrl@ids.org.au>
14188 Patch from Christophe Fergeau <teuf@gnome.org>
14190 * configure.ac: determine whether libgpod is present when neither
14191 --with-ipod nor --without-ipod is passed
14193 2005-10-19 James Livingston <jrl@ids.org.au>
14195 Patch from Caio Marcelo <cmarcelo@gmail.com>
14197 * shell/rb-shell-player.c: (do_next_idle),
14198 (rb_shell_player_do_previous), (rb_shell_player_do_next),
14199 (rb_shell_player_do_previous_or_seek),
14200 (rb_shell_player_previous_button_cb),
14201 (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14202 (rb_shell_player_cmd_next), (eos_cb):
14203 * widgets/rb-header.c: (rb_header_sync): Stop playback when the
14204 end of the playlist is reached.
14206 2005-10-19 Christopher Aillon <caillon@redhat.com>
14208 * lib/rb-thread.c: fix a few GSource leaks
14210 2005-10-19 James Livingston <jrl@ids.org.au>
14212 * doc/reference/tmpl/bacon-volume.sgml:
14213 * doc/reference/tmpl/disclosure-widget.sgml:
14214 * doc/reference/tmpl/eel-gconf-extensions.sgml:
14215 * doc/reference/tmpl/eggnotificationbubble.sgml:
14216 * doc/reference/tmpl/eggtrayicon.sgml:
14217 * doc/reference/tmpl/gsequence.sgml:
14218 * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14219 * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14220 * doc/reference/tmpl/rb-daap-connection.sgml:
14221 * doc/reference/tmpl/rb-daap-dialog.sgml:
14222 * doc/reference/tmpl/rb-daap-mdns.sgml:
14223 * doc/reference/tmpl/rb-daap-share.sgml:
14224 * doc/reference/tmpl/rb-daap-sharing.sgml:
14225 * doc/reference/tmpl/rb-daap-source.sgml:
14226 * doc/reference/tmpl/rb-daap-src.sgml:
14227 * doc/reference/tmpl/rb-daap-structure.sgml:
14228 * doc/reference/tmpl/rb-debug.sgml:
14229 * doc/reference/tmpl/rb-dialog.sgml:
14230 * doc/reference/tmpl/rb-druid.sgml:
14231 * doc/reference/tmpl/rb-entry-view.sgml:
14232 * doc/reference/tmpl/rb-enums.sgml:
14233 * doc/reference/tmpl/rb-file-helpers.sgml:
14234 * doc/reference/tmpl/rb-glade-helpers.sgml:
14235 * doc/reference/tmpl/rb-header.sgml:
14236 * doc/reference/tmpl/rb-history.sgml:
14237 * doc/reference/tmpl/rb-ipod-source.sgml:
14238 * doc/reference/tmpl/rb-iradio-source.sgml:
14239 * doc/reference/tmpl/rb-library-source.sgml:
14240 * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14241 * doc/reference/tmpl/rb-metadata.sgml:
14242 * doc/reference/tmpl/rb-new-station-dialog.sgml:
14243 * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14244 * doc/reference/tmpl/rb-play-order-linear.sgml:
14245 * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14246 * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14247 * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14248 * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14249 * doc/reference/tmpl/rb-play-order-random.sgml:
14250 * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14251 * doc/reference/tmpl/rb-play-order.sgml:
14252 * doc/reference/tmpl/rb-player.sgml:
14253 * doc/reference/tmpl/rb-playlist-manager.sgml:
14254 * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14255 * doc/reference/tmpl/rb-playlist-source.sgml:
14256 * doc/reference/tmpl/rb-preferences.sgml:
14257 * doc/reference/tmpl/rb-property-view.sgml:
14258 * doc/reference/tmpl/rb-query-creator-private.sgml:
14259 * doc/reference/tmpl/rb-query-creator.sgml:
14260 * doc/reference/tmpl/rb-rating-helper.sgml:
14261 * doc/reference/tmpl/rb-rating.sgml:
14262 * doc/reference/tmpl/rb-recorder.sgml:
14263 * doc/reference/tmpl/rb-refstring.sgml:
14264 * doc/reference/tmpl/rb-removable-media-manager.sgml:
14265 * doc/reference/tmpl/rb-removable-media-source.sgml:
14266 * doc/reference/tmpl/rb-search-entry.sgml:
14267 * doc/reference/tmpl/rb-shell-clipboard.sgml:
14268 * doc/reference/tmpl/rb-shell-glue.sgml:
14269 * doc/reference/tmpl/rb-shell-player-glue.sgml:
14270 * doc/reference/tmpl/rb-shell-player.sgml:
14271 * doc/reference/tmpl/rb-shell-preferences.sgml:
14272 * doc/reference/tmpl/rb-shell.sgml:
14273 * doc/reference/tmpl/rb-song-display-box.sgml:
14274 * doc/reference/tmpl/rb-song-info.sgml:
14275 * doc/reference/tmpl/rb-source-header.sgml:
14276 * doc/reference/tmpl/rb-source.sgml:
14277 * doc/reference/tmpl/rb-sourcelist-model.sgml:
14278 * doc/reference/tmpl/rb-sourcelist.sgml:
14279 * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14280 * doc/reference/tmpl/rb-statusbar.sgml:
14281 * doc/reference/tmpl/rb-stock-icons.sgml:
14282 * doc/reference/tmpl/rb-string-helpers.sgml:
14283 * doc/reference/tmpl/rb-thread.sgml:
14284 * doc/reference/tmpl/rb-tray-icon.sgml:
14285 * doc/reference/tmpl/rb-tree-dnd.sgml:
14286 * doc/reference/tmpl/rb-tree-model-sort.sgml:
14287 * doc/reference/tmpl/rb-util.sgml:
14288 * doc/reference/tmpl/rhythmbox-unused.sgml:
14289 * doc/reference/tmpl/rhythmdb-property-model.sgml:
14290 * doc/reference/tmpl/rhythmdb-query-model.sgml:
14291 * doc/reference/tmpl/rhythmdb-tree.sgml:
14292 * doc/reference/tmpl/rhythmdb.sgml: update for changes
14294 * doc/reference/Makefile.am: make docs build with changed ipod support
14296 * po/POTFILES.in: remove sources/itunesdb
14298 2005-10-18 Christophe Fergeau <teuf@gnome.org>
14300 * sources/itunesdb.c:
14301 * sources/itunesdb.h: removed now useless files
14303 2005-10-03 Christophe Fergeau <teuf@gnome.org>
14306 * shell/Makefile.am:
14307 * sources/Makefile.am:
14308 * sources/rb-ipod-source.c: use libgpod [1] instead of our own parsing
14310 [1]: http://www.gtkpod.org/libgpod.html
14313 2005-10-18 James Livingston <jrl@ids.org.au>
14315 patch from Funda Wang <fundawang@linux.net.cn>
14317 * shell/rb-shell.c: (rb_shell_playing_entry_changed_cb): make one of
14318 the notification bubble string translatable.
14320 ============ Version 0.9.1
14322 2005-10-16 James Livingston <jrl@ids.org.au>
14324 * configure.ac: bump version to 0.9.1
14325 * NEWS: update translation credits
14327 2005-10-16 James Livingston <jrl@ids.org.au>
14329 * rhythmdb/rhythmdb-query-model.c:
14330 (rhythmdb_query_model_class_init),
14331 (rhythmdb_query_model_drag_data_received):
14332 * rhythmdb/rhythmdb-query-model.h: Allow sources to be
14333 notified when things are dropped into the entry view.
14335 * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
14336 (rb_playlist_source_add_location_swapped),
14337 (rb_playlist_source_add_location), (rb_playlist_source_do_query),
14338 (rb_playlist_source_non_entry_dropped),
14339 (rb_playlist_source_row_inserted): Use the new signal so that dropping
14340 things onto a playlist's entry view work correctly, and doesn't cause
14341 crashes. Allow folders to be dropped as well. (Closes 318308)
14343 2005-10-16 James Livingston <jrl@ids.org.au>
14345 * NEWS: Update some more
14347 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14348 (rb_shell_sync_paned), (paned_size_allocate_cb): Don't do funky things
14349 with the paned size, so that it doesn't move when the window is
14350 maximised/restored. Closes bug 315852.
14352 * sources/rb-iradio-source.c: (rb_iradio_source_constructor): Don't
14353 display the playcount column, as it's useless (it never get changed).
14355 2005-10-14 James Livingston <jrl@ids.org.au>
14358 * data/Makefile.am:
14359 * doc/reference/Makefile.am: get "make distcheck" to pass again
14361 2005-10-11 James Livingston <jrl@ids.org.au>
14363 * daapsharing/rb-daap-connection.c: (rb_daap_connection_new): Don't
14364 destroy the connection when retrieving the playlists fails, because
14365 tracks have already been added. Closes 318380.
14367 2005-10-11 James Livingston <jrl@ids.org.au>
14369 * sources/rb-sourcelist.c: (rb_sourcelist_append),
14370 (rb_sourcelist_remove), (name_notify_cb), (visibility_notify_cb),
14371 (source_name_edited_cb): Ask for the columns to be resized when a
14372 source is added, deleted or changes name.
14374 2005-10-11 James Livingston <jrl@ids.org.au>
14376 * rhythmdb/rhythmdb.c: (add_thread_main), (rhythmdb_add_uri): only
14377 create a thread when processing a directory. This stops up created one
14378 thread for each file in a playlist we're trying to load. Closes
14381 * widgets/rb-entry-view.c: (rb_entry_view_artist_sort_func): fix a
14382 typo that made sort-by-artist not work correctly.
14384 2005-10-11 James Livingston <jrl@ids.org.au>
14386 * doc/reference/Makefile.am: Make gtk-doc generation work when daap
14389 2005-10-11 James Livingston <jrl@ids.org.au>
14391 * lib/rb-file-helpers.c: (rb_canonicalise_uri):
14392 * lib/rb-file-helpers.h: add a function to turn uris into our
14393 canonical path-escaped form
14394 * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): use the
14395 above function when import playlists. This will fix the problem of
14396 duplicate entries due to different representations of the uri (bug
14399 2005-10-11 James Livingston <jrl@ids.org.au>
14401 * shell/rb-shell.c: (rb_shell_get_visibility),
14402 (rb_shell_set_visibility), (rb_shell_window_delete_cb),
14403 (rb_shell_toggle_visibility), (rb_shell_set_visibility_impl): Fix
14404 window hiding so that Alt-F4 works again.
14406 * widgets/rb-entry-view.c: (rb_entry_view_album_sort_func),
14407 (rb_entry_view_artist_sort_func), (rb_entry_view_genre_sort_func),
14408 (rb_entry_view_string_sort_func): Stop some crashes where a string
14409 property was set to NULL.
14411 2005-10-10 James Livingston <jrl@ids.org.au>
14413 * doc/reference/rhythmbox.types: fix gtk-doc generation
14415 2005-10-09 James Livingston <jrl@ids.org.au>
14417 * sources/rb-sourcelist.c: (rb_sourcelist_init):
14418 * widgets/rb-entry-view.c: (rb_entry_view_append_column): Change a few
14419 accelerators, so that we don't have as many conflicting keys.
14421 2005-10-08 James Livingston <jrl@ids.org.au>
14423 * data/iradio-initial.pls: Update the list of radio stations. Thanks
14424 to Ali Akcaagac <aliakc@web.de> for collating a list to add. Closes
14427 2005-10-07 James Livingston <jrl@ids.org.au>
14429 * shell/rb-playlist-manager.c: (handle_playlist_entry_cb): escape
14430 local path names in the same way as every other URI. This should stop
14431 duplicates occurring due to different escapings. Closes bug 158211.
14433 2005-10-06 James Livingston <jrl@ids.org.au>
14435 * NEWS: more updates
14437 patch from Jaap Haitsma <jaap@haitsma.org>:
14440 * data/Makefile.am:
14441 * data/art/Makefile.am:
14442 - data/art/rhythmbox-paused.png:
14443 - data/art/rhythmbox-playback-error.png:
14444 - data/art/rhythmbox-playing.png:
14445 - data/art-clearlooks/:
14446 * lib/rb-file-helpers.c: (rb_file):
14447 * lib/rb-stock-icons.c: (rb_stock_icons_init):
14448 * lib/rb-stock-icons.h:
14449 * shell/rb-shell-player.c: (rb_shell_player_sync_buttons):
14450 * widgets/rb-cell-renderer-pixbuf.c:
14451 (rb_cell_renderer_pixbuf_render):
14452 * widgets/rb-entry-view.c: (rb_entry_view_init),
14453 (rb_entry_view_set_playing):
14454 * widgets/rb-rating-helper.c: (rb_rating_render_stars): use more
14455 stock icons instead of custom art. Drop remanents of art-clearlooks.
14457 2005-10-04 Pawan Chitrakar <pchitrakar@gmail.com>
14459 * configure.ac: Added ne in ALL_LINGUAS
14461 2005-10-02 James Livingston <jrl@ids.org.au>
14463 * data/glade/Makefile.am: actually install the daap prefs glade file
14465 2005-09-30 James Livingston <jrl@ids.org.au>
14467 * po/POTFILES.in: mremove rb-string-helper.c from the list of
14468 translatable files, so that make check works and we don't annoy the
14471 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_entry_new): do a bit of
14472 sanity checking, in case a db entry is missing some properties.
14474 2005-09-29 James Livingston <jrl@ids.org.au>
14476 - lib/rb-string-helpers.c:
14477 - lib/rb-string-helpers.h:
14479 * rhythmdb/rhythmdb-tree.c:
14480 * rhythmdb/rhythmdb.c:
14481 * shell/main.c: (main):
14482 * shell/rb-shell.c:
14483 * widgets/rb-entry-view.c:
14484 * widgets/rb-property-view.c: remove rb-string-helpers, as they
14485 utility functions haven't been used in a while.
14487 2005-09-27 James Livingston <jrl@ids.org.au>
14489 * data/art-clearlooks/Makefile.am:
14490 - data/art-clearlooks/rhythmbox-album.png:
14491 - data/art-clearlooks/rhythmbox-audiocd.png:
14492 - data/art-clearlooks/rhythmbox-automatic-playlist.png:
14493 - data/art-clearlooks/rhythmbox-dnd.png:
14494 - data/art-clearlooks/rhythmbox-ipod.png:
14495 - data/art-clearlooks/rhythmbox-iradio.png:
14496 - data/art-clearlooks/rhythmbox-library.png:
14497 - data/art-clearlooks/rhythmbox-next.png:
14498 - data/art-clearlooks/rhythmbox-pause.png:
14499 - data/art-clearlooks/rhythmbox-play.png:
14500 - data/art-clearlooks/rhythmbox-playlist-menu.png:
14501 - data/art-clearlooks/rhythmbox-playlist.png:
14502 - data/art-clearlooks/rhythmbox-previous.png:
14503 - data/art-clearlooks/rhythmbox-repeat.png:
14504 - data/art-clearlooks/rhythmbox-rewind.png:
14505 - data/art-clearlooks/rhythmbox-shuffle.png:
14506 - data/art-clearlooks/rhythmbox-stop.png:
14507 - data/art-clearlooks/rhythmbox-visuals.png:
14508 - data/art-clearlooks/rhythmbox-volume-max.png:
14509 - data/art-clearlooks/rhythmbox-volume-medium.png:
14510 - data/art-clearlooks/rhythmbox-volume-min.png:
14511 - data/art-clearlooks/rhythmbox-volume-mute.png:
14512 - data/art-clearlooks/rhythmbox-volume-zero.png:
14513 * data/art/Makefile.am:
14514 - data/art/rhythmbox-album.png:
14515 - data/art/rhythmbox-audiocd.png:
14516 - data/art/rhythmbox-automatic-playlist.png:
14517 - data/art/rhythmbox-dnd.png:
14518 - data/art/rhythmbox-ipod.png:
14519 - data/art/rhythmbox-iradio.png:
14520 - data/art/rhythmbox-library.png:
14521 - data/art/rhythmbox-next.png:
14522 - data/art/rhythmbox-pause.png:
14523 - data/art/rhythmbox-play.png:
14524 - data/art/rhythmbox-playlist-menu.png:
14525 - data/art/rhythmbox-playlist.png:
14526 - data/art/rhythmbox-previous.png:
14527 - data/art/rhythmbox-repeat.png:
14528 - data/art/rhythmbox-rewind.png:
14529 - data/art/rhythmbox-shuffle.png:
14530 - data/art/rhythmbox-stop.png:
14531 - data/art/rhythmbox-visuals.png:
14532 - data/art/rhythmbox-volume-max.png:
14533 - data/art/rhythmbox-volume-medium.png:
14534 - data/art/rhythmbox-volume-min.png:
14535 - data/art/rhythmbox-volume-mute.png:
14536 - data/art/rhythmbox-volume-zero.png:
14537 * lib/rb-stock-icons.c: (rb_stock_icons_init):
14538 * lib/rb-stock-icons.h:
14539 * shell/rb-playlist-manager.c:
14540 * shell/rb-shell-player.c:
14541 * sources/rb-daap-source.c: (rb_daap_get_icon):
14542 * sources/rb-ipod-source.c:
14543 * sources/rb-iradio-source.c: (rb_iradio_source_init):
14544 * sources/rb-library-source.c: (rb_library_source_new):
14545 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14546 * sources/rb-removable-media-source.c: (impl_get_pixbuf): Remove art
14547 that hasn't been used in a LONG time, and also remove art that are
14550 2005-09-27 James Livingston <jrl@ids.org.au>
14552 * README: point to the gnome.org web sites, and update the example
14553 gstreamer pipeline to a plybin/decodebin based one. Closes bug 317108
14555 * rhythmdb/rhythmdb-query-model.c:
14556 (rhythmdb_query_model_set_property),
14557 (rhythmdb_query_model_get_property),
14558 (rhythmdb_query_model_finalize):
14559 * rhythmdb/rhythmdb.c: (rhythmdb_query_internal),
14560 (rhythmdb_entry_set_visibility), (rhythmdb_query_preprocess):
14561 * rhythmdb/rhythmdb.h:
14562 * sources/rb-iradio-source.c: (impl_search):
14563 * sources/rb-library-source.c: (impl_search): Add query
14564 "preprocessing", which performs operations such as casefolding any
14565 strings that will be compared to any of the *_FOLDED properties.
14568 2005-09-27 James Livingston <jrl@ids.org.au>
14570 * data/glade/daap-prefs.glade:
14571 * shell/rb-shell-preferences.c: (add_daap_preferences): use a glade
14572 file for the daap preferences pane
14574 * sources/rb-sourcelist.c: (rb_sourcelist_init),
14575 (rb_sourcelist_append), (rb_sourcelist_remove),
14576 (visibility_notify_cb), (rb_sourcelist_update_expander_visibility):
14577 don't display the column for source expanders unless there is an
14580 2005-09-24 Raphael Slinckx <rslinckx@cvs.gnome.org>
14587 * doc/reference/.cvsignore:
14588 * doc/reference/Makefile.am:
14589 * doc/reference/rhythmbox-docs.sgml:
14590 * doc/reference/rhythmbox-sections.txt:
14591 * doc/reference/rhythmbox.types:
14592 * doc/reference/tmpl/bacon-volume.sgml:
14593 * doc/reference/tmpl/disclosure-widget.sgml:
14594 * doc/reference/tmpl/eel-gconf-extensions.sgml:
14595 * doc/reference/tmpl/eggnotificationbubble.sgml:
14596 * doc/reference/tmpl/eggtrayicon.sgml:
14597 * doc/reference/tmpl/gsequence.sgml:
14598 * doc/reference/tmpl/rb-cell-renderer-pixbuf.sgml:
14599 * doc/reference/tmpl/rb-cell-renderer-rating.sgml:
14600 * doc/reference/tmpl/rb-daap-connection.sgml:
14601 * doc/reference/tmpl/rb-daap-dialog.sgml:
14602 * doc/reference/tmpl/rb-daap-mdns.sgml:
14603 * doc/reference/tmpl/rb-daap-share.sgml:
14604 * doc/reference/tmpl/rb-daap-sharing.sgml:
14605 * doc/reference/tmpl/rb-daap-source.sgml:
14606 * doc/reference/tmpl/rb-daap-src.sgml:
14607 * doc/reference/tmpl/rb-daap-structure.sgml:
14608 * doc/reference/tmpl/rb-debug.sgml:
14609 * doc/reference/tmpl/rb-dialog.sgml:
14610 * doc/reference/tmpl/rb-druid.sgml:
14611 * doc/reference/tmpl/rb-entry-view.sgml:
14612 * doc/reference/tmpl/rb-enums.sgml:
14613 * doc/reference/tmpl/rb-file-helpers.sgml:
14614 * doc/reference/tmpl/rb-glade-helpers.sgml:
14615 * doc/reference/tmpl/rb-header.sgml:
14616 * doc/reference/tmpl/rb-history.sgml:
14617 * doc/reference/tmpl/rb-ipod-source.sgml:
14618 * doc/reference/tmpl/rb-iradio-source.sgml:
14619 * doc/reference/tmpl/rb-library-source.sgml:
14620 * doc/reference/tmpl/rb-load-failure-dialog.sgml:
14621 * doc/reference/tmpl/rb-metadata.sgml:
14622 * doc/reference/tmpl/rb-new-station-dialog.sgml:
14623 * doc/reference/tmpl/rb-play-order-linear-loop.sgml:
14624 * doc/reference/tmpl/rb-play-order-linear.sgml:
14625 * doc/reference/tmpl/rb-play-order-random-by-age-and-rating.sgml:
14626 * doc/reference/tmpl/rb-play-order-random-by-age.sgml:
14627 * doc/reference/tmpl/rb-play-order-random-by-rating.sgml:
14628 * doc/reference/tmpl/rb-play-order-random-equal-weights.sgml:
14629 * doc/reference/tmpl/rb-play-order-random.sgml:
14630 * doc/reference/tmpl/rb-play-order-shuffle.sgml:
14631 * doc/reference/tmpl/rb-play-order.sgml:
14632 * doc/reference/tmpl/rb-player.sgml:
14633 * doc/reference/tmpl/rb-playlist-manager.sgml:
14634 * doc/reference/tmpl/rb-playlist-source-recorder.sgml:
14635 * doc/reference/tmpl/rb-playlist-source.sgml:
14636 * doc/reference/tmpl/rb-preferences.sgml:
14637 * doc/reference/tmpl/rb-property-view.sgml:
14638 * doc/reference/tmpl/rb-query-creator-private.sgml:
14639 * doc/reference/tmpl/rb-query-creator.sgml:
14640 * doc/reference/tmpl/rb-rating-helper.sgml:
14641 * doc/reference/tmpl/rb-rating.sgml:
14642 * doc/reference/tmpl/rb-recorder.sgml:
14643 * doc/reference/tmpl/rb-refstring.sgml:
14644 * doc/reference/tmpl/rb-removable-media-manager.sgml:
14645 * doc/reference/tmpl/rb-removable-media-source.sgml:
14646 * doc/reference/tmpl/rb-search-entry.sgml:
14647 * doc/reference/tmpl/rb-shell-clipboard.sgml:
14648 * doc/reference/tmpl/rb-shell-glue.sgml:
14649 * doc/reference/tmpl/rb-shell-player-glue.sgml:
14650 * doc/reference/tmpl/rb-shell-player.sgml:
14651 * doc/reference/tmpl/rb-shell-preferences.sgml:
14652 * doc/reference/tmpl/rb-shell.sgml:
14653 * doc/reference/tmpl/rb-song-display-box.sgml:
14654 * doc/reference/tmpl/rb-song-info.sgml:
14655 * doc/reference/tmpl/rb-source-header.sgml:
14656 * doc/reference/tmpl/rb-source.sgml:
14657 * doc/reference/tmpl/rb-sourcelist-model.sgml:
14658 * doc/reference/tmpl/rb-sourcelist.sgml:
14659 * doc/reference/tmpl/rb-station-properties-dialog.sgml:
14660 * doc/reference/tmpl/rb-statusbar.sgml:
14661 * doc/reference/tmpl/rb-stock-icons.sgml:
14662 * doc/reference/tmpl/rb-string-helpers.sgml:
14663 * doc/reference/tmpl/rb-thread.sgml:
14664 * doc/reference/tmpl/rb-tray-icon.sgml:
14665 * doc/reference/tmpl/rb-tree-dnd.sgml:
14666 * doc/reference/tmpl/rb-tree-model-sort.sgml:
14667 * doc/reference/tmpl/rb-util.sgml:
14668 * doc/reference/tmpl/rhythmdb-property-model.sgml:
14669 * doc/reference/tmpl/rhythmdb-query-model.sgml:
14670 * doc/reference/tmpl/rhythmdb-tree.sgml:
14671 * doc/reference/tmpl/rhythmdb.sgml:
14672 * macros/.cvsignore:
14673 * shell/Makefile.am:
14674 * sources/rb-source.c: (rb_source_class_init), (rb_source_init),
14675 (rb_source_finalize), (rb_source_set_property),
14676 (rb_source_get_property), (default_get_pixbuf),
14677 (_rb_source_show_popup):
14678 * sources/rb-source.h:
14679 Add support for gtk-doc in rhythmbox.
14680 Convert RBSource to use newer glib functions, such as add_private.
14681 Gives RBSource a default get_pixbuf implementation.
14683 2005-09-25 James Livingston <jrl@ids.org.au>
14685 * NEWS: Update with about a months worth of changes
14687 * data/glade/song-info-multiple.glade:
14688 * data/glade/song-info.glade:
14689 * data/rhythmbox.schemas:
14690 * lib/rb-preferences.h:
14691 * rhythmdb/rhythmdb.h:
14692 * shell/rb-shell-player.c:
14693 * widgets/rb-song-info.c: (rb_song_info_constructor): remove the last
14694 few remaining parts of autorating.
14696 2005-09-24 James Livingston <jrl@ids.org.au>
14698 * shell/rb-shell.c: (rb_shell_constructor),
14699 (rb_shell_window_state_cb), (rb_shell_set_visibility),
14700 (rb_shell_window_configure_cb): store window state in the gconf keys,
14701 so that it gets used. Closes bugs 313893 and 137068.
14703 2005-09-20 James Livingston <jrl@ids.org.au>
14705 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): don't
14706 crash if the entry has a NULL string in a property
14708 * shell/rb-removable-media-manager.c:
14709 (rb_removable_media_manager_load_media): fix some memory leaks
14711 (rb_removable_media_manager_mount_volume),
14712 (rb_removable_media_manager_eject_medium_cb),
14713 (rb_removable_media_manager_cmd_eject_medium): use
14714 gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14716 * sources/rb-removable-media-source.c:
14717 (rb_removable_media_source_set_property),
14718 (rb_removable_media_source_get_property): use
14719 gnome_vfs_volume_ref/unref instead of g_object_ref/unref
14721 2005-09-18 James Livingston <jrl@ids.org.au>
14723 Patch from Ernst Persson <ernstp@gmail.com> to add a "date added"
14726 * data/glade/general-prefs.glade:
14727 * shell/rb-shell-preferences.c: (rb_shell_preferences_init),
14728 (rb_shell_preferences_column_check_changed_cb),
14729 (rb_shell_preferences_sync): add checkbox to control visibility
14733 * rhythmdb/rhythmdb-tree.c: (rhythmdb_tree_parser_end_element),
14735 * rhythmdb/rhythmdb.c: (rhythmdb_entry_sync_mirrored),
14736 (rhythmdb_prop_get_type):
14737 * rhythmdb/rhythmdb.h: add string version of "first seen", in the same
14738 was as "last played" is handled
14740 * sources/rb-library-source.c: (rb_library_source_constructor):
14741 * sources/rb-playlist-source.c: (rb_playlist_source_constructor):
14742 Make the column show in the library and playlists
14744 * widgets/rb-entry-view.c: (rb_entry_view_append_column):
14745 * widgets/rb-entry-view.h: add the column
14747 * widgets/rb-query-creator-properties.c: allow automatic playlists to
14748 be sorted by the column
14750 2005-09-16 James Livingston <jrl@ids.org.au>
14752 * shell/rb-shell-player.c: (rb_shell_player_init),
14753 (rb_shell_player_do_previous_or_seek),
14754 (rb_shell_player_previous_button_cb),
14755 (rb_shell_player_next_button_cb), (rb_shell_player_cmd_previous),
14756 (rb_shell_player_playpause_button_cb): Make the previous button act
14757 the same as the menu item. Fix an inversion of the "previous track or
14760 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14762 (rb_shell_player_playpause): make --play-pause stop source that can't
14765 2005-09-15 James Livingston <jrl@ids.org.au>
14767 * configure.ac: increase totem-plparser requirements to 1.1.5
14769 * shell/rb-playlist-manager.c: (playlist_load_start_cb),
14770 (playlist_load_end_cb), (rb_playlist_manager_parse_file):
14771 * sources/rb-playlist-source.c: (rb_playlist_source_save_playlist):
14772 use the newer playlist APIs to save the name of the playlist, and use
14773 the name of a loaded playlist.
14777 2005-09-15 James Livingston <jrl@ids.org.au>
14779 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14781 * shell/Makefile.am: stop some linker warnings
14783 * shell/main.c: (main): make --no-registration work with dbus
14785 2005-09-15 James Livingston <jrl@ids.org.au>
14787 * daapsharing/rb-daap-sharing.c: (create_share):
14788 * widgets/rb-entry-view.c: (rb_entry_view_constructor): Fix some
14789 reference sinking and counting issues that I caused.
14791 2005-09-15 James Livingston <jrl@ids.org.au>
14793 * widgets/rb-entry-view.c: (rb_entry_view_constructor): Put the "now
14794 playing" icon in the "now playing" column header.
14796 2005-09-14 James Livingston <jrl@ids.org.au>
14798 * daapsharing/rb-daap-mdns.c: (browse_cb): fix crasher if browsering
14799 daap shares, when sharing is turned off.
14801 2005-09-12 Bastien Nocera <hadess@hadess.net>
14803 * sources/rb-daap-source.c: (rb_daap_sources_init): Check
14804 the GConf value's default, especially for badly installed schema
14807 2005-09-12 James Livingston <jrl@ids.org.au>
14809 * daapsharing/rb-daap-mdns.c: (resolve_cb): fix compilation with Howl
14811 Patch from Paolo Borelli <pborelli@katamail.com>
14813 * shell/rb-shell.c: (rb_shell_window_state_cb): hide the statusbar
14814 grip when maximised. Closes bug 316055.
14816 2005-09-11 James Livingston <jrl@ids.org.au>
14818 Patch from William Jon McCann <mccann@jhu.edu>
14820 * shell/rb-statusbar.[ch]: Use G_DEFINE_TYPE. Make a
14821 subclass of GtkStatusbar instead of GtkHBox.
14822 (rb_statusbar_construct): Don't set border width.
14823 (rb_statusbar_init): Use resize grip. Don't use
14825 (set_statusbar_tooltip, unset_statusbar_tooltip)
14826 (rb_statusbar_connect_action_group, rb_statusbar_set_property):
14827 Connect tooltips for actions.
14828 (rb_statusbar_sync_status): Push new message to statusbar.
14829 (rb_statusbar_set_progress): Don't use markup.
14830 (rb_statusbar_entry_view_changed_cb): Don't set syncing_state
14831 flag here since it prevents actually showing or hiding.
14832 (rb_statusbar_sync_with_source): Push new message to statusbar.
14834 2005-09-11 Charles Schmidt <cschmidt2@emich.edu>
14836 * daapsharing/rb-daap-structure.c:
14837 (rb_daap_structure_parse_container_buffer: Forgot to remove comments
14838 around debugging definition.
14840 2005-09-11 Charles Schmidt <cschmidt2@emich.edu>
14842 * daapsharing/rb-daap-structure.c:
14843 (rb_daap_structure_parse_container_buffer): Read the patch from daap
14846 * daapsharing/rb-daap-mdns.c/h:
14847 (resolve_cb): Updated mDNS resolve callback to send service-name &
14848 name (read from Machine Name in the TXT data or equal to service-name
14851 * daapsharing/rb-daap-source.c:
14852 (rb_daap_source_class_init), (rb_daap_source_set_property),
14853 (rb_daap_source_get_property), (rb_daap_source_new),
14854 (find_source_by_service_name), (resolve_cb), (browse_cb),
14855 (stop_resolver), (start_browsing), (stop_browsing),
14856 (enable_browsing_changed_cb): Switched 'real-name' for 'service-name'
14857 and added 'host' and 'port' gobject properties. Updated to use new
14858 mDNS resolve callback sending service-name & name arguments.
14860 2005-09-11 Charles Schmidt <cschmidt2@emich.edu>
14862 * daapsharing/rb-daap-mdns.c:
14863 (howl_strerror): New function to report errors from Howl
14864 (rb_daap_mdns_browse), (rb_daap_mdns_resolve),(rb_daap_mdns_publish),
14865 (get_sw_discovery), (get_avahi_client): Better error reporting from
14868 * sources/rb-daap-source.:
14869 (start_browsing), (stop_browsing): Fixed a bug where browsing would
14870 not get started or stopped in some situations.
14872 2005-09-12 James Livingston <jrl@ids.org.au>
14874 * shell/rb-removable-media-manager.c: add a missing include, that
14875 would stop compilation if ipod support wasn't turned on
14877 2005-09-11 James Livingston <jrl@ids.org.au>
14879 * daapsharing/rb-daap-dialog.c: (encode_base64),
14880 (rb_daap_password_dialog_new_run),
14881 (rb_daap_collision_dialog_new_run): fix a translatable string, so that
14882 it is no broken in to two pieces, and remove a use of a goto
14884 * daapsharing/rb-daap-mdns.c: (mdns_error_dialog),
14885 (setup_sw_discovery), (rb_daap_mdns_resolve_cancel), (publish_cb),
14886 (rb_daap_mdns_publish), (rb_daap_mdns_publish_cancel), (client_cb),
14887 (get_avahi_client), (browse_cb), (rb_daap_mdns_browse),
14888 (rb_daap_mdns_browse_cancel), (resolve_cb), (entry_group_cb): fix a
14889 memory leaks, and some code style things.
14891 * daapsharing/rb-daap-share.c: (rb_daap_share_class_init),
14892 (rb_daap_share_init), (rb_daap_share_set_property),
14893 (rb_daap_share_dispose), (rb_daap_share_new),
14894 (rb_daap_share_get_property): make the DB and the playlist manager
14895 gobject properties.
14897 (message_add_standard_headers),
14898 (message_set_from_rb_daap_structure), (server_info_cb),
14899 (content_codes_cb), (login_cb), (update_cb), (databases_cb),
14900 (server_cb), (add_db_entry), (db_entry_added_cb),
14901 (db_entry_deleted_cb), (publish_cb), (rb_daap_share_start_publish),
14902 (rb_daap_share_stop_publish): Fix a couple of memory leaks, some code
14903 style and use CONF_PREFIX in the gconf keys
14905 * daapsharing/rb-daap-sharing.c: (create_share),
14906 (enable_sharing_changed_cb), (share_name_changed_cb),
14907 (rb_daap_sharing_init), (rb_daap_sharing_shutdown):
14908 * daapsharing/rb-daap-src.c: (rb_daap_src_class_init),
14909 (rb_daap_src_instance_init), (rb_daap_src_dispose),
14910 (rb_daap_src_uri_handler_init), (rb_daap_src_set_property),
14911 (rb_daap_src_get_property), (rb_daap_src_getcaps),
14912 (rb_daap_src_close_file), (rb_daap_src_srcpad_event),
14913 (rb_daap_src_init), (rb_daap_src_shutdown), (rb_daap_src_set_time),
14914 (rb_daap_src_get_time): Deal with gconf callbacks where the key
14915 hasn't actually changed, fix some memory leaks, code style and release
14916 gconf notifications when the object is destroyed.
14918 * sources/rb-daap-source.c: (rhythmdb_entry_daap_type_new),
14919 (rb_daap_source_class_init), (rb_daap_source_init),
14920 (rb_daap_source_dispose), (rb_daap_source_set_property),
14921 (rb_daap_source_get_property), (rb_daap_source_new),
14922 (find_source_by_name), (resolve_cb), (browse_cb), (stop_resolver),
14923 (start_browsing), (stop_browsing), (enable_browsing_changed_cb),
14924 (rb_daap_sources_init), (rb_daap_sources_shutdown),
14925 (rb_daap_source_activate), (rb_daap_source_disconnect),
14926 (rb_daap_source_show_popup), (rb_daap_source_find_for_uri),
14927 (rb_daap_source_get_headers): use CONF_PREFIX in the gconf keys,
14928 release gconf notifications, handle gconf callbacks where the key
14929 hasn't changed, make "real name" and "password protected" gobject
14930 properties, fix some code style and fix a memory leak.
14932 2005-09-11 James Livingston <jrl@ids.org.au>
14934 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
14936 * shell/rb-playlist-manager.c:
14937 (rb_playlist_manager_save_playlists),
14938 (rb_playlist_manager_get_playlists): don't unref the sourcelist model
14939 when we aren't supposed to. (Closes bug 315886)
14941 2005-09-11 James Livingston <jrl@ids.org.au>
14943 * shell/rb-removable-media-manager.c:
14944 (rb_removable_media_manager_class_init),
14945 (rb_removable_media_manager_init),
14946 (rb_removable_media_manager_dispose),
14947 (rb_removable_media_manager_set_property),
14948 (rb_removable_media_manager_get_property),
14949 (rb_removable_media_manager_new),
14950 (rb_removable_media_manager_load_media),
14951 (rb_removable_media_manager_volume_mounted_cb),
14952 (rb_removable_media_manager_volume_unmounted_cb),
14953 (rb_removable_media_manager_mount_volume),
14954 (rb_removable_media_manager_unmount_volume),
14955 (rb_removable_media_manager_source_deleted_cb),
14956 (rb_removable_media_manager_append_media_source),
14957 (rb_removable_media_manager_set_uimanager),
14958 (rb_removable_media_manager_eject_medium_cb),
14959 (rb_removable_media_manager_cmd_eject_medium):
14960 * shell/rb-removable-media-manager.h:
14961 * sources/rb-removable-media-source.c:
14962 (rb_removable_media_source_class_init),
14963 (rb_removable_media_source_init),
14964 (rb_removable_media_source_dispose),
14965 (rb_removable_media_source_set_property),
14966 (rb_removable_media_source_get_property), (impl_get_pixbuf),
14967 (impl_delete_thyself):
14968 * sources/rb-removable-media-source.h: Add the four files that I
14969 somehow managed not to add to cvs in the last commit. Oops.
14971 2005-09-11 James Livingston <jrl@ids.org.au>
14973 * shell/Makefile.am: Add rb-removable-media-manager.{c,h}
14974 * sources/Makefile.am: Add rb-removable-media-source.{c,h}
14976 * shell/rb-shell.c: (rb_shell_finalize), (rb_shell_constructor),
14977 (rb_shell_medium_added_cb), (rb_shell_select_source): create the
14978 removable-media-manager on startup, and handle creation of sources.
14980 * sources/rb-ipod-source.h:
14981 * sources/rb-ipod-source.c: (rb_ipod_source_class_init),
14982 (rb_ipod_source_init), (rb_ipod_source_constructor),
14983 (rb_ipod_source_dispose), (rb_ipod_source_new),
14984 (load_ipod_db_idle_cb), (rb_ipod_load_songs), (impl_show_popup): Port
14985 the iPod source over to the removable media framework.
14987 * sources/rb-library-source.c: (paned_size_allocate_cb),
14988 (rb_library_source_get_paned_key): fix a potential bug is a
14989 library-derived source doesn't have a paned-key
14991 2005-09-11 Bastien Nocera <hadess@hadess.net>
14993 * daapsharing/rb-daap-share.c: (add_entry_to_mlcl): default to
14994 mp3 when we can't get the suffix of a file (Closes: #315941)
14996 2005-09-10 James Livingston <jrl@ids.org.au>
14998 * configure.ac: fix the mdns tests, so that it doesn't complain about
14999 not finding one, if daap support isn't being compiled in
15001 2005-09-10 Charles Schmidt <cschmidt2@emich.edu>
15003 * configure.ac: Updated to require avahi >= 0.5. Small fixes.
15005 * daapsharing/rb-daap-dialog.c:
15006 (rb_daap_password_dialog_new_run), (rb_daap_collision_dialog_new_run):
15007 HIG compliancy & images.
15009 * daapsharing/rb-daap-mdns.c:
15010 (browse_cb), (resolve_cb): Better detection of local services.
15011 Requries avahi 0.5. Still doesn't work quite right with Howl, due to
15012 Howl's limitations. Fix the way collision handling is done under
15015 * daapsharing/rb-daap-share.c:
15016 (publish_cb): Better name collision handling (at least for Avahi).
15018 2005-09-10 James Livingston <jrl@ids.org.au>
15020 * shell/rb-shell-preferences.c: (add_daap_preferences): Patch from
15021 Dennis Cranston <dennis_cranston@yahoo.com> to make the DAAP
15022 preferences more HIG compliant (Closes #315889)
15024 * po/POTFILES.in: add widgets/rb-query-creator-properties.c to the
15025 list of files to be translated
15027 2005-09-10 James Livingston <jrl@ids.org.au>
15029 * configure.ac: fix it so that --enable-daap=no works
15030 * lib/rb-file-helpers.c: (rb_file): allow use of new art when running
15033 2005-09-10 James Livingston <jrl@ids.org.au>
15035 Patch from Christophe Fergeau <teuf@gnome.org>
15037 * sources/rb-ipod-source.c: (rb_ipod_unload_songs): fix a crasher in
15040 2005-09-09 Charles Schmidt <cschmidt2@emich.edu>
15041 * README.daap: Updating documentation
15043 2005-09-09 Charles Schmidt <cschmidt2@emich.edu>
15044 * AUTHORS: Added myself.
15046 * daapsharing/rb-daap-connection.c:
15047 (connection_login), (rb_connection_new): Reorganized password
15050 * po/POTFILES.in: Added daapsharing/rb-daap-dialog.c
15052 * shell/rb-shell.c:
15053 (rb_shell_cmd_disconnect_source): Fixed disconnecting from sources.
15055 * sources/rb-daap-source.c:
15056 (rb_daap_source_activate): Better error handling when we are unable to
15059 2005-09-09 Charles Schmidt <cschmidt2@emich.edu>
15060 * README.daap: Fixed some terminology.
15062 * configure.ac: Better automatic detection of mDNS/DNS-SD library.
15063 New --with-mdns=auto|howl|avahi flag to specify.
15065 * daapsharing/rb-daap-dialog.c/h: New files to handle password &
15066 name collision dialogs.
15068 * daapsharing/rb-daap-connection.c:
15069 (connection_get_password), (build_message), (http_get)
15070 (connection_login): Ask for & use a password if the share demands it.
15072 * daapsharing/rb-daap-connection.h: Changed prototype of
15073 rb_daap_connection_new.
15075 * daapsharing/rb-daap-mdns.c:
15076 (resolve_cb): Better detection of your own music share so it doesn't
15077 appear in the sourcelist.
15079 * daapsharing/rb-daap-share.c:
15080 (rb_daap_share_start_publish): Attempt to start on port 3689, failing
15081 that start on any available port.
15083 * daapsharing/rhythmbox.schemas: Schemas for music shares' UI state.
15085 * sources/rb-daap-source.c:
15086 (find_source_by_name), (rb_daap_source_new), (resolve_cb),
15087 (browse_cb): Handle passworded shares. Resolve the host immediately
15088 instead of when activated.
15089 (rb_daap_source_get_browser_key), (rb_daap_source_get_paned_key),
15090 (rb_daap_source_new): New GConf keys for UI state.
15091 (rb_daap_source_activate): Use RBPlaylistSource instead of
15092 RBDAAPPlaylistSource
15094 * sources/rb-daap-playlist-source.c/h: Removed
15096 * sources/rb-playlist-source.c/h: Added 'is-local' property, TRUE
15097 if the playlist is local (i.e. not DAAP or iPod).
15099 * shell/rb-playlist-manager.c:
15100 (rb_playlist_manager_save_playlists): Fixed a bug where the playlists
15101 wouldn't get saved if the last playlist hadn't changed. Only save
15104 2005-09-09 James Livingston <jrl@ids.org.au>
15106 * sources/rb-ipod-source.c: (rb_ipod_source_class_init): remove the
15107 iPod preferences pane, as it already uses the browser views as the
15110 2005-09-09 James Livingston <jrl@ids.org.au>
15112 * sources/rb-library-source.c: (rb_library_source_finalize),
15113 (rb_library_source_constructor): fix gconf monitoring of library
15115 * sources/rb-library-source.h: remove declaration of function that
15118 2005-09-08 Charles Schmidt <cschmidt2@emich.edu>
15120 * player/rb-player-gst.c:
15121 (rb_player_set_time): Fix seeking in daap streams.
15123 2005-09-08 Charles Schmidt <cschmidt2@emich.edu>
15125 * data/rhythmbox.schemas: Turn music share browsing on by default.
15127 2005-09-07 James Livingston <jrl@ids.org.au>
15129 * configure.ac: include daapsharing/Makefile in AC_OUTPUT
15131 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
15132 * player/rb-player-gst.c:
15133 (rb_player_get_time): Fix for extra << & == that accidentally made
15136 * player/Makefile.am: -Idaapsharing so we can include rb-daap-src.h
15138 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
15139 * configure.ac: Fix for extra <<<<<<< & ======= that accidentally made
15140 it in last time. Sorry.
15142 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
15144 * player/rb-player-gst.c:
15145 (rb_player_get_time): Fix a small crash appearing when
15146 the uri isn't set in the player, but rb_player_get_time() is
15149 * configure.ac: Also check for libsoup 2.4, which is what ships with
15152 * po/POTFILES.in: Added music sharing files that have translatable
15155 * README.daap: New file explaining "How Music Sharing Works"
15157 2005-09-06 Bastien Nocera <hadess@hadess.net>
15159 * daapsharing/.cvsignore: added
15161 2005-09-06 Charles Schmidt <cschmidt2@emich.edu>
15163 * daapsharing/*: Music sharing library.
15165 * sources/rb-daap-source.c/h: Music share RBSource.
15166 * sources/rb-daap-playlist-source.c/h: Music share playlist RBSource.
15168 * configure.ac: --enable-daap flag to turn on music sharing. Requires
15169 libsoup and a mutlicast DNS implementation (howl or avahi).
15171 * data/rhythmbox.schemas: New GConf keys for music sharing.
15173 * data/ui/rhythmbox-ui.xml: New popup menu ui definition for daap
15174 source right click menu.
15176 * player/rb-player-gst.c: Changes to properly play & seek in remote
15179 * shell/rb-playlist-manager.c/h:
15180 (rb_playlist_manager_get_playlists): New function to get a GList * of
15182 (rb_playlist_manager_save_playlists): Don't save music share playlists
15183 and fixed a GObject reference leak.
15185 * shell/rb-shell.c/h:
15186 (rb_shell_append_source): No longer a local function. Now takes a
15187 parent RBSource * argument, NULL to append a toplevel source.
15188 (rb_shell_cmd_source_disconnect): New function to 'disconnect' a
15189 source (useful for disconnecting from remote music share,
15191 (rb_shell_quit): Stop music sharing/browsing.
15192 (rb_shell_playlist_added_cb): Work with tree source structure.
15193 (rb_shell_get_property): "playlist-manager" property accessor.
15194 (rb_shell_class_init): New "playlist-manager" property.
15195 (rb_shell_construor): Append sources as toplevel sources. Initialize
15196 daap sharing/browsing.
15197 (rb_shell_select_source): Notify source of activation/deactivation.
15199 * shell/rb-shell-prefernces.c: Music sharing preferences.
15201 * sources/rb-source.c/h: New activate, deactivate and disconnect
15202 class functions. Activate & deactivate are notification style
15203 functions that will tell a source when it is selected/unselected.
15204 Disconnect can be hooked up to a UI object to disconnect the source.
15206 * sources/rb-sourcelist-model.c:
15207 * sources/rb-sourcelist.c/h: Sourcelist is now a tree structure.
15208 (rb_sourcelist_append): Takes a RBSource * parent arguement, NULL to
15209 append a toplevel source.
15211 2005-09-05 James Livingston <jrl@ids.org.au>
15213 * rhythmdb/rhythmdb-query-model.c:
15214 (rhythmdb_query_model_entry_changed_cb),
15215 (rhythmdb_query_model_do_reorder): Update the query model's totals if
15216 the duration of filesize of an entry changes. Emit the row-changed
15217 signals that I forgot to put back in, when I was doing query sorting.
15219 * rhythmdb/rhythmdb.c: (rhythmdb_compute_status_normal): Don't print
15220 out "0 minutes" or "0 bytes".
15222 2005-09-04 James Livingston <jrl@ids.org.au>
15224 * shell/rb-playlist-manager.c: (rb_playlist_manager_new_playlist):
15225 remove a leftover bit of the "internal-name" property of sources.
15227 2005-09-03 James Livingston <jrl@ids.org.au>
15229 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery): remove
15230 extraneous debug message
15231 * sources/rb-library-source.c: (rb_library_source_do_query): fix a
15232 crasher would affect any library-derived sources (which was also a
15235 2005-09-02 Colin Walters <walters@verbum.org>
15237 * configure.ac: Fix sytnax error.
15239 * shell/rb-shell.c (tray_embedded_cb): Add some nonfunctional
15240 code to disable minimization icons - need to figure out
15241 why it doesn't work...
15243 2005-09-01 Dennis Cranston <dennis_cranston@yahoo.com>
15245 * data/glade/song-info-multiple.glade:
15246 * data/glade/song-info.glade:
15247 * widgets/rb-song-info.c: (rb_song_info_constructor):
15248 Add a mnemonic to the newly added "Automatically rate" label
15249 in the properties dialog and use a bold typeface like all the
15250 other labels in the dialog. (Closes bug 315089)
15252 2005-09-03 James Livingston <jrl@ids.org.au>
15254 * sources/rb-library-source.c: (rb_library_source_class_init),
15255 (rb_library_source_finalize), (rb_library_source_constructor),
15256 (rb_library_source_set_property), (rb_library_source_get_property),
15257 (impl_get_paned_key), (paned_size_allocate_cb),
15258 (rb_library_source_state_prefs_sync), (impl_show_popup),
15259 (rb_library_source_get_paned_key):
15260 * sources/rb-library-source.h: Allow sources derived from
15261 RBLibrarySource to use different gconf keys for sort order, browser
15262 visibility and browser pane position. Fix a crasher if a derived
15263 source overrides _get_pixbuf.
15265 2005-09-02 Colin Walters <walters@verbum.org>
15267 * shell/rb-shell.c (rb_shell_set_visibility): Move
15268 hint setting which seems to avoid races more.
15270 2005-09-03 James Livingston <jrl@ids.org.au>
15272 * shell/rb-shell.c: fix compilation with iPod support enabled
15274 2005-09-02 Colin Walters <walters@verbum.org>
15276 * shell/rb-shell.c (struct RBShellPrivate): Add
15277 idle_hide_mainwindow_id.
15278 (rb_shell_constructor): Move taskbar skipping hint into
15279 rb_shell_set_visibility.
15280 (idle_hide_mainwindow): New function.
15281 (rb_shell_set_visibility): Taskbar hinting moved here; add evil
15282 racy hack to avoid rb appearing in taskbar when minimized.
15284 2005-09-01 Colin Walters <walters@verbum.org>
15286 * widgets/eggtrayicon.h: Prototype egg_tray_icon_have_manager.
15288 * widgets/eggtrayicon.c (egg_tray_icon_have_manager): Steal
15289 from gtkstatusicion.c.
15291 * shell/rb-tray-icon.h: Prototype rb_tray_icon_get_geom.
15293 * shell/rb-tray-icon.c (rb_tray_icon_toggle_entries): Retitle
15294 TrayShowWindow entry.
15295 (rb_tray_icon_class_init): Make GtkActionGroup readable only.
15296 (rb_tray_icon_constructor): Create action group here.
15297 (rb_tray_icon_finalize): Destroy action group.
15298 (rb_tray_icon_set_property): Don't take an action group.
15299 (rb_tray_icon_new): Ditto.
15300 (tray_popup_position_menu): Some mostly boilerplate code
15302 (rb_tray_icon_button_press_event_cb): Position menu.
15303 (rb_tray_icon_get_geom): New function used for the shell
15304 to set minimization hints.
15306 * shell/rb-shell.h: Prototype rb_shell_toggle_visibility.
15308 * shell/rb-shell.c (rb_shell_actions): Add MusicClose.
15309 (struct RBShellPrivate): Change visible to iconified.
15310 (set_icon_geometry): New function from Søren Sandmann to
15311 tell Metacity where to draw the minimization animiation.
15312 (rb_shell_window_state_cb): Update iconified.
15313 (rb_shell_get_visibility): New function to say whether
15314 or not we're currently visible.
15315 (rb_shell_set_visibility): Update to minimize to
15316 tray or present as appropriate.
15317 (rb_shell_window_delete_cb): On window close, just
15318 minimize to tray if we're deleted.
15319 (rb_shell_set_window_title): Kill old notification code.
15320 (rb_shell_toggle_visibility): Nwe function.
15321 (rb_shell_cmd_toggle_visibility): Call it.
15322 (rb_shell_constructor): Skip the taskbar.
15323 (tray_destroy_cb): Better debugging.
15325 2005-09-01 Colin Walters <walters@verbum.org>
15327 * data/ui/rhythmbox-ui.xml: Add MusicClose.
15329 * configure.ac: Enable bonobo by default.
15331 2005-09-01 Colin Walters <walters@verbum.org>
15333 * configure.ac: Default to old art. Add macros subdir.
15335 * Makefile.am (SUBDIRS): Add macros.
15337 * macros/Makefile.am: New.
15339 2005-09-01 Colin Walters <walters@verbum.org>
15341 * shell/Makefile.am (EXTRA_DIST): Dist rb-shell.xml and
15342 rb-shell-player.xml.
15344 * remote/dbus/rb-remote-dbus.h: Deleted.
15346 * remote/dbus/Makefile.am: Delete all the junk, just dist
15347 rb-print-playing.py and rb-set-rating.py.
15349 * remote/Makefile.am (SUBDIRS): Always dist dbus and bonobo.
15351 * data/Makefile.am (EXTRA_DIST): Add service_in_files.
15353 2005-09-02 James Livingston <jrl@ids.org.au>
15355 - data/ui/rhythmbox-audiocd-view.xml.in: remove extremely obsolete
15358 * shell/rb-shell.c: (rb_shell_get_property), (rb_shell_finalize),
15359 (rb_shell_constructor): Patches from Jonathan Matthew
15360 <jonathan@kaolin.hn.org> to fix compilation without ipod support, and
15361 a crash when using "browse this artist".
15363 2005-08-31 Colin Walters <walters@verbum.org>
15365 * configure.ac: Add --with-old-art configure switch. Also
15366 add AC_CONFIG_MACRO_DIR in the hope to avoid autotools bustage,
15367 but it doesn't work.
15369 * widgets/rb-cell-renderer-pixbuf.c (rb_cell_renderer_pixbuf_render):
15370 Don't use eel_create_colorized_pixbuf for new art.
15371 * widgets/rb-rating-helper.c (rb_rating_render_stars): Ditto.
15373 * data/art-clearlooks: New artwork.
15375 2005-08-31 Colin Walters <walters@verbum.org>
15377 * shell/main.c (main): Fix Bastien's commit to continue to focus
15378 the window with GTK+ 2.8 at least.
15380 2005-08-31 Colin Walters <walters@verbum.org>
15382 * shell/rb-shell.c (rb_shell_load_uri): Handle the case where entry
15385 * shell/main.c (load_uri_args): Use gnome_vfs_make_uri_from_shell_arg.
15387 2005-08-31 Bastien Nocera <hadess@hadess.net>
15389 * README: remove mentions of the xine-lib backend
15390 * shell/main.c: (main): make it compilable with gtk+ < 2.8
15392 2005-08-30 Colin Walters <walters@verbum.org>
15394 * shell/rb-shell-preferences.c (rb_shell_preferences_append_view_page):
15395 Make non-visible sources insensitive.
15397 2005-08-30 Colin Walters <walters@verbum.org>
15399 * shell/rb-shell.c: Don't use GConf for selected source; it's
15400 confusing to have the selected source change after startup,
15401 and since we don't save other things it's not worth saving this.
15403 * sources/rb-playlist-source.c:
15404 * sources/rb-library-source.c:
15405 * sources/rb-iradio-source.c:
15406 * sources/rb-ipod-source.c: Delete internal-name property usage.
15407 * sources/rb-source.c: Delete internal-name property.
15409 * data/rhythmbox.schemas: Delete selected_source.
15411 2005-08-30 Colin Walters <walters@verbum.org>
15413 * sources/rb-sourcelist.c: Make playing source bold instead of
15414 displaying a pixbuf; it's much less ugly.
15416 2005-08-30 Colin Walters <walters@verbum.org>
15418 * sources/rb-source.c:
15419 * sources/rb-source.h: New virtual method try_playlist.
15421 * sources/rb-iradio-source.c (rb_iradio_source_class_init): Implement
15423 (rb_iradio_source_add_station): Remove validation; we do that elsewhere.
15424 (impl_handle_eos): Return RB_SOURCE_EOF_RETRY.
15425 (handle_playlist_entry_cb): Don't check for iradio uris, we don't
15427 (stations_view_drag_data_received_cb): Don't check for iradio uris;
15428 in theory we should though...
15430 * shell/rb-shell.c (known_sources): Delete; we just hardcode the
15431 list in rb_shell_construct now.
15432 (struct RBShellPrivate): Add RBLibrarySource, RBIRadioSource,
15434 (rb_shell_constructor): Create library, iradio, ipod here.
15435 (rb_shell_source_deleted_cb): Use source directly instead of
15436 indirecting through type.
15437 (rb_shell_sync_selected_source): Ditto.
15438 (rb_shell_jump_to_entry_with_source): Just use the source reutrned
15439 from the type instead of special-casing.
15440 (rb_shell_guess_type_for_uri)
15442 (handle_one_uri_with_possible_metadata): New functions.
15443 (rb_shell_load_uri): Refactor to allow loading playlists again,
15444 also use other URI infrastructure.
15446 * shell/rb-shell-player.c (eos_cb): Handle RB_SOURCE_EOF_RETRY.
15447 (rb_shell_player_error): Always set entry error on error, instead
15448 of depending on EOF behavior.
15450 * shell/rb-playlist-manager.c (handle_playlist_entry_cb): Refactor
15451 to just invoke rb_shell_add_uri.
15452 (rb_playlist_manager_parse_file): Return error instead of tossing
15453 up dialog box directly.
15454 (load_playlist_response_cb): Display error here.
15455 (add_uri_to_playlist): Delete.
15456 (handle_playlist_entry_into_playlist_cb): Renamed to
15457 handle_playlist_entry_cb.
15459 * shell/rb-playlist-manager.h: Add error, update prototype.
15461 * lib/rb-file-helpers.c:
15462 * lib/rb-file-helpers.h: Delete rb_uri_is_iradio.
15464 2005-08-29 Colin Walters <walters@verbum.org>
15466 * sources/rb-iradio-source.c (rb_iradio_source_add_station): Return
15467 if entry already exists. Use rhythmdb_entry_set_uninserted.
15469 * sources/rb-ipod-source.c (entry_set_string_prop): Avoid
15470 needlessly duping string, and use rhythmdb_entry_set_uninserted.
15471 (load_ipod_db_idle_cb): Use rhythmdb_entry_set_uninserted.
15473 * shell/rb-shell.h (enum RBShellError): Add some more errors.
15474 Prototype rb_shell_set_song_property.
15476 * shell/rb-shell.xml: Export setSongProperty.
15478 * shell/rb-shell.c (rb_shell_set_song_property): New function.
15479 (rb_shell_set_rating_impl): Call rhythmdb_entry_set instead of
15480 rhythmdb_entry_set_nonotify, and call rhythmdb_commit.
15482 * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error): Call
15483 rhythmdb_entry_set instead of rhythmdb_entry_set_nonotify, since we do
15484 want to notify of the change.
15485 (rb_shell_player_entry_changed_cb): Cast to RhythmDBEntryChange.
15487 * rhythmdb/rhythmdb.c (rhythmdb_process_queued_entry_set_event): Fix
15488 logic error; idle functions would be enqueued for each set.
15489 (rhythmdb_entry_set): Fix assertion logic error.
15491 * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15492 Avoid needlessly duping strings, and use rhythmdb_entry_set_uninserted.
15493 Return if the entry already exists.
15495 2005-08-29 Colin Walters <walters@verbum.org>
15497 * rhythmdb/rhythmdb.h (struct RhythmDBEntry): Add
15498 "inserted" member which we use to keep track of
15499 whether or not an entry is in the DB. Prototype
15500 rhythmdb_entry_set_uninserted.
15502 * rhythmdb/rhythmdb.c (rhythmdb_commit_internal): Set inserted
15504 (rhythmdb_entry_insert): Assert entry is not already inserted.
15505 (rhythmdb_process_metadata_load): Update to call _set_uninserted
15506 just after creating entry.
15507 (rhythmdb_entry_set): Document, and fail on uninserted entries.
15508 (rhythmdb_entry_set_nonotify): Ditto.
15509 (rhythmdb_entry_set_uninserted): Document, and fail on inserted
15511 (rhythmdb_entry_set_internal): Change notify flag to
15512 notify_if_inserted. Also move notification after assertions.
15514 Update all existing callers of rhythmdb_entry_set_internal
15515 to give TRUE for notify_if_inserted; this should be what
15516 we want but may be an efficiency hit.
15518 2005-08-30 Raphael Slinckx <rslinckx@cvs.gnome.org>
15520 * shell/rb-shell-player.c: (rb_shell_player_init),
15521 (rb_shell_player_set_property), (rb_shell_player_entry_changed_cb),
15522 (rb_shell_player_set_playing_source_internal),
15523 (rb_shell_player_sync_with_selected_source): Notify the player when an
15524 entry has updated the title, album or artist field, and resync the big
15527 * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15528 * sources/rb-library-source.c: (rb_library_source_class_init),
15529 (impl_get_config_widget):
15530 * sources/rb-playlist-source.c: (rb_playlist_source_class_init):
15531 * sources/rb-source.c:
15532 * sources/rb-source.h: Removed unused have_artist_album, get_artist, and
15533 get_album functions in rb-source and adapted other sources accordingly.
15535 2005-08-29 Colin Walters <walters@verbum.org>
15537 * rhythmdb/rhythmdb.c (struct RhythmDBEvent): Add
15538 signal_change member.
15539 (threadsafe_entry_set): New function.
15540 (rhythmdb_entry_set): Just call threadsafe_entry_set with TRUE.
15541 (rhythmdb_entry_set_nonotify): New function; just call
15542 threadsafe_entry_set with FALSE.
15543 (rhythmdb_entry_set_internal): Take a notify flag; if true
15544 add the change to our pending set.
15546 Also update all internal callers of rhythmdb_entry_set_internal
15547 to pass FALSE. Some of these may be bugs however and need to
15550 * rhythmdb/rhythmdb.h: Rename rhythmdb_entry_sync to
15551 rhythmdb_entry_set, and rename rhythmdb_entry_set to
15552 rhythmdb_entry_set_nonotify.
15554 * rhythmdb/rhythmdb.h (enum RhythmDBProp)
15555 (rhythmdb_entry_get_boolean): Kill off RHYTHMDB_PROP_AUTO_RATE.
15557 * widgets/rb-song-info.c: Kill off vestiges of auto rating.
15559 * widgets/rb-entry-view.c (rb_entry_view_rated_cb):
15560 * sources/rb-source.c (rb_source_update_play_statistics):
15561 * sources/rb-iradio-source.c (rb_iradio_source_add_station):
15562 * sources/rb-ipod-source.c (entry_set_string_prop)
15563 (load_ipod_db_idle_cb):
15564 * shell/rb-shell.c (rb_shell_set_rating_impl):
15565 * shell/rb-shell-player.c (rb_shell_player_set_entry_playback_error)
15566 (info_available_cb):
15567 * iradio/rb-station-properties-dialog.c (rb_station_properties_dialog_rated_cb)
15568 (rb_station_properties_dialog_sync_entries):
15569 * iradio/rb-new-station-dialog.c (rb_new_station_dialog_response_cb):
15571 Update callers of rhythmdb_entry_set to rhythmdb_entry_set_nonotify,
15572 and callers of rhythmdb_entry_sync to rhythmdb_entry_set.
15574 2005-08-29 Colin Walters <walters@verbum.org>
15576 * sources/Makefile.am (INCLUDES): Add HAL_CFLAGS unconditionally.
15578 * shell/Makefile.am (rhythmbox_LDADD): Add HAL_LIBS to avoid
15581 * widgets/rb-header.c (sanitize_string): New function, extracted
15582 from old info_url. Be sure to always strip the string.
15583 (info_url): Rewrite to take artist/album, and generate a sane
15584 URL for them from last.fm, which is better than allmusic.com in
15585 that they support Rhythmbox, and have a *SANE* URL scheme.
15586 (artist_info_url, album_info_url): Delete.
15587 (rb_header_sync): Use info_url.
15589 2005-08-29 James Livingston <jrl@ids.org.au>
15591 * sources/rb-source.c: (rb_source_search): Check to ensure that this
15592 is implemented before calling it. Many sources don't implement the
15595 2005-08-28 Dennis Cranston <dennis_cranston@yahoo.com>
15597 * data/glade/create-playlist.glade: Cleanup the layout,
15598 and add a few more mnemonics.
15599 * shell/rb-playlist-manager.c:
15600 (rb_playlist_manager_cmd_load_playlist),
15601 (rb_playlist_manager_cmd_save_playlist): HIG fix, use title
15602 capitalization for window titles.
15603 * widgets/rb-query-creator-properties.c: Add mnemonics
15604 to checkbutton labels.
15605 * widgets/rb-query-creator.c: (rb_query_creator_constructor),
15606 (limit_toggled_cb): Toggle the sortLabel sensitivity.
15608 2005-08-28 Colin Walters <walters@verbum.org>
15610 * data/rhythmbox.schemas: Delete search_text for library
15611 and iradio; this isn't a persistent value anymore.
15614 * sources/rb-source.h:
15615 * sources/rb-source.c: Delete impl_can_search.
15617 * sources/rb-iradio-source.c: Delete search_text usage.
15618 * sources/rb-library-source.c: Ditto.
15620 * shell/rb-source-header.c: Don't use GConf for search key. Reset
15621 search when source is set, and just do rb_source_search in
15622 rb_source_header_search_cb.
15624 * shell/rb-shell.c (rb_shell_append_source): Don't
15627 * shell/Makefile.am: Don't dist dashboard.c.
15629 2005-08-28 Colin Walters <walters@verbum.org>
15631 * shell/main.c: Remove include of dead file rb-remote-dbus.h.
15633 2005-08-28 Colin Walters <walters@verbum.org>
15635 * data/org.gnome.Rhythmbox.service.in: New.
15637 * data/Makefile.am: Install service file.
15639 * configure.ac: Define DBUS_SERVICES_DIR.
15641 * autogen.sh: Set ACLOCAL_FLAGS.
15643 * macros/acinclude.m4: New.
15645 2005-08-28 Colin Walters <walters@verbum.org>
15647 Initial patch from Jonathan Matthew; closes 313684.
15649 * rhythmdb/rhythmdb-tree.c:
15650 (RHYTHMDB_FWRITE, RHYTHMDB_FPUTC): Handle errors.
15651 (save_entry): Return on error.
15652 (rhythmdb_tree_save): Handle error when saving the
15653 db; additionally, handle errors from fclose and unlink,
15654 and print error too.
15656 2005-08-28 Colin Walters <walters@verbum.org>
15658 * sources/Makefile.am (libsourcesimpl_la_LIBADD): Fix
15661 2005-08-28 Colin Walters <walters@verbum.org>
15663 * configure.ac: Change iPod support to --with-ipod;
15664 automatically enable it if we have HAL. Try to
15665 support both HAL 0.5 and HAL 0.2. Break out
15666 totem-plparser into its own check so later we
15667 can do version tests there too.
15668 Kill dashboard support.
15670 * sources/rb-ipod-source.c: Merge in changes from Ronald Bultje
15671 to support HAL > 0.5, but preserve the old code for HAL < 0.5
15674 * shell/Makefile.am (rhythmbox_LDADD): Add TOTEM_PLPARSER_LIBS.
15675 (INCLUDES): Add TOTEM_PLPARSER_CFLAGS.
15677 * sources/Makefile.am: Also handle
15678 TOTEM_PLPARSER_LIBS/TOTEM_PLPARSER_CFLAGS.
15680 * shell/dashboard.c: Delete; someone should just write a little
15681 python shim which lists on the D-BUS interface and writes the
15682 stuff to Dashboard. Even better Dashboard should be ported
15683 to D-BUS and do the listening itself, perhaps on an abstract
15684 "org.gnome.MusicPlayer" interface or something.
15686 * shell/rb-shell.c: Kill dashboard support.
15688 2005-08-28 Colin Walters <walters@verbum.org>
15690 * remote/dbus/rb-print-playing.py: New file.
15692 2005-08-28 Colin Walters <walters@verbum.org>
15694 * rhythmdb/rhythmdb.c (rhythmdb_entry_get):
15695 * rhythmdb/rhythmdb.h: Make rhythmdb_entry_get public.
15697 * shell/rb-shell-player.h:
15698 * shell/rb-shell-player.c: Add playing-uri-changed signal.
15699 * shell/rb-shell-player.xml: Export it.
15701 * shell/rb-shell.c (rb_shell_get_song_properties): New function.
15702 (rb_shell_error_quark): New.
15704 * shell/rb-shell.h: Prototype. Also add RBShellError.
15705 * shell/rb-shell.xml: Export rb_shell_get_song_properties.
15707 2005-08-28 Colin Walters <walters@verbum.org>
15709 * remote/bonobo/rb-remote-bonobo.c (rb_bonobo_workaround_lock)
15710 (rb_bonobo_workaround_unlock): Renamed from bonobo_lock and
15712 (rb_remote_bonobo_preinit): Lock setting moved here.
15713 (rb_remote_bonobo_init): From here.
15715 * shell/main.c (main): Call rb_remote_bonobo_preinit very early.
15716 Also invoke handle_cmdline in the right place.
15717 (handle_cmdline): Remove some unused vars. Cast bonobo_load_uri to
15720 2005-08-28 James Livingston <jrl@ids.org.au>
15722 * NEWS: keep the NEWS file up to date, so we don't have to do it all
15723 when 0.9.1 comes around.
15725 2005-08-28 James Livingston <jrl@ids.org.au>
15727 * iradio/rb-new-station-dialog.c:
15728 (rb_new_station_dialog_response_cb): Trim whitespace from uris. Closes
15731 2005-08-28 James Livingston <jrl@ids.org.au>
15733 Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15735 * widgets/rb-entry-view.c: (rb_entry_view_duration_cell_data_func):
15736 * widgets/rb-header.c: (rb_header_get_elapsed_string): Display hours
15737 is a song is longer than 60 minutes. Closes bug 313311.
15739 2005-08-27 James Livingston <jrl@ids.org.au>
15741 * data/glade/create-playlist.glade:
15742 * widgets/rb-query-creator.c: (rb_query_creator_load_query),
15743 (rb_query_creator_new_from_query), (rb_query_creator_get_limit): Add
15744 "minutes" as an option in the playlist limit menu.
15746 * rhythmdb/rhythmdb-query-model.c:
15747 (rhythmdb_query_model_class_init),
15748 (rhythmdb_query_model_set_property),
15749 (rhythmdb_query_model_get_property),
15750 (rhythmdb_query_model_update_limited_entries): Allow query models to
15753 * shell/rb-playlist-manager.c:
15754 (rb_playlist_manager_set_automatic_playlist),
15755 (rb_playlist_manager_cmd_edit_automatic_playlist):
15756 * sources/rb-playlist-source.c: (rb_playlist_source_set_query),
15757 (rb_playlist_source_get_query), (impl_receive_drag),
15758 (rb_playlist_source_new_from_xml),
15759 (rb_playlist_source_save_to_xml),
15760 (rb_playlist_source_songs_sort_order_changed_cb),
15761 (rb_playlist_source_do_query):
15762 * sources/rb-playlist-source.h:
15763 * widgets/rb-query-creator.h: Allow playlists to be limited by time
15765 2005-08-27 James Livingston <jrl@ids.org.au>
15767 Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>.
15770 * shell/Makefile.am: work correctly if dbus-binding-tool is in a
15771 non-standard location. Closes bug 314640.
15773 2005-08-26 Colin Walters <walters@verbum.org>
15775 Patch from Olivier Blin <oblin@mandriva.com>
15777 * widgets/eggnotificationbubble.c (draw_bubble):
15778 Handle extreme-left case as well.
15780 2005-08-26 Colin Walters <walters@verbum.org>
15782 * shell/rb-shell.c (idle_save_state): Don't do this.
15783 (rb_shell_construct): Remove idle calls to idle_save_state.
15784 We should save the playlists automatically when they're
15786 (rb_shell_load_uri): Don't try to re-stat entry if it already
15789 * shell/rb-shell-player.c: Keep track of entry we are attempting
15791 (rb_shell_player_set_playing_entry): Set playing_attempt_entry.
15792 Don't double-free error.
15793 (rb_shell_player_play_entry): Signal errors.
15794 (rb_shell_player_entry_activated_cb): Ditto.
15795 (rb_shell_player_property_row_activated_cb): Ditto.
15796 (rb_shell_player_set_playing_source_internal): Unset attempted
15798 (rb_shell_player_error): Refactor to be usable both sync and
15799 async. Handle case where displayed entry differs from entry.
15800 (error_cb): Move GDK locking here.
15802 * shell/main.c (main): Drop most commandline arguments for D-BUS;
15803 people can just use dbus-send or python. We only support focusing
15805 (load_uri_args): New function, extracted from handle_cmdline.
15806 (dbus_load_uri, bonobo_load_uri): New functions.
15808 * shell/Makefile.am (rhythmbox_LDADD): Add D-BUS libs as
15811 * remote/Makefile.am: Don't compile dbus subdir, it's not used.
15812 * remote/dbus/rb-remote-dbus.c: Deleted.
15814 * player/rb-player-gst.c: Clear any pending idle handlers when we
15815 close the player. Signal errors generated during open/play etc
15816 as synchronous errors.
15818 * configure.ac: Enable Bonobo by default if D-BUS isn't enabled.
15820 2005-08-26 Colin Walters <walters@verbum.org>
15822 * shell/rb-shell.c (rb_shell_present): Try harder.
15824 2005-08-26 Colin Walters <walters@verbum.org>
15826 * shell/rb-shell.c (rb_shell_present): Try to handle
15827 GTK_MINOR_VERSION < 8.
15829 2005-08-26 James Livingston <jrl@ids.org.au>
15831 * shell/main.c: (main): compilation fixes. Patch from Peter Robinson
15832 <pbrobinson@gmail.com>
15834 2005-08-26 Colin Walters <walters@verbum.org>
15836 * remote/dbus/rb-remote-dbus.c: Various compilation fixes.
15838 2005-08-25 Colin Walters <walters@verbum.org>
15840 * shell/rb-shell-player.c (rb_shell_player_auto_adjust_rating):
15842 (rb_shell_player_do_next_with_rating): Move back into
15843 rb_shell_player_do_next.
15844 (rb_shell_player_entry_activated_cb): Remove call to
15845 rb_shell_player_auto_adjust_rating.
15846 (do_next_idle): Just call rb_shell_player_do_next.
15848 * shell/rb-shell.c (rb_shell_present): Cast to GTK_WIDGET.
15850 2005-08-25 Colin Walters <walters@verbum.org>
15852 * shell/rb-shell.c (rb_shell_present): Be sure to gtk_widget_show
15853 before gtk_window_present_with_time.
15855 2005-08-25 Colin Walters <walters@verbum.org>
15857 * configure.ac: Require D-BUS 0.35. Bonobo is disabled by
15860 * shell/rb-shell.c (rb_shell_constructor): Adapted from
15861 rb_shell_construct. This is so we only have to do g_object_new.
15862 (rb_shell_get_player): New function.
15863 (rb_shell_get_player_path): Ditto.
15864 (rb_shell_load_uri): New function, adapted from rb_shell_load_uri_impl.
15866 * shell/rb-shell.h: Prototype them.
15868 * shell/rb-shell-player.c: Add new PLAYING_CHANGED signal which we
15870 (reemit_playing_signal): New function.
15871 (rb_shell_player_open_playlist_location): Use return values from
15872 rb_player_open, rb_player_close, etc. instead of checking "error".
15873 Return a gboolean on failure.
15874 (rb_shell_player_open_entry): Just open entry location, don't
15876 (rb_shell_player_play): Handle retval from rb_player_play. Return
15878 (do_next_idle): Move logic for handling of end of playlist here.
15879 (rb_shell_player_set_playing_entry): Take a GError, return a
15880 gboolean. Update to use gboolean return values.
15881 (rb_shell_player_do_previous): Delete lots of crazy duplicate
15882 logic. Signal an error on end of playlist. Also signal error if
15883 we're not playing. Move heuristic for replaying the song into
15884 rb_shell_player_cmd_previous.
15885 (rb_shell_player_do_next_with_rating): Signal error on end of
15887 (rb_shell_player_do_next): Return errors.
15888 (rb_shell_player_cmd_previous): Heuristic for restarting song
15889 moved here; the idea is you generally only want that from the GUI.
15890 (rb_shell_player_cmd_play): Handle error.
15891 (rb_shell_player_playpause): Signal errors.
15892 (filter_mmkeys): Use rb_shell_player_cmd_previous and
15893 rb_shell_player_cmd_next in favor of the internal _do functions.
15895 * shell/rb-shell-player.h (enum RBShellPlayerError): Add some
15896 errors. Update prototypes for above changes.
15898 * shell/main.c: More tightly integrate D-BUS; register various
15899 major singleton objects here. Fix handle_cmdline so we only
15900 process extra arguments, not every argument.
15902 * shell/Makefile.am: Generate D-BUS glue headers.
15904 * remote/dbus/rb-remote-dbus.c: Move all the D-BUS service stuff
15905 into shell/main.c. Now this file just acts as a client library.
15906 Not heavily tested.
15908 * remote/bonobo/rb-remote-bonobo.c (bonobo_lock, bonobo_unlock):
15910 (rb_remote_bonobo_init): Move long CORBA rant here along with
15911 setting of lock functions.
15913 * player/rb-player-gst.c (rb_player_construct)
15914 (rb_player_play, rb_player_open, rb_player_close): Return gboolean
15917 * player/rb-player.h: Update prototypes.
15919 * lib/rb-util.c (_rb_threads_lock, _rb_threads_unlock): Moved to
15920 rb-remote-bonobo.c.
15921 (rb_threads_init): Don't set gdk lock functions here.
15923 2005-08-25 James Livingston <jrl@ids.org.au>
15925 Patch from Jonathan Mattnew <jonathan@kaolin.hn.org>
15927 * lib/rb-tree-dnd.c: (rb_tree_dnd_drag_drop_cb):
15928 * lib/rb-tree-dnd.h:
15929 * rhythmdb/rhythmdb-property-model.c:
15930 (rhythmdb_property_model_class_init),
15931 (rhythmdb_property_model_drag_source_init),
15932 (rhythmdb_property_model_iter_parent),
15933 (rhythmdb_property_model_row_draggable),
15934 (rhythmdb_property_model_drag_data_delete), (query_model_cb),
15935 (rhythmdb_property_model_drag_data_get),
15936 (rhythmdb_property_model_enable_drag):
15937 * rhythmdb/rhythmdb-property-model.h:
15938 * shell/rb-playlist-manager.c: (rb_playlist_manager_finalize),
15939 (rb_playlist_manager_set_property), (append_new_playlist_source),
15940 (rb_playlist_manager_save_playlists):
15941 * shell/rb-shell.c: (rb_shell_construct),
15942 (sourcelist_drag_received_cb):
15943 * sources/rb-iradio-source.c: (rb_iradio_source_class_init):
15944 * sources/rb-playlist-source.c: (impl_receive_drag):
15945 * sources/rb-sourcelist-model.c: (rb_sourcelist_model_class_init),
15946 (rb_sourcelist_model_drag_dest_init),
15947 (rb_sourcelist_model_set_dnd_targets),
15948 (rb_sourcelist_model_drag_data_received), (path_is_reorderable),
15949 (rb_sourcelist_model_row_drop_position),
15950 (rb_sourcelist_model_get_drag_target),
15951 (rb_sourcelist_model_drag_data_get):
15952 * sources/rb-sourcelist-model.h:
15953 * sources/rb-sourcelist.c: (rb_sourcelist_class_init),
15954 (rb_sourcelist_init), (rb_sourcelist_get_property),
15955 (rb_sourcelist_selection_changed_cb):
15956 * sources/rb-sourcelist.h:
15957 * widgets/rb-property-view.c: (rb_property_view_constructor): Greatly
15958 improve drag-n-drop support. Allow dragging of item from property
15959 views to the source list, to create new automatic playlists. Allow
15960 playlist re-ordering. Fix dragging from Rhythmbox to other
15961 applications. (Closes bug 147337)
15963 2005-08-24 Colin Walters <walters@verbum.org>
15965 Patch from Olivier Blin <oblin@mandriva.com>
15967 * widgets/eggnotificationbubble.c (draw_bubble): Draw triangle
15968 correctly in the case where the window is next to monitor edge.
15970 2005-08-24 James Livingston <jrl@ids.org.au>
15972 * sources/rb-playlist-source.c: (rb_playlist_source_class_init),
15973 (rb_playlist_source_get_property), (rb_playlist_source_do_query): add
15974 a gobject property to get the query model that backs the playlist.
15976 2005-08-24 James Livingston <jrl@ids.org.au>
15978 * shell/rb-playlist-manager.c: (rb_playlist_manager_set_property),
15979 (handle_playlist_entry_into_playlist_cb),
15980 (rb_playlist_manager_playlist_entries_changed): Disable the "create
15981 audio cd" menu item when a non-playlist source is selected, or the
15982 playlist is empty. (Closes Bug 313253)
15984 2005-08-24 James Livingston <jrl@ids.org.au>
15986 * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
15987 Fix the playlist length checkso it doesn't report 0 for automatic
15988 playlists. This was stopping automati playlists being burnt to cd.
15990 2005-08-24 James Livingston <jrl@ids.org.au>
15993 * sources/rb-playlist-source-recorder.c: (burn_cd):
15994 * sources/rb-playlist-source.c:
15995 (rb_playlist_source_songs_sort_order_changed_cb):
15996 * widgets/rb-query-creator.c: (rb_query_creator_dispose): Fix some
15997 more warnings that occur when compiling RPMs on Fedora.
15999 2005-08-24 James Livingston <jrl@ids.org.au>
16001 * rhythmdb/rhythmdb.c: (set_props_from_metadata): Fix a warning that
16002 was stopping some distros gcc version compiling.
16004 2005-08-24 James Livingston <jrl@ids.org.au>
16007 * data/glade/create-playlist.glade:
16008 * rhythmdb/rhythmdb-tree.c: (evaluate_conjunctive_subquery):
16009 * rhythmdb/rhythmdb.c: (rhythmdb_query_parse_valist),
16010 (rhythmdb_query_free), (rhythmdb_query_serialize),
16011 (rhythmdb_query_deserialize), (rhythmdb_query_get_type):
16012 * rhythmdb/rhythmdb.h:
16013 * shell/rb-playlist-manager.c:
16014 (rb_playlist_manager_set_automatic_playlist),
16015 (rb_playlist_manager_cmd_edit_automatic_playlist):
16016 * sources/rb-playlist-source.c: (rb_playlist_source_constructor),
16017 (rb_playlist_source_set_query), (rb_playlist_source_get_query),
16018 (impl_receive_drag), (rb_playlist_source_new_from_xml),
16019 (rb_playlist_source_save_to_xml),
16020 (rb_playlist_source_songs_sort_order_changed_cb),
16021 (rb_playlist_source_do_query):
16022 * sources/rb-playlist-source.h:
16023 * widgets/Makefile.am:
16024 * widgets/rb-entry-view.c: (rb_entry_view_get_sorting_order),
16025 (rb_entry_view_set_sorting_order):
16026 * widgets/rb-query-creator-private.h:
16027 * widgets/rb-query-creator-properties.c:
16028 (stringCriteriaCreateWidget), (stringCriteriaSetWidgetData),
16029 (stringCriteriaGetWidgetData),
16030 (escapedStringCriteriaSetWidgetData),
16031 (escapedStringCriteriaGetWidgetData), (set_rating_score),
16032 (ratingCriteriaCreateWidget), (ratingCriteriaSetWidgetData),
16033 (ratingCriteriaGetWidgetData), (integerCriteriaCreateWidget),
16034 (integerCriteriaSetWidgetData), (integerCriteriaGetWidgetData),
16035 (durationCriteriaCreateWidget), (durationCriteriaSetWidgetData),
16036 (durationCriteriaGetWidgetData), (create_time_unit_option_menu),
16037 (relativeTimeCriteriaCreateWidget),
16038 (relativeTimeCriteriaSetWidgetData),
16039 (relativeTimeCriteriaGetWidgetData):
16040 * widgets/rb-query-creator.c: (rb_query_creator_get_type),
16041 (rb_query_creator_class_init), (rb_query_creator_constructor),
16042 (rb_query_creator_dispose), (rb_query_creator_set_property),
16043 (rb_query_creator_get_property), (rb_query_creator_load_query),
16044 (rb_query_creator_set_sorting), (rb_query_creator_new_from_query),
16045 (get_entry_for_property), (rb_query_creator_get_query),
16046 (rb_query_creator_get_limit), (rb_query_creator_get_sort_order),
16047 (limit_toggled_cb), (lookup_row_by_widget),
16048 (remove_button_click_cb), (append_row),
16049 (get_property_index_from_proptype), (select_criteria_from_value),
16050 (property_option_menu_changed), (create_property_option_menu),
16051 (create_criteria_option_menu), (sort_option_menu_changed),
16052 (setup_sort_option_menu):
16053 * widgets/rb-query-creator.h: A fairly huge patch to improve automatic
16054 playlists. The two most notable improvements are 1) adding more
16055 properties to the query creator, making it much easier to add more in
16056 the future, and 2) allow playlists to be sorted, from the query editor
16057 if they gave limits, and by clicking on column headers if they don't.
16059 Files added: widgets/rb-query-creator-private.h,
16060 sources/rb-query-creator-properties.c
16062 2005-08-21 James Livingston <jrl@ids.org.au>
16064 * player/rb-player-gst.c: (error_cb): ignore any playbin errors, where
16065 error=NULL. This stops some crashes.
16067 2005-08-19 Colin Walters <walters@verbum.org>
16069 Patch from Olivier Blin <oblin@mandriva.com>
16071 * widgets/eggnotificationbubble.c (force_window): Support top
16073 * widgets/eggnotificationbubble.h: Remove
16074 egg_notification_bubble_force_window from header.
16076 2005-08-18 James Livingston <jrl@ids.org.au>
16078 * NEWS: Give a bit of detail on the major changes in 0.9.0, and update
16079 with the changes since then.
16081 2005-08-17 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
16083 * shell/rb-shell-player.c: (rb_shell_player_init),
16084 (rb_shell_player_sync_volume), (rb_shell_player_volume_changed_cb),
16085 (rb_shell_player_volume_widget_changed_cb):
16086 * sources/rb-iradio-source.c:
16087 * sources/rb-library-source.c:
16088 * sources/rb-playlist-source.c:
16089 * widgets/Makefile.am:
16090 * widgets/bacon-volume.c: (bacon_volume_button_get_type),
16091 (bacon_volume_button_class_init), (bacon_volume_button_init),
16092 (bacon_volume_button_dispose), (bacon_volume_button_new),
16093 (bacon_volume_button_get_value), (bacon_volume_button_set_value),
16094 (bacon_volume_button_scroll), (bacon_volume_button_press),
16095 (cb_button_timeout), (cb_button_press), (cb_button_release),
16096 (bacon_volume_release_grab), (cb_dock_press),
16097 (bacon_volume_scale_get_type), (bacon_volume_scale_class_init),
16098 (bacon_volume_scale_new), (bacon_volume_scale_press),
16099 (bacon_volume_scale_release), (bacon_volume_scale_value_changed):
16100 * widgets/bacon-volume.h:
16101 * widgets/rb-volume.c:
16102 * widgets/rb-volume.h:
16103 Use BaconVolumeButton (#300867).
16105 2005-08-17 James Livingston <jrl@ids.org.au>
16107 * rhythmdb/rhythmdb.c: (set_props_from_metadata),
16108 (rhythmdb_process_metadata_load): don't reset the First Seen time
16109 whenever we recheck the metadata.
16111 2005-08-17 James Livingston <jrl@ids.org.au>
16113 * sources/rb-playlist-source.c: (rb_playlist_source_burn_playlist):
16114 temporary workaround to stop crashes when trying to burn an empty
16115 playlist. Doesn't disable the menu item which is the better solution
16118 2005-08-15 James Livingston <jrl@ids.org.au>
16120 * shell/rb-source-header.c: (rb_source_header_init),
16121 (rb_source_header_sync_control_state),
16122 (rb_source_header_search_activate_cb):
16123 * widgets/rb-entry-view.c: (rb_entry_view_class_init),
16124 (rb_entry_view_poll_model), (rb_entry_view_grab_focus):
16125 * widgets/rb-search-entry.c: (rb_search_entry_class_init),
16126 (rb_search_entry_init), (rb_search_entry_searching),
16127 (rb_search_entry_activate_cb):
16128 * widgets/rb-search-entry.h: Move focus to the entry view when user
16129 presses enter in the search box. Patch from Paolo Borelli
16130 <pborelli@katamail.com> (Closes bug 128110)
16132 2005-08-15 James Livingston <jrl@ids.org.au>
16134 * shell/rb-playlist-manager.c: (rb_playlist_manager_class_init),
16135 (rb_playlist_manager_new_playlist):
16136 * shell/rb-playlist-manager.h:
16137 * shell/rb-shell.c: (rb_shell_construct),
16138 (rb_shell_playlist_added_cb), (rb_shell_playlist_created_cb): Force
16139 the source list to be shown when a new playlist is created. (Closes
16142 2005-08-15 James Livingston <jrl@ids.org.au>
16144 * widgets/rb-header.c: (rb_header_init),
16145 (rb_header_set_show_timeline): disable the seek slider, rather than
16146 hiding it, which more closely follows the HIG. (Closes bug 139102)
16148 2005-08-13 Colin Walters <walters@verbum.org>
16150 * shell/rb-shell.c (rb_shell_playing_entry_changed_cb): Use
16151 rb_shell_hidden_notify.
16152 (rb_shell_hidden_notify): Notify if the shell is hidden.
16153 (rb_shell_set_visibility_impl): Debug goo.
16155 * shell/rb-shell.h: Export rb_shell_hidden_notify.
16157 * shell/rb-tray-icon.c (rb_tray_icon_hide_notify_cb): Show Rhythmbox
16158 when the user clicks on notification.
16160 * sources/rb-playlist-source-recorder.c (burn_cd): Notify when
16161 CD burn is complete.
16162 (rb_playlist_source_recorder_finalize): Unref shell.
16163 (rb_playlist_source_recorder_new): Take shell.
16165 * sources/rb-playlist-source.c (rb_playlist_source_burn_playlist):
16166 Pass shell to RBPlaylistSourceRecorder.
16168 2005-08-13 Colin Walters <walters@verbum.org>
16171 * lib/rb-thread.h: Not used yet, but put in CVS in case we get
16174 2005-08-13 Colin Walters <walters@verbum.org>
16176 * widgets/eggnotificationbubble.h:
16177 * widgets/eggnotificationbubble.c: New files, will likely go in libegg.
16178 * widgets/eggtrayicon.c:
16179 * widgets/eggtrayicon.h: Add notification API.
16180 * shell/rb-tray-icon.c:
16181 * shell/rb-tray-icon.h: Add notification API.
16182 * shell/rb-shell.c: Notify on song change.
16184 2005-08-12 Raphael Slinckx <rslinckx@cvs.gnome.org>
16186 * sources/rb-ipod-source.c: (rb_ipod_unplugged):
16187 Correct an inversion of two lines causing NULL to be unreffed
16189 ============ Version 0.9.0
16191 2005-08-10 Bastien Nocera <hadess@hadess.net>
16193 * configure.ac: 0.9.0, whee!
16194 * NEWS: badly updated
16195 * remote/bonobo/Makefile.am:
16196 * remote/bonobo/rb-remote-bonobo.h:
16197 * shell/Makefile.am:
16198 * shell/main.c: make distcheck fixes