[gnome-music] playlistview: Cleanup



commit 0c0371499a243c1ff7673246b11a191ddc490115
Author: Marinus Schraal <mschraal src gnome org>
Date:   Sun Feb 26 16:37:00 2017 +0100

    playlistview: Cleanup
    
    PEP-8, PEP-257 & general cleanups.

 gnomemusic/views/playlistview.py |  366 ++++++++++++++++++++------------------
 1 files changed, 195 insertions(+), 171 deletions(-)
---
diff --git a/gnomemusic/views/playlistview.py b/gnomemusic/views/playlistview.py
index 3d5fab0..1d7dd69 100644
--- a/gnomemusic/views/playlistview.py
+++ b/gnomemusic/views/playlistview.py
@@ -36,6 +36,8 @@ playlists = Playlists.get_default()
 
 
 class PlaylistView(BaseView):
+    """Main view for playlists"""
+
     __gsignals__ = {
         'playlists-loaded': (GObject.SignalFlags.RUN_FIRST, None, ()),
         'playlist-songs-loaded': (GObject.SignalFlags.RUN_FIRST, None, ()),
@@ -46,32 +48,46 @@ class PlaylistView(BaseView):
 
     @log
     def __init__(self, window, player):
-        self.playlists_sidebar = Gd.MainView()
+        """Initialize
+
+        :param GtkWidget window: The main window
+        :param player: The main player object
+        """
+        self._playlists_sidebar = Gd.MainView()
 
-        BaseView.__init__(self, 'playlists', _("Playlists"), window,
-                               Gd.MainViewType.LIST, True, self.playlists_sidebar)
+        super().__init__('playlists', _("Playlists"), window,
+                         Gd.MainViewType.LIST, True, self._playlists_sidebar)
+
+        self._window = window
+        self.player = player
+
+        style_context = self._view.get_generic_view().get_style_context()
+        style_context.add_class('songs-list')
+        style_context.remove_class('content-view')
 
-        self._view.get_generic_view().get_style_context()\
-            .add_class('songs-list')
         self._add_list_renderers()
-        self._view.get_generic_view().get_style_context().remove_class('content-view')
 
         builder = Gtk.Builder()
         builder.add_from_resource('/org/gnome/Music/PlaylistControls.ui')
-        self.headerbar = builder.get_object('grid')
-        self.name_label = builder.get_object('playlist_name')
-        self.songs_count_label = builder.get_object('songs_count')
-        self.menubutton = builder.get_object('playlist_menubutton')
-        playlistPlayAction = Gio.SimpleAction.new('playlist_play', None)
-        playlistPlayAction.connect('activate', self._on_play_activate)
-        window.add_action(playlistPlayAction)
-        self.playlistDeleteAction = Gio.SimpleAction.new('playlist_delete', None)
-        self.playlistDeleteAction.connect('activate', self._on_delete_activate)
-        window.add_action(self.playlistDeleteAction)
+        headerbar = builder.get_object('grid')
+        self._name_label = builder.get_object('playlist_name')
+        self._songs_count_label = builder.get_object('songs_count')
+        self._menubutton = builder.get_object('playlist_menubutton')
+
+        playlist_play_action = Gio.SimpleAction.new('playlist_play', None)
+        playlist_play_action.connect('activate', self._on_play_activate)
+        self._window.add_action(playlist_play_action)
+
+        self._playlist_delete_action = Gio.SimpleAction.new('playlist_delete',
+                                                            None)
+        self._playlist_delete_action.connect('activate',
+                                             self._on_delete_activate)
+        self._window.add_action(self._playlist_delete_action)
+
         self._grid.insert_row(0)
-        self._grid.attach(self.headerbar, 1, 0, 1, 1)
+        self._grid.attach(headerbar, 1, 0, 1, 1)
 
-        self.playlists_model = Gtk.ListStore(
+        self._playlists_model = Gtk.ListStore(
             GObject.TYPE_STRING,
             GObject.TYPE_STRING,
             GObject.TYPE_STRING,
@@ -86,35 +102,41 @@ class PlaylistView(BaseView):
             GObject.TYPE_INT
         )
 
-        self.playlists_sidebar.set_view_type(Gd.MainViewType.LIST)
-        self.playlists_sidebar.set_model(self.playlists_model)
-        self.playlists_sidebar.set_hexpand(False)
-        self.playlists_sidebar.get_style_context().add_class('side-panel')
-        self.playlists_sidebar.get_generic_view().get_selection().set_mode(
+        self._playlists_sidebar.set_view_type(Gd.MainViewType.LIST)
+        self._playlists_sidebar.set_model(self._playlists_model)
+        self._playlists_sidebar.set_hexpand(False)
+        self._playlists_sidebar.get_style_context().add_class('side-panel')
+        self._pl_generic_view = self._playlists_sidebar.get_generic_view()
+        self._pl_generic_view.get_selection().set_mode(
             Gtk.SelectionMode.SINGLE)
-        self.playlists_sidebar.connect('item-activated', self._on_playlist_activated)
+        self._playlists_sidebar.connect('item-activated',
+                                        self._on_playlist_activated)
+
         self._grid.insert_column(0)
         self._grid.child_set_property(self.stack, 'top-attach', 0)
         self._grid.child_set_property(self.stack, 'height', 2)
         self._add_sidebar_renderers()
-        self.playlists_sidebar.get_generic_view().get_style_context().remove_class('content-view')
+        self._pl_generic_view.get_style_context().remove_class('content-view')
 
-        self.iter_to_clean = None
-        self.iter_to_clean_model = None
+        self._iter_to_clean = None
+        self._iter_to_clean_model = None
         self.current_playlist = None
-        self.current_playlist_index = None
-        self.pl_todelete = None
-        self.pl_todelete_index = None
+        self._current_playlist_index = None
+        self._pl_todelete = None
+        self._pl_todelete_index = None
         self.really_delete = True
-        self.songs_count = 0
-        self.window = window
+        self._songs_count = 0
+
         self._update_songs_count()
-        self.player = player
-        self.player.connect('playlist-item-changed', self.update_model)
+
+        self.player.connect('playlist-item-changed', self._update_model)
         playlists.connect('playlist-created', self._on_playlist_created)
-        playlists.connect('playlist-updated', self.on_playlist_update)
-        playlists.connect('song-added-to-playlist', self._on_song_added_to_playlist)
-        playlists.connect('song-removed-from-playlist', self._on_song_removed_from_playlist)
+        playlists.connect('playlist-updated', self._on_playlist_update)
+        playlists.connect('song-added-to-playlist',
+                          self._on_song_added_to_playlist)
+        playlists.connect('song-removed-from-playlist',
+                          self._on_song_removed_from_playlist)
+
         self.show_all()
 
     @log
@@ -135,62 +157,48 @@ class PlaylistView(BaseView):
         column_now_playing.set_fixed_width(48)
         column_now_playing.pack_start(now_playing_symbol_renderer, False)
         column_now_playing.set_cell_data_func(now_playing_symbol_renderer,
-                                              self._on_list_widget_icon_render, None)
+                                              self._on_list_widget_icon_render,
+                                              None)
         list_widget.insert_column(column_now_playing, 0)
 
         title_renderer = Gtk.CellRendererText(
-            xpad=0,
-            xalign=0.0,
-            yalign=0.5,
-            height=48,
-            ellipsize=Pango.EllipsizeMode.END
-        )
+            xpad=0, xalign=0.0, yalign=0.5, height=48,
+            ellipsize=Pango.EllipsizeMode.END)
         list_widget.add_renderer(title_renderer,
                                  self._on_list_widget_title_render, None)
         cols[0].add_attribute(title_renderer, 'text', 2)
 
         self._star_handler.add_star_renderers(list_widget, cols)
 
-        duration_renderer = Gd.StyledTextRenderer(
-            xpad=32,
-            xalign=1.0
-        )
+        duration_renderer = Gd.StyledTextRenderer(xpad=32, xalign=1.0)
         duration_renderer.add_class('dim-label')
         list_widget.add_renderer(duration_renderer,
                                  self._on_list_widget_duration_render, None)
 
         artist_renderer = Gd.StyledTextRenderer(
-            xpad=32,
-            ellipsize=Pango.EllipsizeMode.END
-        )
+            xpad=32, ellipsize=Pango.EllipsizeMode.END)
         artist_renderer.add_class('dim-label')
         list_widget.add_renderer(artist_renderer,
                                  self._on_list_widget_artist_render, None)
         cols[0].add_attribute(artist_renderer, 'text', 3)
 
         type_renderer = Gd.StyledTextRenderer(
-            xpad=32,
-            ellipsize=Pango.EllipsizeMode.END
-        )
+            xpad=32, ellipsize=Pango.EllipsizeMode.END)
         type_renderer.add_class('dim-label')
         list_widget.add_renderer(type_renderer,
                                  self._on_list_widget_type_render, None)
 
     @log
     def _add_sidebar_renderers(self):
