mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-06-08 01:52:52 +08:00
Refactoring FolderLink and URL plugin.
This commit is contained in:
parent
f1697313c0
commit
fc66fba577
@ -4,165 +4,208 @@ using System.Diagnostics;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using Wox.Infrastructure;
|
|
||||||
using Wox.Infrastructure.Storage.UserSettings;
|
using Wox.Infrastructure.Storage.UserSettings;
|
||||||
|
using Control = System.Windows.Controls.Control;
|
||||||
|
|
||||||
namespace Wox.Plugin.SystemPlugins.Folder {
|
namespace Wox.Plugin.SystemPlugins.Folder
|
||||||
|
{
|
||||||
|
public class FolderPlugin : BaseSystemPlugin, ISettingProvider
|
||||||
|
{
|
||||||
|
#region Properties
|
||||||
|
|
||||||
public class FolderPlugin : BaseSystemPlugin, ISettingProvider {
|
private static List<string> driverNames;
|
||||||
|
private PluginInitContext context;
|
||||||
|
|
||||||
#region Properties
|
public override string Description
|
||||||
|
{
|
||||||
private PluginInitContext context;
|
get { return "Provide opening folder from wox directorily. You can add your favorite folders."; }
|
||||||
private static List<string> driverNames = null;
|
|
||||||
private static Dictionary<string, DirectoryInfo[]> parentDirectories = new Dictionary<string, DirectoryInfo[]>();
|
|
||||||
public override string Description {
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return "Provide opening folder from wox directorily. You can add your favorite folders.";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ID
|
public override string ID
|
||||||
{
|
{
|
||||||
get { return "B4D3B69656E14D44865C8D818EAE47C4"; }
|
get { return "B4D3B69656E14D44865C8D818EAE47C4"; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string Name { get { return "Folder"; } }
|
public override string Name
|
||||||
public override string IcoPath { get { return @"Images\folder.png"; } }
|
{
|
||||||
|
get { return "Folder"; }
|
||||||
|
}
|
||||||
|
|
||||||
#endregion Properties
|
public override string IcoPath
|
||||||
|
{
|
||||||
|
get { return @"Images\folder.png"; }
|
||||||
|
}
|
||||||
|
|
||||||
#region Misc
|
#endregion Properties
|
||||||
|
|
||||||
protected override void InitInternal(PluginInitContext context) {
|
public Control CreateSettingPanel()
|
||||||
this.context = context;
|
{
|
||||||
|
return new FileSystemSettings();
|
||||||
|
}
|
||||||
|
|
||||||
if (UserSettingStorage.Instance.FolderLinks == null) {
|
protected override void InitInternal(PluginInitContext context)
|
||||||
UserSettingStorage.Instance.FolderLinks = new List<FolderLink>();
|
{
|
||||||
UserSettingStorage.Instance.Save();
|
this.context = context;
|
||||||
}
|
this.context.API.BackKeyDownEvent += ApiBackKeyDownEvent;
|
||||||
}
|
InitialDriverList();
|
||||||
|
if (UserSettingStorage.Instance.FolderLinks == null)
|
||||||
|
{
|
||||||
|
UserSettingStorage.Instance.FolderLinks = new List<FolderLink>();
|
||||||
|
UserSettingStorage.Instance.Save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public System.Windows.Controls.Control CreateSettingPanel() {
|
private void ApiBackKeyDownEvent(object sender, WoxKeyDownEventArgs e)
|
||||||
return new FileSystemSettings();
|
{
|
||||||
}
|
string query = e.Query;
|
||||||
|
if (Directory.Exists(query))
|
||||||
|
{
|
||||||
|
if (query.EndsWith("\\"))
|
||||||
|
{
|
||||||
|
query = query.Remove(query.Length - 1);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion Misc
|
if (query.Contains("\\"))
|
||||||
|
{
|
||||||
|
int index = query.LastIndexOf("\\");
|
||||||
|
query = query.Remove(index) + "\\";
|
||||||
|
}
|
||||||
|
|
||||||
protected override List<Result> QueryInternal(Query query) {
|
context.API.ChangeQuery(query);
|
||||||
var results = new List<Result>();
|
}
|
||||||
var input = query.RawQuery.ToLower();
|
}
|
||||||
var inputName = input.Split(new string[] { @"\" }, StringSplitOptions.None).First().ToLower();
|
|
||||||
var link = UserSettingStorage.Instance.FolderLinks.FirstOrDefault(x => x.Nickname.Equals(inputName, StringComparison.OrdinalIgnoreCase));
|
|
||||||
var currentPath = link == null ? input : link.Path + input.Remove(0, inputName.Length);
|
|
||||||
InitialDriverList();
|
|
||||||
|
|
||||||
foreach (var item in UserSettingStorage.Instance.FolderLinks.Where(x => x.Nickname.StartsWith(input, StringComparison.OrdinalIgnoreCase))) {
|
protected override List<Result> QueryInternal(Query query)
|
||||||
results.Add(new Result(item.Nickname, "Images/folder.png") {
|
{
|
||||||
Action = (c) => {
|
string input = query.RawQuery.ToLower();
|
||||||
context.ChangeQuery(item.Nickname);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (link == null && !driverNames.Any(input.StartsWith))
|
List<FolderLink> userFolderLinks = UserSettingStorage.Instance.FolderLinks.Where(
|
||||||
return results;
|
x => x.Nickname.StartsWith(input, StringComparison.OrdinalIgnoreCase)).ToList();
|
||||||
|
List<Result> results =
|
||||||
|
userFolderLinks.Select(
|
||||||
|
item => new Result(item.Nickname, "Images/folder.png", "Ctrl + Enter to open the directory")
|
||||||
|
{
|
||||||
|
Action = c =>
|
||||||
|
{
|
||||||
|
if (c.SpecialKeyState.CtrlPressed)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Process.Start(item.Path);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(ex.Message, "Could not start " + item.Path);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
context.API.ChangeQuery(item.Path);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
QueryInternal_Directory_Exists(currentPath, input, results);
|
if (!driverNames.Any(input.StartsWith))
|
||||||
|
return results;
|
||||||
|
|
||||||
return results;
|
if (!input.EndsWith("\\"))
|
||||||
}
|
{
|
||||||
|
//"c:" means "the current directory on the C drive" whereas @"c:\" means "root of the C drive"
|
||||||
|
input = input + "\\";
|
||||||
|
}
|
||||||
|
results.AddRange(QueryInternal_Directory_Exists(input));
|
||||||
|
|
||||||
private void InitialDriverList() {
|
return results;
|
||||||
if (driverNames == null) {
|
}
|
||||||
driverNames = new List<string>();
|
|
||||||
var allDrives = DriveInfo.GetDrives();
|
|
||||||
foreach (var driver in allDrives) {
|
|
||||||
driverNames.Add(driver.Name.ToLower().TrimEnd('\\'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void QueryInternal_Directory_Exists(string currentPath, string input, List<Result> results) {
|
private void InitialDriverList()
|
||||||
string path = Directory.Exists(currentPath) ? new DirectoryInfo(currentPath).FullName : Path.GetDirectoryName(input);
|
{
|
||||||
if (!System.IO.Directory.Exists(path)) return;
|
if (driverNames == null)
|
||||||
|
{
|
||||||
|
driverNames = new List<string>();
|
||||||
|
DriveInfo[] allDrives = DriveInfo.GetDrives();
|
||||||
|
foreach (DriveInfo driver in allDrives)
|
||||||
|
{
|
||||||
|
driverNames.Add(driver.Name.ToLower().TrimEnd('\\'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
results.Add(new Result("Open this directory", "Images/folder.png") {
|
private List<Result> QueryInternal_Directory_Exists(string rawQuery)
|
||||||
Score = 100000,
|
{
|
||||||
Action = (c) => {
|
var results = new List<Result>();
|
||||||
if (Directory.Exists(currentPath)) {
|
if (!Directory.Exists(rawQuery)) return results;
|
||||||
Process.Start(currentPath);
|
|
||||||
}
|
|
||||||
else if (currentPath.Contains("\\")) {
|
|
||||||
var index = currentPath.LastIndexOf("\\");
|
|
||||||
Process.Start(currentPath.Remove(index) + "\\");
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
results.Add(new Result("Open current directory", "Images/folder.png")
|
||||||
}
|
{
|
||||||
});
|
Score = 10000,
|
||||||
|
Action = c =>
|
||||||
|
{
|
||||||
|
Process.Start(rawQuery);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//Add children directories
|
||||||
|
DirectoryInfo[] dirs = new DirectoryInfo(rawQuery).GetDirectories();
|
||||||
|
foreach (DirectoryInfo dir in dirs)
|
||||||
|
{
|
||||||
|
if ((dir.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) continue;
|
||||||
|
|
||||||
//if (System.IO.Directory.Exists(input)) {
|
DirectoryInfo dirCopy = dir;
|
||||||
var dirs = new DirectoryInfo(path).GetDirectories();
|
var result = new Result(dir.Name, "Images/folder.png", "Ctrl + Enter to open the directory")
|
||||||
|
{
|
||||||
|
Action = c =>
|
||||||
|
{
|
||||||
|
if (c.SpecialKeyState.CtrlPressed)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Process.Start(dirCopy.FullName);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(ex.Message, "Could not start " + dirCopy.FullName);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
context.API.ChangeQuery(dirCopy.FullName + "\\");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
var parentDirKey = input.TrimEnd('\\', '/');
|
results.Add(result);
|
||||||
if (!parentDirectories.ContainsKey(parentDirKey)) parentDirectories.Add(parentDirKey, dirs);
|
}
|
||||||
|
|
||||||
var fuzzy = FuzzyMatcher.Create(Path.GetFileName(currentPath).ToLower());
|
//Add children files
|
||||||
foreach (var dir in dirs) { //.Where(x => (x.Attributes & FileAttributes.Hidden) != 0)) {
|
FileInfo[] files = new DirectoryInfo(rawQuery).GetFiles();
|
||||||
if ((dir.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) continue;
|
foreach (FileInfo file in files)
|
||||||
|
{
|
||||||
|
if ((file.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) continue;
|
||||||
|
|
||||||
var result = new Result(dir.Name, "Images/folder.png") {
|
string filePath = file.FullName;
|
||||||
Action = (c) => {
|
var result = new Result(Path.GetFileName(filePath), "Images/file.png")
|
||||||
//context.ChangeQuery(dir.FullName);
|
{
|
||||||
context.ChangeQuery(input + dir.Name + "\\");
|
Action = c =>
|
||||||
return false;
|
{
|
||||||
}
|
try
|
||||||
};
|
{
|
||||||
|
Process.Start(filePath);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(ex.Message, "Could not start " + filePath);
|
||||||
|
}
|
||||||
|
|
||||||
if (Path.GetFileName(currentPath).ToLower() != "") {
|
return true;
|
||||||
var matchResult = fuzzy.Evaluate(dir.Name);
|
}
|
||||||
result.Score = matchResult.Score;
|
};
|
||||||
if (!matchResult.Success) continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
results.Add(result);
|
results.Add(result);
|
||||||
}
|
}
|
||||||
//}
|
|
||||||
|
|
||||||
var Folder = Path.GetDirectoryName(currentPath);
|
return results;
|
||||||
if (Folder != null) {
|
}
|
||||||
|
}
|
||||||
//var fuzzy = FuzzyMatcher.Create(Path.GetFileName(currentPath).ToLower());
|
|
||||||
foreach (var dir in new DirectoryInfo(Folder).GetFiles()) { //.Where(x => (x.Attributes & FileAttributes.Hidden) != 0)) {
|
|
||||||
if ((dir.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) continue;
|
|
||||||
|
|
||||||
var dirPath = dir.FullName;
|
|
||||||
Result result = new Result(Path.GetFileNameWithoutExtension(dirPath), dirPath) {
|
|
||||||
Action = (c) => {
|
|
||||||
try {
|
|
||||||
Process.Start(dirPath);
|
|
||||||
}
|
|
||||||
catch (Exception ex) {
|
|
||||||
MessageBox.Show(ex.Message, "Could not start " + dir.Name);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if (Path.GetFileName(currentPath) != "") {
|
|
||||||
var matchResult = fuzzy.Evaluate(dir.Name);
|
|
||||||
result.Score = matchResult.Score;
|
|
||||||
if (!matchResult.Success) continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
results.Add(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -1,29 +1,47 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Security.Policy;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
namespace Wox.Plugin.SystemPlugins
|
namespace Wox.Plugin.SystemPlugins
|
||||||
{
|
{
|
||||||
public class UrlPlugin : BaseSystemPlugin
|
public class UrlPlugin : BaseSystemPlugin
|
||||||
{
|
{
|
||||||
|
const string pattern = @"^(http|https|)\://|[a-zA-Z0-9\-\.]+\.[a-zA-Z](:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*[^\.\,\)\(\s]$";
|
||||||
|
Regex reg = new Regex(pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);
|
||||||
|
|
||||||
protected override List<Result> QueryInternal(Query query)
|
protected override List<Result> QueryInternal(Query query)
|
||||||
{
|
{
|
||||||
var raw = query.RawQuery;
|
var raw = query.RawQuery;
|
||||||
Uri uri;
|
if (reg.IsMatch(raw))
|
||||||
if (Uri.TryCreate(raw, UriKind.Absolute, out uri))
|
|
||||||
{
|
{
|
||||||
return new List<Result>
|
return new List<Result>
|
||||||
{
|
{
|
||||||
new Result
|
new Result
|
||||||
{
|
{
|
||||||
Title = raw,
|
Title = raw,
|
||||||
SubTitle = "Open the typed URL...",
|
SubTitle = "Open " + raw,
|
||||||
IcoPath = "Images/url1.png",
|
IcoPath = "Images/url.png",
|
||||||
Score = 8,
|
Score = 8,
|
||||||
Action = _ =>
|
Action = _ =>
|
||||||
{
|
{
|
||||||
Process.Start(uri.AbsoluteUri);
|
if (!raw.ToLower().StartsWith("http"))
|
||||||
return true;
|
{
|
||||||
|
raw = "http://" + raw;
|
||||||
|
}
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Process.Start(raw);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show(ex.Message, "Could not open " + raw);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -38,7 +56,7 @@ namespace Wox.Plugin.SystemPlugins
|
|||||||
|
|
||||||
public override string Name { get { return "URL handler"; } }
|
public override string Name { get { return "URL handler"; } }
|
||||||
public override string Description { get { return "Provide Opening the typed URL from Wox."; } }
|
public override string Description { get { return "Provide Opening the typed URL from Wox."; } }
|
||||||
public override string IcoPath { get { return "Images/url2.png"; } }
|
public override string IcoPath { get { return "Images/url.png"; } }
|
||||||
|
|
||||||
protected override void InitInternal(PluginInitContext context)
|
protected override void InitInternal(PluginInitContext context)
|
||||||
{
|
{
|
||||||
|
16
Wox.Plugin/EventHandler.cs
Normal file
16
Wox.Plugin/EventHandler.cs
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Input;
|
||||||
|
|
||||||
|
namespace Wox.Plugin
|
||||||
|
{
|
||||||
|
public delegate void WoxKeyDownEventHandler(object sender, WoxKeyDownEventArgs e);
|
||||||
|
|
||||||
|
public class WoxKeyDownEventArgs
|
||||||
|
{
|
||||||
|
public string Query { get; set; }
|
||||||
|
public KeyEventArgs keyEventArgs { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -32,5 +32,7 @@ namespace Wox.Plugin
|
|||||||
void ReloadPlugins();
|
void ReloadPlugins();
|
||||||
|
|
||||||
List<PluginPair> GetAllPlugins();
|
List<PluginPair> GetAllPlugins();
|
||||||
|
|
||||||
|
event WoxKeyDownEventHandler BackKeyDownEvent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="AllowedLanguage.cs" />
|
<Compile Include="AllowedLanguage.cs" />
|
||||||
|
<Compile Include="EventHandler.cs" />
|
||||||
<Compile Include="IHttpProxy.cs" />
|
<Compile Include="IHttpProxy.cs" />
|
||||||
<Compile Include="IPlugin.cs" />
|
<Compile Include="IPlugin.cs" />
|
||||||
<Compile Include="IPublicAPI.cs" />
|
<Compile Include="IPublicAPI.cs" />
|
||||||
|
BIN
Wox/Images/file.png
Normal file
BIN
Wox/Images/file.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 24 KiB |
@ -133,6 +133,8 @@ namespace Wox
|
|||||||
return Plugins.AllPlugins;
|
return Plugins.AllPlugins;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public event WoxKeyDownEventHandler BackKeyDownEvent;
|
||||||
|
|
||||||
public void PushResults(Query query, PluginMetadata plugin, List<Result> results)
|
public void PushResults(Query query, PluginMetadata plugin, List<Result> results)
|
||||||
{
|
{
|
||||||
results.ForEach(o =>
|
results.ForEach(o =>
|
||||||
@ -456,31 +458,6 @@ namespace Wox
|
|||||||
private void TbQuery_OnPreviewKeyDown(object sender, KeyEventArgs e)
|
private void TbQuery_OnPreviewKeyDown(object sender, KeyEventArgs e)
|
||||||
{
|
{
|
||||||
//when alt is pressed, the real key should be e.SystemKey
|
//when alt is pressed, the real key should be e.SystemKey
|
||||||
|
|
||||||
Action Shift_GoBack = () =>
|
|
||||||
{
|
|
||||||
if (e.KeyboardDevice.IsKeyDown(Key.LeftShift) || e.KeyboardDevice.IsKeyDown(Key.RightShift))
|
|
||||||
{
|
|
||||||
if (tbQuery.Text.EndsWith("\\"))
|
|
||||||
{
|
|
||||||
tbQuery.Text = tbQuery.Text.Remove(tbQuery.Text.Length - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tbQuery.Text.Contains("\\"))
|
|
||||||
{
|
|
||||||
var index = tbQuery.Text.LastIndexOf("\\");
|
|
||||||
tbQuery.Text = tbQuery.Text.Remove(index) + "\\";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tbQuery.Text = "";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
tbQuery.CaretIndex = int.MaxValue;
|
|
||||||
};
|
|
||||||
|
|
||||||
Key key = (e.Key == Key.System ? e.SystemKey : e.Key);
|
Key key = (e.Key == Key.System ? e.SystemKey : e.Key);
|
||||||
switch (key)
|
switch (key)
|
||||||
{
|
{
|
||||||
@ -518,17 +495,23 @@ namespace Wox
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Key.Enter:
|
case Key.Enter:
|
||||||
Shift_GoBack();
|
|
||||||
AcceptSelect(resultCtrl.AcceptSelect());
|
AcceptSelect(resultCtrl.AcceptSelect());
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case Key.Back:
|
||||||
|
if (BackKeyDownEvent != null)
|
||||||
|
{
|
||||||
|
BackKeyDownEvent(tbQuery,new WoxKeyDownEventArgs()
|
||||||
|
{
|
||||||
|
Query = tbQuery.Text,
|
||||||
|
keyEventArgs = e
|
||||||
|
});
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case Key.Tab:
|
case Key.Tab:
|
||||||
Shift_GoBack();
|
|
||||||
AcceptSelect(resultCtrl.AcceptSelect());
|
AcceptSelect(resultCtrl.AcceptSelect());
|
||||||
if (!tbQuery.Text.EndsWith("\\")) tbQuery.Text += "\\";
|
|
||||||
AcceptSelect(resultCtrl.AcceptSelect());
|
|
||||||
tbQuery.CaretIndex = int.MaxValue;
|
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -377,8 +377,7 @@
|
|||||||
<Resource Include="Images\color2.png" />
|
<Resource Include="Images\color2.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Resource Include="Images\url1.png" />
|
<Resource Include="Images\url.png" />
|
||||||
<Resource Include="Images\url2.png" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
|
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
|
||||||
|
Loading…
Reference in New Issue
Block a user