Пример #1
0
        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;
            }
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        /* 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);
        }