[gnome-music/wip/jfelder/simplify-player-model: 1/2] player: Remove field parameter from set_playlist



commit b6c50ea295128f0a69cb7a8a295f19a27cf22e87
Author: Jean Felder <jean felder gmail com>
Date:   Thu Feb 15 16:49:31 2018 +0100

    player: Remove field parameter from set_playlist
    
    This parameter is unecessary as it is always equal to 5.
    Rename playlistField attribute to playlist_field.
    Use playlist_field in artistalbumwidget.

 gnomemusic/mpris.py                     | 19 +++++++++----------
 gnomemusic/player.py                    | 27 +++++++++++++++------------
 gnomemusic/views/playlistview.py        | 11 +++++------
 gnomemusic/views/searchview.py          |  2 +-
 gnomemusic/views/songsview.py           |  2 +-
 gnomemusic/widgets/albumwidget.py       |  8 ++++----
 gnomemusic/widgets/artistalbumwidget.py |  4 ++--
 7 files changed, 37 insertions(+), 36 deletions(-)
---
diff --git a/gnomemusic/mpris.py b/gnomemusic/mpris.py
index a282b2a..4781274 100644
--- a/gnomemusic/mpris.py
+++ b/gnomemusic/mpris.py
@@ -350,7 +350,7 @@ class MediaPlayer2Service(Server):
     @log
     def _get_media_from_id(self, track_id):
         for track in self.player.playlist:
-            media = track[self.player.playlistField]
+            media = track[self.player.playlist_field]
             if track_id == self._get_media_id(media):
                 return media
         return None
@@ -358,7 +358,7 @@ class MediaPlayer2Service(Server):
     @log
     def _get_track_list(self):
         if self.player.playlist:
-            return [self._get_media_id(track[self.player.playlistField])
+            return [self._get_media_id(track[self.player.playlist_field])
                     for track in self.player.playlist]
         else:
             return []
@@ -463,7 +463,7 @@ class MediaPlayer2Service(Server):
         if self.first_song_handler:
             model.disconnect(self.first_song_handler)
             self.first_song_handler = 0
-        self.player.set_playlist('Songs', None, model, iter_, 5)
+        self.player.set_playlist('Songs', None, model, iter_)
         self.player.set_playing(True)
 
     @log
@@ -496,7 +496,7 @@ class MediaPlayer2Service(Server):
     def _on_playlist_modified(self, path=None, _iter=None, data=None):
         if self.player.currentTrack and self.player.currentTrack.valid():
             path = self.player.currentTrack.get_path()
-            currentTrack = self.player.playlist[path][self.player.playlistField]
+            currentTrack = self.player.playlist[path][self.player.playlist_field]
             track_list = self._get_track_list()
             self.TrackListReplaced(track_list, self._get_media_id(currentTrack))
             self.PropertiesChanged(MediaPlayer2Service.MEDIA_PLAYER2_TRACKLIST_IFACE,
@@ -591,13 +591,12 @@ class MediaPlayer2Service(Server):
 
     def GoTo(self, track_id):
         for track in self.player.playlist:
-            media = track[self.player.playlistField]
+            media = track[self.player.playlist_field]
             if track_id == self._get_media_id(media):
-                self.player.set_playlist(self.player.playlistType,
-                                         self.player.playlistId,
-                                         self.player.playlist,
-                                         track.iter,
-                                         self.player.playlistField)
+                self.player.set_playlist(
+                    self.player.playlistType, self.player.playlistId,
+                    self.player.playlist, track.iter)
+
                 self.player.play()
                 return
 
diff --git a/gnomemusic/player.py b/gnomemusic/player.py
index 5432377..7155828 100644
--- a/gnomemusic/player.py
+++ b/gnomemusic/player.py
@@ -107,7 +107,7 @@ class Player(GObject.GObject):
         self.playlist = None
         self.playlistType = None
         self.playlistId = None
-        self.playlistField = None
+        self.playlist_field = 5
         self.currentTrack = None
         self.currentTrackUri = None
         self._missingPluginMessages = []
@@ -357,8 +357,9 @@ class Player(GObject.GObject):
                 currentTrack = self.playlist.get_path(self.playlist.get_iter_first())
                 if currentTrack:
                     self.currentTrack = Gtk.TreeRowReference.new(self.playlist, currentTrack)
+                    iter_ = self.playlist.get_iter(self.currentTrack.get_path())
                     self.currentTrackUri = self.playlist.get_value(
-                        self.playlist.get_iter(self.currentTrack.get_path()), 5).get_url()
+                        iter_, self.playlist_field).get_url()
                 else:
                     self.currentTrack = None
                 self.load(self.get_current_media())
@@ -375,8 +376,9 @@ class Player(GObject.GObject):
     def _on_glib_idle(self):
         self.currentTrack = self.nextTrack
         if self.currentTrack and self.currentTrack.valid():
+            iter_ = self.playlist.get_iter(self.currentTrack.get_path())
             self.currentTrackUri = self.playlist.get_value(
-                self.playlist.get_iter(self.currentTrack.get_path()), 5).get_url()
+                iter_, self.playlist_field).get_url()
         self.play()
 
     @log