-        list_widget = self.playlists_sidebar.get_generic_view()
+        list_widget = self._pl_generic_view
 
         cols = list_widget.get_columns()
         cells = cols[0].get_cells()
         cells[1].set_visible(False)
         cells[2].set_visible(False)
         type_renderer = Gd.StyledTextRenderer(
-            xpad=16,
-            ypad=16,
-            ellipsize=Pango.EllipsizeMode.END,
-            xalign=0.0,
-            width=220
-        )
+            xpad=16, ypad=16, ellipsize=Pango.EllipsizeMode.END, xalign=0.0,
+            width=220)
         list_widget.add_renderer(type_renderer, lambda *args: None, None)
         cols[0].clear_attributes(type_renderer)
         cols[0].add_attribute(type_renderer, "text", 2)
@@ -202,12 +210,10 @@ class PlaylistView(BaseView):
         if not model.iter_is_valid(_iter):
             return
 
-        item = model.get_value(_iter, 5)
+        item = model[_iter][5]
         if item:
-            seconds = item.get_duration()
-            minutes = seconds // 60
-            seconds %= 60
-            cell.set_property('text', '%i:%02i' % (minutes, seconds))
+            duration = item.get_duration()
+            cell.set_property('text', utils.seconds_to_string(duration))
 
     def _on_list_widget_artist_render(self, col, cell, model, _iter, data):
         pass
