[gnome-music] Finally fix the end of song error
- From: Seif Lotfy <seiflotfy src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music] Finally fix the end of song error
- Date: Mon, 29 Apr 2013 18:13:34 +0000 (UTC)
commit 529a46a9e80da6e29297fc7685fb04849a5fbf09
Author: Seif Lotfy <seif lotfy com>
Date: Mon Apr 29 20:13:18 2013 +0200
Finally fix the end of song error
src/widgets.js | 54 +++++++++++++++++++++++++++---------------------------
1 files changed, 27 insertions(+), 27 deletions(-)
---
diff --git a/src/widgets.js b/src/widgets.js
index 6cf8881..a9da73e 100644
--- a/src/widgets.js
+++ b/src/widgets.js
@@ -187,36 +187,36 @@ const AlbumWidget = new Lang.Class({
this.player.connect('playlist-item-changed', Lang.bind(this, this.updateModel));
},
- updateModel: function(player, playlist, iter){
+ updateModel: function(player, playlist, currentIter){
//this is not our playlist, return
if (playlist != this.model){
return true;}
- if (this.iterToClean){
- let next_iter = iter.copy();
- do {
- let item = playlist.get_value(next_iter, 5);
- playlist.set_value(next_iter, 0, item.get_title());
- // Hide now playing icon
- playlist.set_value(next_iter, 3, false);
- } while (!playlist.iter_next(next_iter))
- }
- this.iterToClean = iter.copy();
-
- // Highlight currently played song as bold
- let item = playlist.get_value(iter, 5);
- playlist.set_value(iter, 0, "<b>" + item.get_title() + "</b>");
- // Display now playing icon
- playlist.set_value(iter, 3, true);
-
- // grey out previous items
- let prev_iter = iter.copy();
- while(playlist.iter_previous(prev_iter)){
- let item = playlist.get_value(prev_iter, 5);
- let title = "<span color='grey'>" + item.get_title() + "</span>";
- playlist.set_value(prev_iter, 0, title);
- playlist.set_value(prev_iter, 3, false);
- }
- return false;
+ let currentSong = playlist.get_value(currentIter, 5);
+ let [res, iter] = playlist.get_iter_first();
+ if (!res)
+ return true;
+ let songPassed = false;
+ let iconVisible, title;
+ let i = 0;
+ do{
+ i++;
+ let song = playlist.get_value(iter, 5);
+
+ if (song == currentSong){
+ title = "<b>" + song.get_title() + "</b>";
+ iconVisible = true;
+ songPassed = true;
+ } else if (songPassed) {
+ title = "<span>"+song.get_title()+"</span>";
+ iconVisible = false;
+ } else {
+ title = "<span color='grey'>" + song.get_title() + "</span>";
+ iconVisible = false;
+ }
+ playlist.set_value(iter, 0, title);
+ playlist.set_value(iter, 3, iconVisible);
+ } while(playlist.iter_next(iter));
+ return true;
},
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]