示例#1
0
文件: queue.py 项目: yoann01/bullseye
	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()))