代码拉取完成,页面将自动刷新
同步操作将从 Singtren/QtMusicPlayer 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "playlist.h"
#include <QUrl>
#include <QFile>
PlayList::PlayList(QTableWidget *tb, QObject *parent):
QMediaPlaylist(parent), tb(tb)
{
}
void PlayList::append(Song song)
{
songList.append(song);
addMedia(QUrl(song.url));
songList.wirteToTable(tb);
}
void PlayList::appendAndPlay(Song song)
{
append(song);
this->setCurrentIndex(songList.size() - 1);
songList.wirteToTable(tb);
emit wantPlay();
}
void PlayList::appendSongList(const SongList &list)
{
for (int i = 0; i < list.size(); i++) {
append(list[i]);
}
songList.wirteToTable(tb);
}
void PlayList::deleteByIndex(int n)
{
this->removeMedia(n);
songList.removeAt(n);
songList.wirteToTable(tb);
}
void PlayList::clearList()
{
this->clear();
songList.clear();
tb->clear();
tb->setHorizontalHeaderLabels({"歌名","歌手"});
}
void PlayList::loadList(const SongList &list)
{
clearList();
appendSongList(list);
}
void PlayList::saveInFile(QString path)
{
QFile file(path);
file.open(QIODevice::WriteOnly);
QDataStream out(&file);
out << (QList<Song>)songList;
file.close();
}
Song &PlayList::getSongByIndex(int n)
{
static Song err("", "", QUrl(), -1);
if (n < 0 || n >= songList.size())
return err;
return songList[n];
}
Song &PlayList::getCurrentSong()
{
static Song err("", "", QUrl(), -1);
if (currentIndex() >= 0) {
return songList[currentIndex()];
} else {
return err;
}
}
Song &PlayList::getSongById(unsigned int id) {
static Song err("", "", QUrl(), -1);
for (int i = 0; i < songList.size(); i++) {
if (songList[i].id == id)
return songList[i];
}
return err;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。