From 1b4b6dbeb46aa7e6b87b3de32cd8953fa0d32a7a Mon Sep 17 00:00:00 2001 From: Eran Mizrahi Date: Sat, 9 Dec 2017 01:56:16 +0200 Subject: cycle crash dumps --- src/mainwindow.cpp | 1 + src/organizercore.cpp | 10 +++++++++- src/organizercore.h | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src') 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(); -- cgit v1.3.1