From 6330a784e82a740ba765d719c553e27b4c92dd1a Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Tue, 2 Jun 2020 20:58:22 +1000 Subject: [PATCH] add context menu to exclude indexed path from using index search --- .../ContextMenu.cs | 23 +++++++++++++++--- .../Flow.Launcher.Plugin.Explorer.csproj | 4 +++ .../Images/excludeindexpath.png | Bin 0 -> 32667 bytes Plugins/Flow.Launcher.Plugin.Explorer/Main.cs | 8 +++--- .../Search/Constants.cs | 1 + .../Search/SearchManager.cs | 4 +-- .../Flow.Launcher.Plugin.Explorer/Settings.cs | 2 +- 7 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 Plugins/Flow.Launcher.Plugin.Explorer/Images/excludeindexpath.png diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs b/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs index ab9c8f10f..964a8897c 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/ContextMenu.cs @@ -7,6 +7,7 @@ using System.Windows; using Flow.Launcher.Infrastructure.Logger; using Flow.Launcher.Plugin.SharedCommands; using Flow.Launcher.Plugin.Explorer.Search; +using System.Windows.Media; namespace Flow.Launcher.Plugin.Explorer { @@ -18,9 +19,10 @@ namespace Flow.Launcher.Plugin.Explorer if (selectedResult.ContextData is SearchResult record) { if (record.Type == ResultType.File) - { contextMenus.Add(CreateOpenWithEditorResult(record)); - } + + if (record.Type == ResultType.Folder && record.WindowsIndexed) + contextMenus.Add(CreateAddToIndexSearchExclusionListResult(record)); contextMenus.Add(CreateOpenContainingFolderResult(record)); @@ -154,7 +156,6 @@ namespace Flow.Launcher.Plugin.Explorer }; } - private Result CreateOpenWithEditorResult(SearchResult record) { string editorPath = "notepad.exe"; // TODO add the ability to create a custom editor @@ -182,6 +183,22 @@ namespace Flow.Launcher.Plugin.Explorer }; } + private Result CreateAddToIndexSearchExclusionListResult(SearchResult record) + { + return new Result + { + Title = "Exclude path from index search", + SubTitle = record.FullPath, + Action = _ => + { + Main.Settings.IndexSearchExcludedDirectories.Add(record.FullPath); + + return false; + }, + IcoPath = Constants.ExcludeFromIndexImagePath + }; + } + public void LogException(string message, Exception e) { Log.Exception($"|Flow.Launcher.Plugin.Folder.ContextMenu|{message}", e); diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Flow.Launcher.Plugin.Explorer.csproj b/Plugins/Flow.Launcher.Plugin.Explorer/Flow.Launcher.Plugin.Explorer.csproj index 3f3206567..65eed12d6 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Flow.Launcher.Plugin.Explorer.csproj +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Flow.Launcher.Plugin.Explorer.csproj @@ -31,6 +31,10 @@ PreserveNewest + + + PreserveNewest + PreserveNewest diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Images/excludeindexpath.png b/Plugins/Flow.Launcher.Plugin.Explorer/Images/excludeindexpath.png new file mode 100644 index 0000000000000000000000000000000000000000..8578ac7fb61f2167c5194494ff8aa4a618d45dbe GIT binary patch literal 32667 zcmeGDWmJ{j_XP}JhejHuK|)GWKnanM5Dq2MB_Q2MBY7|YX$~cgNOyNBC9QOWq_lu^ zz596o{^R}je1FDxbPR=kt-bczbIm#Tz7G0PRYi{A7WFL%f(YR9GHMWn0lvh5aInB% z{&bx0z@H{?nWq|_)7xJIz!-$cxXP! z3spxH9&bK9%Jfoe&cCZ!>JAbtmWrfzeBI#kn{2GqZY+6>SQe!#mewS`kp^YXF-9(wPL*bIcS*l;WCNHP`E z{Z7fLez-BzyvfZyd4Gd$Tx9()U{B)p@wDyDINkBok5x|>(T?0<;sy5B`_Dz(!>;VN zyA%kQMn=OG)8`@%bmNDrd}>w&c+%a@`e{IoIx1VW-R0J#yb97Ov#X~{9If?(PVT+s z-rH*mg#Cw;1E!6A)$9{y8`CKUC7SgX1Ypi(y1-I!!d~!tF0CW&g`H5x$uy&T4y||B zZvIMJq1=L)sdw)qu89hR5oi0pM?4b^FbFd43J+@S6gP}I_mrFI)*dF7&_7qczE&VC z(K|bi+~JvMDGI0{zcdEvjYHyYZX12yPkPv~zUwRPNAK_aW1_vPwJ5qmt2gPsZFeKe zQaEB*_p984g|Zo2Qk?B*8Z(j7**UG8T{Usln&UdUwx~imOMPlDmxxR4gM{rj%35oY z?=shNn@wkWskv;+i+VsBL^p%UOVN)ReyY&Z#VstqK*|M=a#fPG~!~#Sm6+^-=TK))#G5)BrFMZ!}vo*=bkp1f@61^m zRLp3Ij>qtu{ckmq&vV87Vw`97dVVPu6zlhisqMx&4|xWGYE+vK<~HmjJluUR8CECN zdwwY-)f~rq=glgvrrCh!;|3iKos5E6wEEMuph+Iu&IqJMc4NYBG54zB;RI+$Tfx+m zkKJw}^C`|L8?~3i1+|vj{mw-3-sRw-jtZOd(*2haMA@`6UB{Zv#K^T~Uw~S(?(R>3 z*<#sEdTS(+yNF+c^Q>l1fZXsq5AAyGKCz1eyk$6Q5A7mOa!)?*EH~fpF73Wn@A>*{ z__Ld3!t%B=Z-O_94eWwDAW53}(2&1PVqVJb{S1g(DYBDpe_OD7LOr56j`jhwvYfX% zz0r*DN6SYLB$+xa>*Tt*On1M#-V~ctL`gnrkT4=u|2Vdy_958bw4#WLyswYIYF!TU z-Mg%*&7^FxwfCSh9c4ww{k>)1`*I~K2nK7yP3OPnd;8qrh%5U>e(niRUY@z%O;AmX z!#rRv6x*CPN5$&^XtNqU__4cIMEvn_w*r6EM_gR(xBz4ncD1Kx%b~SAAM}H( z4;PzS#y1xN{O&&OXaL*~-zhT7NXTm6Xet+q7b^x2c57eR(#G_r|5&T5L;iY+jQPrYCc(l9slAfN|+Y&%OV!V7T+|uXd)$8<&nZKSJz zg1gB4LJEl-Ai!(k-Um}h`)RSuNQFQH_^`AGT&Sb*iUG7zj@RU+P{;lI-9{W#HZ1VS z8u9DdHBbGiK41@?>@On{B6kW*g5#L!+|7B7woQTB5ZHRcylIK&!iDi)HIY?M;+mVc z_W>4%_9G?2CI4XZCVN-FY|YZpynSRo
    HK(eJ4q27J0!Jndl)M^o1T`id>0u5nn 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�z=R%N0lXV3%mb$l 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 YF!4ZnUmtr8T#2kCuP#^o)co!L0ef9{uK)l5 literal 0 HcmV?d00001 diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Main.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Main.cs index 8bd6812d2..18691c579 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Main.cs @@ -1,4 +1,4 @@ -using Flow.Launcher.Infrastructure.Storage; +using Flow.Launcher.Infrastructure.Storage; using Flow.Launcher.Plugin.Explorer.Search; using Flow.Launcher.Plugin.Explorer.ViewModels; using Flow.Launcher.Plugin.Explorer.Views; @@ -12,7 +12,7 @@ namespace Flow.Launcher.Plugin.Explorer { internal static PluginInitContext Context { get; set; } - private Settings _settings; + internal static Settings Settings; private SettingsViewModel _viewModel; @@ -27,7 +27,7 @@ namespace Flow.Launcher.Plugin.Explorer { Context = context; _viewModel = new SettingsViewModel(); - _settings = _viewModel.Settings; + Settings = _viewModel.Settings; _contextMenu = new ContextMenu(); } @@ -43,7 +43,7 @@ namespace Flow.Launcher.Plugin.Explorer if (string.IsNullOrEmpty(query.Search)) return results; - return new SearchManager(_settings, Context).Search(query); + return new SearchManager(Settings, Context).Search(query); } public void Save() diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/Constants.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/Constants.cs index a299f24c3..2f6a6f2ea 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/Constants.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/Constants.cs @@ -11,6 +11,7 @@ namespace Flow.Launcher.Plugin.Explorer.Search internal const string DeleteFileFolderImagePath = "Images\\deletefilefolder.png"; internal const string CopyImagePath = "Images\\copy.png"; internal const string IndexImagePath = "Images\\index.png"; + internal const string ExcludeFromIndexImagePath = "Images\\excludeindexpath.png"; internal const string DefaultFolderSubtitleString = "Ctrl + Enter to open the directory"; diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/SearchManager.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/SearchManager.cs index 33d255ae0..1ffc9ee51 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/SearchManager.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/SearchManager.cs @@ -112,8 +112,8 @@ namespace Flow.Launcher.Plugin.Explorer.Search if (!_settings.UseWindowsIndexForDirectorySearch) return false; - if (_settings.WindowsIndexExcludedDirectories - .Any(x => x.Path == FilesFolders.ReturnPreviousDirectoryIfIncompleteString(locationPath))) + if (_settings.IndexSearchExcludedDirectories + .Any(x => x == FilesFolders.ReturnPreviousDirectoryIfIncompleteString(locationPath))) return false; return _indexSearch.PathIsIndexed(locationPath); diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Settings.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Settings.cs index abe452481..53011bf18 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Settings.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Settings.cs @@ -17,6 +17,6 @@ namespace Flow.Launcher.Plugin.Explorer public bool UseWindowsIndexForDirectorySearch { get; set; } = true; [JsonProperty] - public List WindowsIndexExcludedDirectories { get; set; } = new List(); + public List IndexSearchExcludedDirectories { get; set; } = new List(); } }