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; } }
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); }
private void LoadEncodings() { bool toAddFixedEncoding = (fixedEncoding != -1); ArrayList encodings = new ArrayList(); foreach (string name in configShownEncodings) { EncodingDescription description = EncodingDescription.Empty; if (Encodings.Find(name, ref description)) { encodings.Add(description); if (toAddFixedEncoding && (description.CodePage == fixedEncoding)) { toAddFixedEncoding = false; } } } if (toAddFixedEncoding) { EncodingDescription description = EncodingDescription.Empty; if (Encodings.Find(fixedEncoding, ref description)) { encodings.Add(description); } } encodings.Sort(); encodings.Insert(0, Encodings.SystemDefault); this.encodings = encodings; }
private void AddToShownEncodings(EncodingDescription desc) { if (!IsAlreadyShown(desc.Name)) { GetListStore(shownTreeView).AppendValues(desc.Description, desc.Name); UpdateShownEncodingsPrefs(); } }
private void AddSelectedAvailableEncoding() { TreePath path = GetSelectedPath(availableTreeView); if (path == null) { return; } int encodingNumber = Core.Util.PathToInt(path); EncodingDescription desc = Encodings.All[encodingNumber]; AddToShownEncodings(desc); }
private int GetFileOpenCodePageFromConfig() { switch (Base.Config.FileOpenEncoding) { case ConfigFileOpenEncoding.CurrentLocale: return(Encodings.SystemDefault.CodePage); case ConfigFileOpenEncoding.Fixed: string encodingCode = Base.Config.FileOpenEncodingFixed; EncodingDescription encodingDescription = EncodingDescription.Empty; Encodings.Find(encodingCode, ref encodingDescription); return(encodingDescription.CodePage); default: return(-1); //Also accounts for Auto Detect } }
private void OnDefaultsFileOpenFallbackEncodingChanged(object o, EventArgs args) { if (fileOpenFallbackEncoding.IsChosenCurrentLocale) { Base.Config.FileOpenFallbackEncoding = ConfigFileOpenFallbackEncoding.CurrentLocale; } else { EncodingDescription chosenEncoding = fileOpenFallbackEncoding.ChosenEncoding; if (!chosenEncoding.Equals(EncodingDescription.Empty)) { Base.Config.FileOpenFallbackEncodingFixed = chosenEncoding.Name; } } }
private EncodingComboBox BuildFileOpenFallbackEncodingComboBox() { int fixedEncoding = -1; ConfigFileOpenFallbackEncoding fileOpenFallbackEncodingConfig = Base.Config.FileOpenFallbackEncoding; if (fileOpenFallbackEncodingConfig == ConfigFileOpenFallbackEncoding.Fixed) { string encodingName = Base.Config.FileOpenFallbackEncodingFixed; EncodingDescription encodingDescription = EncodingDescription.Empty; Encodings.Find(encodingName, ref encodingDescription); fixedEncoding = encodingDescription.CodePage; } EncodingComboBox comboBox = new EncodingComboBox(false, null, fixedEncoding); comboBox.SelectionChanged += OnDefaultsFileOpenFallbackEncodingChanged; return(comboBox); }
private void FillShownEncodings() { SetColumns(shownTreeView); chosenNames = Base.Config.FileEncodingsShownInMenu; ListStore store = new ListStore(typeof(string), typeof(string)); foreach (string shownEncoding in chosenNames) { EncodingDescription desc = EncodingDescription.Empty; if (Encodings.Find(shownEncoding, ref desc)) { store.AppendValues(desc.Description, desc.Name); } } SetModel(shownTreeView, store); }
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); }
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); }
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); }