From 636350c3952daa62346f49f790035aa2c5082727 Mon Sep 17 00:00:00 2001 From: Aaron Campf Date: Sat, 29 Mar 2014 14:32:29 -0700 Subject: [PATCH] Added Features Feature: Search additional folders by default (shallow search) Feature: Disable bookmarks --- Doc/Thumbs.db | Bin 0 -> 11776 bytes .../UserSettings/UserSettingStorage.cs | 4 + Wox.Plugin.SystemPlugins/BrowserBookmarks.cs | 5 + .../FileSystemFolderSourceShallow.cs | 159 ++++++++++++++++++ Wox.Plugin.SystemPlugins/Programs.cs | 1 + .../Wox.Plugin.SystemPlugins.csproj | 1 + Wox/SettingWindow.xaml | 8 +- Wox/SettingWindow.xaml.cs | 9 + 8 files changed, 185 insertions(+), 2 deletions(-) create mode 100644 Doc/Thumbs.db create mode 100644 Wox.Plugin.SystemPlugins/ProgramSources/FileSystemFolderSourceShallow.cs diff --git a/Doc/Thumbs.db b/Doc/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..c3da9c149ea4be1b89367b581e4d467e8b8d047d GIT binary patch literal 11776 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 literal 0 HcmV?d00001 diff --git a/Wox.Infrastructure/Storage/UserSettings/UserSettingStorage.cs b/Wox.Infrastructure/Storage/UserSettings/UserSettingStorage.cs index 14a223eaf3..f876498dd6 100644 --- a/Wox.Infrastructure/Storage/UserSettings/UserSettingStorage.cs +++ b/Wox.Infrastructure/Storage/UserSettings/UserSettingStorage.cs @@ -56,6 +56,9 @@ namespace Wox.Infrastructure.Storage.UserSettings [JsonProperty] public bool EnablePythonPlugins { get; set; } + [JsonProperty] + public bool EnableBookmarkPlugin { get; set; } + [JsonProperty] public double Opacity { get; set; } @@ -122,6 +125,7 @@ namespace Wox.Infrastructure.Storage.UserSettings protected override void LoadDefaultConfig() { EnablePythonPlugins = true; + EnableBookmarkPlugin = true; Theme = "Dark"; ReplaceWinR = true; WebSearches = LoadDefaultWebSearches(); diff --git a/Wox.Plugin.SystemPlugins/BrowserBookmarks.cs b/Wox.Plugin.SystemPlugins/BrowserBookmarks.cs index 69f2dd495a..4521a6c062 100644 --- a/Wox.Plugin.SystemPlugins/BrowserBookmarks.cs +++ b/Wox.Plugin.SystemPlugins/BrowserBookmarks.cs @@ -49,6 +49,11 @@ namespace Wox.Plugin.SystemPlugins protected override void InitInternal(PluginInitContext context) { + if (!Wox.Infrastructure.Storage.UserSettings.UserSettingStorage.Instance.EnableBookmarkPlugin) + { + return; + } + bookmarks.Clear(); LoadChromeBookmarks(); diff --git a/Wox.Plugin.SystemPlugins/ProgramSources/FileSystemFolderSourceShallow.cs b/Wox.Plugin.SystemPlugins/ProgramSources/FileSystemFolderSourceShallow.cs new file mode 100644 index 0000000000..ad2db77bc7 --- /dev/null +++ b/Wox.Plugin.SystemPlugins/ProgramSources/FileSystemFolderSourceShallow.cs @@ -0,0 +1,159 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using Wox.Infrastructure; +using Wox.Infrastructure.Storage.UserSettings; +using Wox.Plugin.SystemPlugins; +using Wox.Plugin.SystemPlugins.ProgramSources; + +namespace Wox.Plugin.SystemPlugins.ProgramSources { + //TODO: Create Deep Version that grabs all subfolders like FileSystemProgramSource + + /// + /// + /// + public class FileSystemFolderSourceShallow : FileSystemProgramSource { + //private static Dictionary parentDirectories = new Dictionary(); + + + public FileSystemFolderSourceShallow(string baseDirectory) + : base(baseDirectory) { } + + public FileSystemFolderSourceShallow(ProgramSource source) + : base(source) { } + + public override List LoadPrograms() { + List list = new List(); + + foreach (var Folder in Directory.GetDirectories(BaseDirectory)) { + list.Add(CreateEntry(Folder)); + } + + + foreach (string file in Directory.GetFiles(base.BaseDirectory)) { + if (Suffixes.Any(o => file.EndsWith("." + o))) { + list.Add(CreateEntry(file)); + } + } + + return list; + } + + + public override string ToString() { + return typeof(UserStartMenuProgramSource).Name; + } + + + /* + public class FolderSource : IProgramSource { + private PluginInitContext context; + public string Location { get; set; } + public int BonusPoints { get; set; } + + public FolderSource(string Location) { + this.Location = Location; + } + + public List LoadPrograms() { + List results = new List(); + + if (Directory.Exists(Location)) { + // show all child directory + if (Location.EndsWith("\\") || Location.EndsWith("/")) { + var dirInfo = new DirectoryInfo(Location); + var dirs = dirInfo.GetDirectories(); + + var parentDirKey = Location.TrimEnd('\\', '/'); + if (!parentDirectories.ContainsKey(parentDirKey)) + parentDirectories.Add(parentDirKey, dirs); + + foreach (var dir in dirs) { + if ((dir.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) + continue; + + var dirPath = dir.FullName; + Result result = new Result { + Title = dir.Name, + IcoPath = "Images/folder.png", + Action = (c) => { + context.ChangeQuery(dirPath); + return false; + } + }; + results.Add(result); + } + + if (results.Count == 0) { + Result result = new Result { + Title = "Open this directory", + SubTitle = "No files in this directory", + IcoPath = "Images/folder.png", + Action = (c) => { + Process.Start(Location); + return true; + } + }; + results.Add(result); + } + } + else { + Result result = new Result { + Title = "Open this directory", + SubTitle = string.Format("path: {0}", Location), + Score = 50, + IcoPath = "Images/folder.png", + Action = (c) => { + Process.Start(Location); + return true; + } + }; + results.Add(result); + } + + } + + // change to search in current directory + var parentDir = Path.GetDirectoryName(Location); + if (!string.IsNullOrEmpty(parentDir) && results.Count == 0) { + parentDir = parentDir.TrimEnd('\\', '/'); + if (parentDirectories.ContainsKey(parentDir)) { + + var dirs = parentDirectories[parentDir]; + var queryFileName = Path.GetFileName(Location).ToLower(); + var fuzzy = FuzzyMatcher.Create(queryFileName); + foreach (var dir in dirs) { + if ((dir.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) + continue; + + var matchResult = fuzzy.Evaluate(dir.Name); + if (!matchResult.Success) + continue; + + var dirPath = dir.FullName; + Result result = new Result { + Title = dir.Name, + IcoPath = "Images/folder.png", + Score = matchResult.Score, + Action = (c) => { + context.ChangeQuery(dirPath); + return false; + } + }; + results.Add(result); + } + } + } + + + throw new Exception("Debug this!"); + } + + } + */ + } +} diff --git a/Wox.Plugin.SystemPlugins/Programs.cs b/Wox.Plugin.SystemPlugins/Programs.cs index 3fec22df92..1ec59f18bd 100644 --- a/Wox.Plugin.SystemPlugins/Programs.cs +++ b/Wox.Plugin.SystemPlugins/Programs.cs @@ -53,6 +53,7 @@ namespace Wox.Plugin.SystemPlugins {"CommonStartMenuProgramSource", typeof(CommonStartMenuProgramSource)}, {"UserStartMenuProgramSource", typeof(UserStartMenuProgramSource)}, {"AppPathsProgramSource", typeof(AppPathsProgramSource)}, + {"FileSystemFolderSourceShallow", typeof(FileSystemFolderSourceShallow)}, }; private PluginInitContext context; diff --git a/Wox.Plugin.SystemPlugins/Wox.Plugin.SystemPlugins.csproj b/Wox.Plugin.SystemPlugins/Wox.Plugin.SystemPlugins.csproj index 617ae64cc1..d813bdea13 100644 --- a/Wox.Plugin.SystemPlugins/Wox.Plugin.SystemPlugins.csproj +++ b/Wox.Plugin.SystemPlugins/Wox.Plugin.SystemPlugins.csproj @@ -63,6 +63,7 @@ + diff --git a/Wox/SettingWindow.xaml b/Wox/SettingWindow.xaml index 4bd481ecc6..f6ef5abbc7 100644 --- a/Wox/SettingWindow.xaml +++ b/Wox/SettingWindow.xaml @@ -62,7 +62,7 @@ - + @@ -271,7 +271,11 @@