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()
Example #6
0
 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()