mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-05 02:36:19 +02:00
[TextExtractor] Extend settings with preferred language (#22901)
* [TextExtractor] Extend settings with preferred language * TextExtractor simplifying code, adding update languages on dropdown opening * fix typo * TextExtractor fixing bug with order of languages
This commit is contained in:
@@ -11,6 +11,7 @@ using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using Microsoft.PowerToys.Telemetry;
|
||||
using PowerOCR.Helpers;
|
||||
using PowerOCR.Settings;
|
||||
using PowerOCR.Utilities;
|
||||
using Windows.Globalization;
|
||||
using Windows.Media.Ocr;
|
||||
@@ -55,14 +56,26 @@ public partial class OCROverlay : Window
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
var userSettings = new UserSettings(new Helpers.ThrottledActionInvoker());
|
||||
string? selectedLanguageName = userSettings.PreferredLanguage.Value;
|
||||
|
||||
// build context menu
|
||||
selectedLanguage = ImageMethods.GetOCRLanguage();
|
||||
string? selectedLanguageName = selectedLanguage?.DisplayName;
|
||||
if (string.IsNullOrEmpty(selectedLanguageName))
|
||||
{
|
||||
selectedLanguage = ImageMethods.GetOCRLanguage();
|
||||
selectedLanguageName = selectedLanguage?.DisplayName;
|
||||
}
|
||||
|
||||
List<Language> possibleOcrLanguages = OcrEngine.AvailableRecognizerLanguages.ToList();
|
||||
foreach (Language language in possibleOcrLanguages)
|
||||
{
|
||||
MenuItem menuItem = new MenuItem() { Header = language.DisplayName, Tag = language, IsCheckable = true };
|
||||
MenuItem menuItem = new MenuItem() { Header = language.NativeName, Tag = language, IsCheckable = true };
|
||||
menuItem.IsChecked = language.DisplayName.Equals(selectedLanguageName);
|
||||
if (language.DisplayName.Equals(selectedLanguageName))
|
||||
{
|
||||
selectedLanguage = language;
|
||||
}
|
||||
|
||||
menuItem.Click += LanguageMenuItem_Click;
|
||||
CanvasContextMenu.Items.Add(menuItem);
|
||||
}
|
||||
|
||||
@@ -8,5 +8,7 @@ public interface IUserSettings
|
||||
{
|
||||
SettingItem<string> ActivationShortcut { get; }
|
||||
|
||||
SettingItem<string> PreferredLanguage { get; }
|
||||
|
||||
void SendSettingsTelemetry();
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ namespace PowerOCR.Settings
|
||||
{
|
||||
_settingsUtils = new SettingsUtils();
|
||||
ActivationShortcut = new SettingItem<string>(DefaultActivationShortcut);
|
||||
PreferredLanguage = new SettingItem<string>(string.Empty);
|
||||
|
||||
LoadSettingsFromJson();
|
||||
|
||||
@@ -38,6 +39,8 @@ namespace PowerOCR.Settings
|
||||
|
||||
public SettingItem<string> ActivationShortcut { get; private set; }
|
||||
|
||||
public SettingItem<string> PreferredLanguage { get; private set; }
|
||||
|
||||
private void LoadSettingsFromJson()
|
||||
{
|
||||
// TODO this IO call should by Async, update GetFileWatcher helper to support async
|
||||
@@ -64,6 +67,7 @@ namespace PowerOCR.Settings
|
||||
if (settings != null)
|
||||
{
|
||||
ActivationShortcut.Value = settings.Properties.ActivationShortcut.ToString();
|
||||
PreferredLanguage.Value = settings.Properties.PreferredLanguage.ToString();
|
||||
}
|
||||
|
||||
retry = false;
|
||||
|
||||
Reference in New Issue
Block a user