diff --git a/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml b/Plugins/Flow.Launcher.Plugin.Url/Languages/de.xaml index ee13754d5..6060059ef 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 461ccd197..b0172cfd4 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 db7cecbde..015083a4a 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 @@ namespace Flow.Launcher.Plugin.Url 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 @@ namespace Flow.Launcher.Plugin.Url return new List(0); } + private string GetHttpPreference() + { + return _settings.AlwaysOpenWithHttps ? "https": "http"; + } + public bool IsURL(string raw) { raw = raw.ToLower(); @@ -113,5 +119,10 @@ namespace Flow.Launcher.Plugin.Url { 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 a8d89e27f..05e657d2e 100644 --- a/Plugins/Flow.Launcher.Plugin.Url/Settings.cs +++ b/Plugins/Flow.Launcher.Plugin.Url/Settings.cs @@ -5,5 +5,6 @@ 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 000000000..6e2297752 --- /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 000000000..8394dba5e --- /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 000000000..e0e22fb73 --- /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(); + } +}