@@ -216,7 +222,7 @@ class PlaylistView(BaseView):
         if not model.iter_is_valid(_iter):
             return
 
-        item = model.get_value(_iter, 5)
+        item = model[_iter][5]
         if item:
             cell.set_property('text', utils.get_album_title(item))
 
@@ -228,10 +234,10 @@ class PlaylistView(BaseView):
         if not model.iter_is_valid(_iter):
             return
 
-        if model.get_value(_iter, 11) == DiscoveryStatus.FAILED:
+        if model[_iter][11] == DiscoveryStatus.FAILED:
             cell.set_property('icon-name', self._error_icon_name)
             cell.set_visible(True)
-        elif model.get_value(_iter, 5).get_url() == self.player.currentTrackUri:
+        elif model[_iter][5].get_url() == self.player.currentTrackUri:
             cell.set_property('icon-name', self._now_playing_icon_name)
             cell.set_visible(True)
         else:
@@ -240,20 +246,20 @@ class PlaylistView(BaseView):
     @log
     def _populate(self):
         self._init = True
-        self.window.push_loading_notification()
+        self._window.push_loading_notification()
         self.populate()
 
     @log
-    def update_model(self, player, playlist, currentIter):
-        if self.iter_to_clean:
-            self.iter_to_clean_model.set_value(self.iter_to_clean, 10, False)
+    def _update_model(self, player, playlist, current_iter):
+        if self._iter_to_clean:
+            self._iter_to_clean_model[self._iter_to_clean][10] = False
         if playlist != self.model:
             return False
 
-        self.model.set_value(currentIter, 10, True)
-        if self.model[currentIter][8] != self._error_icon_name:
-            self.iter_to_clean = currentIter.copy()
-            self.iter_to_clean_model = self.model
+        self.model[current_iter][10] = True
+        if self.model[current_iter][8] != self._error_icon_name:
+            self._iter_to_clean = current_iter.copy()
+            self._iter_to_clean_model = self.model
 
         return False
 
@@ -266,19 +272,17 @@ class PlaylistView(BaseView):
         if index is None:
             index = -1
         if not item:
-            self.window.pop_loading_notification()
+            self._window.pop_loading_notification()
             self.emit('playlists-loaded')
             return
-        _iter = self.playlists_model.insert_with_valuesv(
-            index,
-            [2, 5],
-            [utils.get_media_title(item), item])
-        if self.playlists_model.iter_n_children(None) == 1:
-            _iter = self.playlists_model.get_iter_first()
-            selection = self.playlists_sidebar.get_generic_view().get_selection()
+        _iter = self._playlists_model.insert_with_valuesv(
+            index, [2, 5], [utils.get_media_title(item), item])
+        if self._playlists_model.iter_n_children(None) == 1:
+            _iter = self._playlists_model.get_iter_first()
+            selection = self._pl_generic_view.get_selection()
             selection.select_iter(_iter)
