diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index 1ad63a64c1..0eaa42f43d 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -33,6 +33,13 @@ #include "base/timeutil.h" #include "math/curves.h" +#ifdef _WIN32 +namespace MainWindow { + enum { WM_USER_LOG_STATUS_CHANGED = WM_USER + 200 }; + extern HWND hwndMain; +} +#endif + namespace UI { @@ -319,6 +326,7 @@ void GlobalSettingsScreen::CreateViews() { root_ = new ScrollView(ORIENT_VERTICAL); enableReports_ = g_Config.sReportHost != ""; + enableLogging_ = g_Config.bEnableLogging; I18NCategory *g = GetI18NCategory("General"); I18NCategory *gs = GetI18NCategory("Graphics"); @@ -326,7 +334,7 @@ void GlobalSettingsScreen::CreateViews() { LinearLayout *list = root_->Add(new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(1.0f))); list->Add(new ItemHeader("General")); list->Add(new CheckBox(&g_Config.bNewUI, gs->T("Enable New UI"))); - list->Add(new CheckBox(&g_Config.bEnableLogging, gs->T("Enable Debug Logging"))); + list->Add(new CheckBox(&enableLogging_, gs->T("Enable Debug Logging"))); list->Add(new CheckBox(&enableReports_, gs->T("Enable Errors Reporting"))); list->Add(new CheckBox(&g_Config.bEnableCheats, gs->T("Enable Cheats"))); list->Add(new CheckBox(&g_Config.bScreenshotsAsPNG, gs->T("Screenshots as PNG"))); @@ -358,6 +366,10 @@ UI::EventReturn GameSettingsScreen::OnControlMapping(UI::EventParams &e) { UI::EventReturn GlobalSettingsScreen::OnBack(UI::EventParams &e) { screenManager()->finishDialog(this, DR_OK); g_Config.sReportHost = enableReports_ ? "report.ppsspp.org" : ""; + g_Config.bEnableLogging = enableLogging_; +#ifdef _WIN32 + PostMessage(MainWindow::hwndMain, MainWindow::WM_USER_LOG_STATUS_CHANGED, 0, 0); +#endif g_Config.Save(); return UI::EVENT_DONE; } diff --git a/UI/GameSettingsScreen.h b/UI/GameSettingsScreen.h index 62a9151c8b..0daed1a721 100644 --- a/UI/GameSettingsScreen.h +++ b/UI/GameSettingsScreen.h @@ -64,6 +64,7 @@ private: // Temporaries to convert bools to other kinds of settings bool enableReports_; + bool enableLogging_; }; class DeveloperToolsScreen : public UIScreenWithBackground { diff --git a/Windows/WndMainWindow.cpp b/Windows/WndMainWindow.cpp index 1b374d07c1..fea4249ef9 100644 --- a/Windows/WndMainWindow.cpp +++ b/Windows/WndMainWindow.cpp @@ -1146,9 +1146,10 @@ namespace MainWindow if(!g_Config.bEnableLogging) { LogManager::GetInstance()->GetConsoleListener()->Show(false); EnableMenuItem(menu, ID_DEBUG_LOG, MF_GRAYED); - } - else + } else { + LogManager::GetInstance()->GetConsoleListener()->Show(true); EnableMenuItem(menu, ID_DEBUG_LOG, MF_ENABLED); + } break; case WM_MENUSELECT: