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 @@
-
+
diff --git a/src/Markdowser/Views/SettingsView.axaml b/src/Markdowser/Views/SettingsView.axaml
index 8e9c633..53a8ff8 100644
--- a/src/Markdowser/Views/SettingsView.axaml
+++ b/src/Markdowser/Views/SettingsView.axaml
@@ -23,6 +23,9 @@
+
+
+