/ src / settings-ui / Settings.UI.Library / AppSpecificKeysDataModel.cs
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  }