diff options
author | Sebastien Bacher <seb128@ubuntu.com> | 2012-07-12 20:07:41 +0200 |
---|---|---|
committer | Sebastien Bacher <seb128@ubuntu.com> | 2012-07-12 20:07:41 +0200 |
commit | f9fad5d468279e2d315a7759b37eec17bdd7b327 (patch) | |
tree | 6b25e32aea02468261a63a8cf1d24ad9c170c40e /src/settings-manager.vala | |
parent | b68112634c6721221dc7b82e04f798378e26bb9e (diff) | |
parent | 612866753e2b554abb0b448ae6a8c8ce1c2f4d87 (diff) | |
download | ayatana-indicator-sound-f9fad5d468279e2d315a7759b37eec17bdd7b327.tar.gz ayatana-indicator-sound-f9fad5d468279e2d315a7759b37eec17bdd7b327.tar.bz2 ayatana-indicator-sound-f9fad5d468279e2d315a7759b37eec17bdd7b327.zip |
* New upstream release.
- Allow setting preferred media players through a settings key.
- Fix sound indicator not working after Amarok close.
- Explicit handling of Ardour
- Fix deprecated GTK+ API calls
* debian/patches/lp_992262.patch:
* debian/patches/lp_902715.patch:
- dropped, the fix is in the new version
Diffstat (limited to 'src/settings-manager.vala')
-rw-r--r-- | src/settings-manager.vala | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/settings-manager.vala b/src/settings-manager.vala index d57241e..458ac21 100644 --- a/src/settings-manager.vala +++ b/src/settings-manager.vala @@ -22,12 +22,14 @@ public class SettingsManager : GLib.Object { private Settings settings; public signal void blacklist_updates ( string[] new_blacklist ); + public signal void preferred_updates (Gee.ArrayList<string> new_preferred); public SettingsManager ( ){ } construct{ this.settings = new Settings ("com.canonical.indicator.sound"); - this.settings.changed["blacklisted-media-players"].connect (on_blacklist_event); + this.settings.changed["blacklisted-media-players"].connect (on_blacklist_event); + this.settings.changed["preferred-media-players"].connect (on_preferred_event); } public string[] fetch_blacklist() @@ -35,9 +37,24 @@ public class SettingsManager : GLib.Object return this.settings.get_strv ("blacklisted-media-players"); } + public ArrayList<string> fetch_preferred() + { + var list = new ArrayList<string>(); + + var preferred = this.settings.get_strv ("preferred-media-players"); + var interested = fetch_interested (); + + foreach (var s in preferred) { + if (!(s in list) && interested.contains (s)) + list.add (s); + } + + return list; + } + public ArrayList<string> fetch_interested() { - var blacklisted = this.settings.get_strv ("blacklisted-media-players"); + var blacklisted = fetch_blacklist (); var interested = this.settings.get_strv ("interested-media-players"); var list = new ArrayList<string>(); foreach(var s in interested){ @@ -91,6 +108,11 @@ public class SettingsManager : GLib.Object this.blacklist_updates(this.settings.get_strv ("blacklisted-media-players")); } + private void on_preferred_event() + { + this.preferred_updates (this.fetch_preferred()); + } + // Convenient debug method inorder to provide visability over // the contents of both interested and blacklisted containers in its gsettings /** |