Merge lp:~ubuntu-branches/ubuntu/natty/banshee/natty-201103250238 into lp:ubuntu/natty/banshee

Proposed by James Westby
Status: Work in progress
Proposed branch: lp:~ubuntu-branches/ubuntu/natty/banshee/natty-201103250238
Merge into: lp:ubuntu/natty/banshee
Diff against target: 3429 lines (+135/-2788) (has conflicts)
35 files modified
.pc/.version (+0/-1)
.pc/0001-Revert-ArtworkManager-Cache-null-artwork-for-fast-lo.patch/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs (+0/-465)
.pc/01_Debranch-netbook-interface.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs (+0/-113)
.pc/01_Debranch-netbook-interface.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs (+0/-145)
.pc/02_only-show-netbook-panel-on-request.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs (+0/-145)
.pc/03_quit-only-on-explicit-shutdown-request.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs (+0/-147)
.pc/04_enable-switching-between-the-2-interfaces.patch/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml (+0/-237)
.pc/04_enable-switching-between-the-2-interfaces.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs (+0/-113)
.pc/04_enable-switching-between-the-2-interfaces.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs (+0/-142)
.pc/05_show-a-empty-library-message-in-banshee.patch/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs (+0/-174)
.pc/05_show-a-empty-library-message-in-banshee.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs (+0/-412)
.pc/06_add-meego-desktop-file.patch/src/Extensions/Banshee.MeeGo/Makefile.am (+0/-61)
.pc/07_disable-notification-area-by-default.patch/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea.addin.xml (+0/-23)
.pc/07_enable-library-watch-by-default.patch/src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher.addin.xml (+0/-22)
.pc/07_enable-mpris-by-default.patch/src/Extensions/Banshee.Mpris/Banshee.Mpris.addin.xml (+0/-21)
.pc/07_enable-soundmenu-by-default.patch/src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu.addin.xml (+0/-24)
.pc/08_remove_unrelevant_media.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs (+0/-422)
debian/changelog (+10/-0)
debian/patches/0001-Add-support-for-u1ms-links.patch (+83/-0)
debian/patches/series (+1/-0)
ltmain.sh (+0/-14)
src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs (+0/-9)
src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs (+15/-0)
src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml (+0/-1)
src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher.addin.xml (+1/-1)
src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs (+2/-12)
src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs (+6/-15)
src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs (+7/-40)
src/Extensions/Banshee.MeeGo/Makefile.am (+2/-6)
src/Extensions/Banshee.MeeGo/Makefile.in (+4/-8)
src/Extensions/Banshee.MeeGo/banshee-1.desktop.in.in (+0/-11)
src/Extensions/Banshee.Mpris/Banshee.Mpris.addin.xml (+1/-1)
src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea.addin.xml (+1/-1)
src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu.addin.xml (+1/-1)
src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml (+1/-1)
Conflict: can't delete .pc because it is not empty.  Not deleting.
Conflict because .pc is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete .pc/06_add-meego-desktop-file.patch because it is not empty.  Not deleting.
Conflict because .pc/06_add-meego-desktop-file.patch is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete .pc/06_add-meego-desktop-file.patch/src because it is not empty.  Not deleting.
Conflict because .pc/06_add-meego-desktop-file.patch/src is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete .pc/06_add-meego-desktop-file.patch/src/Extensions because it is not empty.  Not deleting.
Conflict because .pc/06_add-meego-desktop-file.patch/src/Extensions is not versioned, but has versioned children.  Versioned directory.
Conflict: can't delete .pc/06_add-meego-desktop-file.patch/src/Extensions/Banshee.MeeGo because it is not empty.  Not deleting.
Conflict because .pc/06_add-meego-desktop-file.patch/src/Extensions/Banshee.MeeGo is not versioned, but has versioned children.  Versioned directory.
Contents conflict in .pc/06_add-meego-desktop-file.patch/src/Extensions/Banshee.MeeGo/Makefile.in
Conflict: can't delete .pc/99_ltmain_as-needed.patch because it is not empty.  Not deleting.
Conflict because .pc/99_ltmain_as-needed.patch is not versioned, but has versioned children.  Versioned directory.
Contents conflict in .pc/99_ltmain_as-needed.patch/ltmain.sh
Contents conflict in .pc/applied-patches
Text conflict in debian/changelog
To merge this branch: bzr merge lp:~ubuntu-branches/ubuntu/natty/banshee/natty-201103250238
Reviewer Review Type Date Requested Status
Ubuntu branches Pending
Review via email: mp+55083@code.launchpad.net

Description of the change

The package history in the archive and the history in the bzr branch differ. As the archive is authoritative the history of lp:ubuntu/natty/banshee now reflects that and the old bzr branch has been pushed to lp:~ubuntu-branches/ubuntu/natty/banshee/natty-201103250238. A merge should be performed if necessary.

To post a comment you must log in.

Unmerged revisions

112. By Ken VanDine

releasing version 1.9.4-1ubuntu2

111. By Ken VanDine

unapplied quilt patches and removed the .pc dir from the bzr tree

110. By Ken VanDine

* 0001-Add-support-for-u1ms-links.patch:
  - Handle u1ms:// links in the U1 Music Store (LP: #723960)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== removed file '.pc/.version'
