summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <wyskas@gmail.com>2010-08-29 12:47:50 +0200
committerAnton Khirnov <wyskas@gmail.com>2010-08-29 12:47:50 +0200
commit07d4c019967bd821294eb2b35aa1d559e8ec43c2 (patch)
tree07d97906ee9c03632301ada84b2d56d16d87acbc
parent17f4307fa40411b070b37ea69b6daf749db6afcf (diff)
Library: move subclasses to top level
-rw-r--r--nephilim/plugins/Library.py140
1 files changed, 70 insertions, 70 deletions
diff --git a/nephilim/plugins/Library.py b/nephilim/plugins/Library.py
index 6e6550e..0e2b153 100644
--- a/nephilim/plugins/Library.py
+++ b/nephilim/plugins/Library.py
@@ -98,74 +98,6 @@ class LibraryWidget(QtGui.QWidget):
filter = None
- class LibrarySongItem(QtGui.QStandardItem):
- # public
- "Song path"
- path = None
-
- class LibraryModel(QtGui.QStandardItemModel):
- def fill(self, songs, grouping):
- self.clear()
-
- tree = [{},self.invisibleRootItem()]
- for song in songs:
- cur_item = tree
- for part in grouping:
- try:
- tag = song[part]
- except KeyError:
- tag = 'Unknown'
- if tag in cur_item[0]:
- cur_item = cur_item[0][tag]
- else:
- it = QtGui.QStandardItem(tag)
- it.setFlags(QtCore.Qt.ItemIsSelectable|QtCore.Qt.ItemIsEnabled)
- cur_item[1].appendRow(it)
- cur_item[0][tag] = [{}, it]
- cur_item = cur_item[0][tag]
- it = LibraryWidget.LibrarySongItem('%s%02d %s'%(song['disc'] + '/' if 'disc' in song else '',
- song['tracknum'] if 'tracknum' in song else 0,
- song['?title']))
- it.path = song['?file']
- it.setFlags(QtCore.Qt.ItemIsSelectable|QtCore.Qt.ItemIsEnabled)
- cur_item[1].appendRow(it)
-
- self.sort(0, QtCore.Qt.AscendingOrder)
-
- def walk_tree(self, indices):
- """Returns a generator over all songs that are children of indices."""
- for index in indices:
- if self.hasChildren(index):
- for song in self.walk_tree([self.index(i, 0, index) for i in range(self.rowCount(index))]):
- yield song
- else:
- yield self.itemFromIndex(index).path
-
- def flags(self, index):
- return (QtCore.Qt.ItemIsDragEnabled if index.isValid() else 0) | QtGui.QStandardItemModel.flags(self, index)
-
- def mimeTypes(self):
- return MIMETYPES['songs']
-
- def mimeData(self, indices):
- data = SongsMimeData()
-
- songs = []
- for song in self.walk_tree(indices):
- songs.append(song)
-
- data.set_songs(songs)
- return data
-
- class LibraryView(QtGui.QTreeView):
- def __init__(self):
- QtGui.QTreeView.__init__(self)
-
- self.setAlternatingRowColors(True)
- self.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
- self.setUniformRowHeights(True)
- self.setHeaderHidden(True)
- self.setDragEnabled(True)
def __init__(self, plugin):
QtGui.QWidget.__init__(self)
@@ -184,10 +116,10 @@ class LibraryWidget(QtGui.QWidget):
self.search_txt.returnPressed.connect(self.add_filtered)
#construct the library
- self.library_model = self.LibraryModel()
+ self.library_model = LibraryModel()
self.fill_library()
- self.library_view = self.LibraryView()
+ self.library_view = LibraryView()
self.library_view.setModel(self.library_model)
self.library_view.activated.connect(lambda : self.add_indices(self.library_view.selectedIndexes()))
@@ -261,3 +193,71 @@ class LibraryWidget(QtGui.QWidget):
paths.append(song)
self.plugin.mpclient.add(paths)
+class LibrarySongItem(QtGui.QStandardItem):
+ # public
+ "Song path"
+ path = None
+
+class LibraryModel(QtGui.QStandardItemModel):
+ def fill(self, songs, grouping):
+ self.clear()
+
+ tree = [{},self.invisibleRootItem()]
+ for song in songs:
+ cur_item = tree
+ for part in grouping:
+ try:
+ tag = song[part]
+ except KeyError:
+ tag = 'Unknown'
+ if tag in cur_item[0]:
+ cur_item = cur_item[0][tag]
+ else:
+ it = QtGui.QStandardItem(tag)
+ it.setFlags(QtCore.Qt.ItemIsSelectable|QtCore.Qt.ItemIsEnabled)
+ cur_item[1].appendRow(it)
+ cur_item[0][tag] = [{}, it]
+ cur_item = cur_item[0][tag]
+ it = LibrarySongItem('%s%02d %s'%(song['disc'] + '/' if 'disc' in song else '',
+ song['tracknum'] if 'tracknum' in song else 0,
+ song['?title']))
+ it.path = song['?file']
+ it.setFlags(QtCore.Qt.ItemIsSelectable|QtCore.Qt.ItemIsEnabled)
+ cur_item[1].appendRow(it)
+
+ self.sort(0, QtCore.Qt.AscendingOrder)
+
+ def walk_tree(self, indices):
+ """Returns a generator over all songs that are children of indices."""
+ for index in indices:
+ if self.hasChildren(index):
+ for song in self.walk_tree([self.index(i, 0, index) for i in range(self.rowCount(index))]):
+ yield song
+ else:
+ yield self.itemFromIndex(index).path
+
+ def flags(self, index):
+ return (QtCore.Qt.ItemIsDragEnabled if index.isValid() else 0) | QtGui.QStandardItemModel.flags(self, index)
+
+ def mimeTypes(self):
+ return MIMETYPES['songs']
+
+ def mimeData(self, indices):
+ data = SongsMimeData()
+
+ songs = []
+ for song in self.walk_tree(indices):
+ songs.append(song)
+
+ data.set_songs(songs)
+ return data
+
+class LibraryView(QtGui.QTreeView):
+ def __init__(self):
+ QtGui.QTreeView.__init__(self)
+
+ self.setAlternatingRowColors(True)
+ self.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
+ self.setUniformRowHeights(True)
+ self.setHeaderHidden(True)
+ self.setDragEnabled(True)