From 9786fd7bab67e575925c7e908e43c227e1a1c6a4 Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Sat, 9 Nov 2024 20:06:33 +1100 Subject: [PATCH 001/287] add sponsor to readme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add sponsor 🥇 --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0f1e084bdd9..02ffc79328a 100644 --- a/README.md +++ b/README.md @@ -350,6 +350,7 @@ Or download the [early access version](https://github.com/Flow-Launcher/Prerelea + From 09d8c1db0ef161560be91ac41bb7e736429c274b Mon Sep 17 00:00:00 2001 From: DB p Date: Mon, 11 Nov 2024 14:24:57 +0900 Subject: [PATCH 002/287] Add line for Highcontrast mode --- Flow.Launcher/App.xaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Flow.Launcher/App.xaml b/Flow.Launcher/App.xaml index 13e943c95ef..17c0ae0d50a 100644 --- a/Flow.Launcher/App.xaml +++ b/Flow.Launcher/App.xaml @@ -20,6 +20,11 @@ + + + + + From 5a80adcbfec1309b537721ab9e98f9d07187c135 Mon Sep 17 00:00:00 2001 From: Kevin Zhang <45326534+taooceros@users.noreply.github.com> Date: Sun, 17 Nov 2024 23:59:43 -0600 Subject: [PATCH 003/287] Send a reload request with ctx when reloading --- Flow.Launcher.Core/Plugin/JsonRPCPluginV2.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Flow.Launcher.Core/Plugin/JsonRPCPluginV2.cs b/Flow.Launcher.Core/Plugin/JsonRPCPluginV2.cs index 5a6633525e7..ae4fd639d07 100644 --- a/Flow.Launcher.Core/Plugin/JsonRPCPluginV2.cs +++ b/Flow.Launcher.Core/Plugin/JsonRPCPluginV2.cs @@ -133,10 +133,16 @@ private void SetupJsonRPC() RPC.StartListening(); } - public virtual Task ReloadDataAsync() + public virtual async Task ReloadDataAsync() { SetupJsonRPC(); - return Task.CompletedTask; + try + { + await RPC.InvokeAsync("reload", context); + } + catch (RemoteMethodNotFoundException e) + { + } } public virtual async ValueTask DisposeAsync() From 4fbd74a14d14cc680a85d25b18a30cdc200229b1 Mon Sep 17 00:00:00 2001 From: NoPlagiarism <37241775+NoPlagiarism@users.noreply.github.com> Date: Mon, 18 Nov 2024 17:07:57 +0500 Subject: [PATCH 004/287] [WebSearch] Add copy URL to menu --- .../Images/copylink.png | Bin 0 -> 3242 bytes .../Languages/en.xaml | 3 +- .../Languages/ru.xaml | 3 +- .../Flow.Launcher.Plugin.WebSearch/Main.cs | 26 ++++++++++++++++-- 4 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 Plugins/Flow.Launcher.Plugin.WebSearch/Images/copylink.png diff --git a/Plugins/Flow.Launcher.Plugin.WebSearch/Images/copylink.png b/Plugins/Flow.Launcher.Plugin.WebSearch/Images/copylink.png new file mode 100644 index 0000000000000000000000000000000000000000..3218c94c9a0fb53f923197042c20cc994b22d5c9 GIT binary patch literal 3242 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 tZoO{?HSJz0(Q3fW&j#(;6%(K^!0cZ>DW!Smyf^ - + Copy URL + Copy search URL to clipboard Title diff --git a/Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml b/Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml index a2ec9405a16..b8757f67b1a 100644 --- a/Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml +++ b/Plugins/Flow.Launcher.Plugin.WebSearch/Languages/ru.xaml @@ -29,7 +29,8 @@ Thus, the generic formula for a search on Netflix is https://www.netflix.com/search?q={q} - + Скопировать URL-адрес + Скопировать URL поиска в буфер обмена Title diff --git a/Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs b/Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs index 39aa1738fca..9b3dd06f505 100644 --- a/Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs @@ -11,7 +11,7 @@ namespace Flow.Launcher.Plugin.WebSearch { - public class Main : IAsyncPlugin, ISettingProvider, IPluginI18n, IResultUpdated + public class Main : IAsyncPlugin, ISettingProvider, IPluginI18n, IResultUpdated, IContextMenu { private PluginInitContext _context; @@ -76,7 +76,8 @@ public async Task> QueryAsync(Query query, CancellationToken token) _context.API.OpenUrl(searchSource.Url.Replace("{q}", Uri.EscapeDataString(keyword))); return true; - } + }, + ContextData = searchSource.Url.Replace("{q}", Uri.EscapeDataString(keyword)), }; results.Add(result); @@ -139,11 +140,30 @@ private async Task> SuggestionsAsync(string keyword, string _context.API.OpenUrl(searchSource.Url.Replace("{q}", Uri.EscapeDataString(o))); return true; - } + }, + ContextData = searchSource.Url.Replace("{q}", Uri.EscapeDataString(o)), }); return resultsFromSuggestion; } + public List LoadContextMenus(Result selected) + { + return new List() { + new Result + { + Title = _context.API.GetTranslation("flowlauncher_plugin_websearch_copyurl_title"), + SubTitle = _context.API.GetTranslation("flowlauncher_plugin_websearch_copyurl_subtitle"), + IcoPath = "Images/copylink.png", + Action = c => + { + _context.API.CopyToClipboard(selected.ContextData as string); + + return true; + } + }, + }; + } + public Task InitAsync(PluginInitContext context) { return Task.Run(Init); From 386ac9735f3a53f3fbd12a3a8c01523c49cae818 Mon Sep 17 00:00:00 2001 From: NoPlagiarism <37241775+NoPlagiarism@users.noreply.github.com> Date: Mon, 18 Nov 2024 17:43:22 +0500 Subject: [PATCH 005/287] [WebSearch] sanitize ContextData --- Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs b/Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs index 9b3dd06f505..bf5fadc5451 100644 --- a/Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.WebSearch/Main.cs @@ -148,6 +148,7 @@ private async Task> SuggestionsAsync(string keyword, string public List LoadContextMenus(Result selected) { + if (selected?.ContextData == null || selected.ContextData is not string) return new List(); return new List() { new Result { From c701419a954bbb4597e525184c60303cf6ba2d10 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 22:08:47 +0000 Subject: [PATCH 006/287] Bump FSharp.Core from 8.0.401 to 9.0.100 Bumps [FSharp.Core](https://github.com/dotnet/fsharp) from 8.0.401 to 9.0.100. - [Release notes](https://github.com/dotnet/fsharp/releases) - [Changelog](https://github.com/dotnet/fsharp/blob/main/release-notes.md) - [Commits](https://github.com/dotnet/fsharp/commits) --- updated-dependencies: - dependency-name: FSharp.Core dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Flow.Launcher.Core/Flow.Launcher.Core.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Flow.Launcher.Core/Flow.Launcher.Core.csproj b/Flow.Launcher.Core/Flow.Launcher.Core.csproj index 082d7da6700..02cd5057032 100644 --- a/Flow.Launcher.Core/Flow.Launcher.Core.csproj +++ b/Flow.Launcher.Core/Flow.Launcher.Core.csproj @@ -54,7 +54,7 @@ - + From ba96d1a8309152a2be2136637d0a593807c78efb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 22:09:21 +0000 Subject: [PATCH 007/287] Bump Microsoft.Data.Sqlite from 8.0.10 to 9.0.0 Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 8.0.10 to 9.0.0. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v8.0.10...v9.0.0) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .../Flow.Launcher.Plugin.BrowserBookmark.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj b/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj index 6f30e5d88a9..03ac0491f96 100644 --- a/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj +++ b/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj @@ -95,7 +95,7 @@ - + From c8540f1a0afc678057ba29d1a9b5500cb85f93ee Mon Sep 17 00:00:00 2001 From: Yeela Lifshitz <52451294+yeelali14@users.noreply.github.com> Date: Tue, 19 Nov 2024 16:22:30 +0200 Subject: [PATCH 008/287] Suggest fix regex in gitstream CM file --- .cm/gitstream.cm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cm/gitstream.cm b/.cm/gitstream.cm index fe7e777c8e1..767982e3bcc 100644 --- a/.cm/gitstream.cm +++ b/.cm/gitstream.cm @@ -10,7 +10,7 @@ triggers: branch: - l10n_dev - dev - - r/(?i)(Dependabot|Renovate)/ + - r/([Dd]ependabot|[Rr]enovate)/ automations: From 3c3087793a354c3b2b687a9f5ba1b9e4e69bd40a Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Thu, 21 Nov 2024 19:18:05 +0800 Subject: [PATCH 009/287] add new public api for chaning the query list back to query results list --- Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs | 6 ++++++ Flow.Launcher/PublicAPIInstance.cs | 2 ++ Flow.Launcher/ViewModel/MainViewModel.cs | 10 +++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs index c95a8ce7b23..e5df91ae978 100644 --- a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs +++ b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs @@ -298,5 +298,11 @@ public interface IPublicAPI /// /// Choose the first result after reload if true; keep the last selected result if false. Default is true. public void ReQuery(bool reselect = true); + + /// + /// Back to the query results. + /// This method should run when selected item is from context menu or history. + /// + public void BackToQueryResults(); } } diff --git a/Flow.Launcher/PublicAPIInstance.cs b/Flow.Launcher/PublicAPIInstance.cs index 20b02ddee8b..8a07e7a5c0a 100644 --- a/Flow.Launcher/PublicAPIInstance.cs +++ b/Flow.Launcher/PublicAPIInstance.cs @@ -318,6 +318,8 @@ public bool IsGameModeOn() public void ReQuery(bool reselect = true) => _mainVM.ReQuery(reselect); + public void BackToQueryResults() => _mainVM.BackToQueryResults(); + #endregion #region Private Methods diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs index 6c17e21f0d2..445484347ad 100644 --- a/Flow.Launcher/ViewModel/MainViewModel.cs +++ b/Flow.Launcher/ViewModel/MainViewModel.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading; @@ -484,6 +484,14 @@ private void Esc() } } + public void BackToQueryResults() + { + if (!SelectedIsFromQueryResults()) + { + SelectedResults = Results; + } + } + [RelayCommand] public void ToggleGameMode() { From 6df0837906b07e7c84084fa8ceb6e49ce7ce5529 Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Thu, 21 Nov 2024 19:18:15 +0800 Subject: [PATCH 010/287] improve requery doc --- Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs index e5df91ae978..f3d7731223d 100644 --- a/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs +++ b/Flow.Launcher.Plugin/Interfaces/IPublicAPI.cs @@ -294,7 +294,7 @@ public interface IPublicAPI /// /// Reloads the query. - /// This method should run + /// This method should run when selected item is from query results. /// /// Choose the first result after reload if true; keep the last selected result if false. Default is true. public void ReQuery(bool reselect = true); From 6b6b0faadfcdda46d213e107f9eb17fe50b65843 Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Thu, 21 Nov 2024 22:07:35 +0800 Subject: [PATCH 011/287] fix possible content frame navigation issue --- Flow.Launcher/SettingWindow.xaml | 1 + Flow.Launcher/SettingWindow.xaml.cs | 24 ++++++++++++++++++++++-- Flow.Launcher/WelcomeWindow.xaml | 15 ++++++++------- Flow.Launcher/WelcomeWindow.xaml.cs | 9 +++++++-- 4 files changed, 38 insertions(+), 11 deletions(-) diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml index f6381b46586..a81d9e0d108 100644 --- a/Flow.Launcher/SettingWindow.xaml +++ b/Flow.Launcher/SettingWindow.xaml @@ -171,6 +171,7 @@ IsPaneToggleButtonVisible="False" IsSettingsVisible="False" IsTabStop="False" + Loaded="NavView_Loaded" OpenPaneLength="240" PaneDisplayMode="Left" SelectionChanged="NavigationView_SelectionChanged"> diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs index 4cc125fa4af..cb3f1e4a113 100644 --- a/Flow.Launcher/SettingWindow.xaml.cs +++ b/Flow.Launcher/SettingWindow.xaml.cs @@ -29,7 +29,6 @@ public SettingWindow(IPublicAPI api, SettingWindowViewModel viewModel) _api = api; InitializePosition(); InitializeComponent(); - NavView.SelectedItem = NavView.MenuItems[0]; /* Set First Page */ } private void OnLoaded(object sender, RoutedEventArgs e) @@ -169,7 +168,11 @@ private void NavigationView_SelectionChanged(NavigationView sender, NavigationVi else { var selectedItem = (NavigationViewItem)args.SelectedItem; - if (selectedItem == null) return; + if (selectedItem == null) + { + NavView_Loaded(sender, null); /* Reset First Page */ + return; + } var pageType = selectedItem.Name switch { @@ -186,5 +189,22 @@ private void NavigationView_SelectionChanged(NavigationView sender, NavigationVi } } + private void NavView_Loaded(object sender, RoutedEventArgs e) + { + if (ContentFrame.IsLoaded) + { + ContentFrame_Loaded(sender, e); + } + else + { + ContentFrame.Loaded += ContentFrame_Loaded; + } + } + + private void ContentFrame_Loaded(object sender, RoutedEventArgs e) + { + NavView.SelectedItem ??= NavView.MenuItems[0]; /* Set First Page */ + } + public record PaneData(Settings Settings, Updater Updater, IPortable Portable); } diff --git a/Flow.Launcher/WelcomeWindow.xaml b/Flow.Launcher/WelcomeWindow.xaml index 003dac5bcd8..d8cb38149a8 100644 --- a/Flow.Launcher/WelcomeWindow.xaml +++ b/Flow.Launcher/WelcomeWindow.xaml @@ -43,12 +43,12 @@ Grid.Column="0" Width="16" Height="16" - Margin="10,4,4,4" + Margin="10 4 4 4" RenderOptions.BitmapScalingMode="HighQuality" Source="/Images/app.png" /> @@ -97,7 +98,7 @@ Grid.Row="1" Background="{DynamicResource Color00B}" BorderBrush="{DynamicResource PopupButtonAreaBorderColor}" - BorderThickness="0,1,0,0"> + BorderThickness="0 1 0 0"> @@ -111,7 +112,7 @@ VerticalAlignment="Center"> + + + + + + + + + + + + + +