AppSpecificKeysDataModel.cs
1 // Copyright (c) Microsoft Corporation 2 // The Microsoft Corporation licenses this file to you under the MIT license. 3 // See the LICENSE file in the project root for more information. 4 5 using System; 6 using System.Collections.Generic; 7 using System.Text.Json.Serialization; 8 9 namespace Microsoft.PowerToys.Settings.UI.Library 10 { 11 public class AppSpecificKeysDataModel : KeysDataModel 12 { 13 [JsonPropertyName("targetApp")] 14 public string TargetApp { get; set; } 15 16 public new List<string> GetMappedOriginalKeys() 17 { 18 return base.GetMappedOriginalKeys(); 19 } 20 21 public new List<string> GetMappedOriginalKeysWithSplitChord() 22 { 23 return base.GetMappedOriginalKeysWithSplitChord(); 24 } 25 26 public List<string> GetMappedOriginalKeys(bool ignoreSecondKeyInChord) 27 { 28 return base.GetMappedOriginalKeys(ignoreSecondKeyInChord); 29 } 30 31 public List<string> GetMappedOriginalKeysWithoutChord() 32 { 33 return base.GetMappedOriginalKeys(true); 34 } 35 36 public new List<string> GetMappedOriginalKeysOnlyChord() 37 { 38 return base.GetMappedOriginalKeysOnlyChord(); 39 } 40 41 public new List<string> GetMappedNewRemapKeys(int runProgramMaxLength) 42 { 43 return base.GetMappedNewRemapKeys(runProgramMaxLength); 44 } 45 46 public bool Compare(AppSpecificKeysDataModel arg) 47 { 48 ArgumentNullException.ThrowIfNull(arg); 49 50 // Using Ordinal comparison for internal text 51 return string.Equals(OriginalKeys, arg.OriginalKeys, StringComparison.Ordinal) && 52 string.Equals(NewRemapKeys, arg.NewRemapKeys, StringComparison.Ordinal) && 53 string.Equals(NewRemapString, arg.NewRemapString, StringComparison.Ordinal) && 54 string.Equals(TargetApp, arg.TargetApp, StringComparison.Ordinal); 55 } 56 } 57 }