From: Alexander Steinhöfer Date: Fri, 8 Apr 2022 07:41:25 +0000 (+0200) Subject: Delete log file, when logging is disabled. X-Git-Tag: 1.9.9.2~6 X-Git-Url: https://repos.lx-s.de/gitweb/?a=commitdiff_plain;h=fa671f86febf6b4d66c52c65c0b9cd8dd9413a2a;p=winmute.git Delete log file, when logging is disabled. --- diff --git a/WinMute/Settings_GeneralDlg.cpp b/WinMute/Settings_GeneralDlg.cpp index e716672..6822601 100644 --- a/WinMute/Settings_GeneralDlg.cpp +++ b/WinMute/Settings_GeneralDlg.cpp @@ -81,9 +81,11 @@ INT_PTR CALLBACK Settings_GeneralDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPA HWND hLogging = GetDlgItem(hDlg, IDC_ENABLELOGGING); int showNotifications = Button_GetCheck(hNotify) == BST_CHECKED; - int enableLog = Button_GetCheck(hLogging) == BST_CHECKED; settings->SetValue(SettingsKey::NOTIFICATIONS_ENABLED, showNotifications); + + int enableLog = Button_GetCheck(hLogging) == BST_CHECKED; settings->SetValue(SettingsKey::LOGGING_ENABLED, enableLog); + WMLog::GetInstance().SetEnabled(enableLog); if (Button_GetCheck(hAutostart) == BST_CHECKED) { settings->EnableAutostart(true); diff --git a/WinMute/WMLog.cpp b/WinMute/WMLog.cpp index 22c2748..f2842e5 100644 --- a/WinMute/WMLog.cpp +++ b/WinMute/WMLog.cpp @@ -49,17 +49,14 @@ WMLog& WMLog::GetInstance() return log; } -WMLog::WMLog() : - initialized_(false) +WMLog::WMLog(): + enabled_(false) { - if (OpenLogFile(GetLogFilePath(), logFile_)) { - initialized_ = true; - } } WMLog::~WMLog() { - if (initialized_) { + if (logFile_.is_open()) { logFile_.close(); } } @@ -71,9 +68,32 @@ std::string WMLog::GetLogFilePath() return path.string(); } +void WMLog::DeleteLogFile() +{ + auto p = GetLogFilePath(); + logFile_.close(); + DeleteFileA(p.c_str()); +} + void WMLog::SetEnabled(bool enable) { - enabled_ = enable; + if (enable == enabled_) { + if (!enable) { + DeleteLogFile(); + } + return; + } + if (enable) { + if (OpenLogFile(GetLogFilePath(), logFile_)) { + enabled_ = true; + } + } else { + if (logFile_.is_open()) { + logFile_.close(); + } + DeleteLogFile(); + enabled_ = false; + } } void WMLog::WriteMessage(const TCHAR* msg) @@ -97,7 +117,7 @@ void WMLog::WriteMessage(const TCHAR* msg) void WMLog::Write(const TCHAR *fmt, ...) { - if (!initialized_ || !enabled_) { + if (!enabled_) { return; } diff --git a/WinMute/WMLog.h b/WinMute/WMLog.h index ab173dc..91de656 100644 --- a/WinMute/WMLog.h +++ b/WinMute/WMLog.h @@ -51,8 +51,8 @@ private: WMLog& operator=(const WMLog&) = delete; void WriteMessage(const TCHAR* msg); + void DeleteLogFile(); - bool initialized_; bool enabled_; #ifdef UNICODE std::wofstream logFile_;