Skip to content

Commit 1eec678

Browse files
[TextExtractor]Minor UI/Accessibility fixes in the overlay UI (#36356)
minor UI and accessibility fixes
1 parent 2ba5fb7 commit 1eec678

File tree

3 files changed

+40
-10
lines changed

3 files changed

+40
-10
lines changed

src/modules/PowerOCR/PowerOCR/OCROverlay.xaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@
9595
<Border
9696
x:Name="TopButtonsStackPanel"
9797
Margin="12"
98-
Padding="4,8,12,8"
98+
Padding="4,8,4,8"
9999
HorizontalAlignment="Center"
100100
VerticalAlignment="Top"
101101
d:Visibility="Visible"
@@ -116,7 +116,6 @@
116116
Orientation="Horizontal">
117117
<ComboBox
118118
x:Name="LanguagesComboBox"
119-
Height="32"
120119
Margin="4,0"
121120
AutomationProperties.Name="{x:Static p:Resources.SelectedLang}"
122121
SelectionChanged="LanguagesComboBox_SelectionChanged">
@@ -156,6 +155,7 @@
156155
</Button>
157156
<Button
158157
x:Name="CancelButton"
158+
AutomationProperties.Name="{x:Static p:Resources.Cancel}"
159159
Click="CancelMenuItem_Click"
160160
ToolTip="{x:Static p:Resources.CancelShortcut}">
161161
<ui:SymbolIcon FontSize="18" Symbol="Dismiss24" />

src/modules/PowerOCR/PowerOCR/OCROverlay.xaml.cs

+24-6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
using System;
66
using System.Collections.Generic;
7+
using System.Globalization;
78
using System.Linq;
89
using System.Runtime.InteropServices;
910
using System.Windows;
@@ -76,7 +77,7 @@ private void PopulateLanguageMenu()
7677
if (string.IsNullOrEmpty(selectedLanguageName))
7778
{
7879
selectedLanguage = ImageMethods.GetOCRLanguage();
79-
selectedLanguageName = selectedLanguage?.DisplayName;
80+
selectedLanguageName = selectedLanguage?.NativeName;
8081
}
8182

8283
List<Language> possibleOcrLanguages = OcrEngine.AvailableRecognizerLanguages.ToList();
@@ -85,10 +86,10 @@ private void PopulateLanguageMenu()
8586

8687
foreach (Language language in possibleOcrLanguages)
8788
{
88-
MenuItem menuItem = new() { Header = language.NativeName, Tag = language, IsCheckable = true };
89-
menuItem.IsChecked = language.DisplayName.Equals(selectedLanguageName, StringComparison.Ordinal);
90-
LanguagesComboBox.Items.Add(language);
91-
if (language.DisplayName.Equals(selectedLanguageName, StringComparison.Ordinal))
89+
MenuItem menuItem = new() { Header = EnsureStartUpper(language.NativeName), Tag = language, IsCheckable = true };
90+
menuItem.IsChecked = language.NativeName.Equals(selectedLanguageName, StringComparison.OrdinalIgnoreCase);
91+
LanguagesComboBox.Items.Add(new ComboBoxItem { Content = EnsureStartUpper(language.NativeName), Tag = language });
92+
if (language.NativeName.Equals(selectedLanguageName, StringComparison.OrdinalIgnoreCase))
9293
{
9394
selectedLanguage = language;
9495
LanguagesComboBox.SelectedIndex = count;
@@ -358,7 +359,12 @@ private void LanguagesComboBox_SelectionChanged(object sender, SelectionChangedE
358359

359360
// TODO: Set the preferred language based upon what was chosen here
360361
int selection = languageComboBox.SelectedIndex;
361-
selectedLanguage = languageComboBox.SelectedItem as Language;
362+
selectedLanguage = (languageComboBox.SelectedItem as ComboBoxItem)?.Tag as Language;
363+
364+
if (selectedLanguage == null)
365+
{
366+
return;
367+
}
362368

363369
Logger.LogError($"Changed language to {selectedLanguage?.LanguageTag}");
364370

@@ -499,4 +505,16 @@ public System.Drawing.Rectangle GetScreenRectangle()
499505
{
500506
return screenRectangle;
501507
}
508+
509+
private string EnsureStartUpper(string input)
510+
{
511+
if (string.IsNullOrEmpty(input))
512+
{
513+
return input;
514+
}
515+
516+
var inputArray = input.ToCharArray();
517+
inputArray[0] = char.ToUpper(inputArray[0], CultureInfo.CurrentCulture);
518+
return new string(inputArray);
519+
}
502520
}

src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs

+14-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public int LanguageIndex
5757
_languageIndex = value;
5858
if (_powerOcrSettings != null && _languageIndex < possibleOcrLanguages.Count && _languageIndex >= 0)
5959
{
60-
_powerOcrSettings.Properties.PreferredLanguage = possibleOcrLanguages[_languageIndex].DisplayName;
60+
_powerOcrSettings.Properties.PreferredLanguage = possibleOcrLanguages[_languageIndex].NativeName;
6161
NotifySettingsChanged();
6262
}
6363

@@ -186,7 +186,7 @@ internal void UpdateLanguages()
186186
systemLanguageIndex = AvailableLanguages.Count;
187187
}
188188

189-
AvailableLanguages.Add(language.NativeName);
189+
AvailableLanguages.Add(EnsureStartUpper(language.NativeName));
190190
}
191191

192192
// if the previously stored preferred language is not available (has been deleted or this is the first run with language preference)
@@ -264,5 +264,17 @@ public void Dispose()
264264
Dispose(disposing: true);
265265
GC.SuppressFinalize(this);
266266
}
267+
268+
private string EnsureStartUpper(string input)
269+
{
270+
if (string.IsNullOrEmpty(input))
271+
{
272+
return input;
273+
}
274+
275+
var inputArray = input.ToCharArray();
276+
inputArray[0] = char.ToUpper(inputArray[0], CultureInfo.CurrentCulture);
277+
return new string(inputArray);
278+
}
267279
}
268280
}

0 commit comments

Comments
 (0)