mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-06 11:16:51 +02:00
Move some user settings to its own dll (cmd,folder plugin and etc)
This commit is contained in:
18
Plugins/Wox.Plugin.Folder/FolderLink.cs
Normal file
18
Plugins/Wox.Plugin.Folder/FolderLink.cs
Normal 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(); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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(
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
26
Plugins/Wox.Plugin.Folder/FolderStorage.cs
Normal file
26
Plugins/Wox.Plugin.Folder/FolderStorage.cs
Normal 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"; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user