aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playlistmanager.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-06-11 10:27:39 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-06-11 10:27:39 +0000
commita2defa39591d8bf71468574e7d5802b7a32bf7ed (patch)
treea03c1b196bf983a6ef109c8c8ebc587978a88f7c /src/qmmpui/playlistmanager.cpp
parent00deeb9d5cf2fafbbf6a02237442c88cec0c1cba (diff)
downloadqmmp-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.cpp56
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)