Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ward <matt.ward@microsoft.com>2019-01-16 18:24:42 +0300
committerMatt Ward <matt.ward@microsoft.com>2019-01-16 19:08:20 +0300
commit36e3b1d753c46f700174adce3e479c2d437d2f24 (patch)
tree14a1b47cd059a65d4c30f937c9400dd82610edba /main/src/addins/MonoDevelop.Packaging
parentbdfc0bf3853e15761c4433af1a83362b6b81012d (diff)
[Packaging] Fix language metadata accessibility in project options
Tabbing to the language combo box in project options - NuGet Package - Metadata would not announce the label associated with the combo box with Voice Over. The problem is that the combo box with an enabled text entry does not work well with the accessibility library. To fix this the combo box no longer allows free text entry. If no language is selected then 'None' is displayed. Fixes VSTS #753486 - Accessibility: NuGet Package Metadata: Voice Over is not reading the label of the "Language" combo box. Fixes VSTS #753489 - Usability: NuGet Package Metadata: Text area inside the "Language" combo box does not serves any purpose and seems not to be useful in this scenario.
Diffstat (limited to 'main/src/addins/MonoDevelop.Packaging')
-rw-r--r--main/src/addins/MonoDevelop.Packaging/Gui/MonoDevelop.Packaging.Gui.GtkNuGetPackageMetadataOptionsPanelWidget.cs4
-rw-r--r--main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.Gui/GtkNuGetPackageMetadataOptionsPanelWidget.cs42
2 files changed, 40 insertions, 6 deletions
diff --git a/main/src/addins/MonoDevelop.Packaging/Gui/MonoDevelop.Packaging.Gui.GtkNuGetPackageMetadataOptionsPanelWidget.cs b/main/src/addins/MonoDevelop.Packaging/Gui/MonoDevelop.Packaging.Gui.GtkNuGetPackageMetadataOptionsPanelWidget.cs
index 49a3bd30d5..7af75f47b5 100644
--- a/main/src/addins/MonoDevelop.Packaging/Gui/MonoDevelop.Packaging.Gui.GtkNuGetPackageMetadataOptionsPanelWidget.cs
+++ b/main/src/addins/MonoDevelop.Packaging/Gui/MonoDevelop.Packaging.Gui.GtkNuGetPackageMetadataOptionsPanelWidget.cs
@@ -48,7 +48,7 @@ namespace MonoDevelop.Packaging.Gui
private global::Gtk.HBox packageLanguageHBox;
- private global::Gtk.ComboBoxEntry packageLanguageComboBox;
+ private global::Gtk.ComboBox packageLanguageComboBox;
private global::Gtk.Label packageLanguageLabel;
@@ -321,7 +321,7 @@ namespace MonoDevelop.Packaging.Gui
this.packageLanguageHBox.Name = "packageLanguageHBox";
this.packageLanguageHBox.Spacing = 6;
// Container child packageLanguageHBox.Gtk.Box+BoxChild
- this.packageLanguageComboBox = global::Gtk.ComboBoxEntry.NewText();
+ this.packageLanguageComboBox = global::Gtk.ComboBox.NewText();
this.packageLanguageComboBox.Name = "packageLanguageComboBox";
this.packageLanguageHBox.Add(this.packageLanguageComboBox);
global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.packageLanguageHBox[this.packageLanguageComboBox]));
diff --git a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.Gui/GtkNuGetPackageMetadataOptionsPanelWidget.cs b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.Gui/GtkNuGetPackageMetadataOptionsPanelWidget.cs
index 3f6f091de5..eec702edb8 100644
--- a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.Gui/GtkNuGetPackageMetadataOptionsPanelWidget.cs
+++ b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.Gui/GtkNuGetPackageMetadataOptionsPanelWidget.cs
@@ -42,6 +42,8 @@ namespace MonoDevelop.Packaging.Gui
NuGetPackageMetadata metadata;
bool projectOriginallyHadMetadata;
bool hasPackageId;
+ List<string> languages;
+ ListStore languagesListStore;
public GtkNuGetPackageMetadataOptionsPanelWidget ()
{
@@ -168,7 +170,7 @@ namespace MonoDevelop.Packaging.Gui
packageCopyrightTextBox.Text = GetTextBoxText (metadata.Copyright);
packageDevelopmentDependencyCheckBox.Active = metadata.DevelopmentDependency;
packageIconUrlTextBox.Text = GetTextBoxText (metadata.IconUrl);
- packageLanguageComboBox.Entry.Text = GetTextBoxText (metadata.Language);
+ LoadLanguage (metadata.Language);
packageLicenseUrlTextBox.Text = GetTextBoxText (metadata.LicenseUrl);
packageOwnersTextBox.Text = GetTextBoxText (metadata.Owners);
packageProjectUrlTextBox.Text = GetTextBoxText (metadata.ProjectUrl);
@@ -184,6 +186,24 @@ namespace MonoDevelop.Packaging.Gui
return text ?? string.Empty;
}
+ void LoadLanguage (string language)
+ {
+ if (string.IsNullOrEmpty (language)) {
+ packageLanguageComboBox.Active = 0;
+ return;
+ }
+
+ int index = languages.IndexOf (language);
+ if (index >= 0) {
+ packageLanguageComboBox.Active = index + 1;
+ return;
+ }
+
+ // Language does not match so we need to add it to the combo box.
+ TreeIter iter = languagesListStore.AppendValues (language);
+ packageLanguageComboBox.SetActiveIter (iter);
+ }
+
internal void Save (PackagingProject project)
{
UpdateMetadata ();
@@ -220,7 +240,7 @@ namespace MonoDevelop.Packaging.Gui
metadata.Copyright = packageCopyrightTextBox.Text;
metadata.DevelopmentDependency = packageDevelopmentDependencyCheckBox.Active;
metadata.IconUrl = packageIconUrlTextBox.Text;
- metadata.Language = packageLanguageComboBox.Entry.Text;
+ metadata.Language = GetSelectedLanguage ();
metadata.LicenseUrl = packageLicenseUrlTextBox.Text;
metadata.Owners = packageOwnersTextBox.Text;
metadata.ProjectUrl = packageProjectUrlTextBox.Text;
@@ -231,20 +251,34 @@ namespace MonoDevelop.Packaging.Gui
metadata.Title = packageTitleTextBox.Text;
}
+ string GetSelectedLanguage ()
+ {
+ if (packageLanguageComboBox.Active == 0) {
+ // 'None' selected.
+ return string.Empty;
+ }
+ return packageLanguageComboBox.ActiveText;
+ }
+
void PopulateLanguages ()
{
- var languagesListStore = new ListStore (typeof (string));
+ languagesListStore = new ListStore (typeof (string));
packageLanguageComboBox.Model = languagesListStore;
- List<string> languages = CultureInfo.GetCultures(CultureTypes.AllCultures)
+ languages = CultureInfo.GetCultures(CultureTypes.AllCultures)
+ .Where (c => !string.IsNullOrEmpty (c.Name))
.Select (c => c.Name)
.ToList ();
languages.Sort ();
+ languagesListStore.AppendValues (GettextCatalog.GetString ("None"));
+
foreach (string language in languages) {
languagesListStore.AppendValues (language);
}
+
+ packageLanguageComboBox.Active = 0;
}
bool ProjectHasMetadata ()