summaryrefslogtreecommitdiff
path: root/nephilim/plugins/Library.py
diff options
context:
space:
mode:
Diffstat (limited to 'nephilim/plugins/Library.py')
-rw-r--r--nephilim/plugins/Library.py18
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)