Revision: 12170
http://sourceforge.net/p/skim-app/code/12170
Author: hofman
Date: 2021-03-07 16:10:12 +0000 (Sun, 07 Mar 2021)
Log Message:
-----------
Use custom unarchive value transformer for colors that can also read keyed
archived data, in case we would want to save them keyed in the future, so it
can support sRGB colors
Modified Paths:
--------------
trunk/DisplayPreferences.xib
trunk/NSColor_SKExtensions.m
trunk/NSUserDefaults_SKExtensions.m
trunk/NSValueTransformer_SKExtensions.h
trunk/NSValueTransformer_SKExtensions.m
trunk/NotesPreferences.xib
trunk/SKApplicationController.m
trunk/SKDisplayPreferences.m
trunk/SKMainToolbarController.m
trunk/SKNotesPreferences.m
Modified: trunk/DisplayPreferences.xib
===================================================================
--- trunk/DisplayPreferences.xib 2021-03-06 20:08:56 UTC (rev 12169)
+++ trunk/DisplayPreferences.xib 2021-03-07 16:10:12 UTC (rev 12170)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0"
toolsVersion="16097.3" targetRuntime="MacOSX.Cocoa"
propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0"
toolsVersion="17701" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"
useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<development version="8000" identifier="xcode"/>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin"
version="16097.3"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin"
version="17701"/>
<capability name="documents saved in the Xcode 8 format"
minToolsVersion="8.0"/>
</dependencies>
<objects>
@@ -162,9 +162,9 @@
<connections>
<accessibilityConnection property="link"
destination="17" id="107"/>
<accessibilityConnection property="title"
destination="14" id="59"/>
- <binding destination="61" name="value"
keyPath="values.SKBackgroundColor" id="76">
+ <binding destination="61" name="value"
keyPath="values.SKBackgroundColor" id="Voc-wr-z1x">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
<outlet property="nextKeyView" destination="17"
id="51"/>
@@ -175,9 +175,9 @@
<color key="color" red="0.0" green="0.0" blue="0.0"
alpha="1" colorSpace="calibratedRGB"/>
<connections>
<accessibilityConnection property="title"
destination="15" id="53"/>
- <binding destination="61" name="value"
keyPath="values.SKFullScreenBackgroundColor" id="75">
+ <binding destination="61" name="value"
keyPath="values.SKFullScreenBackgroundColor" id="bk8-ZT-keW">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
</connections>
@@ -203,9 +203,9 @@
<connections>
<accessibilityConnection property="link"
destination="24" id="102"/>
<accessibilityConnection property="title"
destination="25" id="55"/>
- <binding destination="61" name="value"
keyPath="values.SKReadingBarColor" id="79">
+ <binding destination="61" name="value"
keyPath="values.SKReadingBarColor" id="OOD-Bb-5l9">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
</connections>
@@ -296,7 +296,7 @@
<rect key="frame" x="147" y="287" width="71" height="25"/>
<popUpButtonCell key="cell" type="push" title="None"
bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on"
borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2"
selectedItem="ixy-vI-kGX" id="VYe-A3-h8D">
<behavior key="behavior" lightByBackground="YES"
lightByGray="YES"/>
- <font key="font" metaFont="system"/>
+ <font key="font" metaFont="menu"/>
<menu key="menu" id="N9m-fi-zeA">
<items>
<menuItem title="None" state="on"
id="ixy-vI-kGX"/>
Modified: trunk/NSColor_SKExtensions.m
===================================================================
--- trunk/NSColor_SKExtensions.m 2021-03-06 20:08:56 UTC (rev 12169)
+++ trunk/NSColor_SKExtensions.m 2021-03-07 16:10:12 UTC (rev 12170)
@@ -120,7 +120,7 @@
#pragma mark Favorite Colors
+ (NSArray *)favoriteColors {
- NSValueTransformer *transformer = [NSValueTransformer
arrayTransformerWithValueTransformerForName:NSUnarchiveFromDataTransformerName];
+ NSValueTransformer *transformer = [NSValueTransformer
arrayTransformerWithValueTransformerForName:SKUnarchiveColorTransformerName];
return [transformer transformedValue:[[NSUserDefaults
standardUserDefaults] arrayForKey:SKSwatchColorsKey]];
}
Modified: trunk/NSUserDefaults_SKExtensions.m
===================================================================
--- trunk/NSUserDefaults_SKExtensions.m 2021-03-06 20:08:56 UTC (rev 12169)
+++ trunk/NSUserDefaults_SKExtensions.m 2021-03-07 16:10:12 UTC (rev 12170)
@@ -46,6 +46,10 @@
NSData *data = [self dataForKey:key];
if (data) {
color = [NSUnarchiver unarchiveObjectWithData:data];
+ if (color == nil)
+ color = [NSKeyedUnarchiver unarchiveObjectWithData:data];
+ if ([color isKindOfClass:[NSColor class]] == NO)
+ color = nil;
} else {
NSArray *array = [self arrayForKey:key];
if ([array count]) {
Modified: trunk/NSValueTransformer_SKExtensions.h
===================================================================
--- trunk/NSValueTransformer_SKExtensions.h 2021-03-06 20:08:56 UTC (rev
12169)
+++ trunk/NSValueTransformer_SKExtensions.h 2021-03-07 16:10:12 UTC (rev
12170)
@@ -38,6 +38,7 @@
#import <Cocoa/Cocoa.h>
+extern NSString *SKUnarchiveColorTransformerName;
extern NSString *SKTypeImageTransformerName;
extern NSString *SKIsZeroTransformerName;
extern NSString *SKIsOneTransformerName;
Modified: trunk/NSValueTransformer_SKExtensions.m
===================================================================
--- trunk/NSValueTransformer_SKExtensions.m 2021-03-06 20:08:56 UTC (rev
12169)
+++ trunk/NSValueTransformer_SKExtensions.m 2021-03-07 16:10:12 UTC (rev
12170)
@@ -40,6 +40,7 @@
#import "NSImage_SKExtensions.h"
#import <SkimNotes/SkimNotes.h>
+NSString *SKUnarchiveColorTransformerName = @"SKUnarchiveColor";
NSString *SKTypeImageTransformerName = @"SKTypeImage";
NSString *SKIsZeroTransformerName = @"SKIsZero";
NSString *SKIsOneTransformerName = @"SKIsOne";
@@ -59,6 +60,11 @@
#pragma mark -
+@interface SKUnarchiveColorTransformer : NSValueTransformer
+@end
+
+#pragma mark -
+
@interface SKTypeImageTransformer : NSValueTransformer
@end
@@ -75,6 +81,7 @@
@implementation NSValueTransformer (SKExtensions)
+ (void)registerCustomTransformers {
+ [NSValueTransformer setValueTransformer:[[[SKUnarchiveColorTransformer
alloc] init] autorelease] forName:SKUnarchiveColorTransformerName];
[NSValueTransformer setValueTransformer:[[[SKTypeImageTransformer alloc]
init] autorelease] forName:SKTypeImageTransformerName];
[NSValueTransformer setValueTransformer:[[[SKRadioTransformer alloc]
initWithTargetValue:0] autorelease] forName:SKIsZeroTransformerName];
[NSValueTransformer setValueTransformer:[[[SKRadioTransformer alloc]
initWithTargetValue:1] autorelease] forName:SKIsOneTransformerName];
@@ -159,6 +166,37 @@
#pragma mark -
+@implementation SKUnarchiveColorTransformer
+
++ (Class)transformedValueClass {
+ return [NSColor class];
+}
+
++ (BOOL)allowsReverseTransformation {
+ return YES;
+}
+
+- (id)transformedValue:(id)value {
+ if ([value isKindOfClass:[NSData class]] == NO)
+ return nil;
+ NSColor *color = [NSUnarchiver unarchiveObjectWithData:value];
+ if (color == nil)
+ color = [NSKeyedUnarchiver unarchiveObjectWithData:value];
+ if ([color isKindOfClass:[NSColor class]] == NO)
+ return nil;
+ return color;
+}
+
+- (id)reverseTransformedValue:(id)value {
+ if ([value isKindOfClass:[NSColor class]] == NO)
+ return nil;
+ return [NSArchiver archivedDataWithRootObject:value];
+}
+
+@end
+
+#pragma mark -
+
@implementation SKTypeImageTransformer
+ (Class)transformedValueClass {
Modified: trunk/NotesPreferences.xib
===================================================================
--- trunk/NotesPreferences.xib 2021-03-06 20:08:56 UTC (rev 12169)
+++ trunk/NotesPreferences.xib 2021-03-07 16:10:12 UTC (rev 12170)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0"
toolsVersion="16097.3" targetRuntime="MacOSX.Cocoa"
propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0"
toolsVersion="17701" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"
useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<development version="8000" identifier="xcode"/>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin"
version="16097.3"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin"
version="17701"/>
<capability name="documents saved in the Xcode 8 format"
minToolsVersion="8.0"/>
</dependencies>
<objects>
@@ -34,9 +34,9 @@
<connections>
<accessibilityConnection property="link"
destination="4" id="154"/>
<accessibilityConnection property="title"
destination="3" id="75"/>
- <binding destination="84" name="value"
keyPath="values.SKFreeTextNoteColor" id="86">
+ <binding destination="84" name="value"
keyPath="values.SKFreeTextNoteColor" id="blO-ar-64V">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
</connections>
@@ -55,9 +55,9 @@
<connections>
<accessibilityConnection property="link"
destination="21" id="155"/>
<accessibilityConnection property="title"
destination="5" id="80"/>
- <binding destination="84" name="value"
keyPath="values.SKAnchoredNoteColor" id="92">
+ <binding destination="84" name="value"
keyPath="values.SKAnchoredNoteColor" id="KmW-cG-rzI">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
</connections>
@@ -76,9 +76,9 @@
<connections>
<accessibilityConnection property="link"
destination="35" id="158"/>
<accessibilityConnection property="title"
destination="7" id="71"/>
- <binding destination="84" name="value"
keyPath="values.SKCircleNoteColor" id="88">
+ <binding destination="84" name="value"
keyPath="values.SKCircleNoteColor" id="hmz-QU-9Wz">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
</connections>
@@ -97,9 +97,9 @@
<connections>
<accessibilityConnection property="link"
destination="37" id="160"/>
<accessibilityConnection property="title"
destination="9" id="83"/>
- <binding destination="84" name="value"
keyPath="values.SKSquareNoteColor" id="101">
+ <binding destination="84" name="value"
keyPath="values.SKSquareNoteColor" id="YE8-cg-YNa">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
</connections>
@@ -118,9 +118,9 @@
<connections>
<accessibilityConnection property="link"
destination="12" id="162"/>
<accessibilityConnection property="title"
destination="11" id="78"/>
- <binding destination="84" name="value"
keyPath="values.SKHighlightNoteColor" id="90">
+ <binding destination="84" name="value"
keyPath="values.SKHighlightNoteColor" id="ZIX-tq-vP4">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
</connections>
@@ -159,9 +159,9 @@
<color key="color" red="1" green="0.0" blue="0.0"
alpha="1" colorSpace="calibratedRGB"/>
<connections>
<accessibilityConnection property="title"
destination="15" id="82"/>
- <binding destination="84" name="value"
keyPath="values.SKStrikeOutNoteColor" id="103">
+ <binding destination="84" name="value"
keyPath="values.SKStrikeOutNoteColor" id="E9W-hU-3Cy">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
</connections>
@@ -180,9 +180,9 @@
<connections>
<accessibilityConnection property="link"
destination="6" id="157"/>
<accessibilityConnection property="title"
destination="17" id="72"/>
- <binding destination="84" name="value"
keyPath="values.SKInkNoteColor" id="105">
+ <binding destination="84" name="value"
keyPath="values.SKInkNoteColor" id="17q-Y6-ZRp">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
</connections>
@@ -350,9 +350,9 @@
<connections>
<accessibilityConnection property="link"
destination="10" id="161"/>
<accessibilityConnection property="title"
destination="38" id="69"/>
- <binding destination="84" name="value"
keyPath="values.SKSquareNoteInteriorColor" id="107">
+ <binding destination="84" name="value"
keyPath="values.SKSquareNoteInteriorColor" id="izC-Td-IAa">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
</connections>
@@ -371,9 +371,9 @@
<connections>
<accessibilityConnection property="link"
destination="10" id="267"/>
<accessibilityConnection property="title"
destination="263" id="265"/>
- <binding destination="84" name="value"
keyPath="values.SKLineNoteInteriorColor" id="272">
+ <binding destination="84" name="value"
keyPath="values.SKLineNoteInteriorColor" id="0IZ-in-jwa">
<dictionary key="options">
- <string
key="NSValueTransformerName">NSUnarchiveFromData</string>
+ <string
key="NSValueTransformerName">SKUnarchiveColor</string>
</dictionary>
</binding>
</connections>
Modified: trunk/SKApplicationController.m
===================================================================
--- trunk/SKApplicationController.m 2021-03-06 20:08:56 UTC (rev 12169)
+++ trunk/SKApplicationController.m 2021-03-07 16:10:12 UTC (rev 12170)
@@ -869,7 +869,7 @@
}
- (void)setFavoriteColors:(NSArray *)array {
- NSValueTransformer *transformer = [NSValueTransformer
arrayTransformerWithValueTransformerForName:NSUnarchiveFromDataTransformerName];
+ NSValueTransformer *transformer = [NSValueTransformer
arrayTransformerWithValueTransformerForName:SKUnarchiveColorTransformerName];
[[NSUserDefaults standardUserDefaults] setObject:[transformer
reverseTransformedValue:array] forKey:SKSwatchColorsKey];
}
Modified: trunk/SKDisplayPreferences.m
===================================================================
--- trunk/SKDisplayPreferences.m 2021-03-06 20:08:56 UTC (rev 12169)
+++ trunk/SKDisplayPreferences.m 2021-03-07 16:10:12 UTC (rev 12170)
@@ -83,7 +83,7 @@
- (void)loadView {
[super loadView];
- NSValueTransformer *transformer = [NSValueTransformer
arrayTransformerWithValueTransformerForName:NSUnarchiveFromDataTransformerName];
+ NSValueTransformer *transformer = [NSValueTransformer
arrayTransformerWithValueTransformerForName:SKUnarchiveColorTransformerName];
NSDictionary *options = [NSDictionary dictionaryWithObject:transformer
forKey:NSValueTransformerBindingOption];
[colorSwatch bind:@"colors" toObject:[NSUserDefaultsController
sharedUserDefaultsController] withKeyPath:[@"values."
stringByAppendingString:SKSwatchColorsKey] options:options];
[colorSwatch sizeToFit];
Modified: trunk/SKMainToolbarController.m
===================================================================
--- trunk/SKMainToolbarController.m 2021-03-06 20:08:56 UTC (rev 12169)
+++ trunk/SKMainToolbarController.m 2021-03-07 16:10:12 UTC (rev 12170)
@@ -700,7 +700,7 @@
} else if ([identifier
isEqualToString:SKDocumentToolbarColorSwatchItemIdentifier]) {
- NSValueTransformer *transformer = [NSValueTransformer
arrayTransformerWithValueTransformerForName:NSUnarchiveFromDataTransformerName];
+ NSValueTransformer *transformer = [NSValueTransformer
arrayTransformerWithValueTransformerForName:SKUnarchiveColorTransformerName];
NSDictionary *options = [NSDictionary
dictionaryWithObject:transformer forKey:NSValueTransformerBindingOption];
[colorSwatch bind:@"colors" toObject:[NSUserDefaultsController
sharedUserDefaultsController] withKeyPath:[@"values."
stringByAppendingString:SKSwatchColorsKey] options:options];
[colorSwatch sizeToFit];
Modified: trunk/SKNotesPreferences.m
===================================================================
--- trunk/SKNotesPreferences.m 2021-03-06 20:08:56 UTC (rev 12169)
+++ trunk/SKNotesPreferences.m 2021-03-07 16:10:12 UTC (rev 12170)
@@ -44,6 +44,7 @@
#import "NSGraphics_SKExtensions.h"
#import "NSImage_SKExtensions.h"
#import "NSShadow_SKExtensions.h"
+#import "NSValueTransformer_SKExtensions.h"
#define VALUES_KEY_PATH(key) [@"values." stringByAppendingString:key]
@@ -85,7 +86,7 @@
[lineLineWell bind:SKLineWellEndLineStyleKey toObject:sudc
withKeyPath:VALUES_KEY_PATH(SKLineNoteEndLineStyleKey) options:nil];
BIND_LINE_WELL(inkLineWell, Ink, SKLineWellDisplayStyleSimpleLine);
- NSDictionary *options = [NSDictionary
dictionaryWithObjectsAndKeys:NSUnarchiveFromDataTransformerName,
NSValueTransformerNameBindingOption, nil];
+ NSDictionary *options = [NSDictionary
dictionaryWithObjectsAndKeys:SKUnarchiveColorTransformerName,
NSValueTransformerNameBindingOption, nil];
[textFontWell setHasTextColor:YES];
[textFontWell bind:@"textColor" toObject:sudc
withKeyPath:VALUES_KEY_PATH(SKFreeTextNoteFontColorKey) options:options];
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit