diff options
Diffstat (limited to 'nephilim/plugins/Library.py')
-rw-r--r-- | nephilim/plugins/Library.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/nephilim/plugins/Library.py b/nephilim/plugins/Library.py index 74c5464..50f85a3 100644 --- a/nephilim/plugins/Library.py +++ b/nephilim/plugins/Library.py @@ -83,6 +83,11 @@ class LibraryWidget(QtGui.QWidget): plugin = None logger = None + class LibrarySongItem(QtGui.QStandardItem): + # public + "Song path" + path = None + class LibraryModel(QtGui.QStandardItemModel): def fill(self, songs, mode): self.clear() @@ -91,7 +96,7 @@ class LibraryWidget(QtGui.QWidget): for song in songs: cur_item = tree for part in mode.split('/'): - tag = song.tag(part) + tag = song[part] if isinstance(tag, list): tag = tag[0] #FIXME hack to make songs with multiple genres work. if not tag: @@ -104,11 +109,10 @@ class LibraryWidget(QtGui.QWidget): cur_item[1].appendRow(it) cur_item[0][tag] = [{}, it] cur_item = cur_item[0][tag] - it = QtGui.QStandardItem('%s%02d %s'%(song.tag('disc') + '/' if song.tag('disc') else '', - song.track() if song.track() else 0, - song.title() if song.title() else song.filepath())) + it = LibraryWidget.LibrarySongItem('%s%02d %s'%(song['disc'] + '/' if 'disc' in song else '', + song['tracknum'], song['title'])) + it.path = song['file'] it.setFlags(QtCore.Qt.ItemIsSelectable|QtCore.Qt.ItemIsEnabled) - it.setData(QVariant(song), QtCore.Qt.UserRole) cur_item[1].appendRow(it) self.sort(0, QtCore.Qt.AscendingOrder) @@ -196,8 +200,8 @@ class LibraryWidget(QtGui.QWidget): self.plugin.mpclient.add(paths) def item_to_playlist(self, item, add_queue): - if not item.hasChildren(): - add_queue.append(item.data(QtCore.Qt.UserRole).toPyObject().filepath()) + if isinstance(item, self.LibrarySongItem): + add_queue.append(item.path) else: for i in range(item.rowCount()): self.item_to_playlist(item.child(i), add_queue) |