Пример #1
0
        internal Configuration GetCurrentUserConfiguration()
        {
            if (currentUserConfig != null)
            {
                return(currentUserConfig);
            }
            else
            {
                currentUserConfig = new Configuration();

                FileInfo file = new FileInfo(GetUserConfigFileName());
                if (!file.Exists)
                {
                    currentUserConfig.UserData = new UserData();

                    foreach (var action in ShortcutActionManager.Instance.Actions.Values)
                    {
                        currentUserConfig.AddShortcutAction(action.Id,
                                                            ShortcutKeyToolkit.KeysToString(action.ShortcutKeys), action.Activated);
                    }

                    Logger.Log("config", "user config not exists, new config created in memory.");
                }
                else
                {
                    try
                    {
                        using (FileStream fs = file.Open(FileMode.Open,
                                                         FileAccess.Read, FileShare.Read))
                        {
                            XmlSerializer serializer = new XmlSerializer(typeof(UserData));
                            currentUserConfig.UserData = serializer.Deserialize(fs) as UserData;
                        }
                    }
                    catch (Exception ex)
                    {
                        Logger.Log("config", "load user config failed: " + ex.Message);
                    }

                    if (currentUserConfig.UserData == null)
                    {
                        currentUserConfig.UserData = new UserData();
                    }
                }
            }

            return(currentUserConfig);
        }
Пример #2
0
        public void SaveConfig()
        {
            Configuration config = ConfigurationManager.Instance.GetCurrentUserConfiguration();

            config.UserData.actions.Clear();

            foreach (ShortcutAction sa in actions.Values)
            {
                config.UserData.actions.Add(new unvell.JustCapture.XML.ActionInfo
                {
                    id           = sa.Id,
                    activated    = sa.Activated,
                    shortcutKeys = ShortcutKeyToolkit.KeysToString(sa.ShortcutKeys),
                });
            }

            config.Dirty = true;

            ConfigurationManager.Instance.SaveConfiguration(config);
        }
Пример #3
0
        private void UpdateShortcutKeys(Keys keys)
        {
            Enum[] splittedKeys = ShortcutKeyToolkit.ConvertToEnumArray(keys);
            bool   found        = false;

            foreach (Keys k in splittedKeys)
            {
                if (modifierKeys.IndexOf(k) == -1)
                {
                    found = true;
                    break;
                }
            }

            Keys rsKeys;

            if (!found)
            {
                Text   = string.Empty;
                rsKeys = Keys.None;
            }
            else
            {
                Text = ShortcutKeyToolkit.KeysToString(keys);

                rsKeys = keys;
            }

            if (rsKeys != shortcutKeys)
            {
                shortcutKeys = rsKeys;

                if (ShortcutKeyChanged != null)
                {
                    ShortcutKeyChanged(this, null);
                }
            }
        }