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); }
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); }
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); } } }