@@ -619,8 +621,8 @@ class Player(GObject.GObject):
 
         _iter = self.playlist.get_iter(self.nextTrack.get_path())
         status = self.playlist.get_value(_iter, self.discovery_status_field)
-        nextSong = self.playlist.get_value(_iter, self.playlistField)
-        url = self.playlist.get_value(_iter, 5).get_url()
+        nextSong = self.playlist.get_value(_iter, self.playlist_field)
+        url = nextSong.get_url()
 
         # Skip remote songs discovery
         if url.startswith('http://') or url.startswith('https://'):
@@ -689,8 +691,9 @@ class Player(GObject.GObject):
         self.currentTrack = self.nextTrack
 
         if self.currentTrack and self.currentTrack.valid():
+            iter_ = self.playlist.get_iter(self.currentTrack.get_path())
             self.currentTrackUri = self.playlist.get_value(
-                self.playlist.get_iter(self.currentTrack.get_path()), 5).get_url()
+                iter_, self.playlist_field).get_url()
             self.play()
 
     @log
@@ -711,8 +714,9 @@ class Player(GObject.GObject):
 
         self.currentTrack = self._get_previous_track()
         if self.currentTrack and self.currentTrack.valid():
+            iter_ = self.playlist.get_iter(self.currentTrack.get_path())
             self.currentTrackUri = self.playlist.get_value(
-                self.playlist.get_iter(self.currentTrack.get_path()), 5).get_url()
+                iter_, self.playlist_field).get_url()
             self.play()
 
     @log
@@ -725,8 +729,7 @@ class Player(GObject.GObject):
     # FIXME: set the discovery field to 11 to be safe, but for some
     # models it is 12.
     @log
-    def set_playlist(self, type, id, model, iter, field,
-                     discovery_status_field=11):
+    def set_playlist(self, type, id, model, iter, discovery_status_field=11):
         old_playlist = self.playlist
         if old_playlist != model:
             self.playlist = model
@@ -739,9 +742,9 @@ class Player(GObject.GObject):
         self.playlistId = id
         self.currentTrack = Gtk.TreeRowReference.new(model, model.get_path(iter))
         if self.currentTrack and self.currentTrack.valid():
+            iter_ = self.playlist.get_iter(self.currentTrack.get_path())
             self.currentTrackUri = self.playlist.get_value(
-                self.playlist.get_iter(self.currentTrack.get_path()), 5).get_url()
-        self.playlistField = field
+                iter_, self.playlist_field).get_url()
         self.discovery_status_field = discovery_status_field
 
         if old_playlist != model:
@@ -1060,7 +1063,7 @@ class Player(GObject.GObject):
         currentTrack = self.playlist.get_iter(self.currentTrack.get_path())
         if self.playlist.get_value(currentTrack, self.discovery_status_field) == DiscoveryStatus.FAILED:
             return None
-        return self.playlist.get_value(currentTrack, self.playlistField)
+        return self.playlist.get_value(currentTrack, self.playlist_field)
 
 
 class MissingCodecsDialog(Gtk.MessageDialog):
diff --git a/gnomemusic/views/playlistview.py b/gnomemusic/views/playlistview.py
index 7aa78bf..4f9ea7f 100644
--- a/gnomemusic/views/playlistview.py
+++ b/gnomemusic/views/playlistview.py
@@ -349,7 +349,7 @@ class PlaylistView(BaseView):
             if self.model[_iter][8] != self._error_icon_name:
                 self.player.set_playlist(
                     'Playlist', self._current_playlist.get_id(), self.model,
-                    _iter, 5, 11)
+                    _iter)
                 self.player.set_playing(True)
 
         # 'row-activated' signal is emitted before 'drag-begin' signal.
@@ -417,7 +417,7 @@ class PlaylistView(BaseView):
             self._iter_to_clean = new_iter
             self.player.set_playlist(
                 'Playlist', self._current_playlist.get_id(), self.model,
-                new_iter, 5, 11)
+                new_iter)
 
         first_pos = min(new_pos, prev_pos)
         last_pos = max(new_pos, prev_pos)
@@ -815,8 +815,8 @@ class PlaylistView(BaseView):
 
                     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_playlist(
+                        'Playlist', playlist.get_id(), model, next_iter)
                     self.player.set_playing(True)
 
                 # Update songs count
@@ -836,8 +836,7 @@ class PlaylistView(BaseView):
                         and self._row_is_playing(playlist, row)):
                     self._iter_to_clean = row.iter
                     self.player.set_playlist(
-                        'Playlist', playlist.get_id(), self.model, row.iter, 5,
-                        11)
+                        'Playlist', playlist.get_id(), self.model, row.iter)
                     return
 
     @log
diff --git a/gnomemusic/views/searchview.py b/gnomemusic/views/searchview.py
index cc4a5c1..ab47439 100644
--- a/gnomemusic/views/searchview.py
+++ b/gnomemusic/views/searchview.py
@@ -143,7 +143,7 @@ class SearchView(BaseView):
             if self.model[_iter][12] != DiscoveryStatus.FAILED:
                 c_iter = self._songs_model.convert_child_iter_to_iter(_iter)[1]
                 self.player.set_playlist(
-                    'Search Results', None, self._songs_model, c_iter, 5, 12)
+                    'Search Results', None, self._songs_model, c_iter, 12)
                 self.player.set_playing(True)
         else:  # Headers
             if self._view.get_generic_view().row_expanded(path):
diff --git a/gnomemusic/views/songsview.py b/gnomemusic/views/songsview.py
index e52a87d..4e10e41 100644
--- a/gnomemusic/views/songsview.py
+++ b/gnomemusic/views/songsview.py
@@ -94,7 +94,7 @@ class SongsView(BaseView):
             return
 
         if self.model[itr][8] != self._error_icon_name:
-            self.player.set_playlist('Songs', None, self.model, itr, 5, 11)
+            self.player.set_playlist('Songs', None, self.model, itr)
             self.player.set_playing(True)
 
     @log
diff --git a/gnomemusic/widgets/albumwidget.py b/gnomemusic/widgets/albumwidget.py
index 97aaaa1..76717d6 100644
--- a/gnomemusic/widgets/albumwidget.py
+++ b/gnomemusic/widgets/albumwidget.py
@@ -242,8 +242,8 @@ class AlbumWidget(Gtk.EventBox):
             return
 
         self._player.stop()
-        self._player.set_playlist('Album', self._album, song_widget.model,
-                                  song_widget.itr, 5, 11)
+        self._player.set_playlist(
+            'Album', self._album, song_widget.model, song_widget.itr)
         self._player.set_playing(True)
         return True
 
@@ -293,7 +293,7 @@ class AlbumWidget(Gtk.EventBox):
         if (playlist != self._model):
             return True
 
-        current_song = playlist[current_iter][5]
+        current_song = playlist[current_iter][player.playlist_field]
 
         self._duration = 0
 
@@ -301,7 +301,7 @@ class AlbumWidget(Gtk.EventBox):
         _iter = playlist.get_iter_first()
 
         while _iter:
-            song = playlist[_iter][5]
+            song = playlist[_iter][player.playlist_field]
             song_widget = song.song_widget
             self._duration += song.get_duration()
             escaped_title = GLib.markup_escape_text(
diff --git a/gnomemusic/widgets/artistalbumwidget.py b/gnomemusic/widgets/artistalbumwidget.py
index c26af1e..f679671 100644
--- a/gnomemusic/widgets/artistalbumwidget.py
+++ b/gnomemusic/widgets/artistalbumwidget.py
@@ -163,8 +163,8 @@ class ArtistAlbumWidget(Gtk.Box):
             return
 
         self._player.stop()
-        self._player.set_playlist('Artist', self._artist, song_widget.model,
-                                  song_widget.itr, 5, 11)
+        self._player.set_playlist(
+            'Artist', self._artist, song_widget.model, song_widget.itr)
         self._player.set_playing(True)
 
         return True


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