diff --git a/Plugins/Wox.Plugin.Sys/Main.cs b/Plugins/Wox.Plugin.Sys/Main.cs
index 1334034a3b..7cb35c55f8 100644
--- a/Plugins/Wox.Plugin.Sys/Main.cs
+++ b/Plugins/Wox.Plugin.Sys/Main.cs
@@ -168,6 +168,18 @@ namespace Wox.Plugin.Sys
}
},
new Result
+ {
+ Title = "Save Settings",
+ SubTitle = "Save all Wox settings",
+ IcoPath = "Images\\app.png",
+ Action = c =>
+ {
+ context.API.SaveAppAllSettings();
+ context.API.ShowMsg("Success","All Wox settings saved");
+ return true;
+ }
+ },
+ new Result
{
Title = "Restart Wox",
SubTitle = context.API.GetTranslation("wox_plugin_sys_restart"),
diff --git a/Wox.Plugin/IPublicAPI.cs b/Wox.Plugin/IPublicAPI.cs
index c726c962a6..7dcac48440 100644
--- a/Wox.Plugin/IPublicAPI.cs
+++ b/Wox.Plugin/IPublicAPI.cs
@@ -57,6 +57,11 @@ namespace Wox.Plugin
[Obsolete]
void ShowApp();
+ ///
+ /// Save all Wox settings
+ ///
+ void SaveAppAllSettings();
+
///
/// Show message box
///
diff --git a/Wox/PublicAPIInstance.cs b/Wox/PublicAPIInstance.cs
index 748c7aac65..9c8e7008bd 100644
--- a/Wox/PublicAPIInstance.cs
+++ b/Wox/PublicAPIInstance.cs
@@ -59,13 +59,18 @@ namespace Wox
// we must manually save
// UpdateManager.RestartApp() will call Environment.Exit(0)
// which will cause ungraceful exit
+ SaveAppAllSettings();
+
+ UpdateManager.RestartApp();
+ }
+
+ public void SaveAppAllSettings()
+ {
_mainVM.Save();
_settingsVM.Save();
PluginManager.Save();
ImageLoader.Save();
Alphabet.Save();
-
- UpdateManager.RestartApp();
}
[Obsolete]