Merge lp:~laney/rhythmbox/rb-2.97-update into lp:~ubuntu-desktop/rhythmbox/ubuntu

Proposed by Iain Lane
Status: Merged
Merged at revision: 173
Proposed branch: lp:~laney/rhythmbox/rb-2.97-update
Merge into: lp:~ubuntu-desktop/rhythmbox/ubuntu
Diff against target: 1299 lines (+58/-1045)
18 files modified
debian/changelog (+21/-0)
debian/control (+1/-0)
debian/control.in (+1/-0)
debian/patches/02_use_escaped_podcast_uri.patch (+5/-4)
debian/patches/03_magnatune_partner.patch (+5/-4)
debian/patches/04_pause_button.patch (+13/-13)
debian/patches/05_hide_on_quit.patch (+8/-8)
debian/patches/06_manual_connect_daap_host.patch (+0/-21)
debian/patches/07_quicklists.patch (+3/-3)
debian/patches/git_ipod_no_private_source.patch (+0/-161)
debian/patches/git_ipod_playlist_handler.patch (+0/-632)
debian/patches/git_local_art_search_typo.patch (+0/-23)
debian/patches/git_magnatune_dialog_segfault.patch (+0/-24)
debian/patches/git_mpris_playlists.patch (+0/-118)
debian/patches/git_playlists_sync_segfault.patch (+0/-25)
debian/patches/series (+0/-6)
debian/rhythmbox-plugins.install (+0/-2)
debian/rhythmbox.gsettings-override (+1/-1)
To merge this branch: bzr merge lp:~laney/rhythmbox/rb-2.97-update
Reviewer Review Type Date Requested Status
Ubuntu Desktop Pending
Review via email: mp+108536@code.launchpad.net

Description of the change

