[gnome-music] Added the search bar (not working yet)



commit 9914992fec527e33eef1aa5af62e3af7dfd1d7b9
Author: CÃsar GarcÃa Tapia <cesar garcia tapia openshine com>
Date:   Wed Oct 31 15:19:13 2012 +0100

    Added the search bar (not working yet)

 src/music-playlist.vala |   22 ++++++++++++++++++++++
 1 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/src/music-playlist.vala b/src/music-playlist.vala
index de2992f..24e5a49 100644
--- a/src/music-playlist.vala
+++ b/src/music-playlist.vala
@@ -18,17 +18,33 @@
 private class Music.Playlist: Object, Gee.Iterable<Grl.Media> {
 	public signal void song_selected (Grl.Media media, int index);
 	public signal void changed ();
+	public signal void shuffle_mode_changed (bool mode);
 
 	private Gee.ArrayList<Grl.Media> list;
 	private int current_index = 0;
 
+	private bool _shuffle;
+	private GLib.Settings settings;
+
+
 	private Gee.HashMap<string, Grl.Source> source_list = new Gee.HashMap<string, Grl.Source> ();
 
 	public Playlist () {
         set_grl ();
         list = new Gee.ArrayList<Grl.Media> ();
+
+        settings = new GLib.Settings ("org.gnome.Music");
+        settings.changed.connect (on_settings_key_changed);
 	}
 
+	public bool shuffle {
+        get { return _shuffle; }
+        set {
+            _shuffle = value;
+            settings.set_boolean ("shuffle", value);
+        }
+    }
+
 	public void select (Grl.Media media) {
 		if (media in list) {
 			current_index = list.index_of (media);
@@ -131,6 +147,12 @@ private class Music.Playlist: Object, Gee.Iterable<Grl.Media> {
         }
 	}
 
+    private void on_settings_key_changed (string key) {
+        if (key == "shuffle") {
+        	shuffle_mode_changed (settings.get_boolean ("shuffle"));
+        }
+    }
+
 	//Iterator methods
 
 	public Type element_type {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]