summaryrefslogtreecommitdiff
path: root/nephilim/plugins/Filebrowser.py
diff options
context:
space:
mode:
Diffstat (limited to 'nephilim/plugins/Filebrowser.py')
-rw-r--r--nephilim/plugins/Filebrowser.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/nephilim/plugins/Filebrowser.py b/nephilim/plugins/Filebrowser.py
new file mode 100644
index 0000000..0a2908d
--- /dev/null
+++ b/nephilim/plugins/Filebrowser.py
@@ -0,0 +1,47 @@
+from PyQt4 import QtGui, QtCore
+from PyQt4.QtCore import QVariant
+import os
+
+from ..clPlugin import Plugin
+from ..misc import ORGNAME, APPNAME
+
+class pluginFilebrowser(Plugin):
+ view = None
+ model = None
+
+ def __init__(self, winMain):
+ Plugin.__init__(self, winMain, 'Filebrowser')
+
+ def _load(self):
+ self.model = QtGui.QDirModel()
+ self.model.setFilter(QtCore.QDir.AllDirs|QtCore.QDir.AllEntries)
+ self.model.setSorting(QtCore.QDir.DirsFirst)
+
+ self.view = QtGui.QListView()
+ self.view.setModel(self.model)
+ self.view.setRootIndex(self.model.index(os.path.expanduser('~')))
+ self.view.setSelectionMode(QtGui.QTreeWidget.ExtendedSelection)
+ self.view.connect(self.view, QtCore.SIGNAL('activated(const QModelIndex&)'), self.item_activated)
+
+ def _unload(self):
+ self.view = None
+ self.model = None
+
+ def getInfo(self):
+ return 'A file browser that allows adding files not in collection.'
+
+ def _getDockWidget(self):
+ return self._createDock(self.view)
+
+ def item_activated(self, index):
+ if self.model.hasChildren(index):
+ self.view.setRootIndex(index)
+ else:
+ if not 'file://' in self.mpclient.urlhandlers():
+ self.setStatus('file:// handler not available. Connect via unix domain sockets.')
+ return
+ paths = []
+ for index in self.view.selectedIndexes():
+ paths.append(u'file://' + self.model.filePath(index))
+ self.mpclient.addToPlaylist(paths)
+