Revision: 14637
http://sourceforge.net/p/skim-app/code/14637
Author: hofman
Date: 2024-11-04 15:45:27 +0000 (Mon, 04 Nov 2024)
Log Message:
-----------
Only check for Line when we already know we may have a Line. Add some empty
lines of code.
Modified Paths:
--------------
trunk/SkimNotes/PDFAnnotation_SKNExtensions.m
Modified: trunk/SkimNotes/PDFAnnotation_SKNExtensions.m
===================================================================
--- trunk/SkimNotes/PDFAnnotation_SKNExtensions.m 2024-11-03 22:18:53 UTC
(rev 14636)
+++ trunk/SkimNotes/PDFAnnotation_SKNExtensions.m 2024-11-04 15:45:27 UTC
(rev 14637)
@@ -477,6 +477,7 @@
[self setInteriorColor:SKNColorFromArray((NSArray *)color)];
if ([type isEqualToString:SKNLineString]) {
+
NSString *startPoint = [dict
objectForKey:SKNPDFAnnotationStartPointKey];
NSString *endPoint = [dict
objectForKey:SKNPDFAnnotationEndPointKey];
NSNumber *startLineStyle = [dict
objectForKey:SKNPDFAnnotationStartLineStyleKey];
@@ -489,7 +490,9 @@
[self setStartLineStyle:[startLineStyle integerValue]];
if ([endLineStyle respondsToSelector:@selector(integerValue)])
[self setEndLineStyle:[endLineStyle integerValue]];
+
} else if ([type isEqualToString:SKNFreeTextString]) {
+
Class fontClass = [PDFKitPlatformFont class];
PDFKitPlatformFont *font = [dict
objectForKey:SKNPDFAnnotationFontKey];
PDFKitPlatformColor *fontColor = [dict
objectForKey:SKNPDFAnnotationFontColorKey];
@@ -508,7 +511,9 @@
[self setFontColor:SKNColorFromArray((NSArray *)fontColor)];
if ([alignment respondsToSelector:@selector(integerValue)])
[self setAlignment:SKNTextAlignmentFromAlignment([alignment
integerValue])];
+
} else if ([type isEqualToString:SKNHighlightString] || [type
isEqualToString:SKNMarkUpString] || [type isEqualToString:SKNUnderlineString]
|| [type isEqualToString:SKNStrikeOutString] || [type
isEqualToString:SKNSquigglyString]) {
+
NSArray *pointStrings = [dict
objectForKey:SKNPDFAnnotationQuadrilateralPointsKey];
NSMutableArray *pointValues = [[NSMutableArray alloc]
initWithCapacity:[pointStrings count]];
NSUInteger i, iMax = [pointStrings count];
@@ -518,7 +523,9 @@
[pointValues addObject:val];
}
[self setQuadrilateralPoints:pointValues];
+
} else if ([type isEqualToString:SKNTextString] || [type
isEqualToString:SKNStampString] || [type isEqualToString:SKNNoteString]) {
+
NSString *name = [dict objectForKey:SKNPDFAnnotationNameKey];
NSNumber *iconType = [dict
objectForKey:SKNPDFAnnotationIconTypeKey];
if ([iconType respondsToSelector:@selector(integerValue)])
@@ -525,7 +532,9 @@
[self setIconType:[iconType integerValue]];
if ([name isKindOfClass:stringClass])
[self setStampName:name];
+
} else if ([type isEqualToString:SKNInkString]) {
+
NSArray *pointLists = [dict
objectForKey:SKNPDFAnnotationPointListsKey];
if ([pointLists isKindOfClass:arrayClass]) {
NSUInteger i, iMax = [pointLists count];
@@ -538,7 +547,9 @@
}
}
}
+
} else if ([type isEqualToString:SKNWidgetString]) {
+
SKNPDFWidgetType widgetType = [[dict
objectForKey:SKNPDFAnnotationWidgetTypeKey] integerValue];
NSString *fieldName = [dict
objectForKey:SKNPDFAnnotationFieldNameKey];
NSString *stringValue = [dict
objectForKey:SKNPDFAnnotationStringValueKey];
@@ -561,6 +572,7 @@
if ([state respondsToSelector:@selector(integerValue)])
[self setButtonWidgetState:[state integerValue]];
[self setModificationDate:nil];
+
}
#endif
@@ -672,6 +684,7 @@
NSMutableDictionary *dict = [self genericSkimNoteProperties];
if ([self respondsToSelector:@selector(valueForAnnotationKey:)]) {
+
NSString *type = [self type];
PDFRect bounds = [self bounds];
id value = nil;
@@ -678,22 +691,15 @@
Class arrayClass = [NSArray class];
Class stringClass = [NSString class];
- if (([type isEqualToString:SKNCircleString] || [type
isEqualToString:SKNSquareString]) || [type isEqualToString:SKNLineString]) {
- PDFKitPlatformColor *color = nil;
- if ([self respondsToSelector:@selector(interiorColor)])
- color = [(id)self interiorColor];
- if (color == nil && (value = [self valueForAnnotationKey:@"/IC"]))
- color = SKNColorFromAnnotationValue(value);
- if (color)
- [dict setValue:color forKey:SKNPDFAnnotationInteriorColorKey];
- }
-
if ([type isEqualToString:SKNTextString] || [type
isEqualToString:SKNNoteString]) {
+
if ([self respondsToSelector:@selector(iconType)])
[dict setValue:[NSNumber numberWithInteger:[(id)self
iconType]] forKey:SKNPDFAnnotationIconTypeKey];
else if ((value = [self valueForAnnotationKey:@"/Name"]))
[dict setValue:[NSNumber
numberWithInteger:SKNIconTypeFromAnnotationValue(value)]
forKey:SKNPDFAnnotationIconTypeKey];
+
} else if ([type isEqualToString:SKNStampString]) {
+
if ([self respondsToSelector:@selector(stampName)])
value = [self stampName];
else
@@ -708,29 +714,45 @@
}
}
[dict setValue:appearanceImageForAnnotation(self)
forKey:SKNPDFAnnotationImageKey];
- } else if ([type isEqualToString:SKNLineString]) {
- if ([self respondsToSelector:@selector(startLineStyle)] && [self
respondsToSelector:@selector(endLineStyle)]) {
- [dict setValue:[NSNumber numberWithInteger:[(id)self
startLineStyle]] forKey:SKNPDFAnnotationStartLineStyleKey];
- [dict setValue:[NSNumber numberWithInteger:[(id)self
endLineStyle]] forKey:SKNPDFAnnotationStartLineStyleKey];
- } else if ((value = [self valueForAnnotationKey:@"/LE"])) {
- if ([value isKindOfClass:arrayClass] && [value count] == 2) {
- [dict setValue:[NSNumber
numberWithInteger:SKNPDFLineStyleFromAnnotationValue([value objectAtIndex:0])]
forKey:SKNPDFAnnotationStartLineStyleKey];
- [dict setValue:[NSNumber
numberWithInteger:SKNPDFLineStyleFromAnnotationValue([value objectAtIndex:1])]
forKey:SKNPDFAnnotationEndLineStyleKey];
+
+ } else if (([type isEqualToString:SKNCircleString] || [type
isEqualToString:SKNSquareString]) || [type isEqualToString:SKNLineString]) {
+
+ PDFKitPlatformColor *color = nil;
+ if ([self respondsToSelector:@selector(interiorColor)])
+ color = [(id)self interiorColor];
+ if (color == nil && (value = [self valueForAnnotationKey:@"/IC"]))
+ color = SKNColorFromAnnotationValue(value);
+ if (color)
+ [dict setValue:color forKey:SKNPDFAnnotationInteriorColorKey];
+
+ if ([type isEqualToString:SKNLineString]) {
+
+ if ([self respondsToSelector:@selector(startLineStyle)] &&
[self respondsToSelector:@selector(endLineStyle)]) {
+ [dict setValue:[NSNumber numberWithInteger:[(id)self
startLineStyle]] forKey:SKNPDFAnnotationStartLineStyleKey];
+ [dict setValue:[NSNumber numberWithInteger:[(id)self
endLineStyle]] forKey:SKNPDFAnnotationStartLineStyleKey];
+ } else if ((value = [self valueForAnnotationKey:@"/LE"])) {
+ if ([value isKindOfClass:arrayClass] && [value count] ==
2) {
+ [dict setValue:[NSNumber
numberWithInteger:SKNPDFLineStyleFromAnnotationValue([value objectAtIndex:0])]
forKey:SKNPDFAnnotationStartLineStyleKey];
+ [dict setValue:[NSNumber
numberWithInteger:SKNPDFLineStyleFromAnnotationValue([value objectAtIndex:1])]
forKey:SKNPDFAnnotationEndLineStyleKey];
+ }
}
+
+ if ([self respondsToSelector:@selector(startPoint)] && [self
respondsToSelector:@selector(endPoint)]) {
+ [dict setValue:SKNStringFromPoint([(id)self startPoint])
forKey:SKNPDFAnnotationStartPointKey];
+ [dict setValue:SKNStringFromPoint([(id)self endPoint])
forKey:SKNPDFAnnotationEndPointKey];
+ } else if ((value = [self valueForAnnotationKey:@"/L"])) {
+ if ([value isKindOfClass:arrayClass] && [value count] ==
4) {
+ PDFPoint p = SKNMakePoint([[value objectAtIndex:0]
doubleValue] - bounds.origin.x, [[value objectAtIndex:1] doubleValue] -
bounds.origin.y);
+ [dict setValue:SKNStringFromPoint(p)
forKey:SKNPDFAnnotationStartPointKey];
+ p = SKNMakePoint([[value objectAtIndex:2] doubleValue]
- bounds.origin.x, [[value objectAtIndex:3] doubleValue] - bounds.origin.y);
+ [dict setValue:SKNStringFromPoint(p)
forKey:SKNPDFAnnotationEndPointKey];
+ }
+ }
+
}
- if ([self respondsToSelector:@selector(startPoint)] && [self
respondsToSelector:@selector(endPoint)]) {
- [dict setValue:SKNStringFromPoint([(id)self startPoint])
forKey:SKNPDFAnnotationStartPointKey];
- [dict setValue:SKNStringFromPoint([(id)self endPoint])
forKey:SKNPDFAnnotationEndPointKey];
- } else if ((value = [self valueForAnnotationKey:@"/L"])) {
- if ([value isKindOfClass:arrayClass] && [value count] == 4) {
- PDFPoint p = SKNMakePoint([[value objectAtIndex:0]
doubleValue] - bounds.origin.x, [[value objectAtIndex:1] doubleValue] -
bounds.origin.y);
- [dict setValue:SKNStringFromPoint(p)
forKey:SKNPDFAnnotationStartPointKey];
- p = SKNMakePoint([[value objectAtIndex:2] doubleValue] -
bounds.origin.x, [[value objectAtIndex:3] doubleValue] - bounds.origin.y);
- [dict setValue:SKNStringFromPoint(p)
forKey:SKNPDFAnnotationEndPointKey];
- }
- }
} else if ([type isEqualToString:SKNHighlightString] || [type
isEqualToString:SKNMarkUpString] || [type isEqualToString:SKNUnderlineString]
|| [type isEqualToString:SKNStrikeOutString] || [type
isEqualToString:SKNSquigglyString]) {
+
if ([self respondsToSelector:@selector(quadrilateralPoints)]) {
NSArray *quadPoints = [(id)self quadrilateralPoints];
if (quadPoints) {
@@ -762,7 +784,9 @@
[dict setValue:quadPoints
forKey:SKNPDFAnnotationQuadrilateralPointsKey];
}
}
+
} else if ([type isEqualToString:SKNInkString]) {
+
if ([self respondsToSelector:@selector(paths)]) {
NSArray *paths = [(id)self paths];
if (paths) {
@@ -777,7 +801,9 @@
}
[dict setValue:pointLists
forKey:SKNPDFAnnotationPointListsKey];
}
+
} else if ((value = [self valueForAnnotationKey:@"/InkList"])) {
+
if ([value isKindOfClass:arrayClass]) {
Class pathClass = [PDFKitPlatformBezierPath class];
Class numberClass = [NSNumber class];
@@ -810,7 +836,9 @@
[dict setValue:pointLists
forKey:SKNPDFAnnotationPointListsKey];
}
}
+
} else if ([type isEqualToString:SKNFreeTextString]) {
+
if ([self respondsToSelector:@selector(alignment)]) {
[dict setValue:[NSNumber
numberWithInteger:SKNTextAlignmentFromAlignment([(id)self alignment])]
forKey:SKNPDFAnnotationAlignmentKey];
} else if ((value = [self valueForAnnotationKey:@"/Q"])) {
@@ -864,7 +892,9 @@
}
if (fontColor)
[dict setObject:fontColor forKey:SKNPDFAnnotationFontColorKey];
+
} else if ([type isEqualToString:SKNWidgetString]) {
+
[dict removeObjectForKey:SKNPDFAnnotationContentsKey];
[dict removeObjectForKey:SKNPDFAnnotationColorKey];
[dict removeObjectForKey:SKNPDFAnnotationModificationDateKey];
@@ -897,7 +927,9 @@
else if ((value = [self valueForAnnotationKey:@"/V"]))
[dict setObject:value
forKey:SKNPDFAnnotationStringValueKey];
}
- }
+
+ }
+
}
return dict;
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