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:
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);