diff options
| author | Tomáš Znamenáček | 2014-08-07 11:35:45 +0200 |
|---|---|---|
| committer | Tomáš Znamenáček | 2015-01-07 15:42:22 +0100 |
| commit | bbf2f69da4253b9fc28bd622a3041622f064d22c (patch) | |
| tree | e73b5c0c1a6bfbe481ff904829a45a49375d608d /Framework/MASDictionaryTransformer.m | |
| parent | d687545083839db1218ab874f59a7290d516b46b (diff) | |
| download | MASShortcut-bbf2f69da4253b9fc28bd622a3041622f064d22c.tar.bz2 | |
Better treatment of nil values when storing shortcuts as dictionaries.
This makes it possible to make a difference between “shortcut not
set, use default” and “shortcut set to none”.
Diffstat (limited to 'Framework/MASDictionaryTransformer.m')
| -rw-r--r-- | Framework/MASDictionaryTransformer.m | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/Framework/MASDictionaryTransformer.m b/Framework/MASDictionaryTransformer.m index f0d9b2e..54a7d7a 100644 --- a/Framework/MASDictionaryTransformer.m +++ b/Framework/MASDictionaryTransformer.m @@ -11,12 +11,19 @@ static NSString *const MASModifierFlagsKey = @"modifierFlags"; return YES; } +// Storing nil values as an empty dictionary lets us differ between +// “not available, use default value” and “explicitly set to none”. +// See http://stackoverflow.com/questions/5540760 for details. - (NSDictionary*) reverseTransformedValue: (MASShortcut*) shortcut { - return @{ - MASKeyCodeKey: @([shortcut keyCode]), - MASModifierFlagsKey: @([shortcut modifierFlags]) - }; + if (shortcut == nil) { + return [NSDictionary dictionary]; + } else { + return @{ + MASKeyCodeKey: @([shortcut keyCode]), + MASModifierFlagsKey: @([shortcut modifierFlags]) + }; + } } - (MASShortcut*) transformedValue: (NSDictionary*) dictionary |
