summaryrefslogtreecommitdiff
path: root/src/organizercore.cpp
diff options
context:
space:
mode:
authorEran Mizrahi <erasmux@gmail.com>2017-12-09 01:56:16 +0200
committerEran Mizrahi <erasmux@gmail.com>2017-12-10 02:53:19 +0200
commit1b4b6dbeb46aa7e6b87b3de32cd8953fa0d32a7a (patch)
tree7273a8590bc622410c5dd96fa29cf4e68f581798 /src/organizercore.cpp
parent4adb13c9435baade511d3ac78fb142dc73bd2e1f (diff)
cycle crash dumps
Diffstat (limited to 'src/organizercore.cpp')
-rw-r--r--src/organizercore.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index adb895ec..7f86f2b4 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -630,7 +630,8 @@ bool OrganizerCore::bootstrap() {
return createDirectory(m_Settings.getProfileDirectory()) &&
createDirectory(m_Settings.getModDirectory()) &&
createDirectory(m_Settings.getDownloadDirectory()) &&
- createDirectory(m_Settings.getOverwriteDirectory());
+ createDirectory(m_Settings.getOverwriteDirectory()) &&
+ createDirectory(QString::fromStdWString(crashDumpsPath())) && cycleDiagnostics();
}
void OrganizerCore::createDefaultProfile()
@@ -652,6 +653,12 @@ void OrganizerCore::updateVFSParams(int logLevel, int crashDumpsType) {
m_USVFS.updateParams(logLevel, crashDumpsType);
}
+bool OrganizerCore::cycleDiagnostics() {
+ if (int maxDumps = settings().crashDumpsMax())
+ removeOldFiles(QString::fromStdWString(crashDumpsPath()), "*.dmp", maxDumps, QDir::Time|QDir::Reversed);
+ return true;
+}
+
//static
void OrganizerCore::setGlobalCrashDumpsType(int crashDumpsType) {
m_globalCrashDumpsType = ::crashDumpsType(crashDumpsType);
@@ -1083,6 +1090,7 @@ void OrganizerCore::spawnBinary(const QFileInfo &binary, const QString &argument
refreshESPList();
savePluginList();
+ cycleDiagnostics();
//These callbacks should not fiddle with directoy structure and ESPs.
m_FinishedRun(binary.absoluteFilePath(), processExitCode);