-            self.playlists_sidebar.emit('item-activated', '0',
-                                        self.playlists_model.get_path(_iter))
+            self._playlists_sidebar.emit('item-activated', '0',
+                                         self._playlists_model.get_path(_iter))
 
     @log
     def _on_item_activated(self, widget, id, path):
@@ -290,31 +294,35 @@ class PlaylistView(BaseView):
             _iter = self.model.get_iter(path)
         except TypeError:
             return
-        if self.model.get_value(_iter, 8) != self._error_icon_name:
-            self.player.set_playlist(
-                'Playlist', self.current_playlist.get_id(),
-                self.model, _iter, 5, 11
-            )
+
+        if self.model[_iter][8] != self._error_icon_name:
+            self.player.set_playlist('Playlist',
+                                     self.current_playlist.get_id(),
+                                     self.model, _iter, 5, 11)
             self.player.set_playing(True)
 
     @log
-    def on_playlist_update(self, widget, playlist_id):
-        _iter = self.playlists_model.get_iter_first()
+    def _on_playlist_update(self, widget, playlist_id):
+        _iter = self._playlists_model.get_iter_first()
+
         while _iter:
-            playlist = self.playlists_model.get_value(_iter, 5)
-            if str(playlist_id) == playlist.get_id() and self.current_playlist == playlist:
-                path = self.playlists_model.get_path(_iter)
+            playlist = self._playlists_model[_iter][5]
+
+            if (str(playlist_id) == playlist.get_id()
+                    and self.current_playlist == playlist):
+                path = self._playlists_model.get_path(_iter)
                 GLib.idle_add(self._on_playlist_activated, None, None, path)
                 break
-            _iter = self.playlists_model.iter_next(_iter)
+
+            _iter = self._playlists_model.iter_next(_iter)
 
     @log
     def activate_playlist(self, playlist_id):
 
         def find_and_activate_playlist():
-            for playlist in self.playlists_model:
+            for playlist in self._playlists_model:
                 if playlist[5].get_id() == playlist_id:
-                    selection = self.playlists_sidebar.get_generic_view().get_selection()
+                    selection = self._pl_generic_view.get_selection()
                     if selection.iter_is_selected(playlist.iter):
                         self._on_play_activate(None)
                     else:
@@ -325,8 +333,10 @@ class PlaylistView(BaseView):
                             self.disconnect(handler)
                             self._on_play_activate(None)
 
-                        handler = self.connect('playlist-songs-loaded', songs_loaded_callback)
-                        self.playlists_sidebar.emit('item-activated', '0', playlist.path)
+                        handler = self.connect('playlist-songs-loaded',
+                                               songs_loaded_callback)
+                        self._playlists_sidebar.emit('item-activated', '0',
+                                                     playlist.path)
 
                     return
 
@@ -344,39 +354,42 @@ class PlaylistView(BaseView):
                     find_and_activate_playlist()
 
                 # Skip load of default playlist
-                def_handler = self.connect('playlist-songs-loaded', songs_loaded_callback)
+                def_handler = self.connect('playlist-songs-loaded',
+                                           songs_loaded_callback)
 
-            handler = self.connect('playlists-loaded', playlists_loaded_callback)
+            handler = self.connect('playlists-loaded',
+                                   playlists_loaded_callback)
 
             self._populate()
 
     @log
     def remove_playlist(self):
-        if not self.current_playlist_is_protected():
+        """Removes the current selected playlist"""
+        if not self._current_playlist_is_protected():
             self._on_delete_activate(None)
 
     @log
     def _on_playlist_activated(self, widget, item_id, path):
-        _iter = self.playlists_model.get_iter(path)
-        playlist_name = self.playlists_model.get_value(_iter, 2)
-        playlist = self.playlists_model.get_value(_iter, 5)
+        _iter = self._playlists_model.get_iter(path)
+        playlist_name = self._playlists_model[_iter][2]
+        playlist = self._playlists_model[_iter][5]
 
         self.current_playlist = playlist
-        self.name_label.set_text(playlist_name)
-        self.current_playlist_index = int(path.to_string())
+        self._name_label.set_text(playlist_name)
+        self._current_playlist_index = int(path.to_string())
 
         # if the active queue has been set by this playlist,
         # use it as model, otherwise build the liststore
         self._view.set_model(None)
         self.model.clear()
