From d1132547747c1359254f2a0ce08e4e9aa249aaa6 Mon Sep 17 00:00:00 2001 From: The Dax Date: Wed, 28 Aug 2013 16:23:16 -0400 Subject: [PATCH] Add an option to restore PPSSPP's settings to default. Does not restore controller bindings to default. --- Core/Config.cpp | 8 ++++++++ Core/Config.h | 1 + UI/GameSettingsScreen.cpp | 16 ++++++++++++++++ UI/GameSettingsScreen.h | 2 ++ 4 files changed, 27 insertions(+) diff --git a/Core/Config.cpp b/Core/Config.cpp index 1b08f595fd..f96ae7685a 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -372,3 +372,11 @@ void Config::CleanRecent() { } recentIsos = cleanedRecent; } + +void Config::RestoreDefaults() { + if(File::Exists("ppsspp.ini")) + File::Delete("ppsspp.ini"); + recentIsos.clear(); + currentDirectory = ""; + Load(); +} diff --git a/Core/Config.h b/Core/Config.h index dd55ac184d..ae9ab8e794 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -165,6 +165,7 @@ public: void Load(const char *iniFileName = "ppsspp.ini", const char *controllerIniFilename = "controls.ini"); void Save(); + void RestoreDefaults(); // Utility functions for "recent" management void AddRecent(const std::string &file); diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index 89131f4575..43fc1f78d3 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -525,6 +525,7 @@ void DeveloperToolsScreen::CreateViews() { list->Add(new ItemHeader(g->T("General"))); list->Add(new Choice(d->T("System Information")))->OnClick.Handle(this, &DeveloperToolsScreen::OnSysInfo); list->Add(new Choice(d->T("Run CPU Tests")))->OnClick.Handle(this, &DeveloperToolsScreen::OnRunCPUTests); + list->Add(new Choice(d->T("Restore PPSSPP Default Settings")))->OnClick.Handle(this, &DeveloperToolsScreen::OnRestoreDefaultSettings); #ifndef __SYMBIAN32__ list->Add(new CheckBox(&g_Config.bSoftwareRendering, gs->T("Software Rendering", "Software Rendering (experimental)"))); #endif @@ -547,6 +548,21 @@ UI::EventReturn DeveloperToolsScreen::OnBack(UI::EventParams &e) { return UI::EVENT_DONE; } +void DeveloperToolsScreen::CallbackRestoreDefaults(bool yes) { + if(yes) + g_Config.RestoreDefaults(); +} + +UI::EventReturn DeveloperToolsScreen::OnRestoreDefaultSettings(UI::EventParams &e) { + I18NCategory *d = GetI18NCategory("Dialog"); + I18NCategory *g = GetI18NCategory("General"); + screenManager()->push( + new PromptScreen(d->T("Are you sure you want to restore all settings(except control mapping) back to their defaults?\nYou can't undo this.\nPlease restart PPSSPP after restoring settings."), g->T("OK"), g->T("Cancel"), + std::bind(&DeveloperToolsScreen::CallbackRestoreDefaults, this, placeholder::_1))); + + return UI::EVENT_DONE; +} + UI::EventReturn DeveloperToolsScreen::OnLoggingChanged(UI::EventParams &e) { #ifdef _WIN32 PostMessage(MainWindow::hwndMain, MainWindow::WM_USER_LOG_STATUS_CHANGED, 0, 0); diff --git a/UI/GameSettingsScreen.h b/UI/GameSettingsScreen.h index d57f4a7d59..5badc74ee6 100644 --- a/UI/GameSettingsScreen.h +++ b/UI/GameSettingsScreen.h @@ -78,6 +78,7 @@ public: protected: virtual void CreateViews(); + void CallbackRestoreDefaults(bool yes); private: UI::EventReturn OnBack(UI::EventParams &e); @@ -86,6 +87,7 @@ private: UI::EventReturn OnLoggingChanged(UI::EventParams &e); UI::EventReturn OnLoadLanguageIni(UI::EventParams &e); UI::EventReturn OnSaveLanguageIni(UI::EventParams &e); + UI::EventReturn OnRestoreDefaultSettings(UI::EventParams &e); // Temporary variable. bool enableLogging_;