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

Reply via email to