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:51:47 +0300
committerMatt Ward <matt.ward@microsoft.com>2019-01-16 19:09:02 +0300
commit6696164cbad523d46dab882b7ea51657e983c562 (patch)
treee8609a6d8a880d10b8afd27b9b67a232bb5f5154 /main/src/addins/MonoDevelop.Packaging
parent36e3b1d753c46f700174adce3e479c2d437d2f24 (diff)
[Packaging] Show language display name in project options for metadata
In project options - NuGet Package - Metadata the language display name is shown in the language combo box. Previously the language code (e.g. 'en-GB') was displayed. The display name is more user friendly and also matches the behaviour of Visual Studio on Windows when it shows package metadata for .NET Standard projects.
Diffstat (limited to 'main/src/addins/MonoDevelop.Packaging')
-rw-r--r--main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.Gui/GtkNuGetPackageMetadataOptionsPanelWidget.cs44
1 files changed, 35 insertions, 9 deletions
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 eec702edb8..64d53a6214 100644
--- a/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.Gui/GtkNuGetPackageMetadataOptionsPanelWidget.cs
+++ b/main/src/addins/MonoDevelop.Packaging/MonoDevelop.Packaging.Gui/GtkNuGetPackageMetadataOptionsPanelWidget.cs
@@ -42,7 +42,7 @@ namespace MonoDevelop.Packaging.Gui
NuGetPackageMetadata metadata;
bool projectOriginallyHadMetadata;
bool hasPackageId;
- List<string> languages;
+ List<CultureInfo> languages;
ListStore languagesListStore;
public GtkNuGetPackageMetadataOptionsPanelWidget ()
@@ -193,7 +193,7 @@ namespace MonoDevelop.Packaging.Gui
return;
}
- int index = languages.IndexOf (language);
+ int index = GetLanguageIndex (language);
if (index >= 0) {
packageLanguageComboBox.Active = index + 1;
return;
@@ -204,6 +204,17 @@ namespace MonoDevelop.Packaging.Gui
packageLanguageComboBox.SetActiveIter (iter);
}
+ int GetLanguageIndex (string language)
+ {
+ for (int i = 0; i < languages.Count; ++i) {
+ CultureInfo culture = languages [i];
+ if (string.Equals (culture.Name, language, StringComparison.OrdinalIgnoreCase)) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
internal void Save (PackagingProject project)
{
UpdateMetadata ();
@@ -257,6 +268,13 @@ namespace MonoDevelop.Packaging.Gui
// 'None' selected.
return string.Empty;
}
+
+ int languageIndex = packageLanguageComboBox.Active - 1;
+ if (languageIndex < languages.Count) {
+ return languages [languageIndex].Name;
+ }
+
+ // No match for language so just return the combo box text.
return packageLanguageComboBox.ActiveText;
}
@@ -265,22 +283,30 @@ namespace MonoDevelop.Packaging.Gui
languagesListStore = new ListStore (typeof (string));
packageLanguageComboBox.Model = languagesListStore;
- languages = CultureInfo.GetCultures(CultureTypes.AllCultures)
- .Where (c => !string.IsNullOrEmpty (c.Name))
- .Select (c => c.Name)
- .ToList ();
+ languages = new List<CultureInfo> ();
+
+ foreach (CultureInfo culture in CultureInfo.GetCultures (CultureTypes.AllCultures)) {
+ if (!string.IsNullOrEmpty (culture.Name)) {
+ languages.Add (culture);
+ }
+ }
- languages.Sort ();
+ languages.Sort (CompareLanguages);
languagesListStore.AppendValues (GettextCatalog.GetString ("None"));
- foreach (string language in languages) {
- languagesListStore.AppendValues (language);
+ foreach (CultureInfo language in languages) {
+ languagesListStore.AppendValues (language.DisplayName);
}
packageLanguageComboBox.Active = 0;
}
+ static int CompareLanguages (CultureInfo x, CultureInfo y)
+ {
+ return string.Compare (x.DisplayName, y.DisplayName, StringComparison.CurrentCulture);
+ }
+
bool ProjectHasMetadata ()
{
return !string.IsNullOrEmpty (metadata.Id);