2--- .pc/.version 2011-02-20 14:48:54 +0000
3+++ .pc/.version 1970-01-01 00:00:00 +0000
4@@ -1,1 +0,0 @@
5-2
6
7=== removed directory '.pc/0001-Revert-ArtworkManager-Cache-null-artwork-for-fast-lo.patch'
8=== removed directory '.pc/0001-Revert-ArtworkManager-Cache-null-artwork-for-fast-lo.patch/src'
9=== removed directory '.pc/0001-Revert-ArtworkManager-Cache-null-artwork-for-fast-lo.patch/src/Core'
10=== removed directory '.pc/0001-Revert-ArtworkManager-Cache-null-artwork-for-fast-lo.patch/src/Core/Banshee.ThickClient'
11=== removed directory '.pc/0001-Revert-ArtworkManager-Cache-null-artwork-for-fast-lo.patch/src/Core/Banshee.ThickClient/Banshee.Collection.Gui'
12=== removed file '.pc/0001-Revert-ArtworkManager-Cache-null-artwork-for-fast-lo.patch/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs'
13--- .pc/0001-Revert-ArtworkManager-Cache-null-artwork-for-fast-lo.patch/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs 2011-02-20 14:48:54 +0000
14+++ .pc/0001-Revert-ArtworkManager-Cache-null-artwork-for-fast-lo.patch/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs 1970-01-01 00:00:00 +0000
15@@ -1,465 +0,0 @@
16-//
17-// ArtworkManager.cs
18-//
19-// Author:
20-// Aaron Bockover <abockover@novell.com>
21-//
22-// Copyright (C) 2007-2008 Novell, Inc.
23-//
24-// Permission is hereby granted, free of charge, to any person obtaining
25-// a copy of this software and associated documentation files (the
26-// "Software"), to deal in the Software without restriction, including
27-// without limitation the rights to use, copy, modify, merge, publish,
28-// distribute, sublicense, and/or sell copies of the Software, and to
29-// permit persons to whom the Software is furnished to do so, subject to
30-// the following conditions:
31-//
32-// The above copyright notice and this permission notice shall be
33-// included in all copies or substantial portions of the Software.
34-//
35-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
37-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
39-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
40-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
41-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
42-//
43-
44-using System;
45-using System.Collections.Generic;
46-using System.Text.RegularExpressions;
47-
48-using Mono.Unix;
49-
50-using Gdk;
51-
52-using Hyena;
53-using Hyena.Gui;
54-using Hyena.Collections;
55-using Hyena.Data.Sqlite;
56-
57-using Banshee.Base;
58-using Banshee.IO;
59-using Banshee.ServiceStack;
60-
61-namespace Banshee.Collection.Gui
62-{
63- public class ArtworkManager : IService
64- {
65- private Dictionary<int, SurfaceCache> scale_caches = new Dictionary<int, SurfaceCache> ();
66- private HashSet<int> cacheable_cover_sizes = new HashSet<int> ();
67- private HashSet<string> null_artwork_ids = new HashSet<string> ();
68-
69- private class SurfaceCache : LruCache<string, Cairo.ImageSurface>
70- {
71- public SurfaceCache (int max_items) : base (max_items)
72- {
73- }
74-
75- protected override void ExpireItem (Cairo.ImageSurface item)
76- {
77- if (item != null) {
78- ((IDisposable)item).Dispose ();
79- }
80- }
81- }
82-
83- public ArtworkManager ()
84- {
85- AddCachedSize (36);
86- AddCachedSize (40);
87- AddCachedSize (42);
88- AddCachedSize (48);
89- AddCachedSize (64);
90- AddCachedSize (90);
91- AddCachedSize (300);
92-
93- try {
94- MigrateCacheDir ();
95- } catch (Exception e) {
96- Log.Exception ("Could not migrate album artwork cache directory", e);
97- }
98-
99- Banshee.Metadata.MetadataService.Instance.ArtworkUpdated += OnArtworkUpdated;
100- }
101-
102- public void Dispose ()
103- {
104- Banshee.Metadata.MetadataService.Instance.ArtworkUpdated -= OnArtworkUpdated;
105- }
106-
107- private void OnArtworkUpdated (IBasicTrackInfo track)
108- {
109- ClearCacheFor (track.ArtworkId, true);
110- }
111-
112- public Cairo.ImageSurface LookupSurface (string id)
113- {
114- return LookupScaleSurface (id, 0);
115- }
116-
117- public Cairo.ImageSurface LookupScaleSurface (string id, int size)
118- {
119- return LookupScaleSurface (id, size, false);
120- }
121-
122- public Cairo.ImageSurface LookupScaleSurface (string id, int size, bool useCache)
123- {
124- SurfaceCache cache = null;
125- Cairo.ImageSurface surface = null;
126-
127- if (id == null) {
128- return null;
129- }
130-
131- if (useCache && scale_caches.TryGetValue (size, out cache) && cache.TryGetValue (id, out surface)) {
132- return surface;
133- }
134-
135- if (null_artwork_ids.Contains (id)) {
136- return null;
137- }
138-
139- Pixbuf pixbuf = LookupScalePixbuf (id, size);
140- if (pixbuf == null || pixbuf.Handle == IntPtr.Zero) {
141- null_artwork_ids.Add (id);
142- return null;
143- }
144-
145- try {
146- surface = PixbufImageSurface.Create (pixbuf);
147- if (surface == null) {
148- return null;
149- }
150-
151- if (!useCache) {
152- return surface;
153- }
154-
155- if (cache == null) {
156- int bytes = 4 * size * size;
157- int max = (1 << 20) / bytes;
158-
159- ChangeCacheSize (size, max);
160- cache = scale_caches[size];
161- }
162-
163- cache.Add (id, surface);
164- return surface;
165- } finally {
166- DisposePixbuf (pixbuf);
167- }
168- }
169-
170- public Pixbuf LookupPixbuf (string id)
171- {
172- return LookupScalePixbuf (id, 0);
173- }
174-
175- public Pixbuf LookupScalePixbuf (string id, int size)
176- {
177- if (id == null || (size != 0 && size < 10)) {
178- return null;
179- }
180-
181- if (null_artwork_ids.Contains (id)) {
182- return null;
183- }
184-
185- // Find the scaled, cached file
186- string path = CoverArtSpec.GetPathForSize (id, size);
187- if (File.Exists (new SafeUri (path))) {
188- try {
189- return new Pixbuf (path);
190- } catch {
191- null_artwork_ids.Add (id);
192- return null;
193- }
194- }
195-
196- string orig_path = CoverArtSpec.GetPathForSize (id, 0);
197- bool orig_exists = File.Exists (new SafeUri (orig_path));
198-
199- if (!orig_exists) {
200- // It's possible there is an image with extension .cover that's waiting
201- // to be converted into a jpeg
202- string unconverted_path = System.IO.Path.ChangeExtension (orig_path, "cover");
203- if (File.Exists (new SafeUri (unconverted_path))) {
204- try {
205- Pixbuf pixbuf = new Pixbuf (unconverted_path);
206- if (pixbuf.Width < 50 || pixbuf.Height < 50) {
207- Hyena.Log.DebugFormat ("Ignoring cover art {0} because less than 50x50", unconverted_path);
208- null_artwork_ids.Add (id);
209- return null;
210- }
211-
212- pixbuf.Save (orig_path, "jpeg");
213- orig_exists = true;
214- } catch {
215- } finally {
216- File.Delete (new SafeUri (unconverted_path));
217- }
218- }
219- }
220-
221- if (orig_exists && size >= 10) {
222- try {
223- Pixbuf pixbuf = new Pixbuf (orig_path);
224-
225- // Make it square if width and height difference is within 20%
226- const double max_ratio = 1.2;
227- double ratio = (double)pixbuf.Height / pixbuf.Width;
228- int width = size, height = size;
229- if (ratio > max_ratio) {
230- width = (int)Math.Round (size / ratio);
231- }else if (ratio < 1d / max_ratio) {
232- height = (int)Math.Round (size * ratio);
233- }
234-
235- Pixbuf scaled_pixbuf = pixbuf.ScaleSimple (width, height, Gdk.InterpType.Bilinear);
236-
237- if (IsCachedSize (size)) {
238- Directory.Create (System.IO.Path.GetDirectoryName (path));
239- scaled_pixbuf.Save (path, "jpeg");
240- } else {
241- Log.InformationFormat ("Uncached artwork size {0} requested", size);
242- }
243-
244- DisposePixbuf (pixbuf);
245- return scaled_pixbuf;
246- } catch {}
247- }
248-
249- null_artwork_ids.Add (id);
250- return null;
251- }
252-
253- public void ClearCacheFor (string id)
254- {
255- ClearCacheFor (id, false);
256- }
257-
258- public void ClearCacheFor (string id, bool inMemoryCacheOnly)
259- {
260- if (String.IsNullOrEmpty (id)) {
261- return;
262- }
263-
264- // Clear from the in-memory cache
265- foreach (int size in scale_caches.Keys) {
266- scale_caches[size].Remove (id);
267- }
268-
269- null_artwork_ids.Remove (id);
270-
271- if (inMemoryCacheOnly) {
272- return;
273- }
274-
275- // And delete from disk
276- foreach (int size in CachedSizes ()) {
277- var uri = new SafeUri (CoverArtSpec.GetPathForSize (id, size));
278- if (File.Exists (uri)) {
279- File.Delete (uri);
280- }
281- }
282- }
283-
284- public void AddCachedSize (int size)
285- {
286- cacheable_cover_sizes.Add (size);
287- }
288-
289- public bool IsCachedSize (int size)
290- {
291- return cacheable_cover_sizes.Contains (size);
292- }
293-
294- public IEnumerable<int> CachedSizes ()
295- {
296- return cacheable_cover_sizes;
297- }
298-
299- public void ChangeCacheSize (int size, int max_count)
300- {
301- SurfaceCache cache;
302- if (scale_caches.TryGetValue (size, out cache)) {
303- if (max_count > cache.MaxCount) {
304- Log.DebugFormat (
305- "Growing surface cache for {0}px images to {1:0.00} MiB ({2} items)",
306- size, 4 * size * size * max_count / 1048576d, max_count);
307- cache.MaxCount = max_count;
308- }
309- } else {
310- Log.DebugFormat (
311- "Creating new surface cache for {0}px images, capped at {1:0.00} MiB ({2} items)",
312- size, 4 * size * size * max_count / 1048576d, max_count);
313- scale_caches.Add (size, new SurfaceCache (max_count));
314- }
315- }
316-
317- private static int dispose_count = 0;
318- public static void DisposePixbuf (Pixbuf pixbuf)
319- {
320- if (pixbuf != null && pixbuf.Handle != IntPtr.Zero) {
321- pixbuf.Dispose ();
322- pixbuf = null;
323-
324- // There is an issue with disposing Pixbufs where we need to explicitly
325- // call the GC otherwise it doesn't get done in a timely way. But if we
326- // do it every time, it slows things down a lot; so only do it every 100th.
327- if (++dispose_count % 100 == 0) {
328- System.GC.Collect ();
329- dispose_count = 0;
330- }
331- }
332- }
333-
334- string IService.ServiceName {
335- get { return "ArtworkManager"; }
336- }
337-
338-#region Cache Directory Versioning/Migration
339-
340- private const int CUR_VERSION = 3;
341- private void MigrateCacheDir ()
342- {
343- int version = CacheVersion;
344- if (version == CUR_VERSION) {
345- return;
346- }
347-
348- var legacy_root_path = CoverArtSpec.LegacyRootPath;
349-
350- if (version < 1) {
351- string legacy_artwork_path = Paths.Combine (LegacyPaths.ApplicationData, "covers");
352-
353- if (!Directory.Exists (legacy_root_path)) {
354- Directory.Create (legacy_root_path);
355-
356- if (Directory.Exists (legacy_artwork_path)) {
357- Directory.Move (new SafeUri (legacy_artwork_path), new SafeUri (legacy_root_path));
358- }
359- }
360-
361- if (Directory.Exists (legacy_artwork_path)) {
362- Log.InformationFormat ("Deleting old (Banshee < 1.0) artwork cache directory {0}", legacy_artwork_path);
363- Directory.Delete (legacy_artwork_path, true);
364- }
365- }
366-
367- if (version < 2) {
368- int deleted = 0;
369- foreach (string dir in Directory.GetDirectories (legacy_root_path)) {
370- int size;
371- string dirname = System.IO.Path.GetFileName (dir);
372- if (Int32.TryParse (dirname, out size) && !IsCachedSize (size)) {
373- Directory.Delete (dir, true);
374- deleted++;
375- }
376- }
377-
378- if (deleted > 0) {
379- Log.InformationFormat ("Deleted {0} extraneous album-art cache directories", deleted);
380- }
381- }
382-
383- if (version < 3) {
384- Log.Information ("Migrating album-art cache directory");
385- var started = DateTime.Now;
386- int count = 0;
387-
388- var root_path = CoverArtSpec.RootPath;
389- if (!Directory.Exists (root_path)) {
390- Directory.Create (root_path);
391- }
392-
393- string sql = "SELECT Title, ArtistName FROM CoreAlbums";
394- using (var reader = new HyenaDataReader (ServiceManager.DbConnection.Query (sql))) {
395- while (reader.Read ()) {
396- var album = reader.Get<string>(0);
397- var artist = reader.Get<string>(1);
398- var old_file = CoverArtSpec.CreateLegacyArtistAlbumId (artist, album);
399- var new_file = CoverArtSpec.CreateArtistAlbumId (artist, album);
400-
401- if (String.IsNullOrEmpty (old_file) || String.IsNullOrEmpty (new_file)) {
402- continue;
403- }
404-
405- old_file = String.Format ("{0}.jpg", old_file);
406- new_file = String.Format ("{0}.jpg", new_file);
407-
408- var old_path = new SafeUri (Paths.Combine (legacy_root_path, old_file));
409- var new_path = new SafeUri (Paths.Combine (root_path, new_file));
410-
411- if (Banshee.IO.File.Exists (old_path) && !Banshee.IO.File.Exists (new_path)) {
412- Banshee.IO.File.Move (old_path, new_path);
413- count++;
414- }
415- }
416- }
417-
418- if (ServiceManager.DbConnection.TableExists ("PodcastSyndications")) {
419- sql = "SELECT Title FROM PodcastSyndications";
420- foreach (var title in ServiceManager.DbConnection.QueryEnumerable<string> (sql)) {
421- var old_digest = CoverArtSpec.LegacyEscapePart (title);
422- var new_digest = CoverArtSpec.Digest (title);
423-
424- if (String.IsNullOrEmpty (old_digest) || String.IsNullOrEmpty (new_digest)) {
425- continue;
426- }
427-
428- var old_file = String.Format ("podcast-{0}.jpg", old_digest);
429- var new_file = String.Format ("podcast-{0}.jpg", new_digest);
430-
431- var old_path = new SafeUri (Paths.Combine (legacy_root_path, old_file));
432- var new_path = new SafeUri (Paths.Combine (root_path, new_file));
433-
434- if (Banshee.IO.File.Exists (old_path) && !Banshee.IO.File.Exists (new_path)) {
435- Banshee.IO.File.Move (old_path, new_path);
436- count++;
437- }
438- }
439- }
440-
441- Directory.Delete (legacy_root_path, true);
442- Log.InformationFormat ("Migrated {0} files in {1}s", count, DateTime.Now.Subtract(started).TotalSeconds);
443- }
444-
445- CacheVersion = CUR_VERSION;
446- }
447-
448- private static SafeUri cache_version_file = new SafeUri (Paths.Combine (CoverArtSpec.RootPath, ".cache_version"));
449- private static int CacheVersion {
450- get {
451- var file = cache_version_file;
452- if (!Banshee.IO.File.Exists (file)) {
453- file = new SafeUri (Paths.Combine (CoverArtSpec.LegacyRootPath, ".cache_version"));
454- if (!Banshee.IO.File.Exists (file)) {
455- file = null;
456- }
457- }
458-
459- if (file != null) {
460- using (var reader = new System.IO.StreamReader (Banshee.IO.File.OpenRead (file))) {
461- int version;
462- if (Int32.TryParse (reader.ReadLine (), out version)) {
463- return version;
464- }
465- }
466- }
467-
468- return 0;
469- }
470- set {
471- using (var writer = new System.IO.StreamWriter (Banshee.IO.File.OpenWrite (cache_version_file, true))) {
472- writer.Write (value.ToString ());
473- }
474- }
475- }
476-
477-#endregion
478-
479- }
480-}
481
482=== removed directory '.pc/01_Debranch-netbook-interface.patch'
483=== removed directory '.pc/01_Debranch-netbook-interface.patch/src'
484=== removed directory '.pc/01_Debranch-netbook-interface.patch/src/Extensions'
485=== removed directory '.pc/01_Debranch-netbook-interface.patch/src/Extensions/Banshee.MeeGo'
486=== removed directory '.pc/01_Debranch-netbook-interface.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo'
487=== removed file '.pc/01_Debranch-netbook-interface.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs'
488--- .pc/01_Debranch-netbook-interface.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs 2011-02-20 14:48:54 +0000
489+++ .pc/01_Debranch-netbook-interface.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs 1970-01-01 00:00:00 +0000
490@@ -1,113 +0,0 @@
491-//
492-// MeeGoPanel.cs
493-//
494-// Author:
495-// Aaron Bockover <abockover@novell.com>
496-//
497-// Copyright 2009-2010 Novell, Inc.
498-//
499-// Permission is hereby granted, free of charge, to any person obtaining a copy
500-// of this software and associated documentation files (the "Software"), to deal
501-// in the Software without restriction, including without limitation the rights
502-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
503-// copies of the Software, and to permit persons to whom the Software is
504-// furnished to do so, subject to the following conditions:
505-//
506-// The above copyright notice and this permission notice shall be included in
507-// all copies or substantial portions of the Software.
508-//
509-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
510-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
511-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
512-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
513-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
514-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
515-// THE SOFTWARE.
516-
517-using System;
518-using Mono.Unix;
519-
520-using Gtk;
521-using MeeGo.Panel;
522-
523-using Hyena;
524-using Banshee.Base;
525-using Banshee.ServiceStack;
526-
527-namespace Banshee.MeeGo
528-{
529- public class MeeGoPanel : IDisposable
530- {
531- public static MeeGoPanel Instance { get; private set; }
532-
533- private PanelGtk embedded_panel;
534- private Window window_panel;
535-
536- public MediaPanelContents Contents { get; private set; }
537-
538- public MeeGoPanel ()
539- {
540- if (Instance != null) {
541- throw new InvalidOperationException ("Only one MeeGoPanel instance should exist");
542- }
543-
544- Instance = this;
545-
546- var timer = Log.DebugTimerStart ();
547-
548- try {
549- Log.Debug ("Attempting to create MeeGo toolbar panel");
550- embedded_panel = new PanelGtk ("banshee", Catalog.GetString ("media"),
551- null, "media-button", true);
552- embedded_panel.ShowBeginEvent += (o, e) => {
553- ServiceManager.SourceManager.SetActiveSource (ServiceManager.SourceManager.MusicLibrary);
554- if (Contents != null) {
555- Contents.SyncSearchEntry ();
556- }
557- };
558- while (Gtk.Application.EventsPending ()) {
559- Gtk.Application.RunIteration ();
560- }
561- } catch (Exception e) {
562- if (!(e is DllNotFoundException)) {
563- Log.Exception ("Could not bind to MeeGo panel", e);
564- }
565- window_panel = new Gtk.Window ("MeeGo Media Panel");
566- }
567-
568- Log.DebugTimerPrint (timer, "MeeGo panel created: {0}");
569- }
570-
571- public void Dispose ()
572- {
573- }
574-
575- public void BuildContents ()
576- {
577- var timer = Log.DebugTimerStart ();
578- Contents = new MediaPanelContents ();
579- Contents.ShowAll ();
580- Log.DebugTimerPrint (timer, "MeeGo panel contents created: {0}");
581-
582- if (embedded_panel != null) {
583- embedded_panel.SetChild (Contents);
584- } else if (window_panel != null) {
585- window_panel.Add (Contents);
586- window_panel.SetDefaultSize (1000, 500);
587- window_panel.WindowPosition = WindowPosition.Center;
588- window_panel.Show ();
589- GLib.Timeout.Add (1000, () => {
590- window_panel.Present ();
591- return false;
592- });
593- }
594- }
595-
596- public void Hide ()
597- {
598- if (embedded_panel != null) {
599- embedded_panel.Hide ();
600- }
601- }
602- }
603-}
604
605=== removed file '.pc/01_Debranch-netbook-interface.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs'
606--- .pc/01_Debranch-netbook-interface.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs 2011-02-20 14:48:54 +0000
607+++ .pc/01_Debranch-netbook-interface.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs 1970-01-01 00:00:00 +0000
608@@ -1,145 +0,0 @@
609-//
610-// MeeGoService.cs
611-//
612-// Authors:
613-// Aaron Bockover <abockover@novell.com>
614-//
615-// Copyright 2009-2010 Novell, Inc.
616-//
617-// Permission is hereby granted, free of charge, to any person obtaining
618-// a copy of this software and associated documentation files (the
619-// "Software"), to deal in the Software without restriction, including
620-// without limitation the rights to use, copy, modify, merge, publish,
621-// distribute, sublicense, and/or sell copies of the Software, and to
622-// permit persons to whom the Software is furnished to do so, subject to
623-// the following conditions:
624-//
625-// The above copyright notice and this permission notice shall be
626-// included in all copies or substantial portions of the Software.
627-//
628-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
629-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
630-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
631-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
632-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
633-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
634-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
635-//
636-
637-using System;
638-using Gtk;
639-using MeeGo.Panel;
640-
641-using Hyena;
642-
643-using Banshee.Base;
644-using Banshee.Collection;
645-using Banshee.Sources;
646-using Banshee.ServiceStack;
647-using Banshee.MediaEngine;
648-using Banshee.Gui;
649-
650-namespace Banshee.MeeGo
651-{
652- public class MeeGoService : IExtensionService
653- {
654- private GtkElementsService elements_service;
655- private InterfaceActionService interface_action_service;
656- private SourceManager source_manager;
657- private PlayerEngineService player;
658- private MeeGoPanel panel;
659-
660- void IExtensionService.Initialize ()
661- {
662- elements_service = ServiceManager.Get<GtkElementsService> ();
663- interface_action_service = ServiceManager.Get<InterfaceActionService> ();
664- source_manager = ServiceManager.SourceManager;
665- player = ServiceManager.PlayerEngine;
666-
667- if (!ServiceStartup ()) {
668- ServiceManager.ServiceStarted += OnServiceStarted;
669- }
670- }
671-
672- private void OnServiceStarted (ServiceStartedArgs args)
673- {
674- if (args.Service is Banshee.Gui.InterfaceActionService) {
675- interface_action_service = (InterfaceActionService)args.Service;
676- } else if (args.Service is GtkElementsService) {
677- elements_service = (GtkElementsService)args.Service;
678- } else if (args.Service is SourceManager) {
679- source_manager = ServiceManager.SourceManager;
680- } else if (args.Service is PlayerEngineService) {
681- player = ServiceManager.PlayerEngine;
682- }
683-
684- ServiceStartup ();
685- }
686-
687- private bool ServiceStartup ()
688- {
689- if (elements_service == null || interface_action_service == null ||
690- source_manager == null || player == null) {
691- return false;
692- }
693-
694- Initialize ();
695-
696- ServiceManager.ServiceStarted -= OnServiceStarted;
697-
698- return true;
699- }
700-
701- private void Initialize ()
702- {
703- // If Banshee is running from the MeeGo client entry assembly,
704- // the MeeGoPanel will have already been created. If not, we
705- // assume we're probably not really running in a MeeGo environment,
706- // so we just create the panel here (which is likely to just be
707- // a separate top-level window for testing).
708- panel = MeeGoPanel.Instance ?? new MeeGoPanel ();
709-
710- if (panel == null) {
711- Log.Warning ("MeeGo extension initialized without a panel");
712- return;
713- }
714-
715- panel.BuildContents ();
716-
717- elements_service.PrimaryWindowClose = () => {
718- elements_service.PrimaryWindow.Hide ();
719- return true;
720- };
721-
722- // Since the Panel is running, we don't actually ever want to quit!
723- Banshee.ServiceStack.Application.ShutdownRequested += () => {
724- elements_service.PrimaryWindow.Hide ();
725- return false;
726- };
727- }
728-
729- public void PresentPrimaryInterface ()
730- {
731- elements_service.PrimaryWindow.Maximize ();
732- elements_service.PrimaryWindow.Present ();
733- if (panel != null) {
734- panel.Hide ();
735- }
736- }
737-
738- public void Dispose ()
739- {
740- if (panel != null) {
741- panel.Dispose ();
742- panel = null;
743- }
744-
745- interface_action_service = null;
746- elements_service = null;
747- }
748-
749- string IService.ServiceName {
750- get { return "MeeGoService"; }
751- }
752- }
753-}
754
755=== removed directory '.pc/02_only-show-netbook-panel-on-request.patch'
756=== removed directory '.pc/02_only-show-netbook-panel-on-request.patch/src'
757=== removed directory '.pc/02_only-show-netbook-panel-on-request.patch/src/Extensions'
758=== removed directory '.pc/02_only-show-netbook-panel-on-request.patch/src/Extensions/Banshee.MeeGo'
759=== removed directory '.pc/02_only-show-netbook-panel-on-request.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo'
760=== removed file '.pc/02_only-show-netbook-panel-on-request.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs'
761--- .pc/02_only-show-netbook-panel-on-request.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs 2011-02-20 14:48:54 +0000
762+++ .pc/02_only-show-netbook-panel-on-request.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs 1970-01-01 00:00:00 +0000
763@@ -1,145 +0,0 @@
764-//
765-// MeeGoService.cs
766-//
767-// Authors:
768-// Aaron Bockover <abockover@novell.com>
769-//
770-// Copyright 2009-2010 Novell, Inc.
771-//
772-// Permission is hereby granted, free of charge, to any person obtaining
773-// a copy of this software and associated documentation files (the
774-// "Software"), to deal in the Software without restriction, including
775-// without limitation the rights to use, copy, modify, merge, publish,
776-// distribute, sublicense, and/or sell copies of the Software, and to
777-// permit persons to whom the Software is furnished to do so, subject to
778-// the following conditions:
779-//
780-// The above copyright notice and this permission notice shall be
781-// included in all copies or substantial portions of the Software.
782-//
783-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
784-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
785-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
786-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
787-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
788-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
789-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
790-//
791-
792-using System;
793-using Gtk;
794-using MeeGo.Panel;
795-
796-using Hyena;
797-
798-using Banshee.Base;
799-using Banshee.Collection;
800-using Banshee.Sources;
801-using Banshee.ServiceStack;
802-using Banshee.MediaEngine;
803-using Banshee.Gui;
804-
805-namespace Banshee.MeeGo
806-{
807- public class MeeGoService : IExtensionService
808- {
809- private GtkElementsService elements_service;
810- private InterfaceActionService interface_action_service;
811- private SourceManager source_manager;
812- private PlayerEngineService player;
813- private MeeGoPanel panel;
814-
815- void IExtensionService.Initialize ()
816- {
817- elements_service = ServiceManager.Get<GtkElementsService> ();
818- interface_action_service = ServiceManager.Get<InterfaceActionService> ();
819- source_manager = ServiceManager.SourceManager;
820- player = ServiceManager.PlayerEngine;
821-
822- if (!ServiceStartup ()) {
823- ServiceManager.ServiceStarted += OnServiceStarted;
824- }
825- }
826-
827- private void OnServiceStarted (ServiceStartedArgs args)
828- {
829- if (args.Service is Banshee.Gui.InterfaceActionService) {
830- interface_action_service = (InterfaceActionService)args.Service;
831- } else if (args.Service is GtkElementsService) {
832- elements_service = (GtkElementsService)args.Service;
833- } else if (args.Service is SourceManager) {
834- source_manager = ServiceManager.SourceManager;
835- } else if (args.Service is PlayerEngineService) {
836- player = ServiceManager.PlayerEngine;
837- }
838-
839- ServiceStartup ();
840- }
841-
842- private bool ServiceStartup ()
843- {
844- if (elements_service == null || interface_action_service == null ||
845- source_manager == null || player == null) {
846- return false;
847- }
848-
849- Initialize ();
850-
851- ServiceManager.ServiceStarted -= OnServiceStarted;
852-
853- return true;
854- }
855-
856- private void Initialize ()
857- {
858- // If Banshee is running from the MeeGo client entry assembly,
859- // the MeeGoPanel will have already been created. If not, we
860- // assume we're probably not really running in a MeeGo environment,
861- // so we just create the panel here (which is likely to just be
862- // a separate top-level window for testing).
863- panel = MeeGoPanel.Instance ?? new MeeGoPanel ();
864-
865- if (panel == null) {
866- Log.Warning ("Netbook extension initialized without a panel");
867- return;
868- }
869-
870- panel.BuildContents ();
871-
872- elements_service.PrimaryWindowClose = () => {
873- elements_service.PrimaryWindow.Hide ();
874- return true;
875- };
876-
877- // Since the Panel is running, we don't actually ever want to quit!
878- Banshee.ServiceStack.Application.ShutdownRequested += () => {
879- elements_service.PrimaryWindow.Hide ();
880- return false;
881- };
882- }
883-
884- public void PresentPrimaryInterface ()
885- {
886- elements_service.PrimaryWindow.Maximize ();
887- elements_service.PrimaryWindow.Present ();
888- if (panel != null) {
889- panel.Hide ();
890- }
891- }
892-
893- public void Dispose ()
894- {
895- if (panel != null) {
896- panel.Dispose ();
897- panel = null;
898- }
899-
900- interface_action_service = null;
901- elements_service = null;
902- }
903-
904- string IService.ServiceName {
905- get { return "MeeGoService"; }
906- }
907- }
908-}
909
910=== removed directory '.pc/03_quit-only-on-explicit-shutdown-request.patch'
911=== removed directory '.pc/03_quit-only-on-explicit-shutdown-request.patch/src'
912=== removed directory '.pc/03_quit-only-on-explicit-shutdown-request.patch/src/Extensions'
913=== removed directory '.pc/03_quit-only-on-explicit-shutdown-request.patch/src/Extensions/Banshee.MeeGo'
914=== removed directory '.pc/03_quit-only-on-explicit-shutdown-request.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo'
915=== removed file '.pc/03_quit-only-on-explicit-shutdown-request.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs'
916--- .pc/03_quit-only-on-explicit-shutdown-request.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs 2011-02-20 14:48:54 +0000
917+++ .pc/03_quit-only-on-explicit-shutdown-request.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs 1970-01-01 00:00:00 +0000
918@@ -1,147 +0,0 @@
919-//
920-// MeeGoService.cs
921-//
922-// Authors:
923-// Aaron Bockover <abockover@novell.com>
924-//
925-// Copyright 2009-2010 Novell, Inc.
926-//
927-// Permission is hereby granted, free of charge, to any person obtaining
928-// a copy of this software and associated documentation files (the
929-// "Software"), to deal in the Software without restriction, including
930-// without limitation the rights to use, copy, modify, merge, publish,
931-// distribute, sublicense, and/or sell copies of the Software, and to
932-// permit persons to whom the Software is furnished to do so, subject to
933-// the following conditions:
934-//
935-// The above copyright notice and this permission notice shall be
936-// included in all copies or substantial portions of the Software.
937-//
938-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
939-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
940-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
941-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
942-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
943-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
944-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
945-//
946-
947-using System;
948-using Gtk;
949-using MeeGo.Panel;
950-
951-using Hyena;
952-
953-using Banshee.Base;
954-using Banshee.Collection;
955-using Banshee.Sources;
956-using Banshee.ServiceStack;
957-using Banshee.MediaEngine;
958-using Banshee.Gui;
959-
960-namespace Banshee.MeeGo
961-{
962- public class MeeGoService : IExtensionService
963- {
964- private GtkElementsService elements_service;
965- private InterfaceActionService interface_action_service;
966- private SourceManager source_manager;
967- private PlayerEngineService player;
968- private MeeGoPanel panel;
969-
970- void IExtensionService.Initialize ()
971- {
972- elements_service = ServiceManager.Get<GtkElementsService> ();
973- interface_action_service = ServiceManager.Get<InterfaceActionService> ();
974- source_manager = ServiceManager.SourceManager;
975- player = ServiceManager.PlayerEngine;
976-
977- if (!ServiceStartup ()) {
978- ServiceManager.ServiceStarted += OnServiceStarted;
979- }
980- }
981-
982- private void OnServiceStarted (ServiceStartedArgs args)
983- {
984- if (args.Service is Banshee.Gui.InterfaceActionService) {
985- interface_action_service = (InterfaceActionService)args.Service;
986- } else if (args.Service is GtkElementsService) {
987- elements_service = (GtkElementsService)args.Service;
988- } else if (args.Service is SourceManager) {
989- source_manager = ServiceManager.SourceManager;
990- } else if (args.Service is PlayerEngineService) {
991- player = ServiceManager.PlayerEngine;
992- }
993-
994- ServiceStartup ();
995- }
996-
997- private bool ServiceStartup ()
998- {
999- if (elements_service == null || interface_action_service == null ||
1000- source_manager == null || player == null) {
1001- return false;
1002- }
1003-
1004- Initialize ();
1005-
1006- ServiceManager.ServiceStarted -= OnServiceStarted;
1007-
1008- return true;
1009- }
1010-
1011- private void Initialize ()
1012- {
1013- // If Banshee is running from the MeeGo client entry assembly,
1014- // the MeeGoPanel will have already been created. If not, we
1015- // assume we're probably not really running in a MeeGo environment,
1016- // so we just create the panel here (which is likely to just be
1017- // a separate top-level window for testing).
1018- panel = MeeGoPanel.Instance;
1019-
1020- if (panel == null) {
1021- Log.Warning ("Netbook extension initialized without a panel");
1022- return;
1023- } else {
1024- elements_service.PrimaryWindow.Hide ();
1025- }
1026-
1027- panel.BuildContents ();
1028-
1029- elements_service.PrimaryWindowClose = () => {
1030- elements_service.PrimaryWindow.Hide ();
1031- return true;
1032- };
1033-
1034- // Since the Panel is running, we don't actually ever want to quit!
1035- Banshee.ServiceStack.Application.ShutdownRequested += () => {
1036- elements_service.PrimaryWindow.Hide ();
1037- return false;
1038- };
1039- }
1040-
1041- public void PresentPrimaryInterface ()
1042- {
1043- elements_service.PrimaryWindow.Maximize ();
1044- elements_service.PrimaryWindow.Present ();
1045- if (panel != null) {
1046- panel.Hide ();
1047- }
1048- }
1049-
1050- public void Dispose ()
1051- {
1052- if (panel != null) {
1053- panel.Dispose ();
1054- panel = null;
1055- }
1056-
1057- interface_action_service = null;
1058- elements_service = null;
1059- }
1060-
1061- string IService.ServiceName {
1062- get { return "MeeGoService"; }
1063- }
1064- }
1065-}
1066
1067=== removed directory '.pc/04_enable-switching-between-the-2-interfaces.patch'
1068=== removed directory '.pc/04_enable-switching-between-the-2-interfaces.patch/src'
1069=== removed directory '.pc/04_enable-switching-between-the-2-interfaces.patch/src/Core'
1070=== removed directory '.pc/04_enable-switching-between-the-2-interfaces.patch/src/Core/Banshee.ThickClient'
1071=== removed directory '.pc/04_enable-switching-between-the-2-interfaces.patch/src/Core/Banshee.ThickClient/Resources'
1072=== removed file '.pc/04_enable-switching-between-the-2-interfaces.patch/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml'
1073--- .pc/04_enable-switching-between-the-2-interfaces.patch/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml 2011-02-20 14:48:54 +0000
1074+++ .pc/04_enable-switching-between-the-2-interfaces.patch/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml 1970-01-01 00:00:00 +0000
1075@@ -1,237 +0,0 @@
1076-<ui>
1077- <toolbar name="HeaderToolbar">
1078- <toolitem action="PreviousAction"/>
1079- <toolitem action="PlayPauseAction"/>
1080- <placeholder name="NextArrowButton"/>
1081- <placeholder name="SeekSlider"/>
1082- <placeholder name="TrackInfoDisplay"/>
1083- <placeholder name="SourceActions">
1084- <toolitem name="RefreshSmartPlaylist" action="RefreshSmartPlaylistAction"/>
1085- </placeholder>
1086- <placeholder name="SearchEntry"/>
1087- <placeholder name="VolumeButton"/>
1088- <placeholder name="ToolbarMenuPlaceholder"/>
1089- <placeholder name="ClosePlaceholder"/>
1090- </toolbar>
1091- <toolbar name="FooterToolbar">
1092- <placeholder name="TaskStatus"/>
1093- <placeholder name="StatusBar"/>
1094- <placeholder name="Extensions"/>
1095- <placeholder name="RepeatButton"/>
1096- </toolbar>
1097-
1098- <popup name="ToolbarMenu" action="ToolbarMenuAction">
1099- <menuitem name="NewPlaylist" action="NewPlaylistAction"/>
1100- <menuitem name="NewSmartPlaylist" action="NewSmartPlaylistAction"/>
1101- <separator/>
1102- <menuitem name="Import" action="ImportAction"/>
1103- <menuitem name="ImportPlaylist" action="ImportPlaylistAction"/>
1104- <menuitem name="OpenLocation" action="OpenLocationAction"/>
1105- <separator/>
1106- <placeholder name="BelowOpenLocation"/>
1107- <separator/>
1108- <menu name="ToolsMenu" action="ToolsMenuAction">
1109- <menuitem name="Rescan" action="RescanAction"/>
1110- <menuitem name="ShowEqualizer" action="ShowEqualizerAction"/>
1111- </menu>
1112- <menuitem name="Preferences" action="PreferencesAction"/>
1113- <menuitem name="About" action="AboutAction"/>
1114- </popup>
1115-
1116- <menubar name="MainMenu" action="MainMenuAction">
1117- <menu name="MediaMenu" action="MediaMenuAction">
1118- <menuitem name="NewPlaylist" action="NewPlaylistAction"/>
1119- <menuitem name="NewSmartPlaylist" action="NewSmartPlaylistAction"/>
1120- <!--<menuitem name="NewSmartPlaylistFromSearch" action="NewSmartPlaylistFromSearchAction"/>-->
1121- <separator/>
1122- <menuitem name="Import" action="ImportAction"/>
1123- <menuitem name="ImportPlaylist" action="ImportPlaylistAction"/>
1124- <menuitem name="OpenLocation" action="OpenLocationAction"/>
1125- <menuitem action="OpenSourceSwitcher"/>
1126- <separator/>
1127- <placeholder name="BelowOpenLocation"/>
1128- <separator/>
1129- <placeholder name="ClosePlaceholder"/>
1130- <menuitem name="Quit" action="QuitAction"/>
1131- </menu>
1132-
1133- <menu name="EditMenu" action="EditMenuAction">
1134- <placeholder name="AboveAddToPlaylist"/>
1135- <menu name="AddToPlaylist" action="AddToPlaylistAction"></menu>
1136- <placeholder name="BelowAddToPlaylist"/>
1137- <menuitem name="TrackEditor" action="TrackEditorAction"/>
1138- <separator/>
1139- <menuitem name="SelectAll" action="SelectAllAction"/>
1140- <menuitem name="SelectNone" action="SelectNoneAction"/>
1141- <separator/>
1142- <menuitem name="RemoveTracks" action="RemoveTracksAction"/>
1143- <menuitem name="RemoveTracksFromLibrary" action="RemoveTracksFromLibraryAction"/>
1144- <menuitem name="DeleteTracksFromDrive" action="DeleteTracksFromDriveAction"/>
1145- <separator/>
1146- <menuitem name="OpenContainingFolder" action="OpenContainingFolderAction"/>
1147- <separator/>
1148- <menuitem name="RenameSource" action="RenameSourceAction"/>
1149- <menuitem name="RefreshSmartPlaylist" action="RefreshSmartPlaylistAction"/>
1150- <menuitem name="ExportPlaylist" action="ExportPlaylistAction"/>
1151- <menuitem name="SourceProperties" action="SourcePropertiesAction"/>
1152- <menuitem name="UnmapSource" action="UnmapSourceAction"/>
1153- <menuitem name="TrackProperties" action="TrackPropertiesAction"/>
1154- <separator/>
1155- <menuitem name="Preferences" action="PreferencesAction"/>
1156- </menu>
1157-
1158- <menu name="ViewMenu" action="ViewMenuAction">
1159- <placeholder name="BrowserViews"/>
1160- <placeholder name="ViewMenuAdditions"/>
1161- <menuitem name="ShowCoverArt" action="ShowCoverArtAction"/>
1162- <menuitem name="ShowContextPane" action="ShowContextPaneAction"/>
1163- <menuitem name="FullScreen" action="FullScreenAction"/>
1164- <separator/>
1165- <menuitem name="ShowEqualizer" action="ShowEqualizerAction"/>
1166- </menu>
1167-
1168- <menu name="PlaybackMenu" action="PlaybackMenuAction">
1169- <menuitem name="PlayPause" action="PlayPauseAction"/>
1170- <menuitem name="StopWhenFinished" action="StopWhenFinishedAction"/>
1171- <separator/>
1172- <menuitem name="Next" action="NextAction"/>
1173- <menuitem name="Previous" action="PreviousAction"/>
1174- <separator/>
1175- <!--
1176- <menuitem name="SeekBackward" action="SeekBackwardAction"/>
1177- <menuitem name="SeekForward" action="SeekForwardAction"/>
1178- -->
1179- <menuitem name="SeekTo" action="SeekToAction"/>
1180- <menuitem name="JumpToPlayingTrack" action="JumpToPlayingTrackAction"/>
1181- <menuitem name="RestartSong" action="RestartSongAction"/>
1182- <separator/>
1183- <placeholder name="PlaybackMenuAdditions"/>
1184- <menuitem name="RepeatMenu" action="RepeatMenuAction"/>
1185- <menuitem name="ShuffleMenu" action="ShuffleMenuAction"/>
1186- <menuitem name="SubtitleMenu" action="SubtitleMenuAction"/>
1187- </menu>
1188-
1189- <menu name="ToolsMenu" action="ToolsMenuAction">
1190- <menuitem name="Rescan" action="RescanAction"/>
1191- </menu>
1192-
1193- <menu name="HelpMenu" action="HelpMenuAction">
1194- <menuitem action="UserHelp"/>
1195- <separator/>
1196- <menuitem name="Wiki" action="WikiAction"/>
1197- <menuitem name="WikiDeveloper" action="WikiDeveloperAction"/>
1198- <separator/>
1199- <menuitem name="VersionInformation" action="VersionInformationAction"/>
1200- <menuitem name="About" action="AboutAction"/>
1201- </menu>
1202- </menubar>
1203-
1204- <popup name="LibraryContextMenu" action="LibraryContextMenuAction">
1205- <menuitem name="NewPlaylist" action="NewPlaylistAction"/>
1206- <menuitem name="NewSmartPlaylist" action="NewSmartPlaylistAction"/>
1207- <menu name="SortChildren" action="SortChildrenAction" />
1208- <separator/>
1209- <menuitem name="Import" action="ImportAction"/>
1210- <menuitem name="SourcePreferences" action="SourcePreferencesAction"/>
1211- <separator/>
1212- </popup>
1213-
1214- <popup name="RemovableSourceContextMenu" action="RemovableSourceContextMenuAction">
1215- <menuitem name="NewPlaylist" action="NewPlaylistAction"/>
1216- <menuitem name="NewSmartPlaylist" action="NewSmartPlaylistAction"/>
1217- <menu name="SortChildren" action="SortChildrenAction" />
1218- <separator/>
1219- <placeholder name="AboveImportSource"/>
1220- <menuitem name="ImportSource" action="ImportSourceAction"/>
1221- <menuitem name="RenameSource" action="RenameSourceAction"/>
1222- <menuitem name="SourcePreferences" action="SourcePreferencesAction"/>
1223- <menuitem name="UnmapSource" action="UnmapSourceAction"/>
1224- <separator/>
1225- <menuitem name="SourceProperties" action="SourcePropertiesAction"/>
1226- </popup>
1227-
1228- <popup name="ErrorSourceContextMenu" action="ErrorSourceContextMenuAction">
1229- <menuitem name="UnmapSource" action="UnmapSourceAction"/>
1230- </popup>
1231-
1232- <popup name="SourceContextMenu" action="SourceContextMenuAction">
1233- <menuitem name="ImportSource" action="ImportSourceAction"/>
1234- <separator/>
1235- <menuitem name="RenameSource" action="RenameSourceAction"/>
1236- <menuitem name="RefreshSmartPlaylist" action="RefreshSmartPlaylistAction"/>
1237- <menuitem name="ExportPlaylist" action="ExportPlaylistAction"/>
1238- <menuitem name="UnmapSource" action="UnmapSourceAction"/>
1239- <separator/>
1240- <menuitem name="SourceProperties" action="SourcePropertiesAction"/>
1241- <menuitem name="SourcePreferences" action="SourcePreferencesAction"/>
1242- </popup>
1243-
1244- <popup name="TrackContextMenu" action="TrackContextMenuAction">
1245- <menuitem action="PlayTrack"/>
1246- <separator/>
1247- <placeholder name="AboveAddToPlaylist"/>
1248- <menu name="AddToPlaylist" action="AddToPlaylistAction"></menu>
1249- <placeholder name="BelowAddToPlaylist"/>
1250- <separator/>
1251- <menuitem name="RemoveTracks" action="RemoveTracksAction"/>
1252- <menuitem name="RemoveTracksFromLibrary" action="RemoveTracksFromLibraryAction"/>
1253- <menuitem name="DeleteTracksFromDrive" action="DeleteTracksFromDriveAction"/>
1254- <separator/>
1255- <menuitem name="OpenContainingFolder" action="OpenContainingFolderAction"/>
1256- <menu name="SearchMenu" action="SearchMenuAction">
1257- <menuitem name="SearchForSameArtist" action="SearchForSameArtistAction"/>
1258- <menuitem name="SearchForSameAlbum" action="SearchForSameAlbumAction"/>
1259- </menu>
1260- <separator/>
1261- <placeholder name="AboveTrackProperties"/>
1262- <menuitem name="TrackProperties" action="TrackPropertiesAction"/>
1263- <menuitem name="TrackEditor" action="TrackEditorAction"/>
1264- </popup>
1265-</ui>
1266-
1267-<!--<menubar name="MainMenu">
1268-<menu name="MusicMenu" action="MusicMenuAction">
1269- <menuitem name="NewCD" action="NewCDAction"/>
1270- <placeholder name="NewMusicMenuAdditions"/>
1271- /*<menuitem name="ImportFolder" action="ImportFolderAction"/>
1272- <menuitem name="ImportFiles" action="ImportFilesAction"/>*/
1273- <separator/>
1274- <menuitem name="ImportMusic" action="ImportMusicAction"/>
1275- <menuitem name="OpenLocation" action="OpenLocationAction"/>
1276- <placeholder name="MusicMenuAdditions"/>
1277- <separator/>
1278- <menuitem name="ImportSource" action="ImportSourceAction"/>
1279- <menuitem name="WriteCD" action="WriteCDAction"/>
1280- <separator/>
1281- <menuitem name="SyncDap" action="SyncDapAction"/>
1282-</menu>
1283-<menu name="EditMenu" action="EditMenuAction">
1284- <menuitem name="CopySongs" action="CopySongsAction"/>
1285- <separator/>
1286- <menuitem name="RemoveSongs" action="RemoveSongsAction"/>
1287- <menuitem name="DeleteSongsFromDrive" action="DeleteSongsFromDriveAction"/>
1288- <menuitem name="RenameSource" action="RenameSourceAction"/>
1289- <menuitem name="UnmapSource" action="UnmapSourceAction"/>
1290- <separator/>
1291- <menuitem name="SelectAll" action="SelectAllAction"/>
1292- <menuitem name="SelectNone" action="SelectNoneAction"/>
1293- <separator/>
1294- <menuitem name="Properties" action="PropertiesAction"/>
1295- <menuitem name="SelectedSourceProperties" action="SelectedSourcePropertiesAction"/>
1296- <separator/>
1297- <menuitem name="Plugins" action="PluginsAction"/>
1298- <menuitem name="Preferences" action="PreferencesAction"/>
1299-</menu>
1300-
1301-<menu name="ToolsMenu" action="ToolsMenuAction">
1302- <menuitem name="Scripts" action="ScriptsAction"/>
1303-</menu>
1304-
1305-
1306-<menu name="DebugMenu" action="DebugMenuAction">
1307-
1308- <menuitem name="LoggedEvents" action="LoggedEventsAction"/>
1309-</menu>
1310-</menubar>
1311-<popup name="SongViewPopup" action="SongViewPopupAction">
1312-</popup>-->
1313
1314=== removed directory '.pc/04_enable-switching-between-the-2-interfaces.patch/src/Extensions'
1315=== removed directory '.pc/04_enable-switching-between-the-2-interfaces.patch/src/Extensions/Banshee.MeeGo'
1316=== removed directory '.pc/04_enable-switching-between-the-2-interfaces.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo'
1317=== removed file '.pc/04_enable-switching-between-the-2-interfaces.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs'
1318--- .pc/04_enable-switching-between-the-2-interfaces.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs 2011-02-20 14:48:54 +0000
1319+++ .pc/04_enable-switching-between-the-2-interfaces.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs 1970-01-01 00:00:00 +0000
1320@@ -1,113 +0,0 @@
1321-//
1322-// MeeGoPanel.cs
1323-//
1324-// Author:
1325-// Aaron Bockover <abockover@novell.com>
1326-//
1327-// Copyright 2009-2010 Novell, Inc.
1328-//
1329-// Permission is hereby granted, free of charge, to any person obtaining a copy
1330-// of this software and associated documentation files (the "Software"), to deal
1331-// in the Software without restriction, including without limitation the rights
1332-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1333-// copies of the Software, and to permit persons to whom the Software is
1334-// furnished to do so, subject to the following conditions:
1335-//
1336-// The above copyright notice and this permission notice shall be included in
1337-// all copies or substantial portions of the Software.
1338-//
1339-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1340-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1341-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1342-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1343-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1344-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1345-// THE SOFTWARE.
1346-
1347-using System;
1348-using Mono.Unix;
1349-
1350-using Gtk;
1351-using MeeGo.Panel;
1352-
1353-using Hyena;
1354-using Banshee.Base;
1355-using Banshee.ServiceStack;
1356-
1357-namespace Banshee.MeeGo
1358-{
1359- public class MeeGoPanel : IDisposable
1360- {
1361- public static MeeGoPanel Instance { get; private set; }
1362-
1363- private PanelGtk embedded_panel;
1364- private Window window_panel;
1365-
1366- public MediaPanelContents Contents { get; private set; }
1367-
1368- public MeeGoPanel ()
1369- {
1370- if (Instance != null) {
1371- throw new InvalidOperationException ("Only one Netbook Panel (MeegoPanel) instance should exist");
1372- }
1373-
1374- Instance = this;
1375-
1376- var timer = Log.DebugTimerStart ();
1377-
1378- try {
1379- Log.Debug ("Attempting to create Netbook toolbar panel");
1380- embedded_panel = new PanelGtk ("banshee", Catalog.GetString ("media"),
1381- null, "media-button", true);
1382- embedded_panel.ShowBeginEvent += (o, e) => {
1383- ServiceManager.SourceManager.SetActiveSource (ServiceManager.SourceManager.MusicLibrary);
1384- if (Contents != null) {
1385- Contents.SyncSearchEntry ();
1386- }
1387- };
1388- while (Gtk.Application.EventsPending ()) {
1389- Gtk.Application.RunIteration ();
1390- }
1391- } catch (Exception e) {
1392- if (!(e is DllNotFoundException)) {
1393- Log.Exception ("Could not bind to Netbook panel", e);
1394- }
1395- window_panel = new Gtk.Window ("Netbook Media Panel");
1396- }
1397-
1398- Log.DebugTimerPrint (timer, "Netbook panel created: {0}");
1399- }
1400-
1401- public void Dispose ()
1402- {
1403- }
1404-
1405- public void BuildContents ()
1406- {
1407- var timer = Log.DebugTimerStart ();
1408- Contents = new MediaPanelContents ();
1409- Contents.ShowAll ();
1410- Log.DebugTimerPrint (timer, "Netbook panel contents created: {0}");
1411-
1412- if (embedded_panel != null) {
1413- embedded_panel.SetChild (Contents);
1414- } else if (window_panel != null) {
1415- window_panel.Add (Contents);
1416- window_panel.SetDefaultSize (1000, 500);
1417- window_panel.WindowPosition = WindowPosition.Center;
1418- window_panel.Show ();
1419- GLib.Timeout.Add (1000, () => {
1420- window_panel.Present ();
1421- return false;
1422- });
1423- }
1424- }
1425-
1426- public void Hide ()
1427- {
1428- if (embedded_panel != null) {
1429- embedded_panel.Hide ();
1430- }
1431- }
1432- }
1433-}
1434
1435=== removed file '.pc/04_enable-switching-between-the-2-interfaces.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs'
1436--- .pc/04_enable-switching-between-the-2-interfaces.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs 2011-02-20 14:48:54 +0000
1437+++ .pc/04_enable-switching-between-the-2-interfaces.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs 1970-01-01 00:00:00 +0000
1438@@ -1,142 +0,0 @@
1439-//
1440-// MeeGoService.cs
1441-//
1442-// Authors:
1443-// Aaron Bockover <abockover@novell.com>
1444-//
1445-// Copyright 2009-2010 Novell, Inc.
1446-//
1447-// Permission is hereby granted, free of charge, to any person obtaining
1448-// a copy of this software and associated documentation files (the
1449-// "Software"), to deal in the Software without restriction, including
1450-// without limitation the rights to use, copy, modify, merge, publish,
1451-// distribute, sublicense, and/or sell copies of the Software, and to
1452-// permit persons to whom the Software is furnished to do so, subject to
1453-// the following conditions:
1454-//
1455-// The above copyright notice and this permission notice shall be
1456-// included in all copies or substantial portions of the Software.
1457-//
1458-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1459-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1460-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
1461-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
1462-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
1463-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
1464-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1465-//
1466-
1467-using System;
1468-using Gtk;
1469-using MeeGo.Panel;
1470-
1471-using Hyena;
1472-
1473-using Banshee.Base;
1474-using Banshee.Collection;
1475-using Banshee.Sources;
1476-using Banshee.ServiceStack;
1477-using Banshee.MediaEngine;
1478-using Banshee.Gui;
1479-
1480-namespace Banshee.MeeGo
1481-{
1482- public class MeeGoService : IExtensionService
1483- {
1484- private GtkElementsService elements_service;
1485- private InterfaceActionService interface_action_service;
1486- private SourceManager source_manager;
1487- private PlayerEngineService player;
1488- private MeeGoPanel panel;
1489-
1490- void IExtensionService.Initialize ()
1491- {
1492- elements_service = ServiceManager.Get<GtkElementsService> ();
1493- interface_action_service = ServiceManager.Get<InterfaceActionService> ();
1494- source_manager = ServiceManager.SourceManager;
1495- player = ServiceManager.PlayerEngine;
1496-
1497- if (!ServiceStartup ()) {
1498- ServiceManager.ServiceStarted += OnServiceStarted;
1499- }
1500- }
1501-
1502- private void OnServiceStarted (ServiceStartedArgs args)
1503- {
1504- if (args.Service is Banshee.Gui.InterfaceActionService) {
1505- interface_action_service = (InterfaceActionService)args.Service;
1506- } else if (args.Service is GtkElementsService) {
1507- elements_service = (GtkElementsService)args.Service;
1508- } else if (args.Service is SourceManager) {
1509- source_manager = ServiceManager.SourceManager;
1510- } else if (args.Service is PlayerEngineService) {
1511- player = ServiceManager.PlayerEngine;
1512- }
1513-
1514- ServiceStartup ();
1515- }
1516-
1517- private bool ServiceStartup ()
1518- {
1519- if (elements_service == null || interface_action_service == null ||
1520- source_manager == null || player == null) {
1521- return false;
1522- }
1523-
1524- Initialize ();
1525-
1526- ServiceManager.ServiceStarted -= OnServiceStarted;
1527-
1528- return true;
1529- }
1530-
1531- private void Initialize ()
1532- {
1533- // If Banshee is running from the MeeGo client entry assembly,
1534- // the MeeGoPanel will have already been created. If not, we
1535- // assume we're probably not really running in a MeeGo environment,
1536- // so we just create the panel here (which is likely to just be
1537- // a separate top-level window for testing).
1538- panel = MeeGoPanel.Instance;
1539-
1540- if (panel == null) {
1541- Log.Warning ("Netbook extension initialized without a panel");
1542- return;
1543- } else {
1544- elements_service.PrimaryWindow.Hide ();
1545- }
1546-
1547- panel.BuildContents ();
1548-
1549- elements_service.PrimaryWindowClose = () => {
1550- elements_service.PrimaryWindow.Hide ();
1551- return true;
1552- };
1553-
1554- }
1555-
1556- public void PresentPrimaryInterface ()
1557- {
1558- elements_service.PrimaryWindow.Maximize ();
1559- elements_service.PrimaryWindow.Present ();
1560- if (panel != null) {
1561- panel.Hide ();
1562- }
1563- }
1564-
1565- public void Dispose ()
1566- {
1567- if (panel != null) {
1568- panel.Dispose ();
1569- panel = null;
1570- }
1571-
1572- interface_action_service = null;
1573- elements_service = null;
1574- }
1575-
1576- string IService.ServiceName {
1577- get { return "MeeGoService"; }
1578- }
1579- }
1580-}
1581
1582=== removed directory '.pc/05_show-a-empty-library-message-in-banshee.patch'
1583=== removed directory '.pc/05_show-a-empty-library-message-in-banshee.patch/src'
1584=== removed directory '.pc/05_show-a-empty-library-message-in-banshee.patch/src/Core'
1585=== removed directory '.pc/05_show-a-empty-library-message-in-banshee.patch/src/Core/Banshee.Services'
1586=== removed directory '.pc/05_show-a-empty-library-message-in-banshee.patch/src/Core/Banshee.Services/Banshee.Library'
1587=== removed file '.pc/05_show-a-empty-library-message-in-banshee.patch/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs'
1588--- .pc/05_show-a-empty-library-message-in-banshee.patch/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs 2011-02-20 14:48:54 +0000
1589+++ .pc/05_show-a-empty-library-message-in-banshee.patch/src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs 1970-01-01 00:00:00 +0000
1590@@ -1,174 +0,0 @@
1591-//
1592-// MusicLibrarySource.cs
1593-//
1594-// Authors:
1595-// Aaron Bockover <abockover@novell.com>
1596-// Gabriel Burt <gburt@novell.com>
1597-//
1598-// Copyright (C) 2005-2008 Novell, Inc.
1599-//
1600-// Permission is hereby granted, free of charge, to any person obtaining
1601-// a copy of this software and associated documentation files (the
1602-// "Software"), to deal in the Software without restriction, including
1603-// without limitation the rights to use, copy, modify, merge, publish,
1604-// distribute, sublicense, and/or sell copies of the Software, and to
1605-// permit persons to whom the Software is furnished to do so, subject to
1606-// the following conditions:
1607-//
1608-// The above copyright notice and this permission notice shall be
1609-// included in all copies or substantial portions of the Software.
1610-//
1611-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1612-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1613-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
1614-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
1615-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
1616-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
1617-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1618-//
1619-
1620-using System;
1621-using System.Collections.Generic;
1622-
1623-using Mono.Unix;
1624-
1625-using Banshee.Base;
1626-using Banshee.Collection;
1627-using Banshee.Query;
1628-using Banshee.SmartPlaylist;
1629-using Banshee.Preferences;
1630-using Banshee.Configuration;
1631-using Banshee.Configuration.Schema;
1632-
1633-namespace Banshee.Library
1634-{
1635- public class MusicLibrarySource : LibrarySource
1636- {
1637- private static PathPattern music_filename_pattern = new MusicFileNamePattern ();
1638- public static PathPattern MusicFileNamePattern {
1639- get { return music_filename_pattern; }
1640- }
1641-
1642- static MusicLibrarySource ()
1643- {
1644- music_filename_pattern.FolderSchema = LibrarySchema.FolderPattern;
1645- music_filename_pattern.FileSchema = LibrarySchema.FilePattern;
1646- Banshee.Base.FileNamePattern.MusicPattern = music_filename_pattern;
1647- }
1648-
1649- // Catalog.GetString ("Music Library")
1650- public MusicLibrarySource () : base (Catalog.GetString ("Music"), "Library", 40)
1651- {
1652- MediaTypes = TrackMediaAttributes.Music | TrackMediaAttributes.AudioStream;
1653- NotMediaTypes = TrackMediaAttributes.Podcast | TrackMediaAttributes.VideoStream | TrackMediaAttributes.AudioBook;
1654- Properties.SetStringList ("Icon.Name", "audio-x-generic", "source-library");
1655-
1656- Properties.Set<string> ("SearchEntryDescription", Catalog.GetString ("Search your music"));
1657-
1658- // Migrate the old library-location schema, if necessary
1659- if (DatabaseConfigurationClient.Client.Get<int> ("MusicLibraryLocationMigrated", 0) != 1) {
1660- string old_location = OldLocationSchema.Get ();
1661- if (!String.IsNullOrEmpty (old_location)) {
1662- BaseDirectory = old_location;
1663- }
1664- DatabaseConfigurationClient.Client.Set<int> ("MusicLibraryLocationMigrated", 1);
1665- }
1666-
1667- SetFileNamePattern (MusicFileNamePattern);
1668-
1669- Section misc = PreferencesPage.Add (new Section ("misc",
1670- Catalog.GetString ("Miscellaneous"), 10));
1671-
1672- misc.Add (new SchemaPreference<bool> (LibrarySchema.SortByAlbumYear,
1673- Catalog.GetString ("_Sort an artist's albums by year, not title"), null,
1674- delegate {
1675- DatabaseTrackModel.Resort ();
1676- DatabaseTrackModel.Reload ();
1677- }
1678- ));
1679- }
1680-
1681- public override string GetPluralItemCountString (int count)
1682- {
1683- return Catalog.GetPluralString ("{0} song", "{0} songs", count);
1684- }
1685-
1686- public static string GetDefaultBaseDirectory ()
1687- {
1688- return Hyena.XdgBaseDirectorySpec.GetXdgDirectoryUnderHome ("XDG_MUSIC_DIR", "Music");
1689- }
1690-
1691- public override string DefaultBaseDirectory {
1692- get { return GetDefaultBaseDirectory (); }
1693- }
1694-
1695- public override IEnumerable<SmartPlaylistDefinition> DefaultSmartPlaylists {
1696- get { return default_smart_playlists; }
1697- }
1698-
1699- public override IEnumerable<SmartPlaylistDefinition> NonDefaultSmartPlaylists {
1700- get { return non_default_smart_playlists; }
1701- }
1702-
1703- protected override string SectionName {
1704- get { return Catalog.GetString ("Music Folder"); }
1705- }
1706-
1707- private static SmartPlaylistDefinition [] default_smart_playlists = new SmartPlaylistDefinition [] {
1708- new SmartPlaylistDefinition (
1709- Catalog.GetString ("Favorites"),
1710- Catalog.GetString ("Songs rated four and five stars"),
1711- "rating>=4", true),
1712-
1713- new SmartPlaylistDefinition (
1714- Catalog.GetString ("Recent Favorites"),
1715- Catalog.GetString ("Songs listened to often in the past week"),
1716- "played<\"1 week ago\" playcount>3", true),
1717-
1718- new SmartPlaylistDefinition (
1719- Catalog.GetString ("Recently Added"),
1720- Catalog.GetString ("Songs imported within the last week"),
1721- "added<\"1 week ago\"", true) { Order = BansheeQuery.FindOrder (BansheeQuery.DateAddedField, false) },
1722-
1723- new SmartPlaylistDefinition (
1724- Catalog.GetString ("Recently Played"),
1725- Catalog.GetString ("Recently played songs"),
1726- "played<\"2 weeks ago\" plays>0", true) { Order = BansheeQuery.FindOrder (BansheeQuery.LastPlayedField, false) },
1727-
1728- new SmartPlaylistDefinition (
1729- Catalog.GetString ("Unheard"),
1730- Catalog.GetString ("Songs that have not been played or skipped"),
1731- "playcount:0 skips:0", true),
1732- };
1733-
1734- private static SmartPlaylistDefinition [] non_default_smart_playlists = new SmartPlaylistDefinition [] {
1735-
1736- new SmartPlaylistDefinition (
1737- Catalog.GetString ("Neglected Favorites"),
1738- Catalog.GetString ("Favorites not played in over two months"),
1739- "rating>=4 played>=\"2 months ago\""),
1740-
1741- new SmartPlaylistDefinition (
1742- Catalog.GetString ("Least Favorite"),
1743- Catalog.GetString ("Songs rated one or two stars or that you have frequently skipped"),
1744- "rating<3 or skips>4"),
1745-
1746- new SmartPlaylistDefinition (
1747- Catalog.GetString ("700 MB of Favorites"),
1748- Catalog.GetString ("A data CD worth of favorite songs"),
1749- "rating>=4",
1750- 700, "MB", "PlayCount-DESC"),
1751-
1752- new SmartPlaylistDefinition (
1753- Catalog.GetString ("80 Minutes of Favorites"),
1754- Catalog.GetString ("An audio CD worth of favorite songs"),
1755- "rating>=4",
1756- 80, "minutes", "PlayCount-DESC"),
1757-
1758- new SmartPlaylistDefinition (
1759- Catalog.GetString ("Unrated"),
1760- Catalog.GetString ("Songs that haven't been rated"),
1761- "rating=0"),
1762- };
1763- }
1764-}
1765
1766=== removed directory '.pc/05_show-a-empty-library-message-in-banshee.patch/src/Extensions'
1767=== removed directory '.pc/05_show-a-empty-library-message-in-banshee.patch/src/Extensions/Banshee.MeeGo'
1768=== removed directory '.pc/05_show-a-empty-library-message-in-banshee.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo'
1769=== removed file '.pc/05_show-a-empty-library-message-in-banshee.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs'
1770--- .pc/05_show-a-empty-library-message-in-banshee.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs 2011-02-20 14:48:54 +0000
1771+++ .pc/05_show-a-empty-library-message-in-banshee.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs 1970-01-01 00:00:00 +0000
1772@@ -1,412 +0,0 @@
1773-//
1774-// MediaPanelContents.cs
1775-//
1776-// Author:
1777-// Aaron Bockover <abockover@novell.com>
1778-//
1779-// Copyright 2010 Novell, Inc.
1780-//
1781-// Permission is hereby granted, free of charge, to any person obtaining a copy
1782-// of this software and associated documentation files (the "Software"), to deal
1783-// in the Software without restriction, including without limitation the rights
1784-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1785-// copies of the Software, and to permit persons to whom the Software is
1786-// furnished to do so, subject to the following conditions:
1787-//
1788-// The above copyright notice and this permission notice shall be included in
1789-// all copies or substantial portions of the Software.
1790-//
1791-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1792-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1793-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1794-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1795-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1796-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1797-// THE SOFTWARE.
1798-
1799-using System;
1800-using System.Collections.Generic;
1801-
1802-using Mono.Unix;
1803-using Gtk;
1804-
1805-using Hyena;
1806-using Hyena.Data;
1807-using Hyena.Gui;
1808-using Hyena.Data.Gui;
1809-
1810-using Banshee.ServiceStack;
1811-using Banshee.Sources;
1812-using Banshee.Sources.Gui;
1813-using Banshee.Collection;
1814-using Banshee.Collection.Gui;
1815-using Banshee.MediaEngine;
1816-using Banshee.Gui;
1817-using Banshee.Gui.Widgets;
1818-
1819-namespace Banshee.MeeGo
1820-{
1821- public class MediaPanelContents : Table, ITrackModelSourceContents
1822- {
1823- private ArtistListView artist_view;
1824- private AlbumListView album_view;
1825- private TerseTrackListView track_view;
1826-
1827- private SourceComboBox source_combo_box;
1828- private SearchEntry search_entry;
1829- private MeeGoTrackInfoDisplay track_info_display;
1830-
1831- private ISource source;
1832- private Dictionary<object, double> model_positions = new Dictionary<object, double> ();
1833-
1834- protected MediaPanelContents (IntPtr raw) : base (raw)
1835- {
1836- }
1837-
1838- public MediaPanelContents () : base (2, 2, false)
1839- {
1840- BorderWidth = 5;
1841- RowSpacing = 6;
1842- ColumnSpacing = 7;
1843- RedrawOnAllocate = true;
1844- AppPaintable = true;
1845-
1846- BuildHeader ();
1847- BuildLibrary ();
1848- BuildNowPlaying ();
1849- ConnectEvents ();
1850-
1851- SetSource (ServiceManager.SourceManager.ActiveSource);
1852- }
1853-
1854- private void ConnectEvents ()
1855- {
1856- ServiceManager.SourceManager.ActiveSourceChanged += OnActiveSourceChanged;
1857-
1858- ServiceManager.Get<InterfaceActionService> ().TrackActions ["SearchForSameArtistAction"].Activated += OnProgrammaticSearch;
1859- ServiceManager.Get<InterfaceActionService> ().TrackActions ["SearchForSameAlbumAction"].Activated += OnProgrammaticSearch;
1860-
1861- ServiceManager.PlayerEngine.ConnectEvent ((args) => track_info_display.Visible =
1862- ServiceManager.PlayerEngine.CurrentState != PlayerState.Idle,
1863- PlayerEvent.StateChange | PlayerEvent.StartOfStream);
1864-
1865- source_combo_box.Model.Filter = (source) =>
1866- source == ServiceManager.SourceManager.MusicLibrary ||
1867- source.Parent == ServiceManager.SourceManager.MusicLibrary ||
1868- source.GetType ().FullName == "Banshee.PlayQueue.PlayQueueSource";
1869- source_combo_box.Model.Refresh ();
1870- source_combo_box.UpdateActiveSource ();
1871-
1872- search_entry.Changed += OnSearchEntryChanged;
1873-
1874- artist_view.SelectionProxy.Changed += OnBrowserViewSelectionChanged;
1875- album_view.SelectionProxy.Changed += OnBrowserViewSelectionChanged;
1876- }
1877-
1878-#region UI Construction
1879-
1880- private void BuildHeader ()
1881- {
1882- Attach (new Label {
1883- Markup = String.Format ("<span font_desc=\"Droid Sans Bold\" " +
1884- "size=\"x-large\" foreground=\"#606eff\">{0}</span>",
1885- GLib.Markup.EscapeText (Catalog.GetString ("Media"))),
1886- Xalign = 0.0f
1887- },
1888- 0, 2, 0, 1,
1889- AttachOptions.Fill | AttachOptions.Expand,
1890- AttachOptions.Shrink, 12, 0);
1891- }
1892-
1893- private void BuildLibrary ()
1894- {
1895- var box = new MeeGoHeaderBox () { Title = Catalog.GetString ("Library") };
1896-
1897- // Build the Library Header
1898- var header = new HBox () {
1899- Spacing = 5,
1900- BorderWidth = 5
1901- };
1902-
1903- var app_button = new Button (new Image () {
1904- IconSize = (int)IconSize.LargeToolbar,
1905- IconName = "media-player-banshee"
1906- }) {
1907- TooltipText = Catalog.GetString ("Launch the Banshee Media Player")
1908- };
1909- app_button.Clicked += (o, e) => {
1910- ServiceManager.SourceManager.SetActiveSource (ServiceManager.SourceManager.MusicLibrary);
1911- ServiceManager.Get<MeeGoService> ().PresentPrimaryInterface ();
1912- };
1913-
1914- header.PackStart (source_combo_box = new SourceComboBox (), false, false, 0);
1915- header.PackStart (app_button, false, false, 0);
1916- header.PackStart (search_entry = new SearchEntry (), true, true, 0);
1917- box.PackStartHighlighted (header, false, false, 0, MeeGoHeaderBox.HighlightFlags.Background);
1918-
1919- // Build the Library Views
1920- var views = new HBox () { Spacing = 5 };
1921- views.PackStart (SetupView (artist_view = new ArtistListView () {
1922- Name = "meego-panel-artists",
1923- WidthRequest = 150,
1924- DoNotRenderNullModel = true
1925- }), false, false, 0);
1926- views.PackStart (SetupView (album_view = new AlbumListView () {
1927- Name = "meego-panel-albums",
1928- DoNotRenderNullModel = true
1929- }), true, true, 0);
1930- box.PackStart (views, true, true, 0);
1931-
1932- Attach (box, 0, 1, 1, 2,
1933- AttachOptions.Expand | AttachOptions.Fill,
1934- AttachOptions.Expand | AttachOptions.Fill,
1935- 0, 0);
1936- }
1937-
1938- private void BuildNowPlaying ()
1939- {
1940- var box = new MeeGoHeaderBox () { Title = Catalog.GetString ("Now Playing") };
1941-
1942- var seek_slider = new ConnectedSeekSlider (SeekSliderLayout.Horizontal);
1943- seek_slider.StreamPositionLabel.FormatString = "<small>{0}</small>";
1944-
1945- track_info_display = new MeeGoTrackInfoDisplay () {
1946- HeightRequest = 64,
1947- NoShowAll = true
1948- };
1949-
1950- track_view = new TerseTrackListView () {
1951- Name = "meego-panel-tracks",
1952- WidthRequest = 220
1953- };
1954- track_view.ColumnController.Insert (new Column (null, "indicator",
1955- new ColumnCellStatusIndicator (null), 0.05, true, 20, 20), 0);
1956-
1957- box.PackStartHighlighted (track_info_display, false, false, 0, MeeGoHeaderBox.HighlightFlags.Background);
1958- box.PackStartHighlighted (seek_slider, false, false, 0, MeeGoHeaderBox.HighlightFlags.Background);
1959- box.PackStart (SetupView (track_view), true, true, 0);
1960- box.PackStartHighlighted (new PlaybackBox (), false, false, 0, MeeGoHeaderBox.HighlightFlags.TopLine);
1961-
1962- Attach (box, 1, 2, 1, 2,
1963- AttachOptions.Shrink,
1964- AttachOptions.Expand | AttachOptions.Fill,
1965- 0, 0);
1966- }
1967-
1968- private ScrolledWindow SetupView (Widget view)
1969- {
1970- var scrolled = new ScrolledWindow () {
1971- VscrollbarPolicy = PolicyType.Automatic,
1972- HscrollbarPolicy = PolicyType.Never,
1973- ShadowType = ShadowType.None
1974- };
1975- scrolled.Add (view);
1976- return scrolled;
1977- }
1978-
1979-#endregion
1980-
1981-#region Background Rendering
1982-
1983- protected override void OnParentSet (Widget previous)
1984- {
1985- base.OnParentSet (previous);
1986-
1987- if (Parent != null) {
1988- Parent.ModifyBg (StateType.Normal, Style.White);
1989- }
1990- }
1991-
1992- protected override bool OnExposeEvent (Gdk.EventExpose evnt)
1993- {
1994- if (!Visible || !IsMapped) {
1995- return true;
1996- }
1997-
1998- RenderBackground (evnt.Window, evnt.Region);
1999- foreach (var child in Children) {
2000- PropagateExpose (child, evnt);
2001- }
2002-
2003- return true;
2004- }
2005-
2006- private void RenderBackground (Gdk.Window window, Gdk.Region region)
2007- {
2008- var cr = Gdk.CairoHelper.Create (window);
2009-
2010- var grad = new Cairo.LinearGradient (0, 0, 0, Allocation.Height);
2011- grad.AddColorStop (0, CairoExtensions.RgbToColor (0xffffff));
2012- grad.AddColorStop (1, CairoExtensions.RgbToColor (0xc3c3c3));
2013- cr.Pattern = grad;
2014- cr.Rectangle (0, 0, Allocation.Width, Allocation.Height);
2015- cr.Fill ();
2016- grad.Destroy ();
2017-
2018- CairoExtensions.DisposeContext (cr);
2019- }
2020-
2021-#endregion
2022-
2023-#region Event Handlers
2024-
2025- private void OnProgrammaticSearch (object o, EventArgs args)
2026- {
2027- Source source = ServiceManager.SourceManager.ActiveSource;
2028- search_entry.Ready = false;
2029- search_entry.Query = source.FilterQuery;
2030- search_entry.Ready = true;
2031- }
2032-
2033- private void OnBrowserViewSelectionChanged (object o, EventArgs args)
2034- {
2035- // Scroll the raising filter view to the top if "all" is selected
2036- var selection = (Hyena.Collections.Selection)o;
2037- if (!selection.AllSelected) {
2038- return;
2039- }
2040-
2041- if (artist_view.Selection == selection) {
2042- artist_view.ScrollTo (0);
2043- } else if (album_view.Selection == selection) {
2044- album_view.ScrollTo (0);
2045- }
2046- }
2047-
2048- private void OnSearchEntryChanged (object o, EventArgs args)
2049- {
2050- var source = ServiceManager.SourceManager.ActiveSource;
2051- if (source == null) {
2052- return;
2053- }
2054-
2055- source.FilterType = (TrackFilterType)search_entry.ActiveFilterID;
2056- source.FilterQuery = search_entry.Query;
2057- }
2058-
2059- private void OnActiveSourceChanged (SourceEventArgs args)
2060- {
2061- ThreadAssist.ProxyToMain (delegate {
2062- var source = ServiceManager.SourceManager.ActiveSource;
2063-
2064- search_entry.Ready = false;
2065- search_entry.CancelSearch ();
2066- search_entry.SearchSensitive = source != null && source.CanSearch;
2067-
2068- if (source != null && source.FilterQuery != null) {
2069- search_entry.Query = source.FilterQuery;
2070- search_entry.ActivateFilter ((int)source.FilterType);
2071- }
2072-
2073- ResetSource ();
2074- SetSource (source);
2075-
2076- search_entry.Ready = true;
2077- });
2078- }
2079-
2080- internal void SyncSearchEntry ()
2081- {
2082- OnActiveSourceChanged (null);
2083- }
2084-
2085-#endregion
2086-
2087-#region View<->Model binding
2088-
2089- private void SetModel<T> (IListModel<T> model)
2090- {
2091- ListView<T> view = FindListView <T> ();
2092- if (view != null) {
2093- SetModel (view, model);
2094- } else {
2095- Hyena.Log.DebugFormat ("Unable to find view for model {0}", model);
2096- }
2097- }
2098-
2099- private void SetModel<T> (ListView<T> view, IListModel<T> model)
2100- {
2101- if (view.Model != null) {
2102- model_positions[view.Model] = view.Vadjustment.Value;
2103- }
2104-
2105- if (model == null) {
2106- view.SetModel (null);
2107- return;
2108- }
2109-
2110- if (!model_positions.ContainsKey (model)) {
2111- model_positions[model] = 0.0;
2112- }
2113-
2114- view.SetModel (model, model_positions[model]);
2115- }
2116-
2117- private ListView<T> FindListView<T> ()
2118- {
2119- foreach (var view in new IListView [] { artist_view, album_view, track_view }) {
2120- if (view is ListView<T>) {
2121- return (ListView<T>)view;
2122- }
2123- }
2124- return null;
2125- }
2126-
2127-#endregion
2128-
2129-#region ISourceContents
2130-
2131- public bool SetSource (ISource source)
2132- {
2133- var track_source = source as ITrackModelSource;
2134- var filterable_source = source as IFilterableSource;
2135- if (track_source == null) {
2136- return false;
2137- }
2138-
2139- this.source = source;
2140-
2141- SetModel (track_view, track_source.TrackModel);
2142-
2143- if (filterable_source != null && filterable_source.CurrentFilters != null) {
2144- foreach (var model in filterable_source.CurrentFilters) {
2145- if (model is IListModel<ArtistInfo>) {
2146- SetModel (artist_view, (model as IListModel<ArtistInfo>));
2147- } else if (model is IListModel<AlbumInfo>) {
2148- SetModel (album_view, (model as IListModel<AlbumInfo>));
2149- }
2150- }
2151- }
2152-
2153- return true;
2154- }
2155-
2156- public void ResetSource ()
2157- {
2158- source = null;
2159- SetModel (track_view, null);
2160- SetModel (artist_view, null);
2161- SetModel (album_view, null);
2162- track_view.HeaderVisible = false;
2163- }
2164-
2165- public ISource Source {
2166- get { return source; }
2167- }
2168-
2169- public Widget Widget {
2170- get { return this; }
2171- }
2172-
2173-#endregion
2174-
2175-#region ITrackModelSourceContents
2176-
2177- public IListView<TrackInfo> TrackView {
2178- get { return track_view; }
2179- }
2180-
2181-#endregion
2182-
2183- }
2184-}
2185
2186=== removed file '.pc/06_add-meego-desktop-file.patch/src/Extensions/Banshee.MeeGo/Makefile.am'
2187--- .pc/06_add-meego-desktop-file.patch/src/Extensions/Banshee.MeeGo/Makefile.am 2011-02-20 14:48:54 +0000
2188+++ .pc/06_add-meego-desktop-file.patch/src/Extensions/Banshee.MeeGo/Makefile.am 1970-01-01 00:00:00 +0000
2189@@ -1,61 +0,0 @@
2190-ASSEMBLY = Banshee.MeeGo
2191-TARGET = library
2192-LINK = $(REF_EXTENSION_MEEGO) $(LINK_EXTENSION_PLAYQUEUE_DEPS)
2193-INSTALL_DIR = $(EXTENSIONS_INSTALL_DIR)
2194-
2195-@INTLTOOL_DESKTOP_RULE@
2196-
2197-SOURCES = \
2198- Banshee.MeeGo/MediaPanelContents.cs \
2199- Banshee.MeeGo/MeeGoHeaderBox.cs \
2200- Banshee.MeeGo/MeeGoPanel.cs \
2201- Banshee.MeeGo/MeeGoService.cs \
2202- Banshee.MeeGo/MeeGoTheme.cs \
2203- Banshee.MeeGo/MeeGoTrackInfoDisplay.cs \
2204- Banshee.MeeGo/PlaybackBox.cs \
2205- Banshee.MeeGo/SearchEntry.cs \
2206- MeeGo.Panel/PanelButtonState.cs \
2207- MeeGo.Panel/PanelClient.cs \
2208- MeeGo.Panel/PanelGtk.cs \
2209- MeeGo.Panel/SetPositionHandler.cs \
2210- MeeGo.Panel/SetSizeHandler.cs
2211-
2212-RESOURCES = Banshee.MeeGo.addin.xml
2213-
2214-if HAVE_MEEGO
2215-
2216-include $(top_srcdir)/build/build.mk
2217-
2218-module_SCRIPTS += Banshee.MeeGo.dll.config
2219-
2220-paneldir = $(libexecdir)
2221-panel_SCRIPTS = meego-panel-banshee
2222-
2223-servicedir = $(datadir)/dbus-1/services
2224-service_DATA = com.meego.UX.Shell.Panels.banshee.service
2225-
2226-com.meego.UX.Shell.Panels.banshee.service: com.meego.UX.Shell.Panels.banshee.service.in $(top_builddir)/config.log
2227- sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
2228-
2229-desktopfiles_in_files = meego-panel-banshee.desktop.in
2230-desktopfiles_files = $(desktopfiles_in_files:.desktop.in=.desktop)
2231-desktopfilesdir = $(datadir)/mutter-meego/panels
2232-desktopfiles_DATA = $(desktopfiles_files)
2233-
2234-%.desktop.in: %.desktop.in.in Makefile
2235- sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
2236-
2237-clean-local:
2238- rm -f com.meego.UX.Shell.Panels.banshee.service \
2239- meego-panel-banshee.desktop \
2240- meego-panel-banshee.desktop.in
2241-
2242-else
2243-EXTRA_DIST = $(SOURCES) $(RESOURCES)
2244-endif
2245-
2246-EXTRA_DIST += \
2247- Banshee.MeeGo.dll.config \
2248- meego-panel-banshee \
2249- com.meego.UX.Shell.Panels.banshee.service.in \
2250- meego-panel-banshee.desktop.in.in
2251
2252=== renamed file '.pc/06_add-meego-desktop-file.patch/src/Extensions/Banshee.MeeGo/Makefile.in' => '.pc/06_add-meego-desktop-file.patch/src/Extensions/Banshee.MeeGo/Makefile.in.THIS'
2253=== removed file '.pc/06_add-meego-desktop-file.patch/src/Extensions/Banshee.MeeGo/banshee-1.desktop.in.in'
2254=== removed directory '.pc/07_disable-notification-area-by-default.patch'
2255=== removed directory '.pc/07_disable-notification-area-by-default.patch/src'
2256=== removed directory '.pc/07_disable-notification-area-by-default.patch/src/Extensions'
2257=== removed directory '.pc/07_disable-notification-area-by-default.patch/src/Extensions/Banshee.NotificationArea'
2258=== removed file '.pc/07_disable-notification-area-by-default.patch/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea.addin.xml'
2259--- .pc/07_disable-notification-area-by-default.patch/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea.addin.xml 2010-11-26 18:35:59 +0000
2260+++ .pc/07_disable-notification-area-by-default.patch/src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea.addin.xml 1970-01-01 00:00:00 +0000
2261@@ -1,23 +0,0 @@
2262-<?xml version="1.0" encoding="utf-8"?>
2263-<Addin
2264- id="Banshee.NotificationArea"
2265- version="1.0"
2266- compatVersion="1.0"
2267- copyright="© 2005-2008 Novell Inc. Licensed under the MIT X11 license."
2268- name="Notification Area Icon"
2269- category="Utilities"
2270- description="Display an icon in the notification area for controlling Banshee."
2271- author="Aaron Bockover, Sebastian Dröge, Alexander Hixon, Gabriel Burt, Ruben Vermeersch"
2272- url="http://banshee.fm/"
2273- defaultEnabled="true">
2274-
2275- <Dependencies>
2276- <Addin id="Banshee.Services" version="1.0"/>
2277- <Addin id="Banshee.ThickClient" version="1.0"/>
2278- </Dependencies>
2279-
2280- <Extension path="/Banshee/ServiceManager/Service">
2281- <Service class="Banshee.NotificationArea.NotificationAreaService"/>
2282- </Extension>
2283-
2284-</Addin>
2285
2286=== removed directory '.pc/07_enable-library-watch-by-default.patch'
2287=== removed directory '.pc/07_enable-library-watch-by-default.patch/src'
2288=== removed directory '.pc/07_enable-library-watch-by-default.patch/src/Extensions'
2289=== removed directory '.pc/07_enable-library-watch-by-default.patch/src/Extensions/Banshee.LibraryWatcher'
2290=== removed file '.pc/07_enable-library-watch-by-default.patch/src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher.addin.xml'
2291--- .pc/07_enable-library-watch-by-default.patch/src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher.addin.xml 2011-02-26 22:05:24 +0000
2292+++ .pc/07_enable-library-watch-by-default.patch/src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher.addin.xml 1970-01-01 00:00:00 +0000
2293@@ -1,22 +0,0 @@
2294-<Addin
2295- id="Banshee.LibraryWatcher"
2296- version="1.0"
2297- compatVersion="1.0"
2298- copyright="© 2008-2009 Christian Martellini, Alexander Hixon, Alexander Kojevnikov. Licensed under the MIT X11 license."
2299- name="Library Watcher"
2300- category="Utilities"
2301- description="Automatically update music and video libraries."
2302- author="Christian Martellini, Alexander Hixon, Alexander Kojevnikov"
2303- url="http://banshee.fm/"
2304- defaultEnabled="false">
2305-
2306- <Dependencies>
2307- <Addin id="Banshee.Services" version="1.0"/>
2308- <Addin id="Banshee.ThickClient" version="1.0"/>
2309- </Dependencies>
2310-
2311- <Extension path="/Banshee/ServiceManager/Service">
2312- <Service class="Banshee.LibraryWatcher.LibraryWatcherService"/>
2313- </Extension>
2314-
2315-</Addin>
2316
2317=== removed directory '.pc/07_enable-mpris-by-default.patch'
2318=== removed directory '.pc/07_enable-mpris-by-default.patch/src'
2319=== removed directory '.pc/07_enable-mpris-by-default.patch/src/Extensions'
2320=== removed directory '.pc/07_enable-mpris-by-default.patch/src/Extensions/Banshee.Mpris'
2321=== removed file '.pc/07_enable-mpris-by-default.patch/src/Extensions/Banshee.Mpris/Banshee.Mpris.addin.xml'
2322--- .pc/07_enable-mpris-by-default.patch/src/Extensions/Banshee.Mpris/Banshee.Mpris.addin.xml 2011-02-20 14:48:54 +0000
2323+++ .pc/07_enable-mpris-by-default.patch/src/Extensions/Banshee.Mpris/Banshee.Mpris.addin.xml 1970-01-01 00:00:00 +0000
2324@@ -1,21 +0,0 @@
2325-<?xml version="1.0" encoding="utf-8"?>
2326-<Addin
2327- id="Banshee.Mpris"
2328- version="1.0"
2329- compatVersion="1.0"
2330- copyright="© 2010 John Millikin, Bertrand Lorentz. Licensed under the MIT X11 license."
2331- name="MPRIS D-Bus interface"
2332- description="Control Banshee using the MPRIS D-Bus interface."
2333- author="John Millikin, Bertrand Lorentz"
2334- category="Utilities"
2335- defaultEnabled="false">
2336-
2337- <Dependencies>
2338- <Addin id="Banshee.Services" version="1.0" />
2339- </Dependencies>
2340-
2341- <Extension path="/Banshee/ServiceManager/Service">
2342- <Service class="Banshee.Mpris.MprisService"/>
2343- </Extension>
2344-
2345-</Addin>
2346
2347=== removed directory '.pc/07_enable-soundmenu-by-default.patch'
2348=== removed directory '.pc/07_enable-soundmenu-by-default.patch/src'
2349=== removed directory '.pc/07_enable-soundmenu-by-default.patch/src/Extensions'
2350=== removed directory '.pc/07_enable-soundmenu-by-default.patch/src/Extensions/Banshee.SoundMenu'
2351=== removed file '.pc/07_enable-soundmenu-by-default.patch/src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu.addin.xml'
2352--- .pc/07_enable-soundmenu-by-default.patch/src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu.addin.xml 2011-02-26 22:05:24 +0000
2353+++ .pc/07_enable-soundmenu-by-default.patch/src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu.addin.xml 1970-01-01 00:00:00 +0000
2354@@ -1,24 +0,0 @@
2355-<?xml version="1.0" encoding="utf-8"?>
2356-<Addin
2357- id="Banshee.SoundMenu"
2358- version="1.0"
2359- compatVersion="1.0"
2360- copyright="Copyright 2010 Bertrand Lorentz. Licensed under the MIT X11 license."
2361- name="Sound Menu Integration"
2362- category="Utilities"
2363- description="Control Banshee from the Sound Menu."
2364- author="Bertrand Lorentz"
2365- url="http://banshee-project.org/"
2366- defaultEnabled="false">
2367-
2368- <Dependencies>
2369- <Addin id="Banshee.Services" version="1.0"/>
2370- <Addin id="Banshee.ThickClient" version="1.0"/>
2371- <Addin id="Banshee.Mpris" version="1.0"/>
2372- </Dependencies>
2373-
2374- <Extension path="/Banshee/ServiceManager/Service">
2375- <Service class="Banshee.SoundMenu.SoundMenuService"/>
2376- </Extension>
2377-
2378-</Addin>
2379
2380=== removed directory '.pc/08_remove_unrelevant_media.patch'
2381=== removed directory '.pc/08_remove_unrelevant_media.patch/src'
2382=== removed directory '.pc/08_remove_unrelevant_media.patch/src/Extensions'
2383=== removed directory '.pc/08_remove_unrelevant_media.patch/src/Extensions/Banshee.MeeGo'
2384=== removed directory '.pc/08_remove_unrelevant_media.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo'
2385=== removed file '.pc/08_remove_unrelevant_media.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs'
2386--- .pc/08_remove_unrelevant_media.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs 2011-02-20 14:48:54 +0000
2387+++ .pc/08_remove_unrelevant_media.patch/src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs 1970-01-01 00:00:00 +0000
2388@@ -1,422 +0,0 @@
2389-//
2390-// MediaPanelContents.cs
2391-//
2392-// Author:
2393-// Aaron Bockover <abockover@novell.com>
2394-//
2395-// Copyright 2010 Novell, Inc.
2396-//
2397-// Permission is hereby granted, free of charge, to any person obtaining a copy
2398-// of this software and associated documentation files (the "Software"), to deal
2399-// in the Software without restriction, including without limitation the rights
2400-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
2401-// copies of the Software, and to permit persons to whom the Software is
2402-// furnished to do so, subject to the following conditions:
2403-//
2404-// The above copyright notice and this permission notice shall be included in
2405-// all copies or substantial portions of the Software.
2406-//
2407-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2408-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2409-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2410-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2411-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2412-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2413-// THE SOFTWARE.
2414-
2415-using System;
2416-using System.Collections.Generic;
2417-
2418-using Mono.Unix;
2419-using Gtk;
2420-
2421-using Hyena;
2422-using Hyena.Data;
2423-using Hyena.Gui;
2424-using Hyena.Data.Gui;
2425-
2426-using Banshee.ServiceStack;
2427-using Banshee.Sources;
2428-using Banshee.Sources.Gui;
2429-using Banshee.Collection;
2430-using Banshee.Collection.Gui;
2431-using Banshee.MediaEngine;
2432-using Banshee.Gui;
2433-using Banshee.Gui.Widgets;
2434-
2435-namespace Banshee.MeeGo
2436-{
2437- public class MediaPanelContents : Table, ITrackModelSourceContents
2438- {
2439- private ArtistListView artist_view;
2440- private AlbumListView album_view;
2441- private TerseTrackListView track_view;
2442-
2443- private SourceComboBox source_combo_box;
2444- private SearchEntry search_entry;
2445- private MeeGoTrackInfoDisplay track_info_display;
2446-
2447- private ISource source;
2448- private Dictionary<object, double> model_positions = new Dictionary<object, double> ();
2449-
2450- protected MediaPanelContents (IntPtr raw) : base (raw)
2451- {
2452- }
2453-
2454- public MediaPanelContents () : base (3, 2, false)
2455- {
2456- BorderWidth = 5;
2457- RowSpacing = 6;
2458- ColumnSpacing = 7;
2459- RedrawOnAllocate = true;
2460- AppPaintable = true;
2461-
2462- BuildHeader ();
2463- BuildLibrary ();
2464- BuildNowPlaying ();
2465- BuildMessageBar ();
2466- ConnectEvents ();
2467-
2468- SetSource (ServiceManager.SourceManager.ActiveSource);
2469- }
2470-
2471- private void ConnectEvents ()
2472- {
2473- ServiceManager.SourceManager.ActiveSourceChanged += OnActiveSourceChanged;
2474-
2475- ServiceManager.Get<InterfaceActionService> ().TrackActions ["SearchForSameArtistAction"].Activated += OnProgrammaticSearch;
2476- ServiceManager.Get<InterfaceActionService> ().TrackActions ["SearchForSameAlbumAction"].Activated += OnProgrammaticSearch;
2477-
2478- ServiceManager.PlayerEngine.ConnectEvent ((args) => track_info_display.Visible =
2479- ServiceManager.PlayerEngine.CurrentState != PlayerState.Idle,
2480- PlayerEvent.StateChange | PlayerEvent.StartOfStream);
2481-
2482- source_combo_box.Model.Filter = (source) =>
2483- source == ServiceManager.SourceManager.MusicLibrary ||
2484- source.Parent == ServiceManager.SourceManager.MusicLibrary ||
2485- source.GetType ().FullName == "Banshee.PlayQueue.PlayQueueSource";
2486- source_combo_box.Model.Refresh ();
2487- source_combo_box.UpdateActiveSource ();
2488-
2489- search_entry.Changed += OnSearchEntryChanged;
2490-
2491- artist_view.SelectionProxy.Changed += OnBrowserViewSelectionChanged;
2492- album_view.SelectionProxy.Changed += OnBrowserViewSelectionChanged;
2493- }
2494-
2495-#region UI Construction
2496-
2497- private void BuildHeader ()
2498- {
2499- Attach (new Label {
2500- Markup = String.Format ("<span font_desc=\"Droid Sans Bold\" " +
2501- "size=\"x-large\" foreground=\"#606eff\">{0}</span>",
2502- GLib.Markup.EscapeText (Catalog.GetString ("Media"))),
2503- Xalign = 0.0f
2504- },
2505- 0, 2, 0, 1,
2506- AttachOptions.Fill | AttachOptions.Expand,
2507- AttachOptions.Shrink, 12, 0);
2508- }
2509-
2510- private void BuildLibrary ()
2511- {
2512- var box = new MeeGoHeaderBox () { Title = Catalog.GetString ("Library") };
2513-
2514- // Build the Library Header
2515- var header = new HBox () {
2516- Spacing = 5,
2517- BorderWidth = 5
2518- };
2519-
2520- var app_button = new Button (new Image () {
2521- IconSize = (int)IconSize.LargeToolbar,
2522- IconName = "media-player-banshee"
2523- }) {
2524- TooltipText = Catalog.GetString ("Launch the Banshee Media Player")
2525- };
2526- app_button.Clicked += (o, e) => {
2527- ServiceManager.SourceManager.SetActiveSource (ServiceManager.SourceManager.MusicLibrary);
2528- ServiceManager.Get<MeeGoService> ().PresentPrimaryInterface ();
2529- };
2530-
2531- header.PackStart (source_combo_box = new SourceComboBox (), false, false, 0);
2532- header.PackStart (app_button, false, false, 0);
2533- header.PackStart (search_entry = new SearchEntry (), true, true, 0);
2534- box.PackStartHighlighted (header, false, false, 0, MeeGoHeaderBox.HighlightFlags.Background);
2535-
2536- // Build the Library Views
2537- var views = new HBox () { Spacing = 5 };
2538- views.PackStart (SetupView (artist_view = new ArtistListView () {
2539- Name = "meego-panel-artists",
2540- WidthRequest = 150,
2541- DoNotRenderNullModel = true
2542- }), false, false, 0);
2543- views.PackStart (SetupView (album_view = new AlbumListView () {
2544- Name = "meego-panel-albums",
2545- DoNotRenderNullModel = true
2546- }), true, true, 0);
2547- box.PackStart (views, true, true, 0);
2548-
2549- Attach (box, 0, 1, 1, 2,
2550- AttachOptions.Expand | AttachOptions.Fill,
2551- AttachOptions.Expand | AttachOptions.Fill,
2552- 0, 0);
2553- }
2554-
2555- private void BuildNowPlaying ()
2556- {
2557- var box = new MeeGoHeaderBox () { Title = Catalog.GetString ("Now Playing") };
2558-
2559- var seek_slider = new ConnectedSeekSlider (SeekSliderLayout.Horizontal);
2560- seek_slider.StreamPositionLabel.FormatString = "<small>{0}</small>";
2561-
2562- track_info_display = new MeeGoTrackInfoDisplay () {
2563- HeightRequest = 64,
2564- NoShowAll = true
2565- };
2566-
2567- track_view = new TerseTrackListView () {
2568- Name = "meego-panel-tracks",
2569- WidthRequest = 220
2570- };
2571- track_view.ColumnController.Insert (new Column (null, "indicator",
2572- new ColumnCellStatusIndicator (null), 0.05, true, 20, 20), 0);
2573-
2574- box.PackStartHighlighted (track_info_display, false, false, 0, MeeGoHeaderBox.HighlightFlags.Background);
2575- box.PackStartHighlighted (seek_slider, false, false, 0, MeeGoHeaderBox.HighlightFlags.Background);
2576- box.PackStart (SetupView (track_view), true, true, 0);
2577- box.PackStartHighlighted (new PlaybackBox (), false, false, 0, MeeGoHeaderBox.HighlightFlags.TopLine);
2578-
2579- Attach (box, 1, 2, 1, 2,
2580- AttachOptions.Shrink,
2581- AttachOptions.Expand | AttachOptions.Fill,
2582- 0, 0);
2583- }
2584-
2585- private void BuildMessageBar ()
2586- {
2587- ConnectedMessageBar bar = new ConnectedMessageBar ();
2588- Attach (bar, 0, 2, 2, 3,
2589- AttachOptions.Expand | AttachOptions.Fill,
2590- AttachOptions.Shrink, 0, 0);
2591- bar.ShowAll ();
2592- }
2593-
2594- private ScrolledWindow SetupView (Widget view)
2595- {
2596- var scrolled = new ScrolledWindow () {
2597- VscrollbarPolicy = PolicyType.Automatic,
2598- HscrollbarPolicy = PolicyType.Never,
2599- ShadowType = ShadowType.None
2600- };
2601- scrolled.Add (view);
2602- return scrolled;
2603- }
2604-
2605-#endregion
2606-
2607-#region Background Rendering
2608-
2609- protected override void OnParentSet (Widget previous)
2610- {
2611- base.OnParentSet (previous);
2612-
2613- if (Parent != null) {
2614- Parent.ModifyBg (StateType.Normal, Style.White);
2615- }
2616- }
2617-
2618- protected override bool OnExposeEvent (Gdk.EventExpose evnt)
2619- {
2620- if (!Visible || !IsMapped) {
2621- return true;
2622- }
2623-
2624- RenderBackground (evnt.Window, evnt.Region);
2625- foreach (var child in Children) {
2626- PropagateExpose (child, evnt);
2627- }
2628-
2629- return true;
2630- }
2631-
2632- private void RenderBackground (Gdk.Window window, Gdk.Region region)
2633- {
2634- var cr = Gdk.CairoHelper.Create (window);
2635-
2636- var grad = new Cairo.LinearGradient (0, 0, 0, Allocation.Height);
2637- grad.AddColorStop (0, CairoExtensions.RgbToColor (0xffffff));
2638- grad.AddColorStop (1, CairoExtensions.RgbToColor (0xc3c3c3));
2639- cr.Pattern = grad;
2640- cr.Rectangle (0, 0, Allocation.Width, Allocation.Height);
2641- cr.Fill ();
2642- grad.Destroy ();
2643-
2644- CairoExtensions.DisposeContext (cr);
2645- }
2646-
2647-#endregion
2648-
2649-#region Event Handlers
2650-
2651- private void OnProgrammaticSearch (object o, EventArgs args)
2652- {
2653- Source source = ServiceManager.SourceManager.ActiveSource;
2654- search_entry.Ready = false;
2655- search_entry.Query = source.FilterQuery;
2656- search_entry.Ready = true;
2657- }
2658-
2659- private void OnBrowserViewSelectionChanged (object o, EventArgs args)
2660- {
2661- // Scroll the raising filter view to the top if "all" is selected
2662- var selection = (Hyena.Collections.Selection)o;
2663- if (!selection.AllSelected) {
2664- return;
2665- }
2666-
2667- if (artist_view.Selection == selection) {
2668- artist_view.ScrollTo (0);
2669- } else if (album_view.Selection == selection) {
2670- album_view.ScrollTo (0);
2671- }
2672- }
2673-
2674- private void OnSearchEntryChanged (object o, EventArgs args)
2675- {
2676- var source = ServiceManager.SourceManager.ActiveSource;
2677- if (source == null) {
2678- return;
2679- }
2680-
2681- source.FilterType = (TrackFilterType)search_entry.ActiveFilterID;
2682- source.FilterQuery = search_entry.Query;
2683- }
2684-
2685- private void OnActiveSourceChanged (SourceEventArgs args)
2686- {
2687- ThreadAssist.ProxyToMain (delegate {
2688- var source = ServiceManager.SourceManager.ActiveSource;
2689-
2690- search_entry.Ready = false;
2691- search_entry.CancelSearch ();
2692- search_entry.SearchSensitive = source != null && source.CanSearch;
2693-
2694- if (source != null && source.FilterQuery != null) {
2695- search_entry.Query = source.FilterQuery;
2696- search_entry.ActivateFilter ((int)source.FilterType);
2697- }
2698-
2699- ResetSource ();
2700- SetSource (source);
2701-
2702- search_entry.Ready = true;
2703- });
2704- }
2705-
2706- internal void SyncSearchEntry ()
2707- {
2708- OnActiveSourceChanged (null);
2709- }
2710-
2711-#endregion
2712-
2713-#region View<->Model binding
2714-
2715- private void SetModel<T> (IListModel<T> model)
2716- {
2717- ListView<T> view = FindListView <T> ();
2718- if (view != null) {
2719- SetModel (view, model);
2720- } else {
2721- Hyena.Log.DebugFormat ("Unable to find view for model {0}", model);
2722- }
2723- }
2724-
2725- private void SetModel<T> (ListView<T> view, IListModel<T> model)
2726- {
2727- if (view.Model != null) {
2728- model_positions[view.Model] = view.Vadjustment.Value;
2729- }
2730-
2731- if (model == null) {
2732- view.SetModel (null);
2733- return;
2734- }
2735-
2736- if (!model_positions.ContainsKey (model)) {
2737- model_positions[model] = 0.0;
2738- }
2739-
2740- view.SetModel (model, model_positions[model]);
2741- }
2742-
2743- private ListView<T> FindListView<T> ()
2744- {
2745- foreach (var view in new IListView [] { artist_view, album_view, track_view }) {
2746- if (view is ListView<T>) {
2747- return (ListView<T>)view;
2748- }
2749- }
2750- return null;
2751- }
2752-
2753-#endregion
2754-
2755-#region ISourceContents
2756-
2757- public bool SetSource (ISource source)
2758- {
2759- var track_source = source as ITrackModelSource;
2760- var filterable_source = source as IFilterableSource;
2761- if (track_source == null) {
2762- return false;
2763- }
2764-
2765- this.source = source;
2766-
2767- SetModel (track_view, track_source.TrackModel);
2768-
2769- if (filterable_source != null && filterable_source.CurrentFilters != null) {
2770- foreach (var model in filterable_source.CurrentFilters) {
2771- if (model is IListModel<ArtistInfo>) {
2772- SetModel (artist_view, (model as IListModel<ArtistInfo>));
2773- } else if (model is IListModel<AlbumInfo>) {
2774- SetModel (album_view, (model as IListModel<AlbumInfo>));
2775- }
2776- }
2777- }
2778-
2779- return true;
2780- }
2781-
2782- public void ResetSource ()
2783- {
2784- source = null;
2785- SetModel (track_view, null);
2786- SetModel (artist_view, null);
2787- SetModel (album_view, null);
2788- track_view.HeaderVisible = false;
2789- }
2790-
2791- public ISource Source {
2792- get { return source; }
2793- }
2794-
2795- public Widget Widget {
2796- get { return this; }
2797- }
2798-
2799-#endregion
2800-
2801-#region ITrackModelSourceContents
2802-
2803- public IListView<TrackInfo> TrackView {
2804- get { return track_view; }
2805- }
2806-
2807-#endregion
2808-
2809- }
2810-}
2811
2812=== renamed file '.pc/99_ltmain_as-needed.patch/ltmain.sh' => '.pc/99_ltmain_as-needed.patch/ltmain.sh.THIS'
2813=== renamed file '.pc/applied-patches' => '.pc/applied-patches.THIS'
2814=== modified file 'debian/changelog'
2815--- debian/changelog 2011-03-11 01:05:18 +0000
2816+++ debian/changelog 2011-03-28 07:18:25 +0000
2817@@ -1,3 +1,4 @@
2818+<<<<<<< TREE
2819 banshee (1.9.5-1ubuntu1) natty; urgency=low
2820
2821 * Merge from Debian Unstable, remaining changes:
2822@@ -36,6 +37,15 @@
2823
2824 -- Rodney Dawes <rodney.dawes@ubuntu.com> Mon, 28 Feb 2011 14:06:16 -0500
2825
2826+=======
2827+banshee (1.9.4-1ubuntu2) natty; urgency=low
2828+
2829+ * 0001-Add-support-for-u1ms-links.patch:
2830+ - Handle u1ms:// links in the U1 Music Store (LP: #723960)
2831+
2832+ -- Rodney Dawes <rodney.dawes@ubuntu.com> Mon, 28 Feb 2011 14:06:16 -0500
2833+
2834+>>>>>>> MERGE-SOURCE
2835 banshee (1.9.4-1ubuntu1) natty; urgency=low
2836
2837 * Merge from Debian Experimental, remaining changes:
2838
2839=== added file 'debian/patches/0001-Add-support-for-u1ms-links.patch'
2840--- debian/patches/0001-Add-support-for-u1ms-links.patch 1970-01-01 00:00:00 +0000
2841+++ debian/patches/0001-Add-support-for-u1ms-links.patch 2011-03-28 07:18:25 +0000
2842@@ -0,0 +1,83 @@
2843+diff --git a/data/desktop-files/banshee-1.desktop.mime b/data/desktop-files/banshee-1.desktop.mime
2844+index 0f26d00..653c099 100644
2845+--- a/data/desktop-files/banshee-1.desktop.mime
2846++++ b/data/desktop-files/banshee-1.desktop.mime
2847+@@ -135,3 +135,4 @@ video/x-ogm+ogg
2848+ video/x-theora
2849+ video/x-theora+ogg
2850+ x-scheme-handler/lastfm
2851++x-scheme-handler/u1ms
2852+diff --git a/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml b/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml
2853+index 89bd3f5..8d4c911 100644
2854+--- a/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml
2855++++ b/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml
2856+@@ -9,7 +9,7 @@
2857+ description="This extension grants access to the Ubuntu One Music Store, powered by 7digital."
2858+ author="Jo Shields"
2859+ url="http://one.ubuntu.com/"
2860+- defaultEnabled="false">
2861++ defaultEnabled="true">
2862+
2863+ <Dependencies>
2864+ <Addin id="Banshee.Services" version="1.0"/>
2865+diff --git a/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore/UbuntuOneMusicStoreSource.cs b/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore/UbuntuOneMusicStoreSource.cs
2866+index 260c384..4a9a4c6 100644
2867+--- a/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore/UbuntuOneMusicStoreSource.cs
2868++++ b/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore/UbuntuOneMusicStoreSource.cs
2869+@@ -3,8 +3,10 @@
2870+ //
2871+ // Authors:
2872+ // Jo Shields <directhex@apebox.org>
2873++// Rodney Dawes <rodney.dawes@canonical.com>
2874+ //
2875+ // Copyright (C) 2010 Jo Shields
2876++// Copyright (C) 2011 Canonical, Ltd.
2877+ //
2878+ // Permission is hereby granted, free of charge, to any person obtaining
2879+ // a copy of this software and associated documentation files (the
2880+@@ -28,6 +30,7 @@
2881+
2882+ using Mono.Unix;
2883+ using Gdk;
2884++using System;
2885+
2886+ using Hyena;
2887+
2888+@@ -51,6 +54,29 @@ namespace Banshee.UbuntuOneMusicStore
2889+ sort_order, "ubuntu-one-music-store")
2890+ {
2891+ Properties.SetString ("Icon.Name", "ubuntuone");
2892++
2893++ // So we can handle u1ms:// URIs
2894++ ServiceManager.Get<DBusCommandService> ().ArgumentPushed += OnCommandLineArgument;
2895++ }
2896++
2897++ ~UbuntuOneMusicStoreSource ()
2898++ {
2899++ ServiceManager.Get<DBusCommandService> ().ArgumentPushed -= OnCommandLineArgument;
2900++ }
2901++
2902++ private void OnCommandLineArgument (string uri, object value, bool isFile)
2903++ {
2904++ if (!isFile || String.IsNullOrEmpty (uri)) {
2905++ return;
2906++ }
2907++
2908++ Log.Debug ("U1MS: URI requested: ", uri);
2909++ // Handle u1ms:// URIs
2910++ if (uri.StartsWith ("u1ms://")) {
2911++ string http_url = uri.Replace ("u1ms://", "http://");
2912++ custom_view.Store.LoadStoreLink (http_url);
2913++ ServiceManager.SourceManager.SetActiveSource (this);
2914++ }
2915+ }
2916+
2917+ // A count of 0 will be hidden in the source TreeView
2918+@@ -127,6 +152,7 @@ namespace Banshee.UbuntuOneMusicStore
2919+ public void ResetSource () { }
2920+ public Gtk.Widget Widget { get { return store; } }
2921+ public ISource Source { get { return null; } }
2922++ public UbuntuOne.U1MusicStore Store { get { return store; } }
2923+ }
2924+ }
2925+ }
2926
2927=== modified file 'debian/patches/series'
2928--- debian/patches/series 2011-03-11 01:05:18 +0000
2929+++ debian/patches/series 2011-03-28 07:18:25 +0000
2930@@ -10,4 +10,5 @@
2931 07_enable-soundmenu-by-default.patch
2932 08_remove_unrelevant_media.patch
2933 0001-Revert-ArtworkManager-Cache-null-artwork-for-fast-lo.patch
2934+0001-Add-support-for-u1ms-links.patch
2935 99_ltmain_as-needed.patch
2936
2937=== modified file 'ltmain.sh'
2938--- ltmain.sh 2011-03-11 01:05:18 +0000
2939+++ ltmain.sh 2011-03-28 07:18:25 +0000
2940@@ -4716,11 +4716,6 @@
2941 arg=$func_stripname_result
2942 ;;
2943
2944- -Wl,--as-needed)
2945- deplibs="$deplibs $arg"
2946- continue
2947- ;;
2948-
2949 -Wl,*)
2950 func_stripname '-Wl,' '' "$arg"
2951 args=$func_stripname_result
2952@@ -5072,15 +5067,6 @@
2953 lib=
2954 found=no
2955 case $deplib in
2956- -Wl,--as-needed)
2957- if test "$linkmode,$pass" = "prog,link"; then
2958- compile_deplibs="$deplib $compile_deplibs"
2959- finalize_deplibs="$deplib $finalize_deplibs"
2960- else
2961- deplibs="$deplib $deplibs"
2962- fi
2963- continue
2964- ;;
2965 -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
2966 if test "$linkmode,$pass" = "prog,link"; then
2967 compile_deplibs="$deplib $compile_deplibs"
2968
2969=== modified file 'src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs'
2970--- src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs 2011-02-20 14:48:54 +0000
2971+++ src/Core/Banshee.Services/Banshee.Library/MusicLibrarySource.cs 2011-03-28 07:18:25 +0000
2972@@ -86,15 +86,6 @@
2973 DatabaseTrackModel.Reload ();
2974 }
2975 ));
2976-
2977- DatabaseTrackModel.Reloaded += delegate {
2978- if (TrackModel.Count == 0) {
2979- SetStatus (String.Format ("Please move your music to {0}", GetDefaultBaseDirectory ()),
2980- false, false, "dialog-info");
2981- } else {
2982- HideStatus ();
2983- }
2984- };
2985 }
2986
2987 public override string GetPluralItemCountString (int count)
2988
2989=== modified file 'src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs'
2990--- src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs 2011-02-20 14:48:54 +0000
2991+++ src/Core/Banshee.ThickClient/Banshee.Collection.Gui/ArtworkManager.cs 2011-03-28 07:18:25 +0000
2992@@ -49,6 +49,7 @@
2993 {
2994 private Dictionary<int, SurfaceCache> scale_caches = new Dictionary<int, SurfaceCache> ();
2995 private HashSet<int> cacheable_cover_sizes = new HashSet<int> ();
2996+ private HashSet<string> null_artwork_ids = new HashSet<string> ();
2997
2998 private class SurfaceCache : LruCache<string, Cairo.ImageSurface>
2999 {
3000@@ -116,8 +117,13 @@
3001 return surface;
3002 }
3003
3004+ if (null_artwork_ids.Contains (id)) {
3005+ return null;
3006+ }
3007+
3008 Pixbuf pixbuf = LookupScalePixbuf (id, size);
3009 if (pixbuf == null || pixbuf.Handle == IntPtr.Zero) {
3010+ null_artwork_ids.Add (id);
3011 return null;
3012 }
3013
3014@@ -157,12 +163,17 @@
3015 return null;
3016 }
3017
3018+ if (null_artwork_ids.Contains (id)) {
3019+ return null;
3020+ }
3021+
3022 // Find the scaled, cached file
3023 string path = CoverArtSpec.GetPathForSize (id, size);
3024 if (File.Exists (new SafeUri (path))) {
3025 try {
3026 return new Pixbuf (path);
3027 } catch {
3028+ null_artwork_ids.Add (id);
3029 return null;
3030 }
3031 }
3032@@ -179,6 +190,7 @@
3033 Pixbuf pixbuf = new Pixbuf (unconverted_path);
3034 if (pixbuf.Width < 50 || pixbuf.Height < 50) {
3035 Hyena.Log.DebugFormat ("Ignoring cover art {0} because less than 50x50", unconverted_path);
3036+ null_artwork_ids.Add (id);
3037 return null;
3038 }
3039
3040@@ -219,6 +231,7 @@
3041 } catch {}
3042 }
3043
3044+ null_artwork_ids.Add (id);
3045 return null;
3046 }
3047
3048@@ -238,6 +251,8 @@
3049 scale_caches[size].Remove (id);
3050 }
3051
3052+ null_artwork_ids.Remove (id);
3053+
3054 if (inMemoryCacheOnly) {
3055 return;
3056 }
3057
3058=== modified file 'src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml'
3059--- src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml 2011-02-20 14:48:54 +0000
3060+++ src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml 2011-03-28 07:18:25 +0000
3061@@ -5,7 +5,6 @@
3062 <placeholder name="NextArrowButton"/>
3063 <placeholder name="SeekSlider"/>
3064 <placeholder name="TrackInfoDisplay"/>
3065- <placeholder name="ExtensionToolBarPlaceHolder"/>
3066 <placeholder name="SourceActions">
3067 <toolitem name="RefreshSmartPlaylist" action="RefreshSmartPlaylistAction"/>
3068 </placeholder>
3069
3070=== modified file 'src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher.addin.xml'
3071--- src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher.addin.xml 2011-02-26 22:05:24 +0000
3072+++ src/Extensions/Banshee.LibraryWatcher/Banshee.LibraryWatcher.addin.xml 2011-03-28 07:18:25 +0000
3073@@ -8,7 +8,7 @@
3074 description="Automatically update music and video libraries."
3075 author="Christian Martellini, Alexander Hixon, Alexander Kojevnikov"
3076 url="http://banshee.fm/"
3077- defaultEnabled="true">
3078+ defaultEnabled="false">
3079
3080 <Dependencies>
3081 <Addin id="Banshee.Services" version="1.0"/>
3082
3083=== modified file 'src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs'
3084--- src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs 2011-02-20 14:48:54 +0000
3085+++ src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MediaPanelContents.cs 2011-03-28 07:18:25 +0000
3086@@ -63,7 +63,7 @@
3087 {
3088 }
3089
3090- public MediaPanelContents () : base (3, 2, false)
3091+ public MediaPanelContents () : base (2, 2, false)
3092 {
3093 BorderWidth = 5;
3094 RowSpacing = 6;
3095@@ -71,10 +71,9 @@
3096 RedrawOnAllocate = true;
3097 AppPaintable = true;
3098
3099- //BuildHeader ();
3100+ BuildHeader ();
3101 BuildLibrary ();
3102 BuildNowPlaying ();
3103- BuildMessageBar ();
3104 ConnectEvents ();
3105
3106 SetSource (ServiceManager.SourceManager.ActiveSource);
3107@@ -194,15 +193,6 @@
3108 0, 0);
3109 }
3110
3111- private void BuildMessageBar ()
3112- {
3113- ConnectedMessageBar bar = new ConnectedMessageBar ();
3114- Attach (bar, 0, 2, 2, 3,
3115- AttachOptions.Expand | AttachOptions.Fill,
3116- AttachOptions.Shrink, 0, 0);
3117- bar.ShowAll ();
3118- }
3119-
3120 private ScrolledWindow SetupView (Widget view)
3121 {
3122 var scrolled = new ScrolledWindow () {
3123
3124=== modified file 'src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs'
3125--- src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs 2011-02-20 14:48:54 +0000
3126+++ src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoPanel.cs 2011-03-28 07:18:25 +0000
3127@@ -48,7 +48,7 @@
3128 public MeeGoPanel ()
3129 {
3130 if (Instance != null) {
3131- throw new InvalidOperationException ("Only one Netbook Panel (MeegoPanel) instance should exist");
3132+ throw new InvalidOperationException ("Only one MeeGoPanel instance should exist");
3133 }
3134
3135 Instance = this;
3136@@ -56,7 +56,7 @@
3137 var timer = Log.DebugTimerStart ();
3138
3139 try {
3140- Log.Debug ("Attempting to create Netbook toolbar panel");
3141+ Log.Debug ("Attempting to create MeeGo toolbar panel");
3142 embedded_panel = new PanelGtk ("banshee", Catalog.GetString ("media"),
3143 null, "media-button", true);
3144 embedded_panel.ShowBeginEvent += (o, e) => {
3145@@ -70,12 +70,12 @@
3146 }
3147 } catch (Exception e) {
3148 if (!(e is DllNotFoundException)) {
3149- Log.Exception ("Could not bind to Netbook panel", e);
3150+ Log.Exception ("Could not bind to MeeGo panel", e);
3151 }
3152- window_panel = new Gtk.Window ("Netbook Media Panel");
3153+ window_panel = new Gtk.Window ("MeeGo Media Panel");
3154 }
3155
3156- Log.DebugTimerPrint (timer, "Netbook panel created: {0}");
3157+ Log.DebugTimerPrint (timer, "MeeGo panel created: {0}");
3158 }
3159
3160 public void Dispose ()
3161@@ -87,7 +87,7 @@
3162 var timer = Log.DebugTimerStart ();
3163 Contents = new MediaPanelContents ();
3164 Contents.ShowAll ();
3165- Log.DebugTimerPrint (timer, "Netbook panel contents created: {0}");
3166+ Log.DebugTimerPrint (timer, "MeeGo panel contents created: {0}");
3167
3168 if (embedded_panel != null) {
3169 embedded_panel.SetChild (Contents);
3170@@ -105,18 +105,9 @@
3171
3172 public void Hide ()
3173 {
3174- window_panel.Hide ();
3175 if (embedded_panel != null) {
3176 embedded_panel.Hide ();
3177 }
3178 }
3179-
3180- public void Show ()
3181- {
3182- window_panel.Show ();
3183- if (embedded_panel != null) {
3184- embedded_panel.Show ();
3185- }
3186- }
3187 }
3188 }
3189
3190=== modified file 'src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs'
3191--- src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs 2011-02-20 14:48:54 +0000
3192+++ src/Extensions/Banshee.MeeGo/Banshee.MeeGo/MeeGoService.cs 2011-03-28 07:18:25 +0000
3193@@ -26,7 +26,6 @@
3194 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
3195 //
3196
3197-using Mono.Unix;
3198 using System;
3199 using Gtk;
3200 using MeeGo.Panel;
3201@@ -39,7 +38,6 @@
3202 using Banshee.ServiceStack;
3203 using Banshee.MediaEngine;
3204 using Banshee.Gui;
3205-using Banshee.Gui.Widgets;
3206
3207 namespace Banshee.MeeGo
3208 {
3209@@ -86,7 +84,6 @@
3210 }
3211
3212 Initialize ();
3213- AddSwitchToPrimaryInterface ();
3214
3215 ServiceManager.ServiceStarted -= OnServiceStarted;
3216
3217@@ -100,15 +97,13 @@
3218 // assume we're probably not really running in a MeeGo environment,
3219 // so we just create the panel here (which is likely to just be
3220 // a separate top-level window for testing).
3221- panel = MeeGoPanel.Instance;
3222+ panel = MeeGoPanel.Instance ?? new MeeGoPanel ();
3223
3224 if (panel == null) {
3225- Log.Information ("Netbook extension initialized with hidden panel");
3226- //AddSwitchToPrimaryInterface ();
3227+ Log.Warning ("MeeGo extension initialized without a panel");
3228 return;
3229 }
3230
3231- elements_service.PrimaryWindow.Hide ();
3232 panel.BuildContents ();
3233
3234 elements_service.PrimaryWindowClose = () => {
3235@@ -116,32 +111,15 @@
3236 return true;
3237 };
3238
3239- }
3240-
3241- private void AddSwitchToPrimaryInterface ()
3242- {
3243- // Add switcher to primary interface:
3244- var app_button = new Button (new Image () {
3245- IconSize = (int)IconSize.LargeToolbar,
3246- IconName = "media-player-banshee"
3247- }) {
3248- TooltipText = Catalog.GetString ("Show the Netbook interface")
3249- };
3250- app_button.Clicked += (o, e) => {
3251- //ServiceManager.SourceManager.SetActiveSource (ServiceManager.SourceManager.MusicLibrary);
3252- ServiceManager.Get<MeeGoService> ().PresentNetbookInterface ();
3253- };
3254- Toolbar header_toolbar;
3255- InterfaceActionService action_service;
3256- action_service = ServiceManager.Get<InterfaceActionService> ();
3257- header_toolbar = (Toolbar)action_service.UIManager.GetWidget ("/HeaderToolbar");
3258- app_button.ShowAll ();
3259- action_service.PopulateToolbarPlaceholder (header_toolbar, "/HeaderToolbar/ExtensionToolBarPlaceHolder", app_button);
3260+ // Since the Panel is running, we don't actually ever want to quit!
3261+ Banshee.ServiceStack.Application.ShutdownRequested += () => {
3262+ elements_service.PrimaryWindow.Hide ();
3263+ return false;
3264+ };
3265 }
3266
3267 public void PresentPrimaryInterface ()
3268 {
3269- Log.Information ("Switch to traditional interface");
3270 elements_service.PrimaryWindow.Maximize ();
3271 elements_service.PrimaryWindow.Present ();
3272 if (panel != null) {
3273@@ -149,17 +127,6 @@
3274 }
3275 }
3276
3277- public void PresentNetbookInterface ()
3278- {
3279- Log.Information ("Switch to Netbook interface");
3280- if (panel == null) {
3281- panel = new MeeGoPanel ();
3282- Initialize ();
3283- }
3284- panel.Show ();
3285- elements_service.PrimaryWindow.Hide ();
3286- }
3287-
3288 public void Dispose ()
3289 {
3290 if (panel != null) {
3291
3292=== modified file 'src/Extensions/Banshee.MeeGo/Makefile.am'
3293--- src/Extensions/Banshee.MeeGo/Makefile.am 2011-02-20 14:48:54 +0000
3294+++ src/Extensions/Banshee.MeeGo/Makefile.am 2011-03-28 07:18:25 +0000
3295@@ -37,8 +37,7 @@
3296 com.meego.UX.Shell.Panels.banshee.service: com.meego.UX.Shell.Panels.banshee.service.in $(top_builddir)/config.log
3297 sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
3298
3299-desktopfiles_in_files = meego-panel-banshee.desktop.in \
3300- banshee-1.desktop.in
3301+desktopfiles_in_files = meego-panel-banshee.desktop.in
3302 desktopfiles_files = $(desktopfiles_in_files:.desktop.in=.desktop)
3303 desktopfilesdir = $(datadir)/mutter-meego/panels
3304 desktopfiles_DATA = $(desktopfiles_files)
3305@@ -49,9 +48,7 @@
3306 clean-local:
3307 rm -f com.meego.UX.Shell.Panels.banshee.service \
3308 meego-panel-banshee.desktop \
3309- meego-panel-banshee.desktop.in \
3310- banshee-1.desktop \
3311- banshee-1.desktop.in
3312+ meego-panel-banshee.desktop.in
3313
3314 else
3315 EXTRA_DIST = $(SOURCES) $(RESOURCES)
3316@@ -62,4 +59,3 @@
3317 meego-panel-banshee \
3318 com.meego.UX.Shell.Panels.banshee.service.in \
3319 meego-panel-banshee.desktop.in.in
3320- banshee-1.desktop.in.in
3321
3322=== modified file 'src/Extensions/Banshee.MeeGo/Makefile.in'
3323--- src/Extensions/Banshee.MeeGo/Makefile.in 2011-03-11 01:05:18 +0000
3324+++ src/Extensions/Banshee.MeeGo/Makefile.in 2011-03-28 07:18:25 +0000
3325@@ -637,14 +637,12 @@
3326 @HAVE_MEEGO_FALSE@EXTRA_DIST = $(SOURCES) $(RESOURCES) \
3327 @HAVE_MEEGO_FALSE@ Banshee.MeeGo.dll.config meego-panel-banshee \
3328 @HAVE_MEEGO_FALSE@ com.meego.UX.Shell.Panels.banshee.service.in \
3329-@HAVE_MEEGO_FALSE@ meego-panel-banshee.desktop.in.in \
3330-@HAVE_MEEGO_FALSE@ banshee-1.desktop.in.in
3331+@HAVE_MEEGO_FALSE@ meego-panel-banshee.desktop.in.in
3332 @HAVE_MEEGO_TRUE@EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_EXPANDED) \
3333 @HAVE_MEEGO_TRUE@ $(THEME_ICONS_SOURCE) \
3334 @HAVE_MEEGO_TRUE@ Banshee.MeeGo.dll.config meego-panel-banshee \
3335 @HAVE_MEEGO_TRUE@ com.meego.UX.Shell.Panels.banshee.service.in \
3336-@HAVE_MEEGO_TRUE@ meego-panel-banshee.desktop.in.in \
3337-@HAVE_MEEGO_TRUE@ banshee-1.desktop.in.in
3338+@HAVE_MEEGO_TRUE@ meego-panel-banshee.desktop.in.in
3339 @HAVE_MEEGO_TRUE@CLEANFILES = $(OUTPUT_FILES)
3340 @HAVE_MEEGO_TRUE@DISTCLEANFILES = *.pidb
3341 @HAVE_MEEGO_TRUE@MAINTAINERCLEANFILES = Makefile.in
3342@@ -652,7 +650,7 @@
3343 @HAVE_MEEGO_TRUE@panel_SCRIPTS = meego-panel-banshee
3344 @HAVE_MEEGO_TRUE@servicedir = $(datadir)/dbus-1/services
3345 @HAVE_MEEGO_TRUE@service_DATA = com.meego.UX.Shell.Panels.banshee.service
3346-@HAVE_MEEGO_TRUE@desktopfiles_in_files = meego-panel-banshee.desktop.in banshee-1.desktop.in
3347+@HAVE_MEEGO_TRUE@desktopfiles_in_files = meego-panel-banshee.desktop.in
3348 @HAVE_MEEGO_TRUE@desktopfiles_files = $(desktopfiles_in_files:.desktop.in=.desktop)
3349 @HAVE_MEEGO_TRUE@desktopfilesdir = $(datadir)/mutter-meego/panels
3350 @HAVE_MEEGO_TRUE@desktopfiles_DATA = $(desktopfiles_files)
3351@@ -975,9 +973,7 @@
3352 @HAVE_MEEGO_TRUE@clean-local:
3353 @HAVE_MEEGO_TRUE@ rm -f com.meego.UX.Shell.Panels.banshee.service \
3354 @HAVE_MEEGO_TRUE@ meego-panel-banshee.desktop \
3355-@HAVE_MEEGO_TRUE@ meego-panel-banshee.desktop.in \
3356-@HAVE_MEEGO_TRUE@ banshee-1.desktop \
3357-@HAVE_MEEGO_TRUE@ banshee-1.desktop.in
3358+@HAVE_MEEGO_TRUE@ meego-panel-banshee.desktop.in
3359
3360 # Tell versions [3.59,3.63) of GNU make to not export all variables.
3361 # Otherwise a system limit (for SysV at least) may be exceeded.
3362
3363=== removed file 'src/Extensions/Banshee.MeeGo/banshee-1.desktop.in.in'
3364--- src/Extensions/Banshee.MeeGo/banshee-1.desktop.in.in 2011-02-20 14:48:54 +0000
3365+++ src/Extensions/Banshee.MeeGo/banshee-1.desktop.in.in 1970-01-01 00:00:00 +0000
3366@@ -1,11 +0,0 @@
3367-[Desktop Entry]
3368-_Name=Banshee Netbook
3369-_GenericName=Netbook Media Player
3370-_X-GNOME-FullName=Netbook Banshee Media Player
3371-_Comment=Play and organize your media collection
3372-Exec=banshee --client=MeeGo
3373-Terminal=false
3374-Type=Application
3375-Icon=media-player-banshee
3376-Categories=GNOME;Audio;Music;Player;AudioVideo;
3377-StartupNotify=true
3378
3379=== modified file 'src/Extensions/Banshee.Mpris/Banshee.Mpris.addin.xml'
3380--- src/Extensions/Banshee.Mpris/Banshee.Mpris.addin.xml 2011-02-20 14:48:54 +0000
3381+++ src/Extensions/Banshee.Mpris/Banshee.Mpris.addin.xml 2011-03-28 07:18:25 +0000
3382@@ -8,7 +8,7 @@
3383 description="Control Banshee using the MPRIS D-Bus interface."
3384 author="John Millikin, Bertrand Lorentz"
3385 category="Utilities"
3386- defaultEnabled="true">
3387+ defaultEnabled="false">
3388
3389 <Dependencies>
3390 <Addin id="Banshee.Services" version="1.0" />
3391
3392=== modified file 'src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea.addin.xml'
3393--- src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea.addin.xml 2010-11-26 18:35:59 +0000
3394+++ src/Extensions/Banshee.NotificationArea/Banshee.NotificationArea.addin.xml 2011-03-28 07:18:25 +0000
3395@@ -9,7 +9,7 @@
3396 description="Display an icon in the notification area for controlling Banshee."
3397 author="Aaron Bockover, Sebastian Dröge, Alexander Hixon, Gabriel Burt, Ruben Vermeersch"
3398 url="http://banshee.fm/"
3399- defaultEnabled="false">
3400+ defaultEnabled="true">
3401
3402 <Dependencies>
3403 <Addin id="Banshee.Services" version="1.0"/>
3404
3405=== modified file 'src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu.addin.xml'
3406--- src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu.addin.xml 2011-02-26 22:05:24 +0000
3407+++ src/Extensions/Banshee.SoundMenu/Banshee.SoundMenu.addin.xml 2011-03-28 07:18:25 +0000
3408@@ -9,7 +9,7 @@
3409 description="Control Banshee from the Sound Menu."
3410 author="Bertrand Lorentz"
3411 url="http://banshee-project.org/"
3412- defaultEnabled="true">
3413+ defaultEnabled="false">
3414
3415 <Dependencies>
3416 <Addin id="Banshee.Services" version="1.0"/>
3417
3418=== modified file 'src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml'
3419--- src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml 2011-03-11 01:05:18 +0000
3420+++ src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml 2011-03-28 07:18:25 +0000
3421@@ -9,7 +9,7 @@
3422 description="This extension grants access to the Ubuntu One Music Store, powered by 7digital."
3423 author="Jo Shields"
3424 url="http://one.ubuntu.com/"
3425- defaultEnabled="true">
3426+ defaultEnabled="false">
3427
3428 <Dependencies>
3429 <Addin id="Banshee.Services" version="1.0"/>

Subscribers

People subscribed via source and target branches

to all changes: