diff options
Diffstat (limited to 'nephilim/plugins/Playlist.py')
-rw-r--r-- | nephilim/plugins/Playlist.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/nephilim/plugins/Playlist.py b/nephilim/plugins/Playlist.py index 44d7a40..d8147bc 100644 --- a/nephilim/plugins/Playlist.py +++ b/nephilim/plugins/Playlist.py @@ -44,6 +44,14 @@ class PlaylistWidget(QtGui.QWidget): plugin = None playlist = None + class PlaylistSongItem(QtGui.QTreeWidgetItem): + # public + id = -1 + + def __init__(self, id): + QtGui.QTreeWidgetItem.__init__(self) + self.id = id + def __init__(self, plugin): QtGui.QWidget.__init__(self) self.plugin = plugin @@ -55,7 +63,6 @@ class PlaylistWidget(QtGui.QWidget): self.layout().setMargin(0) self.layout().addWidget(self.playlist) - class Playlist(QtGui.QTreeWidget): song = None plugin = None @@ -80,23 +87,22 @@ class PlaylistWidget(QtGui.QWidget): self.plugin.settings.setValue(self.plugin.name + '/header_state', QVariant(self.header().saveState())) def _song_activated(self, item): - self.plugin.mpclient.play(item.data(0, QtCore.Qt.UserRole).toPyObject().id()) + self.plugin.mpclient.play(item.id) def fill(self): columns = self.plugin.settings.value(self.plugin.name + '/columns').toStringList() self.clear() - for song in self.plugin.mpclient.playlist(): - item = QtGui.QTreeWidgetItem() + for song in self.plugin.mpclient.playlistinfo(): + item = PlaylistWidget.PlaylistSongItem(song['id']) for i in range(len(columns)): - item.setText(i, unicode(song.tag(str(columns[i])))) - item.setData(0, QtCore.Qt.UserRole, QVariant(song)) + item.setText(i, unicode(song[str(columns[i])])) self.addTopLevelItem(item) def keyPressEvent(self, event): if event.matches(QtGui.QKeySequence.Delete): ids = [] for item in self.selectedItems(): - ids.append(item.data(0, QtCore.Qt.UserRole).toPyObject().id()) + ids.append(item.id) self.plugin.mpclient.delete(ids) else: |