summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <wyskas@gmail.com>2010-02-10 19:20:47 +0100
committerAnton Khirnov <wyskas@gmail.com>2010-02-10 19:20:47 +0100
commitc33e547911585ac0ef7c34edeb2ac70054df7a1d (patch)
tree02a68707993d9ddc82fc3245a945c56ac5e711a6
parent79ef509f15792aae5eb8fdae597dfc080212e4ce (diff)
Playlist: move all classes at to top level.
-rw-r--r--nephilim/plugins/Playlist.py171
1 files changed, 86 insertions, 85 deletions
diff --git a/nephilim/plugins/Playlist.py b/nephilim/plugins/Playlist.py
index 72e1d8b..b51701c 100644
--- a/nephilim/plugins/Playlist.py
+++ b/nephilim/plugins/Playlist.py
@@ -45,19 +45,12 @@ 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
- self.playlist = self.Playlist(self.plugin)
+ self.playlist = PlaylistTree(self.plugin)
self.setLayout(QtGui.QVBoxLayout())
self.layout().setSpacing(0)
@@ -67,82 +60,90 @@ class PlaylistWidget(QtGui.QWidget):
if self.plugin.mpclient.is_connected():
self.playlist.fill()
- class Playlist(QtGui.QTreeWidget):
- song = None
- plugin = None
-
- def __init__(self, plugin):
- QtGui.QTreeWidget.__init__(self)
- self.plugin = plugin
-
- self.setSelectionMode(QtGui.QTreeWidget.ExtendedSelection)
- self.setAlternatingRowColors(True)
- self.setRootIsDecorated(False)
-
- # drag&drop
- self.viewport().setAcceptDrops(True)
- self.setDropIndicatorShown(True)
- self.setDragDropMode(QtGui.QAbstractItemView.DragDrop)
-
- columns = self.plugin.settings.value(self.plugin.name + '/columns').toStringList()
- self.setColumnCount(len(columns))
- self.setHeaderLabels(columns)
- self.header().restoreState(self.plugin.settings.value(self.plugin.name + '/header_state').toByteArray())
-
- self.itemActivated.connect(self._song_activated)
- self.header().geometriesChanged.connect(self._save_state)
- self.plugin.mpclient.playlist_changed.connect(self.fill)
-
- def _save_state(self):
- self.plugin.settings.setValue(self.plugin.name + '/header_state', QVariant(self.header().saveState()))
-
- def _song_activated(self, item):
- 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.playlistinfo():
- item = PlaylistWidget.PlaylistSongItem(song['id'])
- for i in range(len(columns)):
- 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.id)
-
- self.plugin.mpclient.delete(ids)
- else:
- QtGui.QTreeWidget.keyPressEvent(self, event)
-
- def mimeData(self, items):
- data = SongsMimeData()
- data.set_plistsongs([items[0].id])
- return data
-
- def dropMimeData(self, parent, index, data, action):
- if data.hasFormat(MIMETYPES['plistsongs']):
- if parent:
- index = self.indexOfTopLevelItem(parent)
- elif index >= self.topLevelItemCount():
- index = self.topLevelItemCount() - 1
- self.plugin.mpclient.move(data.plistsongs()[0], index)
- return True
- elif data.hasFormat(MIMETYPES['songs']):
- if parent:
- index = self.indexOfTopLevelItem(parent)
- self.plugin.mpclient.add(data.songs(), index)
- return True
- return False
-
- def supportedDropActions(self):
- return QtCore.Qt.CopyAction | QtCore.Qt.MoveAction
-
- def mimeTypes(self):
- return [MIMETYPES['songs'], MIMETYPES['plistsongs']]
-
def fill_playlist(self):
self.playlist.fill()
+
+class PlaylistTree(QtGui.QTreeWidget):
+ song = None
+ plugin = None
+
+ def __init__(self, plugin):
+ QtGui.QTreeWidget.__init__(self)
+ self.plugin = plugin
+
+ self.setSelectionMode(QtGui.QTreeWidget.ExtendedSelection)
+ self.setAlternatingRowColors(True)
+ self.setRootIsDecorated(False)
+
+ # drag&drop
+ self.viewport().setAcceptDrops(True)
+ self.setDropIndicatorShown(True)
+ self.setDragDropMode(QtGui.QAbstractItemView.DragDrop)
+
+ columns = self.plugin.settings.value(self.plugin.name + '/columns').toStringList()
+ self.setColumnCount(len(columns))
+ self.setHeaderLabels(columns)
+ self.header().restoreState(self.plugin.settings.value(self.plugin.name + '/header_state').toByteArray())
+
+ self.itemActivated.connect(self._song_activated)
+ self.header().geometriesChanged.connect(self._save_state)
+ self.plugin.mpclient.playlist_changed.connect(self.fill)
+
+ def _save_state(self):
+ self.plugin.settings.setValue(self.plugin.name + '/header_state', QVariant(self.header().saveState()))
+
+ def _song_activated(self, item):
+ 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.playlistinfo():
+ item = PlaylistSongItem(song['id'])
+ for i in range(len(columns)):
+ 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.id)
+
+ self.plugin.mpclient.delete(ids)
+ else:
+ QtGui.QTreeWidget.keyPressEvent(self, event)
+
+ def mimeData(self, items):
+ data = SongsMimeData()
+ data.set_plistsongs([items[0].id])
+ return data
+
+ def dropMimeData(self, parent, index, data, action):
+ if data.hasFormat(MIMETYPES['plistsongs']):
+ if parent:
+ index = self.indexOfTopLevelItem(parent)
+ elif index >= self.topLevelItemCount():
+ index = self.topLevelItemCount() - 1
+ self.plugin.mpclient.move(data.plistsongs()[0], index)
+ return True
+ elif data.hasFormat(MIMETYPES['songs']):
+ if parent:
+ index = self.indexOfTopLevelItem(parent)
+ self.plugin.mpclient.add(data.songs(), index)
+ return True
+ return False
+
+ def supportedDropActions(self):
+ return QtCore.Qt.CopyAction | QtCore.Qt.MoveAction
+
+ def mimeTypes(self):
+ return [MIMETYPES['songs'], MIMETYPES['plistsongs']]
+
+class PlaylistSongItem(QtGui.QTreeWidgetItem):
+ # public
+ id = -1
+
+ def __init__(self, id):
+ QtGui.QTreeWidgetItem.__init__(self)
+ self.id = id