summaryrefslogtreecommitdiff
path: root/src
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
parent4adb13c9435baade511d3ac78fb142dc73bd2e1f (diff)
cycle crash dumps
Diffstat (limited to 'src')
-rw-r--r--src/mainwindow.cpp1
-rw-r--r--src/organizercore.cpp10
-rw-r--r--src/organizercore.h2
3 files changed, 12 insertions, 1 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index cab4c41f..b47e9c57 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -3297,6 +3297,7 @@ void MainWindow::on_actionSettings_triggered()
updateDownloadListDelegate();
m_OrganizerCore.updateVFSParams(settings.logLevel(), settings.crashDumpsType());
+ m_OrganizerCore.cycleDiagnostics();
}
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);
diff --git a/src/organizercore.h b/src/organizercore.h
index 7bb7faa7..40531195 100644
--- a/src/organizercore.h
+++ b/src/organizercore.h
@@ -160,6 +160,8 @@ public:
void updateVFSParams(int logLevel, int crashDumpsType);
+ bool cycleDiagnostics();
+
static CrashDumpsType getGlobalCrashDumpsType() { return m_globalCrashDumpsType; }
static void setGlobalCrashDumpsType(int crashDumpsType);
static std::wstring crashDumpsPath();