From 5ff2681da6b00425056d11fb4f2caf64b4fcac97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 28 Feb 2015 10:20:25 +0100 Subject: NOISSUE use QSaveFile for saving patch order --- logic/minecraft/ProfileUtils.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'logic') diff --git a/logic/minecraft/ProfileUtils.cpp b/logic/minecraft/ProfileUtils.cpp index 48e73472..bae34dbf 100644 --- a/logic/minecraft/ProfileUtils.cpp +++ b/logic/minecraft/ProfileUtils.cpp @@ -6,6 +6,7 @@ #include #include #include +#include namespace ProfileUtils { @@ -22,14 +23,25 @@ bool writeOverrideOrders(QString path, const PatchOrder &order) orderArray.append(str); } obj.insert("order", orderArray); - QFile orderFile(path); + QSaveFile orderFile(path); if (!orderFile.open(QFile::WriteOnly)) { QLOG_ERROR() << "Couldn't open" << orderFile.fileName() << "for writing:" << orderFile.errorString(); return false; } - orderFile.write(QJsonDocument(obj).toJson(QJsonDocument::Indented)); + auto data = QJsonDocument(obj).toJson(QJsonDocument::Indented); + if(orderFile.write(data) != data.size()) + { + qCritical() << "Couldn't write all the data into" << orderFile.fileName() + << "because:" << orderFile.errorString(); + return false; + } + if(!orderFile.commit()) + { + qCritical() << "Couldn't save" << orderFile.fileName() + << "because:" << orderFile.errorString(); + } return true; } -- cgit v1.2.3