[gnome-music/playlists] add the missing renderers



commit 70c6343532b06da048621a09654459db5b3beeee
Author: Eslam Mostafa <me eslammostafa com>
Date:   Mon Jun 17 16:11:17 2013 +0200

    add the missing renderers

 src/widgets.js |   82 ++++++++++++++++++++++++++-----------------------------
 1 files changed, 39 insertions(+), 43 deletions(-)
---
diff --git a/src/widgets.js b/src/widgets.js
index 35ea51c..834287f 100644
--- a/src/widgets.js
+++ b/src/widgets.js
@@ -360,31 +360,36 @@ const SongsList = new Lang.Class({
     _onItemActivated: function (widget, id, path) {
         var iter = this._model.get_iter(path)[1]
         if (this._model.get_value(iter, 7) != errorIconName) {
-            this.player.setPlaylist(this.playlist, null, this._model, iter, 5);
+            this.player.setPlaylist("Playlist", null, this._model, iter, 5);
             this.player.setPlaying(true);
         }
     },
 
     _addItem: function(source, param, item) {
-        this._offset += 1;
         if (item == null)
             return;
+        log(item.get_duration());
+        this._offset += 1;
         var iter = this._model.append();
-        var song = "Unknown"
-        if (item.get_string(Grl.METADATA_KEY_ARTIST) != null)
-            song = item.get_string(Grl.METADATA_KEY_ARTIST)
         if ((item.get_title() == null) && (item.get_url() != null)) {
             song.set_title (extractFileName(item.get_url()));
         }
-        this._model.set(iter, [0, 1, 2, 3, 5], [song, song, song, song, item]);
         try {
             if(item.get_url())
                 this.player.discoverer.discover_uri(item.get_url());
-            this._model.set(iter, [7, 8, 9], [nowPlayingIconName, false, false]);
+            this._model.set(
+                iter,
+                [5, 7, 8, 9],
+                [item, nowPlayingIconName, false, false]
+            );
         } catch (err) {
             log(err.message);
             log("failed to discover url " + item.get_url());
-            this._model.set(iter, [7, 8, 9], [errorIconName, false, true]);
+            this._model.set(
+                iter,
+                [5, 7, 8, 9],
+                [item, errorIconName, false, true]
+            );
         }
     },
 
@@ -441,6 +446,32 @@ const SongsList = new Lang.Class({
                     durationRenderer.text = time;
                 }
             }));
+
+        let artistRenderer =
+            new Gd.StyledTextRenderer({ xpad: 32});
+        artistRenderer.add_class('dim-label');
+        artistRenderer.ellipsize = Pango.EllipsizeMode.END;
+        listWidget.add_renderer(artistRenderer, Lang.bind(this,
+            function(col, cell, model, iter) {
+                let item = model.get_value(iter, 5);
+                if (item) {
+                    artistRenderer.ellipsize = Pango.EllipsizeMode.END;
+                    artistRenderer.text = item.get_string(Grl.METADATA_KEY_ARTIST);
+                }
+            }));
+        let typeRenderer =
+            new Gd.StyledTextRenderer({ xpad: 32});
+        typeRenderer.add_class('dim-label');
+        typeRenderer.ellipsize = Pango.EllipsizeMode.END;
+        listWidget.add_renderer(typeRenderer, Lang.bind(this,
+            function(col, cell, model, iter) {
+                let item = model.get_value(iter, 5);
+                if (item) {
+                    typeRenderer.ellipsize = Pango.EllipsizeMode.END;
+                    typeRenderer.text = item.get_string(Grl.METADATA_KEY_ALBUM);
+                }
+            }));
+
     },
 
     _populate: function() {
@@ -451,41 +482,6 @@ const SongsList = new Lang.Class({
 
 });
 
-/*const PlaylistSongs = new Lang.Class({
-    Name: "PlaylistSongs",
-    Extends: Gtk.VBox,
-
-    _init: function (playlist, player) {
-        this.player = player;
-        this.playlist = playlist;
-        this.parent();
-        this.ui = new Gtk.Builder();
-        this.ui.add_from_resource('/org/gnome/music/ArtistAlbumsWidget.ui');
-        this.set_border_width(0);
-        this.ui.get_object("artist").set_label(this.playlist);
-        this.widgets = [];
-        this._vbox = new Gtk.VBox();
-        this._songsBox = new SongsList(this.playlist);
-        this._scrolledWindow = new Gtk.ScrolledWindow();
-        this._scrolledWindow.set_policy(
-            Gtk.PolicyType.NEVER,
-            Gtk.PolicyType.AUTOMATIC
-        );
-        this._scrolledWindow.add(this._vbox);
-        this._vbox.pack_start(this.ui.get_object("ArtistAlbumsWidget"), false, false, 0);
-        this._vbox.pack_start(this._songsBox, false, false, 16);
-        this.pack_start(this._scrolledWindow, true, true, 0);
-
-        this.show_all();
-    },
-
-    update: function(playlist) {
-        this._songsBox = null;
-        this._songsBox = new SongsList(playlist);
-    },
-
-});*/
-
 const ArtistAlbums = new Lang.Class({
     Name: "ArtistAlbumsWidget",
     Extends: Gtk.VBox,


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