summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodney Dawes <dobey@gnome.org>2011-02-28 13:11:29 -0500
committerRodney Dawes <dobey@gnome.org>2011-02-28 13:11:29 -0500
commit92ff207f0bd9c60332228f8abb25347c98e22af2 (patch)
tree2864f66b5d9208f25f3e60dcc09551fe441c2571
parent25c34221e3d5e287d93f7f6a2f756d00e9973466 (diff)
Add support for handling u1ms:// links
-rw-r--r--data/desktop-files/banshee-1.desktop.mime1
-rw-r--r--src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml2
-rw-r--r--src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore/UbuntuOneMusicStoreSource.cs26
3 files changed, 28 insertions, 1 deletions
diff --git a/data/desktop-files/banshee-1.desktop.mime b/data/desktop-files/banshee-1.desktop.mime
index 0f26d00a4..653c0992b 100644
--- a/data/desktop-files/banshee-1.desktop.mime
+++ b/data/desktop-files/banshee-1.desktop.mime
@@ -135,3 +135,4 @@ video/x-ogm+ogg
video/x-theora
video/x-theora+ogg
x-scheme-handler/lastfm
+x-scheme-handler/u1ms
diff --git a/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml b/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml
index 89bd3f550..be1eb26f3 100644
--- a/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml
+++ b/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore.addin.xml
@@ -9,7 +9,7 @@
description="This extension grants access to the Ubuntu One Music Store, powered by 7digital."
author="Jo Shields"
url="http://one.ubuntu.com/"
- defaultEnabled="false">
+ defaultEnabled="true">
<Dependencies>
<Addin id="Banshee.Services" version="1.0"/>
diff --git a/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore/UbuntuOneMusicStoreSource.cs b/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore/UbuntuOneMusicStoreSource.cs
index 260c3840e..4a9a4c633 100644
--- a/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore/UbuntuOneMusicStoreSource.cs
+++ b/src/Extensions/Banshee.UbuntuOneMusicStore/Banshee.UbuntuOneMusicStore/UbuntuOneMusicStoreSource.cs
@@ -3,8 +3,10 @@
//
// Authors:
// Jo Shields <directhex@apebox.org>
+// Rodney Dawes <rodney.dawes@canonical.com>
//
// Copyright (C) 2010 Jo Shields
+// Copyright (C) 2011 Canonical, Ltd.
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
@@ -28,6 +30,7 @@
using Mono.Unix;
using Gdk;
+using System;
using Hyena;
@@ -51,6 +54,28 @@ namespace Banshee.UbuntuOneMusicStore
sort_order, "ubuntu-one-music-store")
{
Properties.SetString ("Icon.Name", "ubuntuone");
+
+ // So we can handle u1ms:// URIs
+ ServiceManager.Get<DBusCommandService> ().ArgumentPushed += OnCommandLineArgument;
+ }
+
+ ~UbuntuOneMusicStoreSource ()
+ {
+ ServiceManager.Get<DBusCommandService> ().ArgumentPushed -= OnCommandLineArgument;
+ }
+
+ private void OnCommandLineArgument (string uri, object value, bool isFile)
+ {
+ if (!isFile || String.IsNullOrEmpty (uri)) {
+ return;
+ }
+
+ Log.Debug ("U1MS: URI requested: ", uri);
+ // Handle u1ms:// URIs
+ if (uri.StartsWith ("u1ms://")) {
+ string http_url = uri.Replace ("u1ms://", "http://");
+ custom_view.Store.LoadStoreLink (http_url);
+ }
}
// A count of 0 will be hidden in the source TreeView
@@ -127,6 +152,7 @@ namespace Banshee.UbuntuOneMusicStore
public void ResetSource () { }
public Gtk.Widget Widget { get { return store; } }
public ISource Source { get { return null; } }
+ public UbuntuOne.U1MusicStore Store { get { return store; } }
}
}
}