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 void BuildEncodingComboBox() { int fixedEncoding = GetFixedEncoding(); ConfigFileSaveEncoding encodingConfig = Base.Config.FileSaveEncoding; if (encodingConfig == ConfigFileSaveEncoding.Fixed) { string encodingCode = Base.Config.FileSaveEncodingFixed; EncodingDescription encodingDescription = EncodingDescription.Empty; Encodings.Find(encodingCode, ref encodingDescription); fixedEncoding = encodingDescription.CodePage; } encodingComboBox = new EncodingComboBox(false, null, fixedEncoding); /* Only need to handle the case of currentLocale, as Fixed and Keep Existent is handled before */ if (encodingConfig == ConfigFileSaveEncoding.CurrentLocale) { encodingComboBox.ActiveSelection = (int)encodingConfig; } }
/* Event members */ protected override bool ProcessResponse(ResponseType response) { if (response == ResponseType.Ok) { /* Check chosen encoding */ chosenEncoding = encodingComboBox.ChosenEncoding; if (Base.Config.FileSaveEncodingOption == ConfigFileSaveEncodingOption.RememberLastUsed) { int activeAction = encodingComboBox.ActiveSelection; ConfigFileSaveEncoding activeOption = (ConfigFileSaveEncoding)Enum.ToObject(typeof(ConfigFileSaveEncoding), activeAction); if (((int)activeOption) >= ((int)ConfigFileSaveEncoding.Fixed)) { Base.Config.FileSaveEncodingFixed = chosenEncoding.Code; } else { Base.Config.FileSaveEncoding = activeOption; } } /* Check chosen subtitle format */ chosenSubtitleType = formatComboBox.ChosenSubtitleType; if (Base.Config.FileSaveFormatOption == ConfigFileSaveFormatOption.RememberLastUsed) { Base.Config.FileSaveFormatFixed = chosenSubtitleType; } /* Check chosen newline type */ chosenNewlineType = newlineComboBox.ChosenNewlineType; if (Base.Config.FileSaveNewlineOption == ConfigFileSaveNewlineOption.RememberLastUsed) { Base.Config.FileSaveNewline = chosenNewlineType; } chosenFilename = (Dialog as FileChooserDialog).Filename; SetReturnValue(true); } return(false); }