summaryrefslogtreecommitdiff
path: root/src/profile.cpp
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2014-01-23 00:05:46 +0100
committerTannin <devnull@localhost>2014-01-23 00:05:46 +0100
commite597823337c858f2985c615ee5147f47567991ee (patch)
treee42647cf1114ebd4d42e4a8c15a91b941961c3df /src/profile.cpp
parente69210b3a78c4a6c63086d84e6bdb2c3b47d8944 (diff)
- boss integration
- plugin list can now also display multiple flags for a file (like the mod list) - changed some compiler&linker settings to produce smaller binaries
Diffstat (limited to 'src/profile.cpp')
-rw-r--r--src/profile.cpp34
1 files changed, 9 insertions, 25 deletions
diff --git a/src/profile.cpp b/src/profile.cpp
index e075a4e6..c1f1025e 100644
--- a/src/profile.cpp
+++ b/src/profile.cpp
@@ -23,6 +23,7 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
#include "windows_error.h"
#include "dummybsa.h"
#include "modinfo.h"
+#include "safewritefile.h"
#include <utility.h>
#include <util.h>
#include <error_report.h>
@@ -149,15 +150,10 @@ void Profile::writeModlistNow(bool onlyOnTimer) const
#pragma message("right now, this is doing unnecessary saves. Need a flag that says that mod priority, enabled-state or name of a mod has changed")
try {
- QTemporaryFile file;
-
- if (!file.open()) {
- reportError(tr("failed to open temporary file"));
- return;
- }
+ QString fileName = getModlistFileName();
+ SafeWriteFile file(fileName);
- file.resize(0);
- file.write(QString("# This file was automatically generated by Mod Organizer.\r\n").toUtf8());
+ file->write(QString("# This file was automatically generated by Mod Organizer.\r\n").toUtf8());
if (m_ModStatus.empty()) {
return;
}
@@ -169,29 +165,17 @@ void Profile::writeModlistNow(bool onlyOnTimer) const
ModInfo::Ptr modInfo = ModInfo::getByIndex(index);
if (modInfo->getFixedPriority() == INT_MIN) {
if (m_ModStatus[index].m_Enabled) {
- file.write("+");
+ file->write("+");
} else {
- file.write("-");
+ file->write("-");
}
- file.write(modInfo->name().toUtf8());
- file.write("\r\n");
+ file->write(modInfo->name().toUtf8());
+ file->write("\r\n");
}
}
}
- file.close();
-
-
- QString fileName = getModlistFileName();
-
- if (QFile::exists(fileName)) {
- shellDeleteQuiet(fileName);
- }
-
- if (!file.copy(fileName)) {
- reportError(tr("failed to open \"%1\" for writing").arg(fileName));
- return;
- }
+ file.commit();
qDebug("%s saved", QDir::toNativeSeparators(fileName).toUtf8().constData());
} catch (const std::exception &e) {