From 04275cd702783e32826b457e9ed8a06d20431032 Mon Sep 17 00:00:00 2001 From: Korzo Date: Mon, 30 May 2016 21:07:20 +0200 Subject: [PATCH] Add ability to configure Everything executable working directory (#718) --- .../EverythingSettings.xaml | 14 +++++++++ .../EverythingSettings.xaml.cs | 31 +++++++++++++++++++ .../Wox.Plugin.Everything/Languages/de.xaml | 2 ++ .../Wox.Plugin.Everything/Languages/en.xaml | 2 ++ .../Languages/zh-cn.xaml | 3 +- .../Languages/zh-tw.xaml | 2 ++ Plugins/Wox.Plugin.Everything/Main.cs | 16 ++++++++-- Plugins/Wox.Plugin.Everything/Settings.cs | 2 ++ .../Wox.Plugin.Everything.csproj | 11 +++++++ 9 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 Plugins/Wox.Plugin.Everything/EverythingSettings.xaml create mode 100644 Plugins/Wox.Plugin.Everything/EverythingSettings.xaml.cs diff --git a/Plugins/Wox.Plugin.Everything/EverythingSettings.xaml b/Plugins/Wox.Plugin.Everything/EverythingSettings.xaml new file mode 100644 index 0000000000..59939b0835 --- /dev/null +++ b/Plugins/Wox.Plugin.Everything/EverythingSettings.xaml @@ -0,0 +1,14 @@ + + + + + + + diff --git a/Plugins/Wox.Plugin.Everything/EverythingSettings.xaml.cs b/Plugins/Wox.Plugin.Everything/EverythingSettings.xaml.cs new file mode 100644 index 0000000000..5a9ad5fb9e --- /dev/null +++ b/Plugins/Wox.Plugin.Everything/EverythingSettings.xaml.cs @@ -0,0 +1,31 @@ +using System.Windows; +using System.Windows.Controls; + +namespace Wox.Plugin.Everything +{ + public partial class EverythingSettings : UserControl + { + private readonly Settings _settings; + + public EverythingSettings(Settings settings) + { + InitializeComponent(); + _settings = settings; + } + + private void View_Loaded(object sender, RoutedEventArgs re) + { + UseLocationAsWorkingDir.IsChecked = _settings.UseLocationAsWorkingDir; + + UseLocationAsWorkingDir.Checked += (o, e) => + { + _settings.UseLocationAsWorkingDir = true; + }; + + UseLocationAsWorkingDir.Unchecked += (o, e) => + { + _settings.UseLocationAsWorkingDir = false; + }; + } + } +} diff --git a/Plugins/Wox.Plugin.Everything/Languages/de.xaml b/Plugins/Wox.Plugin.Everything/Languages/de.xaml index cdfec977c9..ba4cfe9add 100644 --- a/Plugins/Wox.Plugin.Everything/Languages/de.xaml +++ b/Plugins/Wox.Plugin.Everything/Languages/de.xaml @@ -11,4 +11,6 @@ Everything Suche Dateien mit Everything + Verwenden Suchergebnis Standort als ausführbare Arbeitsverzeichnis + \ No newline at end of file diff --git a/Plugins/Wox.Plugin.Everything/Languages/en.xaml b/Plugins/Wox.Plugin.Everything/Languages/en.xaml index 2232042a2c..a076308253 100644 --- a/Plugins/Wox.Plugin.Everything/Languages/en.xaml +++ b/Plugins/Wox.Plugin.Everything/Languages/en.xaml @@ -11,4 +11,6 @@ Everything Search on-disk files using Everything + Use search result's location as executable working directory + diff --git a/Plugins/Wox.Plugin.Everything/Languages/zh-cn.xaml b/Plugins/Wox.Plugin.Everything/Languages/zh-cn.xaml index dff45ed4c1..309b59e488 100644 --- a/Plugins/Wox.Plugin.Everything/Languages/zh-cn.xaml +++ b/Plugins/Wox.Plugin.Everything/Languages/zh-cn.xaml @@ -10,5 +10,6 @@ Everything 利用Everything搜索磁盘文件 - + + 使用应用程序的位置为可执行的工作目录 \ No newline at end of file diff --git a/Plugins/Wox.Plugin.Everything/Languages/zh-tw.xaml b/Plugins/Wox.Plugin.Everything/Languages/zh-tw.xaml index 58a979e015..40651d9ed4 100644 --- a/Plugins/Wox.Plugin.Everything/Languages/zh-tw.xaml +++ b/Plugins/Wox.Plugin.Everything/Languages/zh-tw.xaml @@ -10,4 +10,6 @@ Everything 利用Everything搜索磁盤文件 + + 使用应用程序的位置为可执行的工作目录 \ No newline at end of file diff --git a/Plugins/Wox.Plugin.Everything/Main.cs b/Plugins/Wox.Plugin.Everything/Main.cs index 12192da14a..231d94d0c2 100644 --- a/Plugins/Wox.Plugin.Everything/Main.cs +++ b/Plugins/Wox.Plugin.Everything/Main.cs @@ -6,13 +6,14 @@ using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Windows; +using System.Windows.Controls; using Wox.Infrastructure; using Wox.Infrastructure.Storage; using Wox.Plugin.Everything.Everything; namespace Wox.Plugin.Everything { - public class Main : IPlugin, IPluginI18n, IContextMenu, ISavable + public class Main : IPlugin, ISettingProvider, IPluginI18n, IContextMenu, ISavable { private readonly EverythingAPI _api = new EverythingAPI(); @@ -45,6 +46,11 @@ namespace Wox.Plugin.Everything foreach (var s in searchList) { var path = s.FullPath; + + string workingDir = null; + if (_settings.UseLocationAsWorkingDir) + workingDir = Path.GetDirectoryName(path); + Result r = new Result(); r.Title = Path.GetFileName(path); r.SubTitle = path; @@ -57,7 +63,8 @@ namespace Wox.Plugin.Everything Process.Start(new ProcessStartInfo { FileName = path, - UseShellExecute = true + UseShellExecute = true, + WorkingDirectory = workingDir }); hide = true; } @@ -192,5 +199,10 @@ namespace Wox.Plugin.Everything return contextMenus; } + + public Control CreateSettingPanel() + { + return new EverythingSettings(_settings); + } } } diff --git a/Plugins/Wox.Plugin.Everything/Settings.cs b/Plugins/Wox.Plugin.Everything/Settings.cs index c1d9c42f0a..3ac52fba54 100644 --- a/Plugins/Wox.Plugin.Everything/Settings.cs +++ b/Plugins/Wox.Plugin.Everything/Settings.cs @@ -10,6 +10,8 @@ namespace Wox.Plugin.Everything public List ContextMenus = new List(); public int MaxSearchCount { get; set; } = 100; + + public bool UseLocationAsWorkingDir { get; set; } = false; } public class ContextMenu diff --git a/Plugins/Wox.Plugin.Everything/Wox.Plugin.Everything.csproj b/Plugins/Wox.Plugin.Everything/Wox.Plugin.Everything.csproj index bcc094acce..fd620ff49c 100644 --- a/Plugins/Wox.Plugin.Everything/Wox.Plugin.Everything.csproj +++ b/Plugins/Wox.Plugin.Everything/Wox.Plugin.Everything.csproj @@ -51,11 +51,16 @@ + + Properties\SolutionAssemblyInfo.cs + + EverythingSettings.xaml + @@ -147,6 +152,12 @@ PreserveNewest + + + Designer + MSBuild:Compile + +