Exemple #1
0
        public static List <SettingBase> LoadSettings(string content)
        {
            TomlTable table;

            using (StringReader reader = new StringReader(content))
                table = TOML.Parse(reader);

            List <SettingBase> settingsList = new List <SettingBase>();

            foreach (TomlTable setting in table["settings"])
            {
                SettingBase baseSetting = null;

                if (setting.HasKey("options"))
                {
                    OptionSetting optionSetting = new OptionSetting();
                    baseSetting           = optionSetting;
                    optionSetting.Default = setting["default"];
                    optionSetting.Value   = optionSetting.Default;

                    foreach (TomlTable option in setting["options"])
                    {
                        var opt = new OptionSettingOption();
                        opt.Name = option["name"];

                        if (option.HasKey("help"))
                        {
                            opt.Help = option["help"];
                        }

                        if (option.HasKey("text"))
                        {
                            opt.Text = option["text"];
                        }
                        else if (opt.Name == optionSetting.Default)
                        {
                            opt.Text = opt.Name + " (Default)";
                        }

                        opt.OptionSetting = optionSetting;
                        optionSetting.Options.Add(opt);
                    }
                }
                else
                {
                    StringSetting stringSetting = new StringSetting();
                    baseSetting           = stringSetting;
                    stringSetting.Default = setting.HasKey("default") ? setting["default"].ToString() : "";
                }

                baseSetting.Name   = setting["name"];
                baseSetting.File   = setting["file"];
                baseSetting.Filter = setting["filter"];

                if (setting.HasKey("help"))
                {
                    baseSetting.Help = setting["help"];
                }
                if (setting.HasKey("url"))
                {
                    baseSetting.URL = setting["url"];
                }
                if (setting.HasKey("width"))
                {
                    baseSetting.Width = setting["width"];
                }
                if (setting.HasKey("type"))
                {
                    baseSetting.Type = setting["type"];
                }

                settingsList.Add(baseSetting);
            }
            return(settingsList);
        }