From 4f3c59a32c9fb31e5a566805de8f30733d5888d9 Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Wed, 10 Apr 2024 11:14:20 +0200 Subject: [PATCH] Add search engine url setting --- src/Markdowser/Models/Settings.cs | 2 ++ src/Markdowser/ViewModels/MainWindowViewModel.cs | 9 ++++++++- src/Markdowser/ViewModels/SettingsViewModel.cs | 6 ++++++ src/Markdowser/Views/MainWindow.axaml | 2 +- src/Markdowser/Views/SettingsView.axaml | 3 +++ 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/Markdowser/Models/Settings.cs b/src/Markdowser/Models/Settings.cs index 091854b..b5829c5 100644 --- a/src/Markdowser/Models/Settings.cs +++ b/src/Markdowser/Models/Settings.cs @@ -11,6 +11,8 @@ public class Settings public bool DarkMode { get; set; } + public string SearchEngineUrl { get; set; } = "https://duckduckgo.com/html/?kd=-1&k1=-1&q={0}"; + public string? HomeUrl { get; set; } public static void SaveSettings() diff --git a/src/Markdowser/ViewModels/MainWindowViewModel.cs b/src/Markdowser/ViewModels/MainWindowViewModel.cs index 319ae1a..9b0906e 100644 --- a/src/Markdowser/ViewModels/MainWindowViewModel.cs +++ b/src/Markdowser/ViewModels/MainWindowViewModel.cs @@ -220,7 +220,14 @@ public partial class MainWindowViewModel : ViewModelBase else { // Search with duckduckgo - Url = $"https://duckduckgo.com/html/?kd=-1&k1=-1&q={Uri.EscapeDataString(Url)}"; + try + { + Url = string.Format(Settings.Current.SearchEngineUrl, Uri.EscapeDataString(Url)); + } + catch (FormatException ex) + { + WindowNotificationManager.Show(new Notification("Invalid Search Engine URL", $"{ex.Message}", NotificationType.Error)); + } } } diff --git a/src/Markdowser/ViewModels/SettingsViewModel.cs b/src/Markdowser/ViewModels/SettingsViewModel.cs index 3aa3d71..7d80466 100644 --- a/src/Markdowser/ViewModels/SettingsViewModel.cs +++ b/src/Markdowser/ViewModels/SettingsViewModel.cs @@ -10,6 +10,12 @@ public class SettingsViewModel : ViewModelBase set => Settings.Current.HomeUrl = value; } + public string SearchEngineUrl + { + get => Settings.Current.SearchEngineUrl; + set => Settings.Current.SearchEngineUrl = value; + } + public bool DarkMode { get => Settings.Current.DarkMode; diff --git a/src/Markdowser/Views/MainWindow.axaml b/src/Markdowser/Views/MainWindow.axaml index 4b2da25..e634897 100644 --- a/src/Markdowser/Views/MainWindow.axaml +++ b/src/Markdowser/Views/MainWindow.axaml @@ -87,7 +87,7 @@