private void OnDefaultsFileSaveEncodingChanged(object o, EventArgs args) { int active = fileSaveEncoding.ActiveSelection; ConfigFileSaveEncodingOption activeOption = (ConfigFileSaveEncodingOption)Enum.ToObject(typeof(ConfigFileSaveEncodingOption), active); if (((int)activeOption) > ((int)ConfigFileSaveEncodingOption.Specific)) //Positions higher than specific are always specific too { activeOption = ConfigFileSaveEncodingOption.Specific; } Base.Config.FileSaveEncodingOption = activeOption; /* If encoding is specific, encodingOption=Specific and encoding holds the encoding name */ if (activeOption == ConfigFileSaveEncodingOption.Specific) { EncodingDescription chosenEncoding = fileSaveEncoding.ChosenEncoding; if (!chosenEncoding.Equals(EncodingDescription.Empty)) { Base.Config.FileSaveEncodingFixed = chosenEncoding.Name; } } else { /* If encoding option is current locale, encoding holds current locale too, otherwise it just holds keep existing */ ConfigFileSaveEncoding encodingToStore = ConfigFileSaveEncoding.KeepExisting; if (activeOption == ConfigFileSaveEncodingOption.CurrentLocale) { encodingToStore = ConfigFileSaveEncoding.CurrentLocale; } Base.Config.FileSaveEncoding = encodingToStore; } }
private EncodingComboBox BuildFileSaveEncodingComboBox() { string[] additionalActions = { Catalog.GetString("Keep the encoding used on file open"), Catalog.GetString("Remember the last used encoding") }; int fixedEncoding = -1; ConfigFileSaveEncodingOption fileSaveEncodingOption = Base.Config.FileSaveEncodingOption; if (fileSaveEncodingOption == ConfigFileSaveEncodingOption.Specific) { string encodingName = Base.Config.FileSaveEncodingFixed; EncodingDescription encodingDescription = EncodingDescription.Empty; Encodings.Find(encodingName, ref encodingDescription); fixedEncoding = encodingDescription.CodePage; } EncodingComboBox comboBox = new EncodingComboBox(false, additionalActions, fixedEncoding); if (fileSaveEncodingOption != ConfigFileSaveEncodingOption.Specific) { comboBox.ActiveSelection = (int)fileSaveEncodingOption; } comboBox.SelectionChanged += OnDefaultsFileSaveEncodingChanged; return(comboBox); }