Integrate calculator settings

Save & load settings when plugin is in use & specify user control.
This commit is contained in:
SysC0mp 2020-02-25 17:50:50 +01:00
parent 3d3d9435dc
commit 570c1d9a5f

View file

@ -2,11 +2,15 @@ using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Controls;
using Mages.Core;
using Wox.Infrastructure.Storage;
using Wox.Plugin.Caculator.ViewModels;
using Wox.Plugin.Caculator.Views;
namespace Wox.Plugin.Caculator
{
public class Main : IPlugin, IPluginI18n
public class Main : IPlugin, IPluginI18n, ISavable, ISettingProvider
{
private static readonly Regex RegValidExpressChar = new Regex(
@"^(" +
@ -21,11 +25,22 @@ namespace Wox.Plugin.Caculator
private static readonly Engine MagesEngine;
private PluginInitContext Context { get; set; }
private static Settings _settings;
private static SettingsViewModel _viewModel;
static Main()
{
MagesEngine = new Engine();
}
public void Init(PluginInitContext context)
{
Context = context;
_viewModel = new SettingsViewModel();
_settings = _viewModel.Settings;
}
public List<Result> Query(Query query)
{
// Don't affect when user only input "e" or "i" keyword
@ -115,5 +130,15 @@ namespace Wox.Plugin.Caculator
{
return Context.API.GetTranslation("wox_plugin_caculator_plugin_description");
}
public Control CreateSettingPanel()
{
return new CalculatorSettings(_viewModel);
}
public void Save()
{
_viewModel.Save();
}
}
}