-        self.songs_count = 0
+        self._songs_count = 0
         grilo.populate_playlist_songs(playlist, self._add_item)
 
         # disable delete button if current playlist is a smart playlist
-        if self.current_playlist_is_protected():
-            self.playlistDeleteAction.set_enabled(False)
+        if self._current_playlist_is_protected():
+            self._playlist_delete_action.set_enabled(False)
         else:
-            self.playlistDeleteAction.set_enabled(True)
+            self._playlist_delete_action.set_enabled(True)
 
     @log
     def _add_item(self, source, param, item, remaining=0, data=None):
@@ -392,26 +405,27 @@ class PlaylistView(BaseView):
                 self.player._validate_next_track()
             self.emit('playlist-songs-loaded')
             return
+
         self._offset += 1
         title = utils.get_media_title(item)
         item.set_title(title)
         artist = utils.get_album_title(item)
-        model.insert_with_valuesv(
-            -1,
-            [2, 3, 5, 9],
-            [title, artist, item, item.get_favourite()])
-        self.songs_count += 1
+        model.insert_with_valuesv(-1, [2, 3, 5, 9],
+                                  [title, artist, item, item.get_favourite()])
+
+        self._songs_count += 1
 
     @log
     def _update_songs_count(self):
-        self.songs_count_label.set_text(
-            ngettext("%d Song", "%d Songs", self.songs_count)
-            % self.songs_count)
+        self._songs_count_label.set_text(
+            ngettext("%d Song", "%d Songs", self._songs_count)
+            % self._songs_count)
 
     @log
     def _on_selection_mode_changed(self, widget, data=None):
-        self.playlists_sidebar.set_sensitive(not self._header_bar._selectionMode)
-        self.menubutton.set_sensitive(not self._header_bar._selectionMode)
+        self._playlists_sidebar.set_sensitive(
+            not self._header_bar._selectionMode)
+        self._menubutton.set_sensitive(not self._header_bar._selectionMode)
 
     @log
     def _on_play_activate(self, menuitem, data=None):
@@ -419,13 +433,12 @@ class PlaylistView(BaseView):
         if not _iter:
             return
 
-        self._view.get_generic_view().get_selection().\
-            select_path(self.model.get_path(_iter))
-        self._view.emit('item-activated', '0',
-                       self.model.get_path(_iter))
+        selection = self._view.get_generic_view().get_selection()
+        selection.select_path(self.model.get_path(_iter))
+        self._view.emit('item-activated', '0', self.model.get_path(_iter))
 
     @log
-    def current_playlist_is_protected(self):
+    def _current_playlist_is_protected(self):
         current_playlist_id = self.current_playlist.get_id()
         if current_playlist_id in StaticPlaylists().get_ids():
             return True
@@ -433,97 +446,108 @@ class PlaylistView(BaseView):
             return False
 
     @log
-    def stage_playlist_for_deletion(self):
+    def _stage_playlist_for_deletion(self):
         self.model.clear()
-        self.pl_todelete_index = self.current_playlist_index
-        _iter = self.playlists_sidebar.get_generic_view().get_selection().get_selected()[1]
-        self.pl_todelete = self.playlists_model.get_value(_iter, 5)
+        self._pl_todelete_index = self._current_playlist_index
+        _iter = self._pl_generic_view.get_selection().get_selected()[1]
+        self._pl_todelete = self._playlists_model[_iter][5]
 
         if not _iter:
             return
 
-        iter_next = self.playlists_model.iter_next(_iter)\
-            or self.playlists_model.iter_previous(_iter)
-        self.playlists_model.remove(_iter)
+        iter_next = (self._playlists_model.iter_next(_iter)
+                     or self._playlists_model.iter_previous(_iter))
+        self._playlists_model.remove(_iter)
 
         if iter_next:
-            selection = self.playlists_sidebar.get_generic_view().get_selection()
+            selection = self._pl_generic_view.get_selection()
             selection.select_iter(iter_next)
-            self.playlists_sidebar.emit('item-activated', '0',
-                                        self.playlists_model.get_path(iter_next))
+            self._playlists_sidebar.emit(
+                'item-activated', '0',
+                self._playlists_model.get_path(iter_next))
 
     @log
     def undo_playlist_deletion(self):
