def mark_as_favorite(self):
     if (
         self.playlist.get_name() == Configures.PlaylistFavorite
         or not self.playlist.length()
         or self.currentSourceRow < 0
     ):
         return
     path = self.playlist.get_music_path_at(self.currentSourceRow)
     title = self.playlist.get_music_title_at(self.currentSourceRow)
     if self.playlist.get_name() == Configures.PlaylistOnline:
         musicName = get_full_music_name_from_title(title)
         musicPath = os.path.join(self.downloadDir, musicName)
         musicPathO = os.path.join(Configures.MusicsDir, musicName)
         if not os.path.exists(musicPath) and not os.path.exists(musicPathO):
             QMessageBox.information(self, "提示", "请先下载该歌曲再添加喜欢!")
             return
         if os.path.exists(musicPath):
             path = musicPath
         else:
             path = musicPathO
     elif not os.path.exists(path):
         QMessageBox.information(self, "提示", "路径'" + "%s" % path + "'无效,无法标记喜欢!")
         return
     playlistTemp = Playlist()
     playlistTemp.fill_list(Configures.PlaylistFavorite)
     if title in self.lovedSongs:
         playlistTemp.remove_item_at(self.lovedSongs.index(title))
         playlistTemp.commit_records()
         self.lovedSongs.remove(title)
         self.favoriteButton.setIcon(QIcon(IconsHub.FavoritesNo))
         self.favoriteButton.setToolTip("收藏")
     else:
         playlistTemp.add_item_from_path(path)
         playlistTemp.commit_records()
         self.lovedSongs.append(title)
         self.favoriteButton.setIcon(QIcon(IconsHub.Favorites))
         self.favoriteButton.setToolTip("取消收藏")
     self.mark_favorite_completed_signal.emit()
 def mark_as_favorite(self):
     if self.playlist.get_name(
     ) == Configures.PlaylistFavorite or not self.playlist.length(
     ) or self.currentSourceRow < 0:
         return
     path = self.playlist.get_music_path_at(self.currentSourceRow)
     title = self.playlist.get_music_title_at(self.currentSourceRow)
     if self.playlist.get_name() == Configures.PlaylistOnline:
         musicName = get_full_music_name_from_title(title)
         musicPath = os.path.join(self.downloadDir, musicName)
         musicPathO = os.path.join(Configures.MusicsDir, musicName)
         if not os.path.exists(musicPath) and not os.path.exists(
                 musicPathO):
             QMessageBox.information(self, '提示', '请先下载该歌曲再添加喜欢!')
             return
         if os.path.exists(musicPath):
             path = musicPath
         else:
             path = musicPathO
     elif not os.path.exists(path):
         QMessageBox.information(self, "提示",
                                 "路径'" + "%s" % path + "'无效,无法标记喜欢!")
         return
     playlistTemp = Playlist()
     playlistTemp.fill_list(Configures.PlaylistFavorite)
     if title in self.lovedSongs:
         playlistTemp.remove_item_at(self.lovedSongs.index(title))
         playlistTemp.commit_records()
         self.lovedSongs.remove(title)
         self.favoriteButton.setIcon(QIcon(IconsHub.FavoritesNo))
         self.favoriteButton.setToolTip("收藏")
     else:
         playlistTemp.add_item_from_path(path)
         playlistTemp.commit_records()
         self.lovedSongs.append(title)
         self.favoriteButton.setIcon(QIcon(IconsHub.Favorites))
         self.favoriteButton.setToolTip("取消收藏")
     self.mark_favorite_completed_signal.emit()
示例#3
0
class PlaylistWidgetBasic(QTableWidget):
    def __init__(self, listName, parent=None):
        super(PlaylistWidgetBasic, self).__init__(parent)
        self.listName = ''
        self.playlist = Playlist()

    def get_playlist(self):
        return self.playlist.copy()

    def get_operating_playlist_name(self):
        """获取正在被操作的列表名"""
        return self.listName

    def fill_playlist_widget(self, playlist):
        self.clear_all_items()
        itemsList = playlist.get_items_queue()
        group = playlist.get_infos_group()
        for item in itemsList:
            title = group[item][0]
            time = group[item][1]
            self.add_record(title, time)

    def clear_all_items(self):
        while self.rowCount():
            self.removeRow(0)

    def add_record(self, title, time):
        countRow = self.rowCount()
        titleItem = QTableWidgetItem(title)
        self.insertRow(countRow)
        self.setItem(countRow, 0, titleItem)
        self.setRowHeight(countRow, 31)

    def add_record_with_full_info(self,
                                  id,
                                  title,
                                  totalTime,
                                  album,
                                  path,
                                  size,
                                  musicId=Configures.LocalMusicId):
        self.playlist.add_record(id, title, totalTime, album, path, size,
                                 musicId)
        self.add_record(title, totalTime)

    def add_a_music(self, path):
        title, totalTime = self.playlist.add_item_from_path(path)
        self.add_record(title, totalTime)
示例#4
0
class PlaylistWidgetBasic(QTableWidget):
    def __init__(self, listName, parent=None):
        super(PlaylistWidgetBasic, self).__init__(parent)
        self.listName = ''
        self.playlist = Playlist()
    
    def get_playlist(self):
        return self.playlist.copy()
    
    def get_operating_playlist_name(self):
        """获取正在被操作的列表名"""
        return self.listName
    
    def fill_playlist_widget(self, playlist):
        self.clear_all_items()
        itemsList = playlist.get_items_queue()
        group = playlist.get_infos_group()
        for item in itemsList:
            title = group[item][0]
            time = group[item][1]
            self.add_record(title, time)
    
    def clear_all_items(self):
        while self.rowCount():
            self.removeRow(0)
    
    def add_record(self, title, time):
        countRow = self.rowCount()
        titleItem = QTableWidgetItem(title)
        self.insertRow(countRow)
        self.setItem(countRow, 0, titleItem)
        self.setRowHeight(countRow, 31)
    
    def add_record_with_full_info(self, id, title, totalTime, album, path, size, musicId=Configures.LocalMusicId):
        self.playlist.add_record(id, title, totalTime, album, path, size, musicId)
        self.add_record(title, totalTime)
    
    def add_a_music(self, path):
        title, totalTime = self.playlist.add_item_from_path(path)
        self.add_record(title, totalTime)