Revision: 4212
http://skim-app.svn.sourceforge.net/skim-app/?rev=4212&view=rev
Author: hofman
Date: 2008-07-14 12:41:15 -0700 (Mon, 14 Jul 2008)
Log Message:
-----------
add a custom object to hold temporary records for pdfsync
Modified Paths:
--------------
trunk/SKPDFSyncRecord.h
trunk/SKPDFSyncRecord.m
trunk/SKPDFSynchronizer.m
Modified: trunk/SKPDFSyncRecord.h
===================================================================
--- trunk/SKPDFSyncRecord.h 2008-07-14 19:04:42 UTC (rev 4211)
+++ trunk/SKPDFSyncRecord.h 2008-07-14 19:41:15 UTC (rev 4212)
@@ -68,3 +68,11 @@
- (void)setLine:(int)newLine;
@end
+
+#pragma mark -
+
[EMAIL PROTECTED] SKPDFSyncRecords : NSObject {
+ NSMutableDictionary *records;
+}
+- (SKPDFSyncRecord *)recordForIndex:(int)recordIndex;
[EMAIL PROTECTED]
Modified: trunk/SKPDFSyncRecord.m
===================================================================
--- trunk/SKPDFSyncRecord.m 2008-07-14 19:04:42 UTC (rev 4211)
+++ trunk/SKPDFSyncRecord.m 2008-07-14 19:41:15 UTC (rev 4212)
@@ -113,3 +113,33 @@
}
@end
+
+#pragma mark -
+
[EMAIL PROTECTED] SKPDFSyncRecords
+
+- (id)init {
+ if (self = [super init]) {
+ records = [[NSMutableDictionary alloc] init];
+ }
+ return self;
+}
+
+- (void)dealloc {
+ [records release];
+ [super dealloc];
+}
+
+- (SKPDFSyncRecord *)recordForIndex:(int)recordIndex {
+ NSNumber *recordNumber = [[NSNumber alloc] initWithInt:recordIndex];
+ SKPDFSyncRecord *record = [records objectForKey:recordNumber];
+ if (record == nil) {
+ record = [[SKPDFSyncRecord alloc] initWithRecordIndex:recordIndex];
+ [records setObject:record forKey:recordNumber];
+ [record release];
+ }
+ [recordNumber release];
+ return record;
+}
+
[EMAIL PROTECTED]
Modified: trunk/SKPDFSynchronizer.m
===================================================================
--- trunk/SKPDFSynchronizer.m 2008-07-14 19:04:42 UTC (rev 4211)
+++ trunk/SKPDFSynchronizer.m 2008-07-14 19:41:15 UTC (rev 4212)
@@ -59,18 +59,6 @@
return file;
}
-static SKPDFSyncRecord *SKRecordForRecordIndex(NSMutableDictionary *records,
int recordIndex) {
- NSNumber *recordNumber = [[NSNumber alloc] initWithInt:recordIndex];
- SKPDFSyncRecord *record = [records objectForKey:recordNumber];
- if (record == nil) {
- record = [[SKPDFSyncRecord alloc] initWithRecordIndex:recordIndex];
- [records setObject:record forKey:recordNumber];
- [record release];
- }
- [recordNumber release];
- return record;
-}
-
#pragma mark -
struct SKServerFlags {
@@ -154,66 +142,6 @@
[super dealloc];
}
-#pragma mark Accessors
-
-- (id)delegate {
- return delegate;
-}
-
-- (void)setDelegate:(id)newDelegate {
- delegate = newDelegate;
-}
-
-- (NSString *)fileName {
- NSString *file = nil;
- @synchronized(self) {
- file = [[fileName retain] autorelease];
- }
- return file;
-}
-
-- (void)setFileName:(NSString *)newFileName {
- @synchronized(self) {
- if (fileName != newFileName) {
- if ([fileName isEqualToString:newFileName] == NO) {
- [syncFileName release];
- syncFileName = nil;
- [lastModDate release];
- lastModDate = nil;
- }
- [fileName release];
- fileName = [newFileName retain];
- }
- }
-}
-
-- (NSString *)syncFileName {
- NSString *file = nil;
- @synchronized(self) {
- file = [[syncFileName retain] autorelease];
- }
- return file;
-}
-
-- (void)setSyncFileName:(NSString *)newSyncFileName {
- @synchronized(self) {
- if (syncFileName != newSyncFileName) {
- [syncFileName release];
- syncFileName = [newSyncFileName retain];
- }
- [lastModDate release];
- lastModDate = [(syncFileName ?
SKFileModificationDateAtPath(syncFileName) : nil) retain];
- }
-}
-
-- (NSDate *)lastModDate {
- NSDate *date = nil;
- @synchronized(self) {
- date = [[lastModDate retain] autorelease];
- }
- return date;
-}
-
#pragma mark DO server
#pragma mark | Accessor
@@ -318,6 +246,66 @@
#pragma mark Finding and Parsing
+#pragma mark Accessors
+
+- (id)delegate {
+ return delegate;
+}
+
+- (void)setDelegate:(id)newDelegate {
+ delegate = newDelegate;
+}
+
+- (NSString *)fileName {
+ NSString *file = nil;
+ @synchronized(self) {
+ file = [[fileName retain] autorelease];
+ }
+ return file;
+}
+
+- (void)setFileName:(NSString *)newFileName {
+ @synchronized(self) {
+ if (fileName != newFileName) {
+ if ([fileName isEqualToString:newFileName] == NO) {
+ [syncFileName release];
+ syncFileName = nil;
+ [lastModDate release];
+ lastModDate = nil;
+ }
+ [fileName release];
+ fileName = [newFileName retain];
+ }
+ }
+}
+
+- (NSString *)syncFileName {
+ NSString *file = nil;
+ @synchronized(self) {
+ file = [[syncFileName retain] autorelease];
+ }
+ return file;
+}
+
+- (void)setSyncFileName:(NSString *)newSyncFileName {
+ @synchronized(self) {
+ if (syncFileName != newSyncFileName) {
+ [syncFileName release];
+ syncFileName = [newSyncFileName retain];
+ }
+ [lastModDate release];
+ lastModDate = [(syncFileName ?
SKFileModificationDateAtPath(syncFileName) : nil) retain];
+ }
+}
+
+- (NSDate *)lastModDate {
+ NSDate *date = nil;
+ @synchronized(self) {
+ date = [[lastModDate retain] autorelease];
+ }
+ return date;
+}
+
#pragma mark | API
- (void)findFileAndLineForLocation:(NSPoint)point inRect:(NSRect)rect
atPageIndex:(unsigned int)pageIndex {
@@ -358,8 +346,8 @@
if ([pdfsyncString length]) {
NSString *basePath = [theFileName stringByDeletingLastPathComponent];
- NSMutableDictionary *records = [NSMutableDictionary dictionary];
- NSMutableArray *files = [NSMutableArray array];
+ SKPDFSyncRecords *records = [[SKPDFSyncRecords alloc] init];
+ NSMutableArray *files = [[NSMutableArray alloc] init];
NSString *file;
int recordIndex, line, pageIndex;
float x, y;
@@ -391,7 +379,7 @@
if ([sc scanInt:&recordIndex] && [sc scanInt:&line]) {
// we ignore the column
[sc scanInt:NULL];
- record = SKRecordForRecordIndex(records,
recordIndex);
+ record = [records recordForIndex:recordIndex];
[record setFile:file];
[record setLine:line];
[[lines objectForKey:file] addObject:record];
@@ -400,7 +388,7 @@
// we ignore * and + modifiers
[sc scanString:@"*" intoString:NULL] || [sc
scanString:@"+" intoString:NULL];
if ([sc scanInt:&recordIndex] && [sc scanFloat:&x] &&
[sc scanFloat:&y]) {
- record = SKRecordForRecordIndex(records,
recordIndex);
+ record = [records recordForIndex:recordIndex];
[record setPageIndex:[pages count] - 1];
[record setPoint:NSMakePoint(SYNC_TO_PDF(x) +
pdfOffset.x, SYNC_TO_PDF(y) + pdfOffset.y)];
[[pages lastObject] addObject:record];
@@ -449,6 +437,8 @@
}
}
+ [records release];
+ [files release];
[sc release];
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit