Example #1
0
        private void LoadConfig()
        {
            Debugger.WriteLine(LogLevel.Info, "Loading launching key combination...");
            List<KeyCode> keys = new List<KeyCode>();
            IniKey value = Preferences["Keys"]["StartGUIKey"];
            if (value.Value == null || value.Value.Trim() == string.Empty)
            {
                value.Value = GetKeyCombo(DEFAULT_KEY_CODE);
                keys.AddRange(DEFAULT_KEY_CODE);
                SaveConfig();
            }
            else
            {
                try
                {
                    string[] keyCodes = value.Value.Split(new[] {'+'}, StringSplitOptions.RemoveEmptyEntries);
                    if (keyCodes.Length == 0)
                        throw new Exception();
                    foreach (KeyCode kc in
                    keyCodes.Select(keyCode => (KeyCode) Enum.Parse(typeof (KeyCode), keyCode.Trim(), true))
                            .Where(kc => !keys.Contains(kc)))
                        keys.Add(kc);
                    if (keyCodes.Length != keys.Count)
                    {
                        value.Value = GetKeyCombo(keys);
                        SaveConfig();
                    }
                }
                catch (Exception)
                {
                    Debugger.WriteLine(LogLevel.Warning, "Failed to parse given key combo. Using default combination");
                    value.Value = GetKeyCombo(DEFAULT_KEY_CODE);
                    keys.AddRange(DEFAULT_KEY_CODE);
                    SaveConfig();
                }
            }
            keyCreateGUI = new KeyHelper(keys.ToArray());
            Debugger.WriteLine(LogLevel.Info, $"Loaded {keys.Count} long key combo: {GetKeyCombo(keys)}");

            Debugger.WriteLine(LogLevel.Info, "Loading name style info...");
            value = Preferences["GUI"]["UseJapaneseNameStyle"];
            bool useJapNameStyle;
            if (value.Value == null || value.Value.Trim() == string.Empty
                || !bool.TryParse(value.Value, out useJapNameStyle))
            {
                Debugger.WriteLine(LogLevel.Warning, "Failed to get name style info. Setting do default...");
                value.Value = DEFAULT_USE_JAPANESE_NAME_STYLE.ToString();
                UseJapaneseNameStyle = DEFAULT_USE_JAPANESE_NAME_STYLE;
                SaveConfig();
            }
            else
                UseJapaneseNameStyle = useJapNameStyle;

            Debugger.WriteLine(LogLevel.Info, $"Using Japanese name style: {UseJapaneseNameStyle}");


            Debugger.WriteLine(LogLevel.Info, "Loading order style info...");
            value = Preferences["GUI"]["OrderStyle"];
            MaidOrderStyle orderStyle;
            string v;
            if (value.Value == null || (v = value.Value.Trim()) == string.Empty
                || !EnumHelper.TryParse(v, out orderStyle, true))
            {
                Debugger.WriteLine(LogLevel.Warning, "Failed to get order style. Setting do default...");
                value.Value = EnumHelper.GetName(DEFAULT_ORDER_STYLE);
                MaidCompare = COMPARE_METHODS[(int) DEFAULT_ORDER_STYLE];
                SaveConfig();
            }
            else
                MaidCompare = COMPARE_METHODS[(int) orderStyle];

            Debugger.WriteLine(LogLevel.Info, $"Sorting maids by {MaidCompare.Method.Name} method");


            Debugger.WriteLine(LogLevel.Info, "Loading order direction info...");
            value = Preferences["GUI"]["OrderDirection"];
            MaidOrderDirection orderDirection;
            if (value.Value == null || (v = value.Value.Trim()) == string.Empty
                || !EnumHelper.TryParse(v, out orderDirection, true))
            {
                Debugger.WriteLine(LogLevel.Warning, "Failed to get order direction. Setting do default...");
                value.Value = EnumHelper.GetName(DEFAULT_ORDER_DIRECTION);
                MaidOrderDirection = (int) DEFAULT_ORDER_DIRECTION;
                SaveConfig();
            }
            else
                MaidOrderDirection = (int) orderDirection;

            Debugger.WriteLine(
            LogLevel.Info,
            $"Sorting maids in {EnumHelper.GetName((MaidOrderDirection) MaidOrderDirection)} direction");
        }