Update to 2.97

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2012-05-17 23:12:21 +0000
3+++ debian/changelog 2012-06-04 10:19:20 +0000
4@@ -1,3 +1,24 @@
5+rhythmbox (2.97-0ubuntu1) UNRELEASED; urgency=low
6+
7+ * New upstream release 2.97 (LP: #1008406)
8+ - New more compact header layout, including album art
9+ - Deprecated artdisplay plugin
10+ - Fixed buffering for network streams
11+ - Configurable encoding settings for the library, using GStreamer presets or
12+ simple quality settings
13+ - Doesn't preserve mtime on metadata updates
14+ - Fixed audio CD extraction speed
15+ - New podcast subscription interface, including iTunes and Miroguide
16+ searching and auditioning before subscription
17+ * Drop all git backported packages; in this release.
18+ * Drop debian/patches/06_manual_connect_daap_host.patch: upstream and not
19+ in series.
20+ * Refresh other patches.
21+ * Add BD on libxml2-dev, as required by configure.
22+ * Adjust packaging for removal of artdisplay.
23+
24+ -- Iain Lane <iain.lane@canonical.com> Mon, 04 Jun 2012 10:02:09 +0100
25+
26 rhythmbox (2.96-0ubuntu6) quantal; urgency=low
27
28 * debian/rhythmbox.install:
29
30=== modified file 'debian/control'
31--- debian/control 2012-05-14 04:30:50 +0000
32+++ debian/control 2012-06-04 10:19:20 +0000
33@@ -47,6 +47,7 @@
34 libgnome-keyring-dev,
35 libpeas-dev (>= 0.7.3),
36 zlib1g-dev,
37+ libxml2-dev (>= 2.7.8),
38 libxt-dev,
39 x11proto-core-dev,
40 libgconf2-dev,
41
42=== modified file 'debian/control.in'
43--- debian/control.in 2012-05-14 04:30:50 +0000
44+++ debian/control.in 2012-06-04 10:19:20 +0000
45@@ -42,6 +42,7 @@
46 libgnome-keyring-dev,
47 libpeas-dev (>= 0.7.3),
48 zlib1g-dev,
49+ libxml2-dev (>= 2.7.8),
50 libxt-dev,
51 x11proto-core-dev,
52 libgconf2-dev,
53
54=== modified file 'debian/patches/02_use_escaped_podcast_uri.patch'
55--- debian/patches/02_use_escaped_podcast_uri.patch 2012-03-14 09:14:08 +0000
56+++ debian/patches/02_use_escaped_podcast_uri.patch 2012-06-04 10:19:20 +0000
57@@ -1,6 +1,8 @@
58 === modified file 'podcast/rb-podcast-manager.c'
59---- old/podcast/rb-podcast-manager.c 2012-03-08 20:38:49 +0000
60-+++ new/podcast/rb-podcast-manager.c 2012-03-08 21:02:02 +0000
61+Index: rhythmbox-2.97/podcast/rb-podcast-manager.c
62+===================================================================
63+--- rhythmbox-2.97.orig/podcast/rb-podcast-manager.c 2012-06-04 10:24:44.591435382 +0100
64++++ rhythmbox-2.97/podcast/rb-podcast-manager.c 2012-06-04 10:24:55.207434915 +0100
65 @@ -29,6 +29,7 @@
66 #include "config.h"
67
68@@ -9,7 +11,7 @@
69 #define __USE_XOPEN
70 #include <time.h>
71
72-@@ -865,9 +866,15 @@ download_podcast (GFileInfo *src_info, R
73+@@ -859,9 +860,15 @@
74 }
75
76 if (local_file_name == NULL) {
77@@ -28,4 +30,3 @@
78 }
79
80 /* if the filename ends with the query string from the original URI,
81-
82
83=== modified file 'debian/patches/03_magnatune_partner.patch'
84--- debian/patches/03_magnatune_partner.patch 2012-03-14 09:14:08 +0000
85+++ debian/patches/03_magnatune_partner.patch 2012-06-04 10:19:20 +0000
86@@ -1,7 +1,9 @@
87 === modified file 'plugins/magnatune/MagnatuneSource.py'
88---- old/plugins/magnatune/MagnatuneSource.py 2012-03-08 20:38:49 +0000
89-+++ new/plugins/magnatune/MagnatuneSource.py 2012-03-08 21:03:17 +0000
90-@@ -44,7 +44,7 @@ import MagnatuneAccount
91+Index: rhythmbox-2.97/plugins/magnatune/MagnatuneSource.py
92+===================================================================
93+--- rhythmbox-2.97.orig/plugins/magnatune/MagnatuneSource.py 2012-06-04 10:24:44.559435384 +0100
94++++ rhythmbox-2.97/plugins/magnatune/MagnatuneSource.py 2012-06-04 10:24:55.411434906 +0100
95+@@ -44,7 +44,7 @@
96 import gettext
97 gettext.install('rhythmbox', RB.locale_dir())
98
99@@ -10,4 +12,3 @@
100
101 # URIs
102 magnatune_song_info_uri = "http://magnatune.com/info/song_info_xml.zip"
103-
104
105=== modified file 'debian/patches/04_pause_button.patch'
106--- debian/patches/04_pause_button.patch 2011-08-03 15:25:12 +0000
107+++ debian/patches/04_pause_button.patch 2012-06-04 10:19:20 +0000
108@@ -5,11 +5,11 @@
109 Author: Bilal Akhtar <bilalakhtar@ubuntu.com>
110 Bug-Ubuntu: https://bugs.edge.launchpad.net/hundredpapercuts/+bug/71228
111 Forwarded: https://bugzilla.gnome.org/show_bug.cgi?id=326066
112-Index: rhythmbox-2.90.1~20110802/shell/rb-shell-player.c
113+Index: rhythmbox-2.97/shell/rb-shell-player.c
114 ===================================================================
115---- rhythmbox-2.90.1~20110802.orig/shell/rb-shell-player.c
116-+++ rhythmbox-2.90.1~20110802/shell/rb-shell-player.c
117-@@ -291,6 +291,9 @@
118+--- rhythmbox-2.97.orig/shell/rb-shell-player.c 2012-06-04 10:24:44.511435386 +0100
119++++ rhythmbox-2.97/shell/rb-shell-player.c 2012-06-04 10:24:55.611434898 +0100
120+@@ -294,6 +294,9 @@
121
122 static GtkActionEntry rb_shell_player_actions [] =
123 {
124@@ -19,7 +19,7 @@
125 { "ControlPrevious", GTK_STOCK_MEDIA_PREVIOUS, N_("Pre_vious"), "<alt>Left",
126 N_("Start playing the previous song"),
127 G_CALLBACK (rb_shell_player_cmd_previous) },
128-@@ -308,9 +311,6 @@
129+@@ -311,9 +314,6 @@
130
131 static GtkToggleActionEntry rb_shell_player_toggle_entries [] =
132 {
133@@ -29,17 +29,17 @@
134 { "ControlShuffle", GNOME_MEDIA_SHUFFLE, N_("Sh_uffle"), "<control>U",
135 N_("Play songs in a random order"),
136 G_CALLBACK (rb_shell_player_shuffle_changed_cb) },
137-@@ -697,9 +697,6 @@
138- action, "active",
139- G_SETTINGS_BIND_INVERT_BOOLEAN | G_SETTINGS_BIND_NO_SENSITIVITY);
140+@@ -705,9 +705,6 @@
141+ player_settings_changed_cb (player->priv->settings, "transition-time", player);
142+ player_settings_changed_cb (player->priv->settings, "play-order", player);
143
144 - action = gtk_action_group_get_action (player->priv->actiongroup,
145 - "ControlPlay");
146 - g_object_set (action, "is-important", TRUE, NULL);
147
148- player->priv->syncing_state = TRUE;
149- rb_shell_player_set_playing_source (player, NULL);
150-@@ -3777,7 +3774,6 @@
151+ action = gtk_action_group_get_action (player->priv->actiongroup, "ControlPrevious");
152+ g_object_bind_property (player, "has-prev", action, "sensitive", G_BINDING_DEFAULT);
153+@@ -3825,7 +3822,6 @@
154
155 /* sync the active state of the action again */
156 g_object_get (player, "playing", &playing, NULL);
157@@ -47,7 +47,7 @@
158
159 g_signal_handlers_unblock_by_func (action, rb_shell_player_cmd_play, player);
160
161-@@ -3800,11 +3796,17 @@
162+@@ -3848,11 +3844,17 @@
163 if (playing) {
164 if (rb_source_can_pause (player->priv->source)) {
165 tooltip = g_strdup (_("Pause playback"));
166@@ -65,7 +65,7 @@
167 }
168 g_object_set (action, "tooltip", tooltip, NULL);
169 g_free (tooltip);
170-@@ -3816,7 +3818,6 @@
171+@@ -3864,7 +3866,6 @@
172 if (player->priv->unblock_play_id == 0) {
173 g_signal_handlers_block_by_func (action, rb_shell_player_cmd_play, player);
174 }
175
176=== modified file 'debian/patches/05_hide_on_quit.patch'
177--- debian/patches/05_hide_on_quit.patch 2011-08-03 15:25:12 +0000
178+++ debian/patches/05_hide_on_quit.patch 2012-06-04 10:19:20 +0000
179@@ -5,11 +5,11 @@
180 Author: Didier Roche
181 Bug-Ubuntu: https://bugs.launchpad.net/bugs/526552
182
183-Index: rhythmbox-2.90.1~20110802/shell/rb-shell.c
184+Index: rhythmbox-2.97/shell/rb-shell.c
185 ===================================================================
186---- rhythmbox-2.90.1~20110802.orig/shell/rb-shell.c
187-+++ rhythmbox-2.90.1~20110802/shell/rb-shell.c
188-@@ -1915,11 +1915,42 @@
189+--- rhythmbox-2.97.orig/shell/rb-shell.c 2012-06-04 10:24:44.475435388 +0100
190++++ rhythmbox-2.97/shell/rb-shell.c 2012-06-04 10:24:55.827434888 +0100
191+@@ -2276,11 +2276,42 @@
192 return FALSE;
193 }
194
195@@ -52,11 +52,11 @@
196 if (shell->priv->party_mode) {
197 return TRUE;
198 }
199-Index: rhythmbox-2.90.1~20110802/shell/rb-shell.h
200+Index: rhythmbox-2.97/shell/rb-shell.h
201 ===================================================================
202---- rhythmbox-2.90.1~20110802.orig/shell/rb-shell.h
203-+++ rhythmbox-2.90.1~20110802/shell/rb-shell.h
204-@@ -183,6 +183,8 @@
205+--- rhythmbox-2.97.orig/shell/rb-shell.h 2012-06-04 10:24:44.475435388 +0100
206++++ rhythmbox-2.97/shell/rb-shell.h 2012-06-04 10:24:55.827434888 +0100
207+@@ -160,6 +160,8 @@
208
209 gboolean rb_shell_get_party_mode (RBShell *shell);
210
211
212=== removed file 'debian/patches/06_manual_connect_daap_host.patch'
213--- debian/patches/06_manual_connect_daap_host.patch 2011-05-26 16:45:50 +0000
214+++ debian/patches/06_manual_connect_daap_host.patch 1970-01-01 00:00:00 +0000
215@@ -1,21 +0,0 @@
216-From e710ae5e83a965147b63af9ad6179338de81f20b Mon Sep 17 00:00:00 2001
217-From: W. Michael Petullo <mike@flyn.org>
218-Date: Wed, 04 May 2011 17:18:44 +0000
219-Subject: DAAP: allow a user to provide a port for specified server
220-
221-Bug: https://bugzilla.gnome.org/show_bug.cgi?id=649288
222-Bug-Ubuntu: https://launchpad.net/bugs/665168
223----
224-Index: rhythmbox-0.13.3/plugins/daap/rb-daap-plugin.c
225-===================================================================
226---- rhythmbox-0.13.3.orig/plugins/daap/rb-daap-plugin.c 2011-01-16 10:10:40.000000000 +0100
227-+++ rhythmbox-0.13.3/plugins/daap/rb-daap-plugin.c 2011-05-05 07:27:37.536527475 +0200
228-@@ -723,7 +723,7 @@
229-
230- rb_debug ("adding manually specified DAAP share at %s", location);
231- service.name = (char *) location;
232-- service.host = (char *) location;
233-+ service.host = (char *) host;
234- service.port = port;
235- service.password_protected = FALSE;
236- mdns_service_added (NULL,
237
238=== modified file 'debian/patches/07_quicklists.patch'
239--- debian/patches/07_quicklists.patch 2012-03-20 12:01:59 +0000
240+++ debian/patches/07_quicklists.patch 2012-06-04 10:19:20 +0000
241@@ -1,8 +1,8 @@
242 === modified file 'a/data/rhythmbox.desktop.in.in'
243-Index: rhythmbox-2.95.5/data/rhythmbox.desktop.in.in
244+Index: rhythmbox-2.97/data/rhythmbox.desktop.in.in
245 ===================================================================
246---- rhythmbox-2.95.5.orig/data/rhythmbox.desktop.in.in 2012-02-12 01:13:10.000000000 -0500
247-+++ rhythmbox-2.95.5/data/rhythmbox.desktop.in.in 2012-03-15 15:08:33.263349627 -0400
248+--- rhythmbox-2.97.orig/data/rhythmbox.desktop.in.in 2012-06-04 10:24:44.407435390 +0100
249++++ rhythmbox-2.97/data/rhythmbox.desktop.in.in 2012-06-04 10:24:56.031434879 +0100
250 @@ -16,3 +16,20 @@
251 X-GNOME-Bugzilla-Component=general
252 X-GNOME-Bugzilla-OtherBinaries=rhythmbox-client;rhythmbox-metadata;
253
254=== removed file 'debian/patches/git_ipod_no_private_source.patch'
255--- debian/patches/git_ipod_no_private_source.patch 2012-03-16 11:11:59 +0000
256+++ debian/patches/git_ipod_no_private_source.patch 1970-01-01 00:00:00 +0000
257@@ -1,161 +0,0 @@
258-From 63a5411ebd6058c8c6ffc618a8c3ce940c210ecc Mon Sep 17 00:00:00 2001
259-From: Cole Robinson <crobinso@redhat.com>
260-Date: Mon, 12 Mar 2012 22:43:01 +0000
261-Subject: ipod: playlist handlers shouldn't need private source access
262-
263-Accomplist this by adding an ipod source method to lookup a track
264-in the private entry_map.
265-
266-Signed-off-by: Cole Robinson <crobinso@redhat.com>
267----
268-diff --git a/plugins/ipod/rb-ipod-source.c b/plugins/ipod/rb-ipod-source.c
269-index aea499e..7a23d0c 100644
270---- a/plugins/ipod/rb-ipod-source.c
271-+++ b/plugins/ipod/rb-ipod-source.c
272-@@ -594,15 +594,15 @@ playlist_track_removed (RhythmDBQueryModel *m,
273- RBIpodStaticPlaylistSource *playlist = RB_IPOD_STATIC_PLAYLIST_SOURCE (data);
274- Itdb_Playlist *ipod_pl = rb_ipod_static_playlist_source_get_itdb_playlist (playlist);
275- RBiPodSource *ipod = rb_ipod_static_playlist_source_get_ipod_source (playlist);
276-- RBiPodSourcePrivate *priv = IPOD_SOURCE_GET_PRIVATE (ipod);
277-+ RbIpodDb *ipod_db = rb_ipod_static_playlist_source_get_ipod_db (playlist);
278- Itdb_Track *track;
279-
280- g_return_if_fail (ipod != NULL);
281- g_return_if_fail (ipod_pl != NULL);
282-
283-- track = g_hash_table_lookup (priv->entry_map, entry);
284-+ track = rb_ipod_source_lookup_track (ipod, entry);
285- g_return_if_fail (track != NULL);
286-- rb_ipod_db_remove_from_playlist (priv->ipod_db, ipod_pl, track);
287-+ rb_ipod_db_remove_from_playlist (ipod_db, ipod_pl, track);
288- }
289-
290- static void
291-@@ -612,7 +612,7 @@ playlist_track_added (GtkTreeModel *model, GtkTreePath *path,
292- RBIpodStaticPlaylistSource *playlist = RB_IPOD_STATIC_PLAYLIST_SOURCE (data);
293- Itdb_Playlist *ipod_pl = rb_ipod_static_playlist_source_get_itdb_playlist (playlist);
294- RBiPodSource *ipod = rb_ipod_static_playlist_source_get_ipod_source (playlist);
295-- RBiPodSourcePrivate *priv = IPOD_SOURCE_GET_PRIVATE (ipod);
296-+ RbIpodDb *ipod_db = rb_ipod_static_playlist_source_get_ipod_db (playlist);
297- Itdb_Track *track;
298- RhythmDBEntry *entry;
299-
300-@@ -620,10 +620,10 @@ playlist_track_added (GtkTreeModel *model, GtkTreePath *path,
301- g_return_if_fail (ipod_pl != NULL);
302-
303- gtk_tree_model_get (model, iter, 0, &entry, -1);
304-- track = g_hash_table_lookup (priv->entry_map, entry);
305-+ track = rb_ipod_source_lookup_track (ipod, entry);
306- g_return_if_fail (track != NULL);
307-
308-- rb_ipod_db_add_to_playlist (priv->ipod_db, ipod_pl, track);
309-+ rb_ipod_db_add_to_playlist (ipod_db, ipod_pl, track);
310- }
311-
312- static void
313-@@ -633,7 +633,6 @@ playlist_before_save (RbIpodDb *ipod_db, gpointer data)
314- GtkTreeModel *model = GTK_TREE_MODEL (rb_playlist_source_get_query_model (RB_PLAYLIST_SOURCE (playlist)));
315- Itdb_Playlist *ipod_pl = rb_ipod_static_playlist_source_get_itdb_playlist (playlist);
316- RBiPodSource *ipod = rb_ipod_static_playlist_source_get_ipod_source (playlist);
317-- RBiPodSourcePrivate *priv = IPOD_SOURCE_GET_PRIVATE (ipod);
318- GtkTreeIter iter;
319-
320- if (!rb_ipod_static_playlist_source_get_was_reordered (playlist)) {
321-@@ -650,7 +649,7 @@ playlist_before_save (RbIpodDb *ipod_db, gpointer data)
322- Itdb_Track *track;
323-
324- gtk_tree_model_get (model, &iter, 0, &entry, -1);
325-- track = g_hash_table_lookup (priv->entry_map, entry);
326-+ track = rb_ipod_source_lookup_track (ipod, entry);
327-
328- g_return_if_fail (track != NULL);
329- } while (gtk_tree_model_iter_next (model, &iter));
330-@@ -675,7 +674,7 @@ playlist_before_save (RbIpodDb *ipod_db, gpointer data)
331- Itdb_Track *track;
332-
333- gtk_tree_model_get (model, &iter, 0, &entry, -1);
334-- track = g_hash_table_lookup (priv->entry_map, entry);
335-+ track = rb_ipod_source_lookup_track (ipod, entry);
336-
337- rb_debug ("adding \"%s\" to \"%s\"", track->title, ipod_pl->name);
338-
339-@@ -692,13 +691,12 @@ playlist_rows_reordered (GtkTreeModel *model,
340- gint *order, gpointer data)
341- {
342- RBIpodStaticPlaylistSource *playlist = RB_IPOD_STATIC_PLAYLIST_SOURCE (data);
343-- RBiPodSource *ipod = rb_ipod_static_playlist_source_get_ipod_source (playlist);
344-- RBiPodSourcePrivate *priv = IPOD_SOURCE_GET_PRIVATE (ipod);
345-+ RbIpodDb *ipod_db = rb_ipod_static_playlist_source_get_ipod_db (playlist);
346-
347- /* Mark as reordered; will check before save */
348- rb_ipod_static_playlist_source_set_was_reordered (playlist, TRUE);
349-
350-- rb_ipod_db_save_async (priv->ipod_db);
351-+ rb_ipod_db_save_async (ipod_db);
352- }
353-
354- static void
355-@@ -2064,6 +2062,16 @@ rb_ipod_source_remove_playlist (RBiPodSource *ipod_source,
356- rb_ipod_db_remove_playlist (priv->ipod_db, rb_ipod_static_playlist_source_get_itdb_playlist (playlist_source));
357- }
358-
359-+
360-+Itdb_Track *
361-+rb_ipod_source_lookup_track (RBiPodSource *source,
362-+ RhythmDBEntry *entry)
363-+{
364-+ RBiPodSourcePrivate *priv = IPOD_SOURCE_GET_PRIVATE (source);
365-+
366-+ return g_hash_table_lookup (priv->entry_map, entry);
367-+}
368-+
369- static gboolean
370- ipod_name_changed_cb (GtkWidget *widget,
371- GdkEventFocus *event,
372-diff --git a/plugins/ipod/rb-ipod-source.h b/plugins/ipod/rb-ipod-source.h
373-index f95d735..9af5fa3 100644
374---- a/plugins/ipod/rb-ipod-source.h
375-+++ b/plugins/ipod/rb-ipod-source.h
376-@@ -71,6 +71,9 @@ void rb_ipod_source_show_properties (RBiPodSource *source);
377- void rb_ipod_source_delete_entries (RBiPodSource *source,
378- GList *entries);
379-
380-+Itdb_Track * rb_ipod_source_lookup_track (RBiPodSource *source,
381-+ RhythmDBEntry *entry);
382-+
383- G_END_DECLS
384-
385- #endif /* __RB_IPOD_SOURCE_H */
386-diff --git a/plugins/ipod/rb-ipod-static-playlist-source.c b/plugins/ipod/rb-ipod-static-playlist-source.c
387-index a2f0248..0a95dc8 100644
388---- a/plugins/ipod/rb-ipod-static-playlist-source.c
389-+++ b/plugins/ipod/rb-ipod-static-playlist-source.c
390-@@ -262,6 +262,14 @@ rb_ipod_static_playlist_source_get_ipod_source (RBIpodStaticPlaylistSource *play
391- return priv->ipod_source;
392- }
393-
394-+RbIpodDb*
395-+rb_ipod_static_playlist_source_get_ipod_db (RBIpodStaticPlaylistSource *playlist)
396-+{
397-+ RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (playlist);
398-+
399-+ return priv->ipod_db;
400-+}
401-+
402- gboolean
403- rb_ipod_static_playlist_source_get_was_reordered (RBIpodStaticPlaylistSource *playlist)
404- {
405-diff --git a/plugins/ipod/rb-ipod-static-playlist-source.h b/plugins/ipod/rb-ipod-static-playlist-source.h
406-index 38afff0..49c833f 100644
407---- a/plugins/ipod/rb-ipod-static-playlist-source.h
408-+++ b/plugins/ipod/rb-ipod-static-playlist-source.h
409-@@ -56,6 +56,7 @@ RBIpodStaticPlaylistSource * rb_ipod_static_playlist_source_new (RBShell *shell,
410-
411- Itdb_Playlist* rb_ipod_static_playlist_source_get_itdb_playlist (RBIpodStaticPlaylistSource *playlist);
412- RBiPodSource* rb_ipod_static_playlist_source_get_ipod_source (RBIpodStaticPlaylistSource *playlist);
413-+RbIpodDb* rb_ipod_static_playlist_source_get_ipod_db (RBIpodStaticPlaylistSource *playlist);
414- gboolean rb_ipod_static_playlist_source_get_was_reordered (RBIpodStaticPlaylistSource *playlist);
415- void rb_ipod_static_playlist_source_set_was_reordered (RBIpodStaticPlaylistSource *playlist, gboolean was_reordered);
416-
417---
418-cgit v0.9.0.2
419
420=== removed file 'debian/patches/git_ipod_playlist_handler.patch'
421--- debian/patches/git_ipod_playlist_handler.patch 2012-03-16 11:11:59 +0000
422+++ debian/patches/git_ipod_playlist_handler.patch 1970-01-01 00:00:00 +0000
423@@ -1,632 +0,0 @@
424-From d99a239c500516c792d50712834a2be76c10feb2 Mon Sep 17 00:00:00 2001
425-From: Jonathan Matthew <jonathan@d14n.org>
426-Date: Wed, 14 Mar 2012 13:16:50 +0000
427-Subject: ipod: Move all playlist handlers to private playlist code
428-
429-Various other cleanups, removal of the notify::base-query-model
430-signal handler that would never have worked, and stuff moved
431-from impl_delete_thyself to the dispose method where it belongs.
432-
433-based on a patch by Cole Robinson <crobinso@redhat.com>
434----
435-diff --git a/plugins/ipod/rb-ipod-plugin.c b/plugins/ipod/rb-ipod-plugin.c
436-index 089c1b4..e0907bc 100644
437---- a/plugins/ipod/rb-ipod-plugin.c
438-+++ b/plugins/ipod/rb-ipod-plugin.c
439-@@ -277,14 +277,13 @@ rb_ipod_plugin_cmd_playlist_rename (GtkAction *action, RBSource *source)
440- static void
441- rb_ipod_plugin_cmd_playlist_delete (GtkAction *action, RBSource *source)
442- {
443-- RBIpodStaticPlaylistSource *psource;
444- RBiPodSource *ipod_source;
445-
446- g_return_if_fail (RB_IS_IPOD_STATIC_PLAYLIST_SOURCE (source));
447-- psource = RB_IPOD_STATIC_PLAYLIST_SOURCE (source);
448-
449-- ipod_source = rb_ipod_static_playlist_source_get_ipod_source (psource);
450-+ g_object_get (source, "ipod-source", &ipod_source, NULL);
451- rb_ipod_source_remove_playlist (ipod_source, source);
452-+ g_object_unref (ipod_source);
453- }
454-
455- static void
456-diff --git a/plugins/ipod/rb-ipod-source.c b/plugins/ipod/rb-ipod-source.c
457-index 7a23d0c..194807c 100644
458---- a/plugins/ipod/rb-ipod-source.c
459-+++ b/plugins/ipod/rb-ipod-source.c
460-@@ -587,170 +587,6 @@ ipod_path_to_uri (const char *mount_point, const char *ipod_path)
461- }
462-
463- static void
464--playlist_track_removed (RhythmDBQueryModel *m,
465-- RhythmDBEntry *entry,
466-- gpointer data)
467--{
468-- RBIpodStaticPlaylistSource *playlist = RB_IPOD_STATIC_PLAYLIST_SOURCE (data);
469-- Itdb_Playlist *ipod_pl = rb_ipod_static_playlist_source_get_itdb_playlist (playlist);
470-- RBiPodSource *ipod = rb_ipod_static_playlist_source_get_ipod_source (playlist);
471-- RbIpodDb *ipod_db = rb_ipod_static_playlist_source_get_ipod_db (playlist);
472-- Itdb_Track *track;
473--
474-- g_return_if_fail (ipod != NULL);
475-- g_return_if_fail (ipod_pl != NULL);
476--
477-- track = rb_ipod_source_lookup_track (ipod, entry);
478-- g_return_if_fail (track != NULL);
479-- rb_ipod_db_remove_from_playlist (ipod_db, ipod_pl, track);
480--}
481--
482--static void
483--playlist_track_added (GtkTreeModel *model, GtkTreePath *path,
484-- GtkTreeIter *iter, gpointer data)
485--{
486-- RBIpodStaticPlaylistSource *playlist = RB_IPOD_STATIC_PLAYLIST_SOURCE (data);
487-- Itdb_Playlist *ipod_pl = rb_ipod_static_playlist_source_get_itdb_playlist (playlist);
488-- RBiPodSource *ipod = rb_ipod_static_playlist_source_get_ipod_source (playlist);
489-- RbIpodDb *ipod_db = rb_ipod_static_playlist_source_get_ipod_db (playlist);
490-- Itdb_Track *track;
491-- RhythmDBEntry *entry;
492--
493-- g_return_if_fail (ipod != NULL);
494-- g_return_if_fail (ipod_pl != NULL);
495--
496-- gtk_tree_model_get (model, iter, 0, &entry, -1);
497-- track = rb_ipod_source_lookup_track (ipod, entry);
498-- g_return_if_fail (track != NULL);
499--
500-- rb_ipod_db_add_to_playlist (ipod_db, ipod_pl, track);
501--}
502--
503--static void
504--playlist_before_save (RbIpodDb *ipod_db, gpointer data)
505--{
506-- RBIpodStaticPlaylistSource *playlist = RB_IPOD_STATIC_PLAYLIST_SOURCE (data);
507-- GtkTreeModel *model = GTK_TREE_MODEL (rb_playlist_source_get_query_model (RB_PLAYLIST_SOURCE (playlist)));
508-- Itdb_Playlist *ipod_pl = rb_ipod_static_playlist_source_get_itdb_playlist (playlist);
509-- RBiPodSource *ipod = rb_ipod_static_playlist_source_get_ipod_source (playlist);
510-- GtkTreeIter iter;
511--
512-- if (!rb_ipod_static_playlist_source_get_was_reordered (playlist)) {
513-- return;
514-- }
515--
516-- rb_ipod_static_playlist_source_set_was_reordered (playlist, FALSE);
517--
518-- /* Sanity check that all tracks are in entry_map */
519--
520-- if (gtk_tree_model_get_iter_first (model, &iter)) {
521-- do {
522-- RhythmDBEntry *entry;
523-- Itdb_Track *track;
524--
525-- gtk_tree_model_get (model, &iter, 0, &entry, -1);
526-- track = rb_ipod_source_lookup_track (ipod, entry);
527--
528-- g_return_if_fail (track != NULL);
529-- } while (gtk_tree_model_iter_next (model, &iter));
530-- }
531--
532-- /* Remove all tracks then re-add in correct order */
533--
534-- while (ipod_pl->members != NULL) {
535-- Itdb_Track *track;
536--
537-- track = (Itdb_Track *)ipod_pl->members->data;
538--
539-- rb_debug ("removing \"%s\" from \"%s\"", track->title, ipod_pl->name);
540--
541-- /* Call directly to itdb to avoid scheduling another save */
542-- itdb_playlist_remove_track (ipod_pl, track);
543-- }
544--
545-- if (gtk_tree_model_get_iter_first (model, &iter)) {
546-- do {
547-- RhythmDBEntry *entry;
548-- Itdb_Track *track;
549--
550-- gtk_tree_model_get (model, &iter, 0, &entry, -1);
551-- track = rb_ipod_source_lookup_track (ipod, entry);
552--
553-- rb_debug ("adding \"%s\" to \"%s\"", track->title, ipod_pl->name);
554--
555-- /* Call directly to itdb to avoid scheduling another save */
556-- itdb_playlist_add_track (ipod_pl, track, -1);
557-- } while (gtk_tree_model_iter_next (model, &iter));
558-- }
559--}
560--
561--static void
562--playlist_rows_reordered (GtkTreeModel *model,
563-- GtkTreePath *path,
564-- GtkTreeIter *iter,
565-- gint *order, gpointer data)
566--{
567-- RBIpodStaticPlaylistSource *playlist = RB_IPOD_STATIC_PLAYLIST_SOURCE (data);
568-- RbIpodDb *ipod_db = rb_ipod_static_playlist_source_get_ipod_db (playlist);
569--
570-- /* Mark as reordered; will check before save */
571-- rb_ipod_static_playlist_source_set_was_reordered (playlist, TRUE);
572--
573-- rb_ipod_db_save_async (ipod_db);
574--}
575--
576--static void
577--playlist_source_model_disconnect_signals (GObject *model, RBIpodStaticPlaylistSource *playlist_source)
578--{
579-- g_return_if_fail (RB_IS_IPOD_STATIC_PLAYLIST_SOURCE (playlist_source));
580--
581-- g_signal_handlers_disconnect_by_func (model,
582-- G_CALLBACK (playlist_track_added),
583-- playlist_source);
584-- g_signal_handlers_disconnect_by_func (model,
585-- G_CALLBACK (playlist_track_removed),
586-- playlist_source);
587-- g_signal_handlers_disconnect_by_func (model,
588-- G_CALLBACK (playlist_rows_reordered),
589-- playlist_source);
590--}
591--
592--static void
593--playlist_source_model_connect_signals (RBIpodStaticPlaylistSource *playlist_source)
594--{
595-- RhythmDBQueryModel *model;
596--
597-- g_return_if_fail (RB_IS_IPOD_STATIC_PLAYLIST_SOURCE (playlist_source));
598--
599-- g_object_get (G_OBJECT (playlist_source),
600-- "base-query-model", &model, NULL);
601-- g_signal_connect (model, "row-inserted",
602-- G_CALLBACK (playlist_track_added),
603-- playlist_source);
604-- g_signal_connect (model, "entry-removed",
605-- G_CALLBACK (playlist_track_removed),
606-- playlist_source);
607-- g_signal_connect (model, "rows-reordered",
608-- G_CALLBACK (playlist_rows_reordered),
609-- playlist_source);
610-- g_object_unref (model);
611--}
612--
613--static void
614--playlist_source_model_changed (GObject *obj, GParamSpec *pspec, gpointer old_model)
615--{
616-- RBIpodStaticPlaylistSource *playlist_source;
617--
618-- rb_debug ("base model changed for iPod playlist");
619--
620-- playlist_source = RB_IPOD_STATIC_PLAYLIST_SOURCE (obj);
621--
622-- playlist_source_model_disconnect_signals (G_OBJECT (old_model), playlist_source);
623--
624-- playlist_source_model_connect_signals (playlist_source);
625--}
626--
627--static void
628- set_podcast_icon (RBIpodStaticPlaylistSource *source)
629- {
630- GdkPixbuf *pixbuf;
631-@@ -776,7 +612,6 @@ add_rb_playlist (RBiPodSource *source, Itdb_Playlist *playlist)
632- GList *it;
633- RBiPodSourcePrivate *priv = IPOD_SOURCE_GET_PRIVATE (source);
634- RhythmDBEntryType *entry_type;
635-- RhythmDBQueryModel *model;
636-
637- g_object_get (source,
638- "shell", &shell,
639-@@ -812,17 +647,6 @@ add_rb_playlist (RBiPodSource *source, Itdb_Playlist *playlist)
640- playlist->userdata_destroy = g_object_unref;
641- playlist->userdata_duplicate = g_object_ref;
642-
643-- g_object_get (G_OBJECT (playlist_source),
644-- "base-query-model", &model, NULL);
645-- g_signal_connect (playlist_source, "notify::base-query-model",
646-- G_CALLBACK (playlist_source_model_changed),
647-- playlist_source);
648-- g_signal_connect (priv->ipod_db, "before-save",
649-- G_CALLBACK (playlist_before_save),
650-- playlist_source);
651-- g_object_unref (model);
652-- playlist_source_model_connect_signals (playlist_source);
653--
654- if (itdb_playlist_is_podcasts(playlist)) {
655- priv->podcast_pl = playlist_source;
656- set_podcast_icon (playlist_source);
657-@@ -2013,17 +1837,8 @@ impl_delete_thyself (RBDisplayPage *page)
658- Itdb_Playlist *playlist = (Itdb_Playlist *)p->data;
659- if (!itdb_playlist_is_mpl (playlist) && !playlist->is_spl) {
660- RBSource *rb_playlist;
661-- RhythmDBQueryModel *model;
662-
663- rb_playlist = RB_SOURCE (playlist->userdata);
664-- g_object_get (G_OBJECT (rb_playlist),
665-- "base-query-model", &model, NULL);
666--
667-- /* remove these to ensure they aren't called during source deletion */
668-- playlist_source_model_disconnect_signals (G_OBJECT (model),
669-- RB_IPOD_STATIC_PLAYLIST_SOURCE (rb_playlist));
670--
671-- g_object_unref (model);
672- rb_display_page_delete_thyself (RB_DISPLAY_PAGE (rb_playlist));
673- }
674- }
675-@@ -2057,9 +1872,12 @@ rb_ipod_source_remove_playlist (RBiPodSource *ipod_source,
676- {
677- RBiPodSourcePrivate *priv = IPOD_SOURCE_GET_PRIVATE (ipod_source);
678- RBIpodStaticPlaylistSource *playlist_source = RB_IPOD_STATIC_PLAYLIST_SOURCE (source);
679-+ Itdb_Playlist *playlist;
680-
681- rb_display_page_delete_thyself (RB_DISPLAY_PAGE (source));
682-- rb_ipod_db_remove_playlist (priv->ipod_db, rb_ipod_static_playlist_source_get_itdb_playlist (playlist_source));
683-+
684-+ g_object_get (playlist_source, "itdb-playlist", &playlist, NULL);
685-+ rb_ipod_db_remove_playlist (priv->ipod_db, playlist);
686- }
687-
688-
689-diff --git a/plugins/ipod/rb-ipod-static-playlist-source.c b/plugins/ipod/rb-ipod-static-playlist-source.c
690-index 0a95dc8..261c4c4 100644
691---- a/plugins/ipod/rb-ipod-static-playlist-source.c
692-+++ b/plugins/ipod/rb-ipod-static-playlist-source.c
693-@@ -45,11 +45,6 @@ static void rb_ipod_static_playlist_source_get_property (GObject *object,
694- GParamSpec *pspec);
695-
696- static gboolean impl_show_popup (RBDisplayPage *page);
697--static void impl_delete_thyself (RBDisplayPage *page);
698--
699--static void source_name_changed_cb (RBIpodStaticPlaylistSource *source,
700-- GParamSpec *spec,
701-- gpointer data);
702-
703- typedef struct
704- {
705-@@ -67,10 +62,168 @@ enum {
706- PROP_0,
707- PROP_IPOD_SOURCE,
708- PROP_IPOD_DB,
709-- PROP_ITDB_PLAYLIST,
710-- PROP_WAS_REORDERED
711-+ PROP_ITDB_PLAYLIST
712- };
713-
714-+static void
715-+playlist_track_removed (RhythmDBQueryModel *m,
716-+ RhythmDBEntry *entry,
717-+ gpointer data)
718-+{
719-+ RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (data);
720-+ Itdb_Track *track;
721-+
722-+ track = rb_ipod_source_lookup_track (priv->ipod_source, entry);
723-+ g_return_if_fail (track != NULL);
724-+ rb_ipod_db_remove_from_playlist (priv->ipod_db, priv->itdb_playlist, track);
725-+}
726-+
727-+static void
728-+playlist_track_added (GtkTreeModel *model,
729-+ GtkTreePath *path,
730-+ GtkTreeIter *iter,
731-+ gpointer data)
732-+{
733-+ RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (data);
734-+ Itdb_Track *track;
735-+ RhythmDBEntry *entry;
736-+
737-+ gtk_tree_model_get (model, iter, 0, &entry, -1);
738-+ track = rb_ipod_source_lookup_track (priv->ipod_source, entry);
739-+ g_return_if_fail (track != NULL);
740-+
741-+ rb_ipod_db_add_to_playlist (priv->ipod_db, priv->itdb_playlist, track);
742-+}
743-+
744-+static void
745-+playlist_before_save (RbIpodDb *ipod_db, gpointer data)
746-+{
747-+ RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (data);
748-+ RhythmDBQueryModel *model;
749-+ GtkTreeIter iter;
750-+
751-+ if (priv->was_reordered == FALSE)
752-+ return;
753-+ priv->was_reordered = FALSE;
754-+
755-+ /* Sanity check that all tracks are in entry_map */
756-+
757-+ g_object_get (G_OBJECT (data), "base-query-model", &model, NULL);
758-+ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter)) {
759-+ do {
760-+ RhythmDBEntry *entry;
761-+ Itdb_Track *track;
762-+
763-+ gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, 0, &entry, -1);
764-+ track = rb_ipod_source_lookup_track (priv->ipod_source, entry);
765-+
766-+ g_return_if_fail (track != NULL);
767-+ } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (model), &iter));
768-+ }
769-+
770-+ /* Remove all tracks then re-add in correct order */
771-+
772-+ while (priv->itdb_playlist->members != NULL) {
773-+ Itdb_Track *track;
774-+
775-+ track = (Itdb_Track *)priv->itdb_playlist->members->data;
776-+
777-+ rb_debug ("removing \"%s\" from \"%s\"", track->title, priv->itdb_playlist->name);
778-+
779-+ /* Call directly to itdb to avoid scheduling another save */
780-+ itdb_playlist_remove_track (priv->itdb_playlist, track);
781-+ }
782-+
783-+ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter)) {
784-+ do {
785-+ RhythmDBEntry *entry;
786-+ Itdb_Track *track;
787-+
788-+ gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, 0, &entry, -1);
789-+ track = rb_ipod_source_lookup_track (priv->ipod_source, entry);
790-+
791-+ rb_debug ("adding \"%s\" to \"%s\"", track->title, priv->itdb_playlist->name);
792-+
793-+ /* Call directly to itdb to avoid scheduling another save */
794-+ itdb_playlist_add_track (priv->itdb_playlist, track, -1);
795-+ } while (gtk_tree_model_iter_next (GTK_TREE_MODEL (model), &iter));
796-+ }
797-+
798-+ g_object_unref (model);
799-+}
800-+
801-+static void
802-+playlist_rows_reordered (GtkTreeModel *model,
803-+ GtkTreePath *path,
804-+ GtkTreeIter *iter,
805-+ gint *order,
806-+ gpointer data)
807-+{
808-+ RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (data);
809-+ priv->was_reordered = TRUE;
810-+
811-+ rb_ipod_db_save_async (priv->ipod_db);
812-+}
813-+
814-+static void
815-+playlist_source_model_disconnect_signals (RBIpodStaticPlaylistSource *source)
816-+{
817-+ RhythmDBQueryModel *model;
818-+
819-+ g_return_if_fail (RB_IS_IPOD_STATIC_PLAYLIST_SOURCE (source));
820-+
821-+ g_object_get (source, "base-query-model", &model, NULL);
822-+
823-+ g_signal_handlers_disconnect_by_func (model,
824-+ G_CALLBACK (playlist_track_added),
825-+ source);
826-+ g_signal_handlers_disconnect_by_func (model,
827-+ G_CALLBACK (playlist_track_removed),
828-+ source);
829-+ g_signal_handlers_disconnect_by_func (model,
830-+ G_CALLBACK (playlist_rows_reordered),
831-+ source);
832-+
833-+ g_object_unref (model);
834-+}
835-+
836-+static void
837-+playlist_source_model_connect_signals (RBIpodStaticPlaylistSource *playlist_source)
838-+{
839-+ RhythmDBQueryModel *model;
840-+
841-+ g_return_if_fail (RB_IS_IPOD_STATIC_PLAYLIST_SOURCE (playlist_source));
842-+
843-+ g_object_get (playlist_source, "base-query-model", &model, NULL);
844-+ g_signal_connect (model, "row-inserted",
845-+ G_CALLBACK (playlist_track_added),
846-+ playlist_source);
847-+ g_signal_connect (model, "entry-removed",
848-+ G_CALLBACK (playlist_track_removed),
849-+ playlist_source);
850-+ g_signal_connect (model, "rows-reordered",
851-+ G_CALLBACK (playlist_rows_reordered),
852-+ playlist_source);
853-+ g_object_unref (model);
854-+}
855-+
856-+static void
857-+source_name_changed_cb (RBIpodStaticPlaylistSource *source,
858-+ GParamSpec *spec,
859-+ gpointer data)
860-+{
861-+ RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (source);
862-+ char *name;
863-+
864-+ g_object_get (source, "name", &name, NULL);
865-+
866-+ if ((priv->itdb_playlist != NULL) && (strcmp (name, priv->itdb_playlist->name) != 0)) {
867-+ rb_debug ("changing playlist name to %s", name);
868-+ rb_ipod_db_rename_playlist (priv->ipod_db, priv->itdb_playlist, name);
869-+ }
870-+ g_free (name);
871-+}
872-+
873-
874- static void
875- rb_ipod_static_playlist_source_class_init (RBIpodStaticPlaylistSourceClass *klass)
876-@@ -85,7 +238,6 @@ rb_ipod_static_playlist_source_class_init (RBIpodStaticPlaylistSourceClass *klas
877- object_class->set_property = rb_ipod_static_playlist_source_set_property;
878-
879- page_class->show_popup = impl_show_popup;
880-- page_class->delete_thyself = impl_delete_thyself;
881-
882- source_class->impl_can_move_to_trash = (RBSourceFeatureFunc) rb_false_function;
883- source_class->impl_can_delete = (RBSourceFeatureFunc) rb_true_function;
884-@@ -115,13 +267,6 @@ rb_ipod_static_playlist_source_class_init (RBIpodStaticPlaylistSourceClass *klas
885- "itdb-playlist",
886- G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
887-
888-- g_object_class_install_property (object_class,
889-- PROP_WAS_REORDERED,
890-- g_param_spec_pointer ("was-reordered",
891-- "was-reordered",
892-- "was-reordered",
893-- G_PARAM_READWRITE));
894--
895- g_type_class_add_private (klass, sizeof (RBIpodStaticPlaylistSourcePrivate));
896- }
897-
898-@@ -139,20 +284,27 @@ rb_ipod_static_playlist_source_init (RBIpodStaticPlaylistSource *source)
899- static void
900- rb_ipod_static_playlist_source_constructed (GObject *object)
901- {
902-+ RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (object);
903-+ RhythmDBQueryModel *model;
904-+
905- RB_CHAIN_GOBJECT_METHOD (rb_ipod_static_playlist_source_parent_class, constructed, object);
906-+
907- g_signal_connect (object, "notify::name", (GCallback)source_name_changed_cb, NULL);
908--}
909-
910--static void
911--rb_ipod_static_playlist_source_dispose (GObject *object)
912--{
913-- G_OBJECT_CLASS (rb_ipod_static_playlist_source_parent_class)->dispose (object);
914-+ g_object_get (object, "base-query-model", &model, NULL);
915-+ g_signal_connect (priv->ipod_db, "before-save",
916-+ G_CALLBACK (playlist_before_save),
917-+ object);
918-+ g_object_unref (model);
919-+ playlist_source_model_connect_signals (RB_IPOD_STATIC_PLAYLIST_SOURCE (object));
920-+
921- }
922-
923- static void
924--impl_delete_thyself (RBDisplayPage *page)
925-+rb_ipod_static_playlist_source_dispose (GObject *object)
926- {
927-- RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (page);
928-+ RBIpodStaticPlaylistSource *source = RB_IPOD_STATIC_PLAYLIST_SOURCE (object);
929-+ RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (object);
930-
931- if (priv->ipod_source) {
932- g_object_unref (priv->ipod_source);
933-@@ -162,8 +314,10 @@ impl_delete_thyself (RBDisplayPage *page)
934- g_object_unref (priv->ipod_db);
935- priv->ipod_db = NULL;
936- }
937--
938-- RB_DISPLAY_PAGE_CLASS (rb_ipod_static_playlist_source_parent_class)->delete_thyself (page);
939-+
940-+ playlist_source_model_disconnect_signals (source);
941-+
942-+ G_OBJECT_CLASS (rb_ipod_static_playlist_source_parent_class)->dispose (object);
943- }
944-
945- RBIpodStaticPlaylistSource *
946-@@ -209,9 +363,6 @@ rb_ipod_static_playlist_source_set_property (GObject *object,
947- case PROP_ITDB_PLAYLIST:
948- priv->itdb_playlist = g_value_get_pointer (value);
949- break;
950-- case PROP_WAS_REORDERED:
951-- priv->was_reordered = g_value_get_boolean (value);
952-- break;
953- default:
954- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
955- break;
956-@@ -236,56 +387,12 @@ rb_ipod_static_playlist_source_get_property (GObject *object,
957- case PROP_ITDB_PLAYLIST:
958- g_value_set_pointer (value, priv->itdb_playlist);
959- break;
960-- case PROP_WAS_REORDERED:
961-- g_value_set_boolean (value, priv->was_reordered);
962-- break;
963- default:
964- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
965- break;
966- }
967- }
968-
969--
970--Itdb_Playlist*
971--rb_ipod_static_playlist_source_get_itdb_playlist (RBIpodStaticPlaylistSource *playlist)
972--{
973-- RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (playlist);
974--
975-- return priv->itdb_playlist;
976--}
977--
978--RBiPodSource*
979--rb_ipod_static_playlist_source_get_ipod_source (RBIpodStaticPlaylistSource *playlist)
980--{
981-- RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (playlist);
982--
983-- return priv->ipod_source;
984--}
985--
986--RbIpodDb*
987--rb_ipod_static_playlist_source_get_ipod_db (RBIpodStaticPlaylistSource *playlist)
988--{
989-- RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (playlist);
990--
991-- return priv->ipod_db;
992--}
993--
994--gboolean
995--rb_ipod_static_playlist_source_get_was_reordered (RBIpodStaticPlaylistSource *playlist)
996--{
997-- RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (playlist);
998--
999-- return priv->was_reordered;
1000--}
1001--
1002--void
1003--rb_ipod_static_playlist_source_set_was_reordered (RBIpodStaticPlaylistSource *playlist, gboolean was_reordered)
1004--{
1005-- RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (playlist);
1006--
1007-- priv->was_reordered = was_reordered;
1008--}
1009--
1010- static gboolean
1011- impl_show_popup (RBDisplayPage *page)
1012- {
1013-@@ -293,23 +400,6 @@ impl_show_popup (RBDisplayPage *page)
1014- return TRUE;
1015- }
1016-
1017--static void
1018--source_name_changed_cb (RBIpodStaticPlaylistSource *source,
1019-- GParamSpec *spec,
1020-- gpointer data)
1021--{
1022-- RBIpodStaticPlaylistSourcePrivate *priv = IPOD_STATIC_PLAYLIST_SOURCE_GET_PRIVATE (source);
1023-- char *name;
1024--
1025-- g_object_get (source, "name", &name, NULL);
1026--
1027-- if ((priv->itdb_playlist != NULL) && (strcmp (name, priv->itdb_playlist->name) != 0)) {
1028-- rb_debug ("changing playlist name to %s", name);
1029-- rb_ipod_db_rename_playlist (priv->ipod_db, priv->itdb_playlist, name);
1030-- }
1031-- g_free (name);
1032--}
1033--
1034- void
1035- _rb_ipod_static_playlist_source_register_type (GTypeModule *module)
1036- {
1037-diff --git a/plugins/ipod/rb-ipod-static-playlist-source.h b/plugins/ipod/rb-ipod-static-playlist-source.h
1038-index 49c833f..383b447 100644
1039---- a/plugins/ipod/rb-ipod-static-playlist-source.h
1040-+++ b/plugins/ipod/rb-ipod-static-playlist-source.h
1041-@@ -54,12 +54,6 @@ RBIpodStaticPlaylistSource * rb_ipod_static_playlist_source_new (RBShell *shell,
1042- Itdb_Playlist *playlist,
1043- RhythmDBEntryType *entry_type);
1044-
1045--Itdb_Playlist* rb_ipod_static_playlist_source_get_itdb_playlist (RBIpodStaticPlaylistSource *playlist);
1046--RBiPodSource* rb_ipod_static_playlist_source_get_ipod_source (RBIpodStaticPlaylistSource *playlist);
1047--RbIpodDb* rb_ipod_static_playlist_source_get_ipod_db (RBIpodStaticPlaylistSource *playlist);
1048--gboolean rb_ipod_static_playlist_source_get_was_reordered (RBIpodStaticPlaylistSource *playlist);
1049--void rb_ipod_static_playlist_source_set_was_reordered (RBIpodStaticPlaylistSource *playlist, gboolean was_reordered);
1050--
1051- G_END_DECLS
1052-
1053- #endif /* __RB_IPOD_STATIC_PLAYLIST_SOURCE_H */
1054---
1055-cgit v0.9.0.2
1056
1057=== removed file 'debian/patches/git_local_art_search_typo.patch'
1058--- debian/patches/git_local_art_search_typo.patch 2012-03-16 11:11:59 +0000
1059+++ debian/patches/git_local_art_search_typo.patch 1970-01-01 00:00:00 +0000
1060@@ -1,23 +0,0 @@
1061-From b1887b43d6543021dd8e6266e6acdbcfb030feda Mon Sep 17 00:00:00 2001
1062-From: Jonathan Matthew <jonathan@d14n.org>
1063-Date: Mon, 12 Mar 2012 22:42:42 +0000
1064-Subject: artsearch: fix typo in local search (bug #671950)
1065-
1066-spotted by Patrice Duroux <duroux.patrice@orange.fr>
1067----
1068-diff --git a/plugins/artsearch/local.py b/plugins/artsearch/local.py
1069-index a914b1d..819fbaa 100644
1070---- a/plugins/artsearch/local.py
1071-+++ b/plugins/artsearch/local.py
1072-@@ -73,7 +73,7 @@ class LocalSearch:
1073- nkey.add_field("artist", artist)
1074- uri = parent.resolve_relative_path(f_name).get_uri()
1075- print "found album+artist match " + uri
1076-- self.store.store_uri(nkey. RB.ExtDBSourceType.USER, uri)
1077-+ self.store.store_uri(nkey, RB.ExtDBSourceType.USER, uri)
1078-
1079- # if that didn't work, look for the longest shared prefix
1080- # only accept matches longer than 2 to avoid weird false positives
1081---
1082-cgit v0.9.0.2
1083-
1084
1085=== removed file 'debian/patches/git_magnatune_dialog_segfault.patch'
1086--- debian/patches/git_magnatune_dialog_segfault.patch 2012-03-16 11:11:59 +0000
1087+++ debian/patches/git_magnatune_dialog_segfault.patch 1970-01-01 00:00:00 +0000
1088@@ -1,24 +0,0 @@
1089-From 7b344c68e25ec6ac61b4eef15659316d7859ed91 Mon Sep 17 00:00:00 2001
1090-From: Ole Laursen <olau@hardworking.dk>
1091-Date: Wed, 14 Mar 2012 21:35:48 +0000
1092-Subject: magnatune: fix crash opening preferences dialog (bug #672084)
1093-
1094----
1095-diff --git a/plugins/magnatune/magnatune.py b/plugins/magnatune/magnatune.py
1096-index ce2aeb3..e88f0e2 100644
1097---- a/plugins/magnatune/magnatune.py
1098-+++ b/plugins/magnatune/magnatune.py
1099-@@ -214,8 +214,8 @@ class MagnatuneConfig(GObject.GObject, PeasGtk.Configurable):
1100- builder.get_object("stream_account_radio").set_active(account_type == "stream")
1101- builder.get_object("download_account_radio").set_active(account_type == "download")
1102-
1103-- builder.get_object("username_entry").set_text(username)
1104-- builder.get_object("password_entry").set_text(password)
1105-+ builder.get_object("username_entry").set_text(username or "")
1106-+ builder.get_object("password_entry").set_text(password or "")
1107-
1108- update_sensitivity(account_type)
1109-
1110---
1111-cgit v0.9.0.2
1112-
1113
1114=== removed file 'debian/patches/git_mpris_playlists.patch'
1115--- debian/patches/git_mpris_playlists.patch 2012-04-05 19:23:42 +0000
1116+++ debian/patches/git_mpris_playlists.patch 1970-01-01 00:00:00 +0000
1117@@ -1,118 +0,0 @@
1118-Index: rhythmbox-2.96/sources/rb-display-page-model.c
1119-===================================================================
1120---- rhythmbox-2.96.orig/sources/rb-display-page-model.c 2012-03-10 11:22:26.000000000 +0100
1121-+++ rhythmbox-2.96/sources/rb-display-page-model.c 2012-04-05 21:22:35.725425083 +0200
1122-@@ -70,6 +70,7 @@
1123- enum
1124- {
1125- DROP_RECEIVED,
1126-+ PAGE_INSERTED,
1127- LAST_SIGNAL
1128- };
1129-
1130-@@ -670,6 +671,7 @@
1131- RB_DISPLAY_PAGE_MODEL_COLUMN_PLAYING, FALSE,
1132- RB_DISPLAY_PAGE_MODEL_COLUMN_PAGE, page,
1133- -1);
1134-+ g_signal_emit (G_OBJECT (page_model), rb_display_page_model_signals[PAGE_INSERTED], 0, page, &iter);
1135-
1136- g_signal_connect_object (page, "notify::name", G_CALLBACK (page_notify_cb), page_model, 0);
1137- g_signal_connect_object (page, "notify::visibility", G_CALLBACK (page_notify_cb), page_model, 0);
1138-@@ -872,6 +874,27 @@
1139- 3,
1140- RB_TYPE_DISPLAY_PAGE, G_TYPE_INT, G_TYPE_POINTER);
1141-
1142-+ /**
1143-+ * RBDisplayPageModel::page-inserted:
1144-+ * @model: the #RBDisplayPageModel
1145-+ * @page: the #RBDisplayPage that was inserted
1146-+ * @iter: a #GtkTreeIter indicating the page position
1147-+ *
1148-+ * Emitted when a new page is inserted into the model.
1149-+ * Use this instead of GtkTreeModel::row-inserted as this
1150-+ * doesn't get complicated by visibility filtering.
1151-+ */
1152-+ rb_display_page_model_signals[PAGE_INSERTED] =
1153-+ g_signal_new ("page-inserted",
1154-+ G_OBJECT_CLASS_TYPE (object_class),
1155-+ G_SIGNAL_RUN_LAST,
1156-+ G_STRUCT_OFFSET (RBDisplayPageModelClass, page_inserted),
1157-+ NULL, NULL,
1158-+ NULL,
1159-+ G_TYPE_NONE,
1160-+ 2,
1161-+ RB_TYPE_DISPLAY_PAGE, GTK_TYPE_TREE_ITER);
1162-+
1163- if (!drag_target_list) {
1164- drag_target_list = gtk_target_list_new (dnd_targets, G_N_ELEMENTS (dnd_targets));
1165- }
1166-Index: rhythmbox-2.96/sources/rb-display-page-model.h
1167-===================================================================
1168---- rhythmbox-2.96.orig/sources/rb-display-page-model.h 2012-02-27 11:08:45.000000000 +0100
1169-+++ rhythmbox-2.96/sources/rb-display-page-model.h 2012-04-05 21:22:35.725425083 +0200
1170-@@ -67,6 +67,9 @@
1171- RBDisplayPage *target,
1172- GtkTreeViewDropPosition pos,
1173- GtkSelectionData *data);
1174-+ void (*page_inserted) (RBDisplayPageModel *model,
1175-+ RBDisplayPage *page,
1176-+ GtkTreeIter *iter);
1177- };
1178-
1179- GType rb_display_page_model_get_type (void);
1180-Index: rhythmbox-2.96/plugins/mpris/rb-mpris-plugin.c
1181-===================================================================
1182---- rhythmbox-2.96.orig/plugins/mpris/rb-mpris-plugin.c 2012-03-10 11:22:26.000000000 +0100
1183-+++ rhythmbox-2.96/plugins/mpris/rb-mpris-plugin.c 2012-04-05 21:22:35.729425083 +0200
1184-@@ -1346,14 +1346,9 @@
1185- add_playlist_property_change (plugin, "PlaylistCount", g_variant_new_uint32 (plugin->playlist_count));
1186- }
1187-
1188--static gboolean
1189--display_page_inserted_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, RBMprisPlugin *plugin)
1190-+static void
1191-+display_page_inserted_cb (RBDisplayPageModel *model, RBDisplayPage *page, GtkTreeIter *iter, RBMprisPlugin *plugin)
1192- {
1193-- RBDisplayPage *page;
1194--
1195-- gtk_tree_model_get (model, iter,
1196-- RB_DISPLAY_PAGE_MODEL_COLUMN_PAGE, &page,
1197-- -1);
1198- if (RB_IS_PLAYLIST_SOURCE (page)) {
1199- gboolean is_local;
1200-
1201-@@ -1371,11 +1366,19 @@
1202- g_signal_connect_object (page, "deleted", G_CALLBACK (source_deleted_cb), plugin, 0);
1203- }
1204- }
1205-+}
1206-+
1207-+static gboolean
1208-+display_page_foreach_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, RBMprisPlugin *plugin)
1209-+{
1210-+ RBDisplayPage *page;
1211-+
1212-+ gtk_tree_model_get (model, iter, RB_DISPLAY_PAGE_MODEL_COLUMN_PAGE, &page, -1);
1213-+ display_page_inserted_cb (RB_DISPLAY_PAGE_MODEL (model), page, iter, plugin);
1214-
1215- return FALSE;
1216- }
1217-
1218--
1219- static void
1220- name_acquired_cb (GDBusConnection *connection, const char *name, RBMprisPlugin *plugin)
1221- {
1222-@@ -1499,11 +1502,11 @@
1223- G_CALLBACK (elapsed_nano_changed_cb),
1224- plugin, 0);
1225- g_signal_connect_object (plugin->page_model,
1226-- "row-inserted",
1227-+ "page-inserted",
1228- G_CALLBACK (display_page_inserted_cb),
1229- plugin, 0);
1230- gtk_tree_model_foreach (GTK_TREE_MODEL (plugin->page_model),
1231-- (GtkTreeModelForeachFunc) display_page_inserted_cb,
1232-+ (GtkTreeModelForeachFunc) display_page_foreach_cb,
1233- plugin);
1234-
1235- plugin->art_store = rb_ext_db_new ("album-art");
1236
1237=== removed file 'debian/patches/git_playlists_sync_segfault.patch'
1238--- debian/patches/git_playlists_sync_segfault.patch 2012-03-16 11:11:59 +0000
1239+++ debian/patches/git_playlists_sync_segfault.patch 1970-01-01 00:00:00 +0000
1240@@ -1,25 +0,0 @@
1241-From d6127eba18bf088f3a43a3a693cad8691b061d39 Mon Sep 17 00:00:00 2001
1242-From: Cole Robinson <crobinso@redhat.com>
1243-Date: Mon, 12 Mar 2012 23:10:31 +0000
1244-Subject: ipod: Fix segfault when syncing playlists (bz 661217)
1245-
1246-Signed-off-by: Cole Robinson <crobinso@redhat.com>
1247----
1248-diff --git a/plugins/ipod/rb-ipod-static-playlist-source.c b/plugins/ipod/rb-ipod-static-playlist-source.c
1249-index 261c4c4..d389baa 100644
1250---- a/plugins/ipod/rb-ipod-static-playlist-source.c
1251-+++ b/plugins/ipod/rb-ipod-static-playlist-source.c
1252-@@ -311,6 +311,10 @@ rb_ipod_static_playlist_source_dispose (GObject *object)
1253- priv->ipod_source = NULL;
1254- }
1255- if (priv->ipod_db) {
1256-+ g_signal_handlers_disconnect_by_func (priv->ipod_db,
1257-+ G_CALLBACK (playlist_before_save),
1258-+ source);
1259-+
1260- g_object_unref (priv->ipod_db);
1261- priv->ipod_db = NULL;
1262- }
1263---
1264-cgit v0.9.0.2
1265-
1266
1267=== modified file 'debian/patches/series'
1268--- debian/patches/series 2012-05-14 04:30:50 +0000
1269+++ debian/patches/series 2012-06-04 10:19:20 +0000
1270@@ -3,9 +3,3 @@
1271 04_pause_button.patch
1272 05_hide_on_quit.patch
1273 07_quicklists.patch
1274-git_local_art_search_typo.patch
1275-git_magnatune_dialog_segfault.patch
1276-git_ipod_no_private_source.patch
1277-git_ipod_playlist_handler.patch
1278-git_playlists_sync_segfault.patch
1279-git_mpris_playlists.patch
1280
1281=== modified file 'debian/rhythmbox-plugins.install'
1282--- debian/rhythmbox-plugins.install 2012-03-14 09:14:08 +0000
1283+++ debian/rhythmbox-plugins.install 2012-06-04 10:19:20 +0000
1284@@ -1,5 +1,3 @@
1285-usr/lib/rhythmbox/plugins/artdisplay
1286-usr/share/rhythmbox/plugins/artdisplay
1287 usr/lib/rhythmbox/plugins/artsearch
1288 usr/lib/rhythmbox/plugins/audioscrobbler
1289 usr/share/rhythmbox/plugins/audioscrobbler
1290
1291=== modified file 'debian/rhythmbox.gsettings-override'
1292--- debian/rhythmbox.gsettings-override 2011-12-16 12:45:30 +0000
1293+++ debian/rhythmbox.gsettings-override 2012-06-04 10:19:20 +0000
1294@@ -2,4 +2,4 @@
1295 monitor-library=true
1296
1297 [org.gnome.rhythmbox.plugins]
1298-active-plugins=['artdisplay','audiocd','audioscrobbler','cd-recorder','daap','dbus-media-server','generic-player','ipod','iradio','mmkeys','mpris','mtpdevice','notification','power-manager']
1299+active-plugins=['audiocd','audioscrobbler','cd-recorder','daap','dbus-media-server','generic-player','ipod','iradio','mmkeys','mpris','mtpdevice','notification','power-manager']

Subscribers

People subscribed via source and target branches

to all changes: