protected override bool ProcessResponse(ResponseType response) { if (response == ResponseType.Ok) { chosenFilename = (Dialog as FileChooserDialog).Filename; chosenEncoding = encodingComboBox.ChosenEncoding; if (Base.Config.FileOpenEncodingOption == ConfigFileOpenEncodingOption.RememberLastUsed) { int activeAction = encodingComboBox.ActiveSelection; ConfigFileOpenEncoding activeOption = (ConfigFileOpenEncoding)Enum.ToObject(typeof(ConfigFileOpenEncoding), activeAction); if (((int)activeOption) >= ((int)ConfigFileOpenEncoding.Fixed)) { Base.Config.FileOpenEncodingFixed = chosenEncoding.Code; } else { Base.Config.FileOpenEncoding = activeOption; } } if ((videoComboBox != null) && (videoComboBox.Active > 0)) { int videoFileIndex = videoComboBox.Active - 2; chosenVideoUri = new Uri("file://" + videoFiles[videoFileIndex] as string); } SetReturnValue(true); } return(false); }
/* Event members */ private void OnDefaultsFileOpenEncodingChanged(object o, EventArgs args) { int active = fileOpenEncoding.ActiveSelection; ConfigFileOpenEncodingOption activeOption = (ConfigFileOpenEncodingOption)Enum.ToObject(typeof(ConfigFileOpenEncodingOption), active); if (((int)activeOption) > ((int)ConfigFileOpenEncodingOption.Specific)) //Positions higher than specific are always specific too { activeOption = ConfigFileOpenEncodingOption.Specific; } Base.Config.FileOpenEncodingOption = activeOption; /* If encoding option is specific, encodingOption=Specific and encoding holds the encoding name */ if (activeOption == ConfigFileOpenEncodingOption.Specific) { EncodingDescription chosenEncoding = fileOpenEncoding.ChosenEncoding; if (!chosenEncoding.Equals(EncodingDescription.Empty)) { Base.Config.FileOpenEncodingFixed = chosenEncoding.Name; } } else { /* If encoding is current locale, encoding holds current locale too, otherwise it just holds auto detect */ ConfigFileOpenEncoding encodingToStore = ConfigFileOpenEncoding.AutoDetect; if (activeOption == ConfigFileOpenEncodingOption.CurrentLocale) { encodingToStore = ConfigFileOpenEncoding.CurrentLocale; } Base.Config.FileOpenEncoding = encodingToStore; } }
private EncodingComboBox BuildEncodingComboBox() { int fixedEncoding = -1; ConfigFileOpenEncoding encodingConfig = Base.Config.FileOpenEncoding; if (encodingConfig == ConfigFileOpenEncoding.Fixed) { string encodingCode = Base.Config.FileOpenEncodingFixed; EncodingDescription encodingDescription = EncodingDescription.Empty; Encodings.Find(encodingCode, ref encodingDescription); fixedEncoding = encodingDescription.CodePage; } EncodingComboBox comboBox = new EncodingComboBox(true, null, fixedEncoding); /* Only need to handle the case of currentLocale, as Fixed is handled before and AutoDetect is the default behaviour */ if (encodingConfig == ConfigFileOpenEncoding.CurrentLocale) { comboBox.ActiveSelection = (int)encodingConfig; } return(comboBox); }