public void ModifyShortcutEntry(Identifier identifier, List <KeyCombination> combinationSequence) { var shortcutEntry = m_Entries.FirstOrDefault(e => e.identifier.Equals(identifier)); shortcutEntry.SetOverride(combinationSequence); SerializableShortcutEntry profileEntry = null; foreach (var activeProfileEntry in m_ActiveProfile.entries) { if (activeProfileEntry.identifier.Equals(identifier)) { profileEntry = activeProfileEntry; profileEntry.keyCombination = new List <KeyCombination>(combinationSequence); break; } } if (profileEntry == null) { m_ActiveProfile.Add(shortcutEntry); } if (shortcutsModified != null) { shortcutsModified(this); } }
internal void ApplyProfile(ShortcutProfile shortcutProfile, bool migratePrefKeys = false) { // pref keys should only be migrated when the default user profile is applied if (migratePrefKeys) { foreach (var entry in entries) { if (entry.prefKeyMigratedValue != null) { var overrideEntry = new SerializableShortcutEntry { identifier = entry.identifier, keyCombination = new List <KeyCombination> { entry.prefKeyMigratedValue.Value } }; entry.ApplyOverride(overrideEntry); } } } foreach (var shortcutOverride in shortcutProfile.entries) { var entry = entries.FirstOrDefault(e => e.identifier.Equals(shortcutOverride.identifier)); if (entry != null) { entry.ApplyOverride(shortcutOverride); } } m_ActiveProfile = shortcutProfile; }
public void ModifyShortcutEntry(Identifier identifier, IEnumerable <KeyCombination> combinationSequence) { if (activeProfile == null) { throw new InvalidOperationException("No active profile"); } if (!m_BindingValidator.IsCombinationValid(combinationSequence, out string invalidBindingMessage)) { throw new ArgumentException(invalidBindingMessage, nameof(combinationSequence)); } var shortcutEntry = m_Entries.FirstOrDefault(e => e.identifier.Equals(identifier)); var oldBinding = new ShortcutBinding(shortcutEntry.combinations); shortcutEntry.SetOverride(combinationSequence); if (!m_BindingValidator.IsBindingValid(shortcutEntry, out invalidBindingMessage)) { shortcutEntry.ResetToDefault(); Debug.LogError(invalidBindingMessage); shortcutBindingChanged?.Invoke(this, identifier, oldBinding, oldBinding); return; } SerializableShortcutEntry profileEntry = null; foreach (var activeProfileEntry in m_ActiveProfile.entries) { if (activeProfileEntry.identifier.Equals(identifier)) { profileEntry = activeProfileEntry; oldBinding = new ShortcutBinding(profileEntry.combinations); profileEntry.combinations = new List <KeyCombination>(combinationSequence); break; } } if (profileEntry == null) { m_ActiveProfile.Add(shortcutEntry); } SaveShortcutProfile(m_ActiveProfile); var newBinding = new ShortcutBinding(combinationSequence); shortcutBindingChanged?.Invoke(this, identifier, oldBinding, newBinding); }
public void ApplyOverride(SerializableShortcutEntry shortcutOverride) { SetOverride(shortcutOverride.keyCombination); }
internal void ApplyOverride(SerializableShortcutEntry shortcutOverride) { SetOverride(shortcutOverride.combinations); }