-        self._add_playlist_item_to_model(self.pl_todelete, self.pl_todelete_index)
+        """Revert the last playlist removal"""
+        self._add_playlist_item_to_model(self._pl_todelete,
+                                         self._pl_todelete_index)
 
     @log
     def _on_delete_activate(self, menuitem, data=None):
-        self.window.show_playlist_notification()
-        self.stage_playlist_for_deletion()
+        self._window.show_playlist_notification()
+        self._stage_playlist_for_deletion()
 
     @log
     def _on_playlist_created(self, playlists, item):
         self._add_playlist_item_to_model(item)
-        if self.playlists_model.iter_n_children(None) == 1:
-            _iter = self.playlists_model.get_iter_first()
-            selection = self.playlists_sidebar.get_generic_view().get_selection()
+        if self._playlists_model.iter_n_children(None) == 1:
+            _iter = self._playlists_model.get_iter_first()
+            selection = self._pl_generic_view.get_selection()
             selection.select_iter(_iter)
-            self.playlists_sidebar.emit('item-activated', '0',
-                                        self.playlists_model.get_path(_iter))
+            self._playlists_sidebar.emit('item-activated', '0',
+                                         self._playlists_model.get_path(_iter))
 
     @log
     def _on_song_added_to_playlist(self, playlists, playlist, item):
-        if self.current_playlist and \
-           playlist.get_id() == self.current_playlist.get_id():
+        if (self.current_playlist
+                and playlist.get_id() == self.current_playlist.get_id()):
             self._add_item_to_model(item, self.model)
 
     @log
     def _on_song_removed_from_playlist(self, playlists, playlist, item):
-        if self.current_playlist and \
-           playlist.get_id() == self.current_playlist.get_id():
+        if (self.current_playlist
+                and playlist.get_id() == self.current_playlist.get_id()):
             model = self.model
         else:
             return
 
-        update_playing_track = False
+        # checks if the to be removed track is now being played
+        def is_playing(row):
+            if (self.current_playlist
+                    and playlist.get_id() == self.current_playlist.get_id()):
+                if (self.player.currentTrack is not None
+                        and self.player.currentTrack.valid()):
+                    track_path = self.player.currentTrack.get_path()
+                    track_path_str = track_path.to_string()
+                    if (row.path is not None
+                            and row.path.to_string() == track_path_str):
+                        return True
+            return False
+
         for row in model:
             if row[5].get_id() == item.get_id():
-                # Is the removed track now being played?
-                if self.current_playlist and \
-                   playlist.get_id() == self.current_playlist.get_id():
-                    if self.player.currentTrack is not None and self.player.currentTrack.valid():
-                        currentTrackpath = self.player.currentTrack.get_path().to_string()
-                        if row.path is not None and row.path.to_string() == currentTrackpath:
-                            update_playing_track = True
-
-                nextIter = model.iter_next(row.iter)
+
+                is_being_played = is_playing(row)
+
+                next_iter = model.iter_next(row.iter)
                 model.remove(row.iter)
 
                 # Reload the model and switch to next song
-                if update_playing_track:
-                    if nextIter is None:
+                if is_being_played:
+                    if next_iter is None:
                         # Get first track if next track is not valid
-                        nextIter = model.get_iter_first()
-                        if nextIter is None:
+                        next_iter = model.get_iter_first()
+                        if next_iter is None:
                             # Last track was removed
                             return
 
-                    self.iter_to_clean = None
-                    self.update_model(self.player, model, nextIter)
-                    self.player.set_playlist('Playlist', playlist.get_id(), model, nextIter, 5, 11)
+                    self._iter_to_clean = None
+                    self._update_model(self.player, model, next_iter)
+                    self.player.set_playlist('Playlist', playlist.get_id(),
+                                             model, next_iter, 5, 11)
                     self.player.set_playing(True)
 
                 # Update songs count
-                self.songs_count -= 1
+                self._songs_count -= 1
                 self._update_songs_count()
                 return
 
     @log
     def populate(self):
-        self.playlists_model.clear()
+        self._playlists_model.clear()
         grilo.populate_playlists(self._offset, self._add_playlist_item)
 
     @log
     def get_selected_tracks(self, callback):
-        callback([self.model.get_value(self.model.get_iter(path), 5)
+        callback([self.model[self.model.get_iter(path)][5]
                   for path in self._view.get_selection()])


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