diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-06-11 10:27:39 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-06-11 10:27:39 +0000 |
| commit | a2defa39591d8bf71468574e7d5802b7a32bf7ed (patch) | |
| tree | a03c1b196bf983a6ef109c8c8ebc587978a88f7c /src/qmmpui/playlistmanager.cpp | |
| parent | 00deeb9d5cf2fafbbf6a02237442c88cec0c1cba (diff) | |
| download | qmmp-a2defa39591d8bf71468574e7d5802b7a32bf7ed.tar.gz qmmp-a2defa39591d8bf71468574e7d5802b7a32bf7ed.tar.bz2 qmmp-a2defa39591d8bf71468574e7d5802b7a32bf7ed.zip | |
using QSaveFile for playlists
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8018 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playlistmanager.cpp')
| -rw-r--r-- | src/qmmpui/playlistmanager.cpp | 56 |
1 files changed, 20 insertions, 36 deletions
diff --git a/src/qmmpui/playlistmanager.cpp b/src/qmmpui/playlistmanager.cpp index 72846a830..bef8d567c 100644 --- a/src/qmmpui/playlistmanager.cpp +++ b/src/qmmpui/playlistmanager.cpp @@ -24,6 +24,7 @@ #include <QDir> #include <QTimer> #include <QSettings> +#include <QSaveFile> #include <qmmp/trackinfo.h> #include "qmmpuisettings.h" #include "playlistmanager.h" @@ -329,58 +330,41 @@ void PlayListManager::readPlayLists() void PlayListManager::writePlayLists() { qDebug("PlayListManager: saving playlists..."); - QString tmpFilePath = Qmmp::configDir() + "playlist.tmp"; QString plFilePath = Qmmp::configDir() + "playlist.txt"; - QFile tmpFile(tmpFilePath); - if(!tmpFile.open(QIODevice::WriteOnly)) + QSaveFile plFile(plFilePath); + if(!plFile.open(QIODevice::WriteOnly)) { - qDebug("PlayListManager: error: %s", qPrintable(tmpFile.errorString())); + qDebug("PlayListManager: error: %s", qPrintable(plFile.errorString())); return; } - tmpFile.write(QString("current_playlist=%1\n").arg(m_models.indexOf(m_current)).toUtf8()); + plFile.write(QString("current_playlist=%1\n").arg(m_models.indexOf(m_current)).toUtf8()); foreach(PlayListModel *model, m_models) { - tmpFile.write(QString("playlist=%1\n").arg(model->name()).toUtf8()); + plFile.write(QString("playlist=%1\n").arg(model->name()).toUtf8()); if(model->isEmpty()) continue; QList<PlayListItem *> items = model->items(); - tmpFile.write(QString("current=%1\n").arg(model->indexOfTrack(model->currentIndex())).toUtf8()); + plFile.write(QString("current=%1\n").arg(model->indexOfTrack(model->currentIndex())).toUtf8()); foreach(PlayListItem* m, items) { if(m->isGroup()) continue; PlayListTrack *t = dynamic_cast<PlayListTrack *>(m); - tmpFile.write(QString("file=%1\n").arg(t->path()).toUtf8()); - tmpFile.write(QString("title=%1\n").arg(t->value(Qmmp::TITLE)).toUtf8()); - tmpFile.write(QString("artist=%1\n").arg(t->value(Qmmp::ARTIST)).toUtf8()); - tmpFile.write(QString("albumartist=%1\n").arg(t->value(Qmmp::ALBUMARTIST)).toUtf8()); - tmpFile.write(QString("album=%1\n").arg(t->value(Qmmp::ALBUM)).toUtf8()); - tmpFile.write(QString("comment=%1\n").arg(t->value(Qmmp::COMMENT)).toUtf8()); - tmpFile.write(QString("genre=%1\n").arg(t->value(Qmmp::GENRE)).toUtf8()); - tmpFile.write(QString("composer=%1\n").arg(t->value(Qmmp::COMPOSER)).toUtf8()); - tmpFile.write(QString("year=%1\n").arg(t->value(Qmmp::YEAR)).toUtf8()); - tmpFile.write(QString("track=%1\n").arg(t->value(Qmmp::TRACK)).toUtf8()); - tmpFile.write(QString("disc=%1\n").arg(t->value(Qmmp::DISCNUMBER)).toUtf8()); - tmpFile.write(QString("duration=%1\n").arg(t->duration()).toUtf8()); + plFile.write(QString("file=%1\n").arg(t->path()).toUtf8()); + plFile.write(QString("title=%1\n").arg(t->value(Qmmp::TITLE)).toUtf8()); + plFile.write(QString("artist=%1\n").arg(t->value(Qmmp::ARTIST)).toUtf8()); + plFile.write(QString("albumartist=%1\n").arg(t->value(Qmmp::ALBUMARTIST)).toUtf8()); + plFile.write(QString("album=%1\n").arg(t->value(Qmmp::ALBUM)).toUtf8()); + plFile.write(QString("comment=%1\n").arg(t->value(Qmmp::COMMENT)).toUtf8()); + plFile.write(QString("genre=%1\n").arg(t->value(Qmmp::GENRE)).toUtf8()); + plFile.write(QString("composer=%1\n").arg(t->value(Qmmp::COMPOSER)).toUtf8()); + plFile.write(QString("year=%1\n").arg(t->value(Qmmp::YEAR)).toUtf8()); + plFile.write(QString("track=%1\n").arg(t->value(Qmmp::TRACK)).toUtf8()); + plFile.write(QString("disc=%1\n").arg(t->value(Qmmp::DISCNUMBER)).toUtf8()); + plFile.write(QString("duration=%1\n").arg(t->duration()).toUtf8()); } } - if(tmpFile.error() != QFile::NoError) - { - qWarning("PlayListManager: error: %s", qPrintable(tmpFile.errorString())); - return; - } - tmpFile.close(); - - QFile plFile(plFilePath); - if(plFile.exists() && !plFile.remove()) - { - qWarning("PlayListManager: unable to remove previous playlist"); - return; - } - if(!QFile::rename(tmpFilePath, plFilePath)) - { - qWarning("PlayListManager: unable to rename temporary playlist"); - } + plFile.commit(); } void PlayListManager::onListChanged(int flags) |
