def dropEvent(self, e): print "DROP EVENT" data = e.mimeData() print data.formats() if data.hasFormat('bullseye/library.items'): dic = eval(str(data.data('bullseye/library.items'))) bdd = BDD() tracks = bdd.getTracks(dic) self.model.insert(tracks, self.rowAt(e.pos().y())) elif(data.hasFormat('bullseye/queue.items')): indexes = self.selectedIndexes() print indexes movedTracks = [] if len(indexes) > 0: targetedTrack = self.getTrackAt(self.rowAt(e.pos().y())) print targetedTrack first = indexes[0] last = indexes[-1] row = -1 for index in indexes: if(index.row() != row): track = self.getTrackAt(index) if(targetedTrack == track): return movedTracks.append(track) self.model.removeTrack(track) row = index.row() self.model.insertAfter(movedTracks, targetedTrack) QtGui.QTableView.dropEvent(self, e) elif data.hasUrls(): tracks = [] for url in data.urls(): path = url.toLocalFile() track = Track.fromPath(path) if track is not None: tracks.append(track) self.model.insert(tracks, self.rowAt(e.pos().y()))