Exemplo n.º 1
0
	def on_drag_data_received(self, TV, drag_context, x, y, selection_data, info, timestamp):
		if(selection_data.get_target() == 'text/plain'):
			#fin d'un DND
			destRow = self.TreeView.get_dest_row_at_pos(x, y)
			
			T = eval(selection_data.get_text()) # eval => permet de retransformer la chaîne de caractères en tableau de dictionnaires
			#for dic in T:
			bdd = BDD()
			self.addTracks(bdd.getTracks(T), destRow)
Exemplo n.º 2
0
	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()))
Exemplo n.º 3
0
        def loadState(self):
		"""
			TODO Use one sql query by queue (using parametized IN clause) and thread this
			self.memcursor.execute('''SELECT id, matbefore, matafter, name, date 
                            FROM main 
                           WHERE name IN (%s)''' % 
                       ','.join('?'*len(offset)), (offset,))
		"""
		bdd = BDD()
		queues = settings.get_option('session/queues', None)
		if(queues is not None):
			for key in queues.iterkeys():
				if type(key).__name__=='int':
					self.addQueue()
					self.addSelection(bdd.getTracksFromIDs(queues[key]))
				else:
					playlist = self.addQueue(key)
					for track_id in queues[key]:
						self.addSelection(bdd.getTracks({'track_ID':track_id}))
					playlist.Liste.connect("row-changed", playlist.setModified)
		else:
			self.addQueue()
Exemplo n.º 4
0
	def addPlaylist(self, label, IDList):
		bdd = BDD()
		playlist = self.addQueue(label)
		self.addSelection(bdd.getTracksFromIDs(IDList), playlist)
		playlist.watchForChange()
Exemplo n.º 5
0
		def addTracks(IDs, queue):
			bdd = BDD()
			self.addSelection(bdd.getTracksFromIDs(IDs), queue)