Use variable instead of global static method

1. introduce variable
2. part of #389
3. refactoring program suffix in program plugin
4. 全局变量一时爽,代码重构火葬场
This commit is contained in:
bao-qian
2016-03-28 03:09:57 +01:00
parent c596039453
commit b22a4501cc
36 changed files with 402 additions and 343 deletions

View File

@@ -17,6 +17,7 @@ namespace Wox.Plugin.CMD
private PluginInitContext context;
private bool WinRStroked;
private readonly KeyboardSimulator keyboardSimulator = new KeyboardSimulator(new InputSimulator());
private readonly CMDStorage _settings = CMDStorage.Instance;
public List<Result> Query(Query query)
{
@@ -80,7 +81,7 @@ namespace Wox.Plugin.CMD
private List<Result> GetHistoryCmds(string cmd, Result result)
{
IEnumerable<Result> history = CMDStorage.Instance.CMDHistory.Where(o => o.Key.Contains(cmd))
IEnumerable<Result> history = _settings.CMDHistory.Where(o => o.Key.Contains(cmd))
.OrderByDescending(o => o.Value)
.Select(m =>
{
@@ -126,7 +127,7 @@ namespace Wox.Plugin.CMD
private List<Result> ResultsFromlHistory()
{
IEnumerable<Result> history = CMDStorage.Instance.CMDHistory.OrderByDescending(o => o.Value)
IEnumerable<Result> history = _settings.CMDHistory.OrderByDescending(o => o.Value)
.Select(m => new Result
{
Title = m.Key,
@@ -143,7 +144,7 @@ namespace Wox.Plugin.CMD
private void ExecuteCMD(string cmd, bool runAsAdministrator = false)
{
var arguments = CMDStorage.Instance.LeaveCmdOpen ? $"/k {cmd}" : $"/c {cmd} & pause";
var arguments = _settings.LeaveCmdOpen ? $"/k {cmd}" : $"/c {cmd} & pause";
var info = new ProcessStartInfo
{
UseShellExecute = true,
@@ -154,7 +155,7 @@ namespace Wox.Plugin.CMD
try
{
Process.Start(info);
CMDStorage.Instance.AddCmdHistory(cmd);
_settings.AddCmdHistory(cmd);
}
catch (FileNotFoundException e)
{
@@ -170,7 +171,7 @@ namespace Wox.Plugin.CMD
bool API_GlobalKeyboardEvent(int keyevent, int vkcode, SpecialKeyState state)
{
if (CMDStorage.Instance.ReplaceWinR)
if (_settings.ReplaceWinR)
{
if (keyevent == (int)KeyEvent.WM_KEYDOWN && vkcode == (int)Keys.R && state.WinPressed)
{
@@ -196,7 +197,7 @@ namespace Wox.Plugin.CMD
public Control CreateSettingPanel()
{
return new CMDSetting();
return new CMDSetting(_settings);
}
public string GetTranslatedPluginTitle()

View File

@@ -5,37 +5,40 @@ namespace Wox.Plugin.CMD
{
public partial class CMDSetting : UserControl
{
public CMDSetting()
private readonly CMDStorage _settings;
public CMDSetting(CMDStorage settings)
{
InitializeComponent();
_settings = settings;
}
private void CMDSetting_OnLoaded(object sender, RoutedEventArgs re)
{
cbReplaceWinR.IsChecked = CMDStorage.Instance.ReplaceWinR;
cbLeaveCmdOpen.IsChecked = CMDStorage.Instance.LeaveCmdOpen;
cbReplaceWinR.IsChecked = _settings.ReplaceWinR;
cbLeaveCmdOpen.IsChecked = _settings.LeaveCmdOpen;
cbLeaveCmdOpen.Checked += (o, e) =>
{
CMDStorage.Instance.LeaveCmdOpen = true;
CMDStorage.Instance.Save();
_settings.LeaveCmdOpen = true;
_settings.Save();
};
cbLeaveCmdOpen.Unchecked += (o, e) =>
{
CMDStorage.Instance.LeaveCmdOpen = false;
CMDStorage.Instance.Save();
_settings.LeaveCmdOpen = false;
_settings.Save();
};
cbReplaceWinR.Checked += (o, e) =>
{
CMDStorage.Instance.ReplaceWinR = true;
CMDStorage.Instance.Save();
_settings.ReplaceWinR = true;
_settings.Save();
};
cbReplaceWinR.Unchecked += (o, e) =>
{
CMDStorage.Instance.ReplaceWinR = false;
CMDStorage.Instance.Save();
_settings.ReplaceWinR = false;
_settings.Save();
};
}
}