def removePlaylist(self): """Esta función se encarga de eliminar una playlist de la aplicación, del menú de formato y de los archivos. Se encarga de no eliminar la lista principal usando cuadros de diálogo.""" if self.currentList == "Main_list": messagebox.showinfo( message="No se puede eliminar la lista principal", title="Alerta") return self.answer = messagebox.askyesno( message="¿Desea eliminar {0}?".format(self.currentList), title="Alerta") self.playlistToRemove = Files.Playlist(self._format, self.currentList) if self.answer == True: self.playlistToRemove.DeletePlaylist() else: return self.formatMenuUpdate() # Esta parte está aquí para volver siempre a la Main_list y evitar errores mainListItem = self.formatMenu.topLevelItem(0) playlistItem = self.formatMenu.topLevelItem(1) mainListItem.setSelected(True) playlistItem.setSelected(False) self.changeCurrentList()
def addPlaylistInterface(self): """Se encarga de abrir el cuadro de diálogo en el que se introduce el nombre de la lista de reproducción y sus nuevos elementos. LLama al módulo newPlaylist.py, donde se encuentra la clase y los métodos de dicho cuadro de diálogo. - Actualiza los datos en el menú de formato.""" playlistDialog = newPlaylist.Dialog(self._format) playlistDialog.show() if playlistDialog.exec_() and playlistDialog.accepted: temp = playlistDialog.Items() name = temp["playlistName"] elems = [] for i in temp["selectedEntries"]: elem = self.constructor(i["name"], i["author"], i["album"], i["year"], i["type"], "") elems.append(elem) playlist = Files.Playlist(self._format, name) self.mainList = Files.MainList(self._format) for i in self.mainList.list: if i in elems: playlist.AddEntry(i) self.formatMenuUpdate()
def __init__(self, _format, oldName): super().__init__() uic.loadUi("modifyPlaylist.ui", self) self._format = _format self.oldName.setText(oldName) playlist = Files.Playlist(_format, oldName) self.tableWidget = TableManagement.TableManagement( _format, self, playlist.list) self.tableWidget.setGeometry(20, 130, 561, 301) self.tableWidget.setSelectionMode( QtWidgets.QAbstractItemView.MultiSelection)
def search(self): """Esta función se encarga de buscar algún elemento dentro de una lista, ya sea por su nombre, su autor o por cualquiera de sus características. Se encarga de actualizar la lista con los resultados de búsqueda.""" if self.searchBar.text() != "": self.textToSearch = str(self.searchBar.text()) if self.currentList == "Main_list": self.currentListObject = Files.MainList(self._format) else: self.currentListObject = Files.Playlist( self._format, self.currentList) self.listToLoad = [] # self.currentListObject.Search(self.text) for object in self.currentListObject.list: if self.textToSearch in object.getName(): self.listToLoad.append(object) elif self.textToSearch in object.getAuthor(): self.listToLoad.append(object) elif self.textToSearch in object.getAlbum(): self.listToLoad.append(object) elif self.textToSearch in object.getYear(): self.listToLoad.append(object) elif self.textToSearch in object.getType(): self.listToLoad.append(object) self.itemsTable.setSortingEnabled(False) self.itemsTable.clearContents() self.itemsTable.setRowCount(0) for elem in self.listToLoad: n = self.itemsTable.rowCount() self.itemsTable.setRowCount(n + 1) self.itemsTable.setItem( n, 0, QtWidgets.QTableWidgetItem(elem.getName())) self.itemsTable.setItem( n, 1, QtWidgets.QTableWidgetItem(elem.getAuthor())) self.itemsTable.setItem( n, 2, QtWidgets.QTableWidgetItem(elem.getAlbum())) self.itemsTable.setItem( n, 3, QtWidgets.QTableWidgetItem(elem.getYear())) self.itemsTable.setItem( n, 4, QtWidgets.QTableWidgetItem(elem.getType())) self.itemsTable.setItem( n, 5, QtWidgets.QTableWidgetItem(elem.getPlayable())) self.itemsTable.setSortingEnabled(True) else: if self.currentList == "Main_list": self.itemsTable.Update(self._format) else: self.itemsTable.UpdatePlaylist(self._format, self.currentList)
def modifyPlaylistInterface(self): """Se encarga de abrir la inerfaz para modificar una lista. En esta se puede introducir el nuevo nombre de la lista y sus nuevos elementos.""" if self.currentList == "Main_list": messagebox.showinfo( message="La lista principal no se modifica de esta forma", title="Alerta") return modifyPlaylistDialog = modifyPlaylist.Dialog(self._format, self.currentList) modifyPlaylistDialog.show() if modifyPlaylistDialog.exec_() and modifyPlaylistDialog.accepted: temp = modifyPlaylistDialog.Items() newName = temp["newName"] elems = [] for i in temp["selectedEntries"]: elem = self.constructor(i["name"], i["author"], i["album"], i["year"], i["type"], "") elems.append(elem) playlist = Files.Playlist(self._format, self.currentList) self.mainList = Files.MainList(self._format) for i in self.mainList.list: if i in elems: playlist.AddEntry(i) playlist.ChangeName(newName) # Esta parte está aquí para volver siempre a la Main_list y evitar errores mainListItem = self.formatMenu.topLevelItem(0) playlistItem = self.formatMenu.topLevelItem(1) mainListItem.setSelected(True) playlistItem.setSelected(False) self.changeCurrentList() self.formatMenuUpdate()
def UpdatePlaylist(self, newFormat, newPlaylist): """Ifual que su homónimo para Main_list, solo que para playlists""" self._format = newFormat self.mainList = Files.Playlist(newFormat, newPlaylist) self.LoadList()