diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt
index 5a5193585..60142b346 100644
--- a/.github/actions/spelling/allow.txt
+++ b/.github/actions/spelling/allow.txt
@@ -8,3 +8,4 @@ Português
Português (Brasil)
favicons
moz
+workaround
diff --git a/.github/actions/spelling/expect.txt b/.github/actions/spelling/expect.txt
index d8c99bce9..0fea6d9ab 100644
--- a/.github/actions/spelling/expect.txt
+++ b/.github/actions/spelling/expect.txt
@@ -104,12 +104,3 @@ metadatas
WMP
VSTHRD
CJK
-XiaoHe
-ZiRanMa
-WeiRuan
-ZhiNengABC
-ZiGuangPinYin
-PinYinJiaJia
-XingKongJianDao
-DaNiu
-XiaoLang
diff --git a/.github/actions/spelling/patterns.txt b/.github/actions/spelling/patterns.txt
index e79343a77..faf1c3978 100644
--- a/.github/actions/spelling/patterns.txt
+++ b/.github/actions/spelling/patterns.txt
@@ -138,5 +138,13 @@
\bčeština\b
\bPortuguês\b
\bIoc\b
+\bXiao\s*He\b
+\bZi\s*Ran\s*Ma\b
+\bWei\s*Ruan\b
+\bZhi\s*Neng\s*ABC\b
+\bZi\s*Guang\s*Pin\s*Yin\b
+\bPin\s*Yin\s*Jia\s*Jia\b
+\bXing\s*Kong\s*Jian\s*Dao\b
+\bDa\s*Niu\b
+\bXiao\s*Lang\b
\b[Ss]ettings [Ss]ettings\b
-
diff --git a/.github/workflows/spelling.yml b/.github/workflows/spelling.yml
index 47bd66107..904392bf0 100644
--- a/.github/workflows/spelling.yml
+++ b/.github/workflows/spelling.yml
@@ -72,7 +72,7 @@ jobs:
steps:
- name: check-spelling
id: spelling
- uses: check-spelling/check-spelling@prerelease
+ uses: check-spelling/check-spelling@v0.0.25
with:
suppress_push_for_open_pull_request: 1
checkout: true
@@ -128,7 +128,7 @@ jobs:
if: (success() || failure()) && needs.spelling.outputs.followup && contains(github.event_name, 'pull_request')
steps:
- name: comment
- uses: check-spelling/check-spelling@prerelease
+ uses: check-spelling/check-spelling@v0.0.25
with:
checkout: true
spell_check_this: check-spelling/spell-check-this@main
diff --git a/Flow.Launcher.Core/Flow.Launcher.Core.csproj b/Flow.Launcher.Core/Flow.Launcher.Core.csproj
index e9f199d00..6a3876d06 100644
--- a/Flow.Launcher.Core/Flow.Launcher.Core.csproj
+++ b/Flow.Launcher.Core/Flow.Launcher.Core.csproj
@@ -57,6 +57,7 @@
+
diff --git a/Flow.Launcher.Core/Updater.cs b/Flow.Launcher.Core/Updater.cs
index bc3655f69..5b67ffabc 100644
--- a/Flow.Launcher.Core/Updater.cs
+++ b/Flow.Launcher.Core/Updater.cs
@@ -49,8 +49,9 @@ namespace Flow.Launcher.Core
// UpdateApp CheckForUpdate will return value only if the app is squirrel installed
var newUpdateInfo = await updateManager.CheckForUpdate().NonNull().ConfigureAwait(false);
- var newReleaseVersion = Version.Parse(newUpdateInfo.FutureReleaseEntry.Version.ToString());
- var currentVersion = Version.Parse(Constant.Version);
+ var newReleaseVersion =
+ SemanticVersioning.Version.Parse(newUpdateInfo.FutureReleaseEntry.Version.ToString());
+ var currentVersion = SemanticVersioning.Version.Parse(Constant.Version);
_api.LogInfo(ClassName, $"Future Release <{Formatted(newUpdateInfo.FutureReleaseEntry)}>");
@@ -71,10 +72,13 @@ namespace Flow.Launcher.Core
if (DataLocation.PortableDataLocationInUse())
{
- var targetDestination = updateManager.RootAppDirectory + $"\\app-{newReleaseVersion}\\{DataLocation.PortableFolderName}";
+ var targetDestination = updateManager.RootAppDirectory +
+ $"\\app-{newReleaseVersion}\\{DataLocation.PortableFolderName}";
FilesFolders.CopyAll(DataLocation.PortableDataPath, targetDestination, (s) => _api.ShowMsgBox(s));
- if (!FilesFolders.VerifyBothFolderFilesEqual(DataLocation.PortableDataPath, targetDestination, (s) => _api.ShowMsgBox(s)))
- _api.ShowMsgBox(string.Format(_api.GetTranslation("update_flowlauncher_fail_moving_portable_user_profile_data"),
+ if (!FilesFolders.VerifyBothFolderFilesEqual(DataLocation.PortableDataPath, targetDestination,
+ (s) => _api.ShowMsgBox(s)))
+ _api.ShowMsgBox(string.Format(
+ _api.GetTranslation("update_flowlauncher_fail_moving_portable_user_profile_data"),
DataLocation.PortableDataPath,
targetDestination));
}
@@ -87,22 +91,25 @@ namespace Flow.Launcher.Core
_api.LogInfo(ClassName, $"Update success:{newVersionTips}");
- if (_api.ShowMsgBox(newVersionTips, _api.GetTranslation("update_flowlauncher_new_update"), MessageBoxButton.YesNo) == MessageBoxResult.Yes)
+ if (_api.ShowMsgBox(newVersionTips, _api.GetTranslation("update_flowlauncher_new_update"),
+ MessageBoxButton.YesNo) == MessageBoxResult.Yes)
{
UpdateManager.RestartApp(Constant.ApplicationFileName);
}
}
catch (Exception e)
{
- if (e is HttpRequestException or WebException or SocketException || e.InnerException is TimeoutException)
+ if (e is HttpRequestException or WebException or SocketException ||
+ e.InnerException is TimeoutException)
{
- _api.LogException(ClassName, $"Check your connection and proxy settings to github-cloud.s3.amazonaws.com.", e);
+ _api.LogException(ClassName,
+ $"Check your connection and proxy settings to github-cloud.s3.amazonaws.com.", e);
}
else
{
_api.LogException(ClassName, $"Error Occurred", e);
}
-
+
if (!silentUpdate)
_api.ShowMsg(_api.GetTranslation("update_flowlauncher_fail"),
_api.GetTranslation("update_flowlauncher_check_connection"));
@@ -116,14 +123,11 @@ namespace Flow.Launcher.Core
[UsedImplicitly]
private class GithubRelease
{
- [JsonPropertyName("prerelease")]
- public bool Prerelease { get; [UsedImplicitly] set; }
+ [JsonPropertyName("prerelease")] public bool Prerelease { get; [UsedImplicitly] set; }
- [JsonPropertyName("published_at")]
- public DateTime PublishedAt { get; [UsedImplicitly] set; }
+ [JsonPropertyName("published_at")] public DateTime PublishedAt { get; [UsedImplicitly] set; }
- [JsonPropertyName("html_url")]
- public string HtmlUrl { get; [UsedImplicitly] set; }
+ [JsonPropertyName("html_url")] public string HtmlUrl { get; [UsedImplicitly] set; }
}
// https://github.com/Squirrel/Squirrel.Windows/blob/master/src/Squirrel/UpdateManager.Factory.cs
@@ -138,10 +142,7 @@ namespace Flow.Launcher.Core
var latest = releases.Where(r => !r.Prerelease).OrderByDescending(r => r.PublishedAt).First();
var latestUrl = latest.HtmlUrl.Replace("/tag/", "/download/");
- var client = new WebClient
- {
- Proxy = Http.WebProxy
- };
+ var client = new WebClient { Proxy = Http.WebProxy };
var downloader = new FileDownloader(client);
var manager = new UpdateManager(latestUrl, urlDownloader: downloader);
@@ -158,10 +159,7 @@ namespace Flow.Launcher.Core
private static string Formatted(T t)
{
- var formatted = JsonSerializer.Serialize(t, new JsonSerializerOptions
- {
- WriteIndented = true
- });
+ var formatted = JsonSerializer.Serialize(t, new JsonSerializerOptions { WriteIndented = true });
return formatted;
}
diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index 725d8d3e1..374917c74 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -107,7 +107,7 @@
Search with Pinyin
Allows using Pinyin to search. Pinyin is the standard system of romanized spelling for translating Chinese.
Use Double Pinyin
- Allows using Double Pinyin to search. Double Pinyin is a variation of Pinyin that uses two characters.
+ Use Double Pinyin instead of Full Pinyin to search.
Double Pinyin Schema
Xiao He
Zi Ran Ma
diff --git a/Flow.Launcher/MessageBoxEx.xaml.cs b/Flow.Launcher/MessageBoxEx.xaml.cs
index 7296ff4ca..907bfb926 100644
--- a/Flow.Launcher/MessageBoxEx.xaml.cs
+++ b/Flow.Launcher/MessageBoxEx.xaml.cs
@@ -37,8 +37,9 @@ namespace Flow.Launcher
try
{
msgBox = new MessageBoxEx(button);
- if (caption == string.Empty && button == MessageBoxButton.OK && icon == MessageBoxImage.None)
+ if (caption == string.Empty && icon == MessageBoxImage.None)
{
+ // If there is no caption and no icon, use DescOnlyTextBlock for vertically centered text
msgBox.Title = messageBoxText;
msgBox.DescOnlyTextBlock.Visibility = Visibility.Visible;
msgBox.DescOnlyTextBlock.Text = messageBoxText;
diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml
index d7d4c4a90..866bc1545 100644
--- a/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Explorer/Languages/en.xaml
@@ -7,6 +7,8 @@
Please make a selection first
Please select a folder path.
Please choose a different name or folder path.
+ Are you sure you want to delete this quick access link?
+ Are you sure you want to delete this index search excluded path?
Please select a folder link
Are you sure you want to delete {0}?
Are you sure you want to permanently delete this file?
diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/ViewModels/SettingsViewModel.cs b/Plugins/Flow.Launcher.Plugin.Explorer/ViewModels/SettingsViewModel.cs
index 171b5ce00..676a0239b 100644
--- a/Plugins/Flow.Launcher.Plugin.Explorer/ViewModels/SettingsViewModel.cs
+++ b/Plugins/Flow.Launcher.Plugin.Explorer/ViewModels/SettingsViewModel.cs
@@ -431,10 +431,24 @@ namespace Flow.Launcher.Plugin.Explorer.ViewModels
{
case "QuickAccessLink":
if (SelectedQuickAccessLink == null) return;
+ if (Context.API.ShowMsgBox(
+ Context.API.GetTranslation("plugin_explorer_delete_quick_access_link"),
+ Context.API.GetTranslation("plugin_explorer_delete"),
+ MessageBoxButton.OKCancel,
+ MessageBoxImage.Warning)
+ == MessageBoxResult.Cancel)
+ return;
Settings.QuickAccessLinks.Remove(SelectedQuickAccessLink);
break;
case "IndexSearchExcludedPaths":
if (SelectedIndexSearchExcludedPath == null) return;
+ if (Context.API.ShowMsgBox(
+ Context.API.GetTranslation("plugin_explorer_delete_index_search_excluded_path"),
+ Context.API.GetTranslation("plugin_explorer_delete"),
+ MessageBoxButton.OKCancel,
+ MessageBoxImage.Warning)
+ == MessageBoxResult.Cancel)
+ return;
Settings.IndexSearchExcludedSubdirectoryPaths.Remove(SelectedIndexSearchExcludedPath);
break;
}