From 1a373e1c40fe4ad7154ebaa843a7c8cc142b3a40 Mon Sep 17 00:00:00 2001 From: AWAS666 Date: Thu, 9 Oct 2025 10:36:42 +0200 Subject: [PATCH 1/6] prefer https over http setting --- .../Languages/de.xaml | 3 ++ .../Languages/en.xaml | 2 ++ Plugins/Flow.Launcher.Plugin.Url/Main.cs | 19 +++++++++--- Plugins/Flow.Launcher.Plugin.Url/Settings.cs | 1 + .../SettingsViewModel.cs | 9 ++++++ .../Flow.Launcher.Plugin.Url/URLSettings.xaml | 31 +++++++++++++++++++ .../URLSettings.xaml.cs | 15 +++++++++ 7 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 Plugins/Flow.Launcher.Plugin.Url/SettingsViewModel.cs create mode 100644 Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml create mode 100644 Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml.cs diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml index ee13754d5cd..6060059efbc 100644 --- a/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml +++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml @@ -14,4 +14,7 @@ Bitte legen Sie Ihren Browser-Pfad fest: Wählen Anwendung (*.exe)|*.exe|Alle Dateien|*.* + + https über http bevorzugen + diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/en.xaml index 461ccd1970b..b0172cfd44d 100644 --- a/Plugins/Flow.Launcher.Plugin.Url/Languages/en.xaml +++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/en.xaml @@ -15,4 +15,6 @@ Please set your browser path: Choose Application(*.exe)|*.exe|All files|*.* + + Prefer https over http \ No newline at end of file diff --git a/Plugins/Flow.Launcher.Plugin.Url/Main.cs b/Plugins/Flow.Launcher.Plugin.Url/Main.cs index db7cecbdebb..015083a4a68 100644 --- a/Plugins/Flow.Launcher.Plugin.Url/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Url/Main.cs @@ -1,10 +1,11 @@ using System; using System.Collections.Generic; using System.Text.RegularExpressions; +using System.Windows.Controls; namespace Flow.Launcher.Plugin.Url { - public class Main : IPlugin, IPluginI18n + public class Main : IPlugin, IPluginI18n, ISettingProvider { //based on https://gist.github.com/dperini/729294 private const string urlPattern = "^" + @@ -58,13 +59,13 @@ public List Query(Query query) Score = 8, Action = _ => { - if (!raw.ToLower().StartsWith("http")) + if (!raw.ToLower().StartsWith(GetHttpPreference())) { - raw = "http://" + raw; + raw = GetHttpPreference() + "://" + raw; } try { - Context.API.OpenUrl(raw); + Context.API.OpenUrl(raw); return true; } @@ -80,6 +81,11 @@ public List Query(Query query) return new List(0); } + private string GetHttpPreference() + { + return _settings.AlwaysOpenWithHttps ? "https": "http"; + } + public bool IsURL(string raw) { raw = raw.ToLower(); @@ -113,5 +119,10 @@ public string GetTranslatedPluginDescription() { return Localize.flowlauncher_plugin_url_plugin_description(); } + + public Control CreateSettingPanel() + { + return new URLSettings(_settings); + } } } diff --git a/Plugins/Flow.Launcher.Plugin.Url/Settings.cs b/Plugins/Flow.Launcher.Plugin.Url/Settings.cs index a8d89e27f33..05e657d2e77 100644 --- a/Plugins/Flow.Launcher.Plugin.Url/Settings.cs +++ b/Plugins/Flow.Launcher.Plugin.Url/Settings.cs @@ -5,5 +5,6 @@ public class Settings public string BrowserPath { get; set; } public bool OpenInNewBrowserWindow { get; set; } = true; + public bool AlwaysOpenWithHttps { get; set; } = false; } } diff --git a/Plugins/Flow.Launcher.Plugin.Url/SettingsViewModel.cs b/Plugins/Flow.Launcher.Plugin.Url/SettingsViewModel.cs new file mode 100644 index 00000000000..6e229775274 --- /dev/null +++ b/Plugins/Flow.Launcher.Plugin.Url/SettingsViewModel.cs @@ -0,0 +1,9 @@ +using System.Collections.Generic; +using System.Linq; + +namespace Flow.Launcher.Plugin.Url; + +public class SettingsViewModel(Settings settings) : BaseModel +{ + public Settings Settings { get; } = settings; +} diff --git a/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml b/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml new file mode 100644 index 00000000000..8394dba5ef0 --- /dev/null +++ b/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml.cs b/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml.cs new file mode 100644 index 00000000000..e0e22fb7381 --- /dev/null +++ b/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml.cs @@ -0,0 +1,15 @@ +using System.Windows.Controls; + +namespace Flow.Launcher.Plugin.Url; + +public partial class URLSettings : UserControl +{ + private readonly SettingsViewModel _viewModel; + + public URLSettings(Settings settings) + { + _viewModel = new SettingsViewModel(settings); + DataContext = _viewModel; + InitializeComponent(); + } +} From ae3559ca7452e2fb6031aa9548dceb5d236d2738 Mon Sep 17 00:00:00 2001 From: AWAS666 Date: Thu, 9 Oct 2025 10:48:58 +0200 Subject: [PATCH 2/6] fix: explicit scheme --- Plugins/Flow.Launcher.Plugin.Url/Main.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Flow.Launcher.Plugin.Url/Main.cs b/Plugins/Flow.Launcher.Plugin.Url/Main.cs index 015083a4a68..fd2da2a6db2 100644 --- a/Plugins/Flow.Launcher.Plugin.Url/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Url/Main.cs @@ -59,7 +59,7 @@ public List Query(Query query) Score = 8, Action = _ => { - if (!raw.ToLower().StartsWith(GetHttpPreference())) + if (!raw.StartsWith("http://", StringComparison.OrdinalIgnoreCase) && !raw.StartsWith("https://", StringComparison.OrdinalIgnoreCase)) { raw = GetHttpPreference() + "://" + raw; } From a412c7978a5b15d0f9f086f4496179c7eff3bfab Mon Sep 17 00:00:00 2001 From: Jack Ye Date: Fri, 10 Oct 2025 12:23:41 +0800 Subject: [PATCH 3/6] Fix format Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- Plugins/Flow.Launcher.Plugin.Url/Main.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Flow.Launcher.Plugin.Url/Main.cs b/Plugins/Flow.Launcher.Plugin.Url/Main.cs index fd2da2a6db2..ec02f8dd298 100644 --- a/Plugins/Flow.Launcher.Plugin.Url/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Url/Main.cs @@ -83,7 +83,7 @@ public List Query(Query query) private string GetHttpPreference() { - return _settings.AlwaysOpenWithHttps ? "https": "http"; + return _settings.AlwaysOpenWithHttps ? "https" : "http"; } public bool IsURL(string raw) From 001dad9a7948bcebb7ac2b7e5fb39dfd634c8d97 Mon Sep 17 00:00:00 2001 From: AWAS666 Date: Fri, 10 Oct 2025 10:03:16 +0200 Subject: [PATCH 4/6] revert manual translation --- Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml index 6060059efbc..ee13754d5cd 100644 --- a/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml +++ b/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml @@ -14,7 +14,4 @@ Bitte legen Sie Ihren Browser-Pfad fest: Wählen Anwendung (*.exe)|*.exe|Alle Dateien|*.* - - https über http bevorzugen - From 6f17aa21c20417bfd462c5bb08bc5d5b9fccb74b Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Sun, 12 Oct 2025 13:31:24 +0800 Subject: [PATCH 5/6] Resolve conflicts --- Plugins/Flow.Launcher.Plugin.Url/Main.cs | 6 ++-- .../SettingsControl.xaml | 9 ++++++ .../Flow.Launcher.Plugin.Url/URLSettings.xaml | 31 ------------------- .../URLSettings.xaml.cs | 15 --------- 4 files changed, 12 insertions(+), 49 deletions(-) delete mode 100644 Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml delete mode 100644 Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml.cs diff --git a/Plugins/Flow.Launcher.Plugin.Url/Main.cs b/Plugins/Flow.Launcher.Plugin.Url/Main.cs index 385e478b108..8e77dbd15d1 100644 --- a/Plugins/Flow.Launcher.Plugin.Url/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Url/Main.cs @@ -97,9 +97,9 @@ public List Query(Query query) return []; } - private string GetHttpPreference() + private static string GetHttpPreference() { - return _settings.AlwaysOpenWithHttps ? "https" : "http"; + return Settings.AlwaysOpenWithHttps ? "https" : "http"; } public bool IsURL(string raw) @@ -138,7 +138,7 @@ public string GetTranslatedPluginDescription() public Control CreateSettingPanel() { - return new URLSettings(_settings); + return new SettingsControl(); } } } diff --git a/Plugins/Flow.Launcher.Plugin.Url/SettingsControl.xaml b/Plugins/Flow.Launcher.Plugin.Url/SettingsControl.xaml index b8d282551ec..a7977551fd6 100644 --- a/Plugins/Flow.Launcher.Plugin.Url/SettingsControl.xaml +++ b/Plugins/Flow.Launcher.Plugin.Url/SettingsControl.xaml @@ -19,6 +19,7 @@ + + + diff --git a/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml b/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml deleted file mode 100644 index 8394dba5ef0..00000000000 --- a/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - diff --git a/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml.cs b/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml.cs deleted file mode 100644 index e0e22fb7381..00000000000 --- a/Plugins/Flow.Launcher.Plugin.Url/URLSettings.xaml.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Windows.Controls; - -namespace Flow.Launcher.Plugin.Url; - -public partial class URLSettings : UserControl -{ - private readonly SettingsViewModel _viewModel; - - public URLSettings(Settings settings) - { - _viewModel = new SettingsViewModel(settings); - DataContext = _viewModel; - InitializeComponent(); - } -} From 1e3306ef28c71442f1e53712168875fbfee837ef Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Sun, 12 Oct 2025 13:33:20 +0800 Subject: [PATCH 6/6] Remove unused file --- Plugins/Flow.Launcher.Plugin.Url/SettingsViewModel.cs | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 Plugins/Flow.Launcher.Plugin.Url/SettingsViewModel.cs diff --git a/Plugins/Flow.Launcher.Plugin.Url/SettingsViewModel.cs b/Plugins/Flow.Launcher.Plugin.Url/SettingsViewModel.cs deleted file mode 100644 index 6e229775274..00000000000 --- a/Plugins/Flow.Launcher.Plugin.Url/SettingsViewModel.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System.Collections.Generic; -using System.Linq; - -namespace Flow.Launcher.Plugin.Url; - -public class SettingsViewModel(Settings settings) : BaseModel -{ - public Settings Settings { get; } = settings; -}