Move some user settings to its own dll (cmd,folder plugin and etc)

This commit is contained in:
qianlifeng
2015-01-05 22:41:17 +08:00
parent 6162904c59
commit ce451e4dd4
62 changed files with 342 additions and 222 deletions

View File

@@ -0,0 +1,18 @@
using System;
using System.Linq;
using Newtonsoft.Json;
namespace Wox.Plugin.Folder
{
[Serializable]
public class FolderLink
{
[JsonProperty]
public string Path { get; set; }
public string Nickname
{
get { return Path.Split(new char[] { System.IO.Path.DirectorySeparatorChar }, StringSplitOptions.None).Last(); }
}
}
}

View File

@@ -4,7 +4,6 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Windows;
using Wox.Infrastructure.Storage.UserSettings;
using Control = System.Windows.Controls.Control;
namespace Wox.Plugin.Folder
@@ -24,10 +23,10 @@ namespace Wox.Plugin.Folder
this.context = context;
this.context.API.BackKeyDownEvent += ApiBackKeyDownEvent;
InitialDriverList();
if (UserSettingStorage.Instance.FolderLinks == null)
if (FolderStorage.Instance.FolderLinks == null)
{
UserSettingStorage.Instance.FolderLinks = new List<FolderLink>();
UserSettingStorage.Instance.Save();
FolderStorage.Instance.FolderLinks = new List<FolderLink>();
FolderStorage.Instance.Save();
}
}
@@ -56,7 +55,7 @@ namespace Wox.Plugin.Folder
if(string.IsNullOrEmpty(query.RawQuery)) return new List<Result>();
string input = query.RawQuery.ToLower();
List<FolderLink> userFolderLinks = UserSettingStorage.Instance.FolderLinks.Where(
List<FolderLink> userFolderLinks = FolderStorage.Instance.FolderLinks.Where(
x => x.Nickname.StartsWith(input, StringComparison.OrdinalIgnoreCase)).ToList();
List<Result> results =
userFolderLinks.Select(

View File

@@ -2,33 +2,36 @@
using System.Linq;
using System.Windows;
using System.Windows.Forms;
using Wox.Infrastructure.Storage.UserSettings;
using MessageBox = System.Windows.MessageBox;
using UserControl = System.Windows.Controls.UserControl;
namespace Wox.Plugin.Folder {
namespace Wox.Plugin.Folder
{
/// <summary>
/// Interaction logic for FileSystemSettings.xaml
/// </summary>
public partial class FileSystemSettings : UserControl {
public FileSystemSettings() {
InitializeComponent();
lbxFolders.ItemsSource = UserSettingStorage.Instance.FolderLinks;
}
/// <summary>
/// Interaction logic for FileSystemSettings.xaml
/// </summary>
public partial class FileSystemSettings : UserControl
{
public FileSystemSettings()
{
InitializeComponent();
lbxFolders.ItemsSource = FolderStorage.Instance.FolderLinks;
}
private void btnDelete_Click(object sender, RoutedEventArgs e) {
private void btnDelete_Click(object sender, RoutedEventArgs e)
{
var selectedFolder = lbxFolders.SelectedItem as FolderLink;
if (selectedFolder != null)
{
UserSettingStorage.Instance.FolderLinks.Remove(selectedFolder);
FolderStorage.Instance.FolderLinks.Remove(selectedFolder);
lbxFolders.Items.Refresh();
}
else
{
MessageBox.Show("Please select a folder link!");
}
}
}
private void btnEdit_Click(object sender, RoutedEventArgs e)
{
@@ -39,10 +42,10 @@ namespace Wox.Plugin.Folder {
folderBrowserDialog.SelectedPath = selectedFolder.Path;
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
var link = UserSettingStorage.Instance.FolderLinks.First(x => x.Path == selectedFolder.Path);
var link = FolderStorage.Instance.FolderLinks.First(x => x.Path == selectedFolder.Path);
link.Path = folderBrowserDialog.SelectedPath;
UserSettingStorage.Instance.Save();
FolderStorage.Instance.Save();
}
lbxFolders.Items.Refresh();
@@ -51,24 +54,28 @@ namespace Wox.Plugin.Folder {
{
MessageBox.Show("Please select a folder link!");
}
}
}
private void btnAdd_Click(object sender, RoutedEventArgs e) {
var folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
if (folderBrowserDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
var newFolder = new FolderLink() {
Path = folderBrowserDialog.SelectedPath
};
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
var folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
if (folderBrowserDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
var newFolder = new FolderLink()
{
Path = folderBrowserDialog.SelectedPath
};
if (UserSettingStorage.Instance.FolderLinks == null) {
UserSettingStorage.Instance.FolderLinks = new List<FolderLink>();
}
if (FolderStorage.Instance.FolderLinks == null)
{
FolderStorage.Instance.FolderLinks = new List<FolderLink>();
}
UserSettingStorage.Instance.FolderLinks.Add(newFolder);
UserSettingStorage.Instance.Save();
}
FolderStorage.Instance.FolderLinks.Add(newFolder);
FolderStorage.Instance.Save();
}
lbxFolders.Items.Refresh();
}
}
lbxFolders.Items.Refresh();
}
}
}

View File

@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using Newtonsoft.Json;
using Wox.Infrastructure.Storage;
using System.IO;
namespace Wox.Plugin.Folder
{
public class FolderStorage : JsonStrorage<FolderStorage>
{
[JsonProperty]
public List<FolderLink> FolderLinks { get; set; }
protected override string ConfigFolder
{
get { return Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); }
}
protected override string ConfigName
{
get { return "setting"; }
}
}
}

View File

@@ -36,6 +36,10 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\packages\log4net.2.0.3\lib\net35-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\packages\Newtonsoft.Json.6.0.7\lib\net35\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
@@ -48,10 +52,12 @@
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="FolderLink.cs" />
<Compile Include="FolderPlugin.cs" />
<Compile Include="FolderPluginSettings.xaml.cs">
<DependentUpon>FolderPluginSettings.xaml</DependentUpon>
</Compile>
<Compile Include="FolderStorage.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>

View File

@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.3" targetFramework="net35" />
<package id="Newtonsoft.Json" version="6.0.7" targetFramework="net35" />
</packages>