diff options
Diffstat (limited to 'attic/muse/share/pybridge/parter/parter.py')
-rw-r--r-- | attic/muse/share/pybridge/parter/parter.py | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/attic/muse/share/pybridge/parter/parter.py b/attic/muse/share/pybridge/parter/parter.py new file mode 100644 index 00000000..889b00a1 --- /dev/null +++ b/attic/muse/share/pybridge/parter/parter.py @@ -0,0 +1,107 @@ +import sys,time,os +from PyQt4 import QtGui, QtCore +from PyQt4.QtGui import QFileDialog, QListView, QStringListModel, QButtonGroup, QPushButton + +class ParterMainwidget(QtGui.QWidget): + def __init__(self, parent=None, muse=None, partsdir=None): + QtGui.QWidget.__init__(self, parent) + self.muse = muse + self.partsdir = partsdir + self.lcurdir = QtGui.QLabel(partsdir) + moveupbutton = QPushButton("Parent dir") + appendbutton = QPushButton("Append") + putbutton = QPushButton("Put") + blayout = QtGui.QGridLayout() + blayout.addWidget(self.lcurdir) + blayout.addWidget(moveupbutton) + blayout.addWidget(appendbutton) + blayout.addWidget(putbutton) + self.tree = QtGui.QTreeView() + self.dirmodel = QtGui.QDirModel() + self.tree.setModel(self.dirmodel) + self.tree.setRootIndex(self.dirmodel.index(self.partsdir)) + + layout = QtGui.QGridLayout() + self.setLayout(layout) + layout.addWidget(self.tree, 0, 0) + layout.addLayout(blayout, 0, 1) + + self.connect(moveupbutton, QtCore.SIGNAL('clicked()'), self.parentDir) + self.connect(appendbutton, QtCore.SIGNAL('clicked()'), self.appendPressed) + self.connect(putbutton, QtCore.SIGNAL('clicked()'), self.putPressed) + + self.connect(self.tree, QtCore.SIGNAL('activated(QModelIndex)'), self.activated) + + def parentDir(self): + f = QtCore.QFileInfo(self.partsdir) + self.changeDir(f.canonicalPath()) + + def changeDir(self, newdir): + self.partsdir = newdir + self.tree.setRootIndex(self.dirmodel.index(self.partsdir)) + self.lcurdir.setText(self.partsdir) + + def activated(self, s): + fileInfo = self.dirmodel.fileInfo(s) + if fileInfo.isDir(): + self.changeDir(fileInfo.absoluteFilePath()) + return + + fname = str(fileInfo.absoluteFilePath()) # if not str() around it crashes! + self.putPart(fname) + + def putPart(self, fname): + trackid = self.muse.getSelectedTrack() + if trackid == None: + return + cpos = self.muse.getCPos() + self.muse.importPart(trackid, fname, cpos) + + def getSelectedItem(self): + selectionmodel = self.tree.selectionModel() + for i in selectionmodel.selectedIndexes(): + fileInfo = self.dirmodel.fileInfo(i) + return str(fileInfo.absoluteFilePath()) + return None + + def appendPressed(self): + selected = self.getSelectedItem() + if selected == None: + return + trackid = self.muse.getSelectedTrack() + if trackid == None: + return + parts = self.muse.getParts(trackid) + if parts == None: + return + + pos = 0 + if len(parts) > 0: + part = parts[len(parts) - 1] + pos = part['tick'] + part['len'] + print "Appending " + selected + self.muse.importPart(trackid, selected, pos) + + + + def putPressed(self): + selected = self.getSelectedItem() + if selected == None: + return + trackid = self.muse.getSelectedTrack() + if trackid == None: + return + cpos = self.muse.getCPos() + self.muse.importPart(trackid, selected, cpos) + + def testfunc2(self, index): + print str(index.row()) + " " + str(index.column()) + print index.data().toString() + +if __name__ == '__main__': + app = QtGui.QApplication(sys.argv) + mainw = ParterMainwidget() + mainw.show() + sys.exit(app.exec_()) + + |