From d3fbabe10e8b2b1f21b8b62fbc90c518c54c5b5b Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Mon, 7 Sep 2020 06:55:12 +1000 Subject: [PATCH 01/13] add dedicated missing img icon --- Doc/app_missing_img.png | Bin 0 -> 44577 bytes Flow.Launcher.Infrastructure/Constant.cs | 6 ++++-- .../Image/ImageLoader.cs | 10 +++++----- Flow.Launcher/Images/app_missing_img.png | Bin 0 -> 44577 bytes Flow.Launcher/ViewModel/ResultViewModel.cs | 2 +- .../Programs/UWP.cs | 4 ++-- 6 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 Doc/app_missing_img.png create mode 100644 Flow.Launcher/Images/app_missing_img.png diff --git a/Doc/app_missing_img.png b/Doc/app_missing_img.png new file mode 100644 index 0000000000000000000000000000000000000000..11d5466f02984796b3bca97499c17af38f3fb4c1 GIT binary patch literal 44577 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 literal 0 HcmV?d00001 diff --git a/Flow.Launcher.Infrastructure/Constant.cs b/Flow.Launcher.Infrastructure/Constant.cs index a8c72fb12..c6a3b48f3 100644 --- a/Flow.Launcher.Infrastructure/Constant.cs +++ b/Flow.Launcher.Infrastructure/Constant.cs @@ -23,8 +23,10 @@ namespace Flow.Launcher.Infrastructure public static readonly string Version = FileVersionInfo.GetVersionInfo(Assembly.Location.NonNull()).ProductVersion; public static readonly int ThumbnailSize = 64; - public static readonly string DefaultIcon = Path.Combine(ProgramDirectory, "Images", "app.png"); - public static readonly string ErrorIcon = Path.Combine(ProgramDirectory, "Images", "app_error.png"); + private static readonly string ImagesDirectory = Path.Combine(ProgramDirectory, "Images"); + public static readonly string DefaultIcon = Path.Combine(ImagesDirectory, "app.png"); + public static readonly string ErrorIcon = Path.Combine(ImagesDirectory, "app_error.png"); + public static readonly string MissingImgIcon = Path.Combine(ImagesDirectory, "app_missing_img.png"); public static string PythonPath; diff --git a/Flow.Launcher.Infrastructure/Image/ImageLoader.cs b/Flow.Launcher.Infrastructure/Image/ImageLoader.cs index 0bf575337..5cf3d84a6 100644 --- a/Flow.Launcher.Infrastructure/Image/ImageLoader.cs +++ b/Flow.Launcher.Infrastructure/Image/ImageLoader.cs @@ -38,7 +38,7 @@ namespace Flow.Launcher.Infrastructure.Image _imageCache.Usage = LoadStorageToConcurrentDictionary(); - foreach (var icon in new[] { Constant.DefaultIcon, Constant.ErrorIcon }) + foreach (var icon in new[] { Constant.DefaultIcon, Constant.MissingImgIcon }) { ImageSource img = new BitmapImage(new Uri(icon)); img.Freeze(); @@ -106,7 +106,7 @@ namespace Flow.Launcher.Infrastructure.Image { if (string.IsNullOrEmpty(path)) { - return new ImageResult(_imageCache[Constant.ErrorIcon], ImageType.Error); + return new ImageResult(_imageCache[Constant.MissingImgIcon], ImageType.Error); } if (_imageCache.ContainsKey(path)) { @@ -139,7 +139,7 @@ namespace Flow.Launcher.Infrastructure.Image Log.Exception($"|ImageLoader.Load|Failed to get thumbnail for {path} on first try", e); Log.Exception($"|ImageLoader.Load|Failed to get thumbnail for {path} on second try", e2); - ImageSource image = _imageCache[Constant.ErrorIcon]; + ImageSource image = _imageCache[Constant.MissingImgIcon]; _imageCache[path] = image; imageResult = new ImageResult(image, ImageType.Error); } @@ -191,8 +191,8 @@ namespace Flow.Launcher.Infrastructure.Image } else { - image = _imageCache[Constant.ErrorIcon]; - path = Constant.ErrorIcon; + image = _imageCache[Constant.MissingImgIcon]; + path = Constant.MissingImgIcon; } if (type != ImageType.Error) diff --git a/Flow.Launcher/Images/app_missing_img.png b/Flow.Launcher/Images/app_missing_img.png new file mode 100644 index 0000000000000000000000000000000000000000..11d5466f02984796b3bca97499c17af38f3fb4c1 GIT binary patch literal 44577 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 literal 0 HcmV?d00001 diff --git a/Flow.Launcher/ViewModel/ResultViewModel.cs b/Flow.Launcher/ViewModel/ResultViewModel.cs index 4392234eb..a4fe2ede4 100644 --- a/Flow.Launcher/ViewModel/ResultViewModel.cs +++ b/Flow.Launcher/ViewModel/ResultViewModel.cs @@ -51,7 +51,7 @@ namespace Flow.Launcher.ViewModel catch (Exception e) { Log.Exception($"|ResultViewModel.Image|IcoPath is empty and exception when calling Icon() for result <{Result.Title}> of plugin <{Result.PluginDirectory}>", e); - imagePath = Constant.ErrorIcon; + imagePath = Constant.MissingImgIcon; } } diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs index b8633f357..69e077ee2 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs @@ -536,7 +536,7 @@ namespace Flow.Launcher.Plugin.Program.Programs ProgramLogger.LogException($"|UWP|ImageFromPath|{path}" + $"|Unable to get logo for {UserModelId} from {path} and" + $" located in {Package.Location}", new FileNotFoundException()); - return new BitmapImage(new Uri(Constant.ErrorIcon)); + return new BitmapImage(new Uri(Constant.MissingImgIcon)); } } @@ -586,7 +586,7 @@ namespace Flow.Launcher.Plugin.Program.Programs $"|Unable to convert background string {BackgroundColor} " + $"to color for {Package.Location}", new InvalidOperationException()); - return new BitmapImage(new Uri(Constant.ErrorIcon)); + return new BitmapImage(new Uri(Constant.MissingImgIcon)); } } else From c86e2dbed678492495fa62d7055f36241db9258a Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Mon, 7 Sep 2020 06:58:04 +1000 Subject: [PATCH 02/13] version bump --- SolutionAssemblyInfo.cs | 6 +++--- appveyor.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/SolutionAssemblyInfo.cs b/SolutionAssemblyInfo.cs index c7c8812f2..5591de39c 100644 --- a/SolutionAssemblyInfo.cs +++ b/SolutionAssemblyInfo.cs @@ -16,6 +16,6 @@ using System.Runtime.InteropServices; [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] -[assembly: AssemblyVersion("1.2.1")] -[assembly: AssemblyFileVersion("1.2.1")] -[assembly: AssemblyInformationalVersion("1.2.1")] \ No newline at end of file +[assembly: AssemblyVersion("1.3.0")] +[assembly: AssemblyFileVersion("1.3.0")] +[assembly: AssemblyInformationalVersion("1.3.0")] \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index 703f1cb00..f3bc7cce3 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: '1.2.1.{build}' +version: '1.3.0.{build}' init: - ps: | From a77d0380d3c1934fcb42a2061569a7da5eb29345 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Tue, 22 Sep 2020 08:56:41 +1000 Subject: [PATCH 03/13] update method name typo --- Flow.Launcher.Core/Configuration/Portable.cs | 2 +- Flow.Launcher.Core/Updater.cs | 2 +- Flow.Launcher.Plugin/SharedCommands/FilesFolders.cs | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Flow.Launcher.Core/Configuration/Portable.cs b/Flow.Launcher.Core/Configuration/Portable.cs index 44e4434be..5bca087b8 100644 --- a/Flow.Launcher.Core/Configuration/Portable.cs +++ b/Flow.Launcher.Core/Configuration/Portable.cs @@ -95,7 +95,7 @@ namespace Flow.Launcher.Core.Configuration public void MoveUserDataFolder(string fromLocation, string toLocation) { - FilesFolders.Copy(fromLocation, toLocation); + FilesFolders.CopyAll(fromLocation, toLocation); VerifyUserDataAfterMove(fromLocation, toLocation); } diff --git a/Flow.Launcher.Core/Updater.cs b/Flow.Launcher.Core/Updater.cs index 99d48275a..20df23e40 100644 --- a/Flow.Launcher.Core/Updater.cs +++ b/Flow.Launcher.Core/Updater.cs @@ -91,7 +91,7 @@ namespace Flow.Launcher.Core if (DataLocation.PortableDataLocationInUse()) { var targetDestination = updateManager.RootAppDirectory + $"\\app-{newReleaseVersion.ToString()}\\{DataLocation.PortableFolderName}"; - FilesFolders.Copy(DataLocation.PortableDataPath, targetDestination); + FilesFolders.CopyAll(DataLocation.PortableDataPath, targetDestination); if (!FilesFolders.VerifyBothFolderFilesEqual(DataLocation.PortableDataPath, targetDestination)) MessageBox.Show("Flow Launcher was not able to move your user profile data to the new update version. Please manually " + $"move your profile data folder from {DataLocation.PortableDataPath} to {targetDestination}"); diff --git a/Flow.Launcher.Plugin/SharedCommands/FilesFolders.cs b/Flow.Launcher.Plugin/SharedCommands/FilesFolders.cs index 13905788a..27cd1a558 100644 --- a/Flow.Launcher.Plugin/SharedCommands/FilesFolders.cs +++ b/Flow.Launcher.Plugin/SharedCommands/FilesFolders.cs @@ -17,7 +17,7 @@ namespace Flow.Launcher.Plugin.SharedCommands /// /// /// - public static void Copy(this string sourcePath, string targetPath) + public static void CopyAll(this string sourcePath, string targetPath) { // Get the subdirectories for the specified directory. DirectoryInfo dir = new DirectoryInfo(sourcePath); @@ -50,7 +50,7 @@ namespace Flow.Launcher.Plugin.SharedCommands foreach (DirectoryInfo subdir in dirs) { string temppath = Path.Combine(targetPath, subdir.Name); - Copy(subdir.FullName, temppath); + CopyAll(subdir.FullName, temppath); } } catch (Exception e) @@ -114,7 +114,7 @@ namespace Flow.Launcher.Plugin.SharedCommands return Directory.Exists(path); } - public static bool FileExits(this string filePath) + public static bool FileExists(this string filePath) { return File.Exists(filePath); } @@ -124,7 +124,7 @@ namespace Flow.Launcher.Plugin.SharedCommands var psi = new ProcessStartInfo { FileName = FileExplorerProgramName, UseShellExecute = true, Arguments = fileOrFolderPath }; try { - if (LocationExists(fileOrFolderPath) || FileExits(fileOrFolderPath)) + if (LocationExists(fileOrFolderPath) || FileExists(fileOrFolderPath)) Process.Start(psi); } catch (Exception e) From df168c69eea7fdb611c3b64801a9800db5ba65f1 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Tue, 22 Sep 2020 09:03:43 +1000 Subject: [PATCH 04/13] version bump for Flow.Launcher.Plugin --- Flow.Launcher.Plugin/Flow.Launcher.Plugin.csproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Flow.Launcher.Plugin/Flow.Launcher.Plugin.csproj b/Flow.Launcher.Plugin/Flow.Launcher.Plugin.csproj index 0aacc321b..5dda76bc4 100644 --- a/Flow.Launcher.Plugin/Flow.Launcher.Plugin.csproj +++ b/Flow.Launcher.Plugin/Flow.Launcher.Plugin.csproj @@ -14,10 +14,10 @@ - 1.2.0 - 1.2.0 - 1.2.0 - 1.2.0 + 1.2.1 + 1.2.1 + 1.2.1 + 1.2.1 Flow.Launcher.Plugin Flow-Launcher MIT From 2d45a79aedeee41101a1b377efcd6cf22158d513 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Thu, 24 Sep 2020 07:22:55 +1000 Subject: [PATCH 05/13] sort ProcessKiller plugin's results ascending --- Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs b/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs index 22c84b20f..f675e3f45 100644 --- a/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs @@ -94,12 +94,14 @@ namespace Flow.Launcher.Plugin.ProcessKiller }); } + var sortedResults = results.OrderBy(x => x.Title).ToList(); + // When there are multiple results AND all of them are instances of the same executable // add a quick option to kill them all at the top of the results. - var firstResult = results.FirstOrDefault()?.SubTitle; - if (processlist.Count > 1 && !string.IsNullOrEmpty(termToSearch) && results.All(r => r.SubTitle == firstResult)) + var firstResult = sortedResults.FirstOrDefault()?.SubTitle; + if (processlist.Count > 1 && !string.IsNullOrEmpty(termToSearch) && sortedResults.All(r => r.SubTitle == firstResult)) { - results.Insert(0, new Result() + sortedResults.Insert(1, new Result() { IcoPath = "Images/app.png", Title = string.Format(_context.API.GetTranslation("flowlauncher_plugin_processkiller_kill_all"), termToSearch), @@ -117,7 +119,7 @@ namespace Flow.Launcher.Plugin.ProcessKiller }); } - return results; + return sortedResults; } } } From f5acb9c759a09081788bbb0b539d182b6962fd25 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Thu, 24 Sep 2020 07:23:14 +1000 Subject: [PATCH 06/13] version bump ProcessKiller plugin --- Plugins/Flow.Launcher.Plugin.ProcessKiller/plugin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Flow.Launcher.Plugin.ProcessKiller/plugin.json b/Plugins/Flow.Launcher.Plugin.ProcessKiller/plugin.json index f2e1eca12..894c49bdf 100644 --- a/Plugins/Flow.Launcher.Plugin.ProcessKiller/plugin.json +++ b/Plugins/Flow.Launcher.Plugin.ProcessKiller/plugin.json @@ -4,7 +4,7 @@ "Name":"Process Killer", "Description":"kill running processes from Flow", "Author":"Flow-Launcher", - "Version":"1.0.0", + "Version":"1.1.0", "Language":"csharp", "Website":"https://github.com/Flow-Launcher/Flow.Launcher.Plugin.ProcessKiller", "IcoPath":"Images\\app.png", From 88bc9a2bd672ac4152571d898199efc710cc7804 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=98=E9=9F=AC=20=E5=BC=A0?= Date: Wed, 7 Oct 2020 23:06:12 +0800 Subject: [PATCH 07/13] Fix Encoding Error --- Flow.Launcher/App.xaml.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Flow.Launcher/App.xaml.cs b/Flow.Launcher/App.xaml.cs index 985d4da87..731dc1541 100644 --- a/Flow.Launcher/App.xaml.cs +++ b/Flow.Launcher/App.xaml.cs @@ -1,5 +1,6 @@ using System; using System.Diagnostics; +using System.Text; using System.Threading.Tasks; using System.Timers; using System.Windows; @@ -85,6 +86,8 @@ namespace Flow.Launcher Http.Proxy = _settings.Proxy; + Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + RegisterExitEvents(); AutoStartup(); From 01f98b16fa9799e801333523571de8244bc90212 Mon Sep 17 00:00:00 2001 From: Ioannis G Date: Sun, 11 Oct 2020 23:40:29 +0300 Subject: [PATCH 08/13] plugin/pkiller: fix context menu results do not show the "kill all instances" context menu option when the context menu itself is triggered from the "kill all X processes" result --- .../Main.cs | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs b/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs index f675e3f45..faccc31dc 100644 --- a/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs @@ -52,21 +52,24 @@ namespace Flow.Launcher.Plugin.ProcessKiller // get all non-system processes whose file path matches that of the given result (processPath) var similarProcesses = processHelper.GetSimilarProcesses(processPath); - menuOptions.Add(new Result + if (similarProcesses.Count() > 0) { - Title = _context.API.GetTranslation("flowlauncher_plugin_processkiller_kill_instances"), - SubTitle = processPath, - Action = _ => + menuOptions.Add(new Result { - foreach (var p in similarProcesses) + Title = _context.API.GetTranslation("flowlauncher_plugin_processkiller_kill_instances"), + SubTitle = processPath, + Action = _ => { - processHelper.TryKill(p); - } + foreach (var p in similarProcesses) + { + processHelper.TryKill(p); + } - return true; - }, - IcoPath = processPath - }); + return true; + }, + IcoPath = processPath + }); + } return menuOptions; } From b1ca71b3aa43f015e764e16e87a199ea0ccd2f03 Mon Sep 17 00:00:00 2001 From: Ioannis G Date: Sun, 11 Oct 2020 23:55:35 +0300 Subject: [PATCH 09/13] plugin/pkiller: improve kill-all option - better title, add count of matches in subtitle, use process icon - hide option when executable path is empty --- .../Languages/en.xaml | 3 ++- Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.ProcessKiller/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.ProcessKiller/Languages/en.xaml index 2eee31745..e7a136114 100644 --- a/Plugins/Flow.Launcher.Plugin.ProcessKiller/Languages/en.xaml +++ b/Plugins/Flow.Launcher.Plugin.ProcessKiller/Languages/en.xaml @@ -5,7 +5,8 @@ Process Killer Kill running processes from Flow Launcher - kill all "{0}" processes + kill all instances of "{0}" + kill {0} processes kill all instances \ No newline at end of file diff --git a/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs b/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs index faccc31dc..c3d9d1ab2 100644 --- a/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.ProcessKiller/Main.cs @@ -89,6 +89,7 @@ namespace Flow.Launcher.Plugin.ProcessKiller SubTitle = path, TitleHighlightData = StringMatcher.FuzzySearch(termToSearch, p.ProcessName).MatchData, Score = pr.Score, + ContextData = p.ProcessName, Action = (c) => { processHelper.TryKill(p); @@ -101,14 +102,14 @@ namespace Flow.Launcher.Plugin.ProcessKiller // When there are multiple results AND all of them are instances of the same executable // add a quick option to kill them all at the top of the results. - var firstResult = sortedResults.FirstOrDefault()?.SubTitle; - if (processlist.Count > 1 && !string.IsNullOrEmpty(termToSearch) && sortedResults.All(r => r.SubTitle == firstResult)) + var firstResult = sortedResults.FirstOrDefault(x => !string.IsNullOrEmpty(x.SubTitle)); + if (processlist.Count > 1 && !string.IsNullOrEmpty(termToSearch) && sortedResults.All(r => r.SubTitle == firstResult?.SubTitle)) { sortedResults.Insert(1, new Result() { - IcoPath = "Images/app.png", - Title = string.Format(_context.API.GetTranslation("flowlauncher_plugin_processkiller_kill_all"), termToSearch), - SubTitle = "", + IcoPath = firstResult?.IcoPath, + Title = string.Format(_context.API.GetTranslation("flowlauncher_plugin_processkiller_kill_all"), firstResult?.ContextData), + SubTitle = string.Format(_context.API.GetTranslation("flowlauncher_plugin_processkiller_kill_all_count"), processlist.Count), Score = 200, Action = (c) => { From 7211cdca434f376db6c58ae5993c993b87f716ca Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Fri, 16 Oct 2020 16:59:28 +1100 Subject: [PATCH 10/13] version bump --- SolutionAssemblyInfo.cs | 6 +++--- appveyor.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/SolutionAssemblyInfo.cs b/SolutionAssemblyInfo.cs index 5591de39c..abf7f5e15 100644 --- a/SolutionAssemblyInfo.cs +++ b/SolutionAssemblyInfo.cs @@ -16,6 +16,6 @@ using System.Runtime.InteropServices; [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] -[assembly: AssemblyVersion("1.3.0")] -[assembly: AssemblyFileVersion("1.3.0")] -[assembly: AssemblyInformationalVersion("1.3.0")] \ No newline at end of file +[assembly: AssemblyVersion("1.3.1")] +[assembly: AssemblyFileVersion("1.3.1")] +[assembly: AssemblyInformationalVersion("1.3.1")] \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index f3bc7cce3..2b2acc304 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: '1.3.0.{build}' +version: '1.3.1.{build}' init: - ps: | From 38265e687ba72fe925b130f2c09becc86c1d649f Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Sun, 18 Oct 2020 13:13:24 +1100 Subject: [PATCH 11/13] add discord badge and update readme --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index b4459b9d8..b44628744 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ [![Github All Releases](https://img.shields.io/github/downloads/Flow-Launcher/Flow.Launcher/total.svg)](https://github.com/Flow-Launcher/Flow.Launcher/releases) [![GitHub release (latest by date)](https://img.shields.io/github/v/release/Flow-Launcher/Flow.Launcher)](https://github.com/Flow-Launcher/Flow.Launcher/releases/latest) ![GitHub Release Date](https://img.shields.io/github/release-date/Flow-Launcher/Flow.Launcher) +[![Discord](https://img.shields.io/discord/727828229250875472?color=7389D8&labelColor=6A7EC2&label=Community&logo=discord&logoColor=white)](https://discord.gg/AvgAQgh) Flow Launcher. Dedicated to make your workflow flow more seamlessly. Aimed at being more than an app launcher, it searches, integrates and expands on functionalities. Flow will continue to evolve, designed to be open and built with the community at heart. @@ -59,6 +60,8 @@ Get in touch if you like to join the Flow-Launcher Team and help build this grea Yes please, submit an issue to let us know. +**Join our community on [Discord](https://discord.gg/AvgAQgh)!** + ## Developing/Debugging Flow Launcher's target framework is .Net Core 3.1 From a911cc702404b6e1f282c5aa15e02de7ab636f76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=98=E9=9F=AC=20=E5=BC=A0?= Date: Tue, 13 Oct 2020 14:01:26 +0800 Subject: [PATCH 12/13] Fix Copy Fail Error (don't understand why) --- Plugins/Flow.Launcher.Plugin.Calculator/Main.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Calculator/Main.cs b/Plugins/Flow.Launcher.Plugin.Calculator/Main.cs index 1235a18e7..949911229 100644 --- a/Plugins/Flow.Launcher.Plugin.Calculator/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Calculator/Main.cs @@ -34,7 +34,7 @@ namespace Flow.Launcher.Plugin.Caculator { MagesEngine = new Engine(); } - + public void Init(PluginInitContext context) { Context = context; @@ -78,16 +78,16 @@ namespace Flow.Launcher.Plugin.Caculator { try { - Clipboard.SetText(newResult); + Clipboard.SetDataObject(newResult); return true; } - catch (ExternalException) + catch (ExternalException e) { MessageBox.Show("Copy failed, please try later"); return false; } } - } + } }; } } @@ -111,7 +111,7 @@ namespace Flow.Launcher.Plugin.Caculator { return false; } - + if (!IsBracketComplete(query.Search)) { return false; @@ -164,7 +164,7 @@ namespace Flow.Launcher.Plugin.Caculator return leftBracketCount == 0; } - + public string GetTranslatedPluginTitle() { return Context.API.GetTranslation("flowlauncher_plugin_caculator_plugin_name"); From 775910f31e7fef4033d050cc15b539552cc5b973 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Sun, 18 Oct 2020 21:02:12 +1100 Subject: [PATCH 13/13] plugin Calculator version bump --- Plugins/Flow.Launcher.Plugin.Calculator/plugin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Flow.Launcher.Plugin.Calculator/plugin.json b/Plugins/Flow.Launcher.Plugin.Calculator/plugin.json index 284a2893d..316788884 100644 --- a/Plugins/Flow.Launcher.Plugin.Calculator/plugin.json +++ b/Plugins/Flow.Launcher.Plugin.Calculator/plugin.json @@ -4,7 +4,7 @@ "Name": "Calculator", "Description": "Provide mathematical calculations.(Try 5*3-2 in Flow Launcher)", "Author": "cxfksword", - "Version": "1.0.0", + "Version": "1.0.1", "Language": "csharp", "Website": "https://github.com/Flow-Launcher/Flow.Launcher", "ExecuteFileName": "Flow.Launcher.Plugin.Caculator.dll",