Revision: 7630
          http://skim-app.svn.sourceforge.net/skim-app/?rev=7630&view=rev
Author:   hofman
Date:     2012-01-23 12:36:40 +0000 (Mon, 23 Jan 2012)
Log Message:
-----------
Use pointer array for last viewed page indexes

Modified Paths:
--------------
    trunk/SKMainWindowController.h
    trunk/SKMainWindowController.m
    trunk/SKMainWindowController_UI.m
    trunk/SKThumbnailTableView.h
    trunk/SKThumbnailTableView.m
    trunk/SKTocOutlineView.h
    trunk/SKTocOutlineView.m

Modified: trunk/SKMainWindowController.h
===================================================================
--- trunk/SKMainWindowController.h      2012-01-22 23:56:48 UTC (rev 7629)
+++ trunk/SKMainWindowController.h      2012-01-23 12:36:40 UTC (rev 7630)
@@ -138,7 +138,7 @@
     NSUInteger                          markedPageIndex;
     NSUInteger                          beforeMarkedPageIndex;
     
-    NSMutableArray                      *lastViewedPages;
+    NSPointerArray                      *lastViewedPages;
     
     IOPMAssertionID                     activityAssertionID;
     

Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m      2012-01-22 23:56:48 UTC (rev 7629)
+++ trunk/SKMainWindowController.m      2012-01-23 12:36:40 UTC (rev 7630)
@@ -236,7 +236,7 @@
         snapshots = [[NSMutableArray alloc] init];
         dirtySnapshots = [[NSMutableArray alloc] init];
         pageLabels = [[NSMutableArray alloc] init];
-        lastViewedPages = [[NSMutableArray alloc] init];
+        lastViewedPages = [[NSPointerArray alloc] 
initWithOptions:NSPointerFunctionsOpaqueMemory | 
NSPointerFunctionsIntegerPersonality];
         rowHeights = [[SKFloatMapTable alloc] init];
         savedNormalSetup = [[NSMutableDictionary alloc] init];
         mwcFlags.leftSidePaneState = SKThumbnailSidePaneState;
@@ -446,7 +446,7 @@
         if ([[pdfView document] isLocked]) {
             [savedNormalSetup setObject:[NSNumber 
numberWithUnsignedInteger:pageIndex] forKey:PAGEINDEX_KEY];
         } else if ([[pdfView currentPage] pageIndex] != pageIndex) {
-            [lastViewedPages removeAllObjects];
+            [lastViewedPages setCount:0];
             [pdfView goToPage:[[pdfView document] pageAtIndex:pageIndex]];
         }
     }
@@ -777,7 +777,7 @@
             [snapshots makeObjectsPerformSelector:@selector(close)];
             [self removeAllObjectsFromSnapshots];
             
-            [lastViewedPages removeAllObjects];
+            [lastViewedPages setCount:0];
             
             [self unregisterForDocumentNotifications];
             
@@ -1883,7 +1883,7 @@
     NSArray *snapshotSetups = [savedNormalSetup objectForKey:SNAPSHOTS_KEY];
     [self applyPDFSettings:[savedNormalSetup objectForKey:AUTOSCALES_KEY] ? 
savedNormalSetup : [[NSUserDefaults standardUserDefaults] 
dictionaryForKey:SKDefaultPDFDisplaySettingsKey]];
     if (pageIndex != NSNotFound) {
-        [lastViewedPages removeAllObjects];
+        [lastViewedPages setCount:0];
         [pdfView goToPage:[[pdfView document] pageAtIndex:pageIndex]];
     }
     if ([snapshotSetups count]) {

Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m   2012-01-22 23:56:48 UTC (rev 7629)
+++ trunk/SKMainWindowController_UI.m   2012-01-23 12:36:40 UTC (rev 7630)
@@ -504,7 +504,7 @@
     return NO;
 }
 
-- (NSArray *)tableViewHighlightedRows:(NSTableView *)tv {
+- (NSPointerArray *)tableViewHighlightedRows:(NSTableView *)tv {
     if ([tv isEqual:leftSideController.thumbnailTableView]) {
         return lastViewedPages;
     }
@@ -842,14 +842,15 @@
     return NO;
 }
 
-- (NSArray *)outlineViewHighlightedRows:(NSOutlineView *)ov {
+- (NSPointerArray *)outlineViewHighlightedRows:(NSOutlineView *)ov {
     if ([ov isEqual:leftSideController.tocOutlineView]) {
-        NSMutableArray *array = [NSMutableArray array];
+        NSPointerArray *array = [[[NSPointerArray alloc] 
initWithOptions:NSPointerFunctionsOpaqueMemory | 
NSPointerFunctionsIntegerPersonality] autorelease];
+        NSUInteger i, iMax = [lastViewedPages count];
         
-        for (NSNumber *rowNumber in lastViewedPages) {
-            NSInteger row = [self outlineRowForPageIndex:[rowNumber 
integerValue]];
+        for (i = 0; i < iMax; i++) {
+            NSInteger row = [self 
outlineRowForPageIndex:(NSUInteger)[lastViewedPages pointerAtIndex:i]];
             if (row != -1)
-                [array addObject:[NSNumber numberWithInteger:row]];
+                [array addPointer:(void *)row];
         }
         
         return array;
@@ -1603,12 +1604,14 @@
         return;
     
     PDFPage *page = [pdfView currentPage];
-    NSNumber *number = [NSNumber numberWithUnsignedInteger:[page pageIndex]];
+    NSUInteger pageIndex = [page pageIndex];
     
-    if ([[lastViewedPages lastObject] isEqual:number] == NO) {
-        [lastViewedPages insertObject:number atIndex:0];
+    if ([lastViewedPages count] == 0) {
+        [lastViewedPages addPointer:(void *)pageIndex];
+    } else if ((NSUInteger)[lastViewedPages pointerAtIndex:0] != pageIndex) {
+        [lastViewedPages insertPointer:(void *)pageIndex atIndex:0];
         if ([lastViewedPages count] > 5)
-            [lastViewedPages removeLastObject];
+            [lastViewedPages setCount:5];
     }
     [leftSideController.thumbnailTableView setNeedsDisplay:YES];
     [leftSideController.tocOutlineView setNeedsDisplay:YES];

Modified: trunk/SKThumbnailTableView.h
===================================================================
--- trunk/SKThumbnailTableView.h        2012-01-22 23:56:48 UTC (rev 7629)
+++ trunk/SKThumbnailTableView.h        2012-01-23 12:36:40 UTC (rev 7630)
@@ -59,7 +59,7 @@
 @protocol SKThumbnailTableViewDelegate <SKTableViewDelegate>
 @optional
 
-- (NSArray *)tableViewHighlightedRows:(NSTableView *)tableView;
+- (NSPointerArray *)tableViewHighlightedRows:(NSTableView *)tableView;
 - (BOOL)tableView:(NSTableView *)tableView 
commandSelectRow:(NSInteger)rowIndex;
 
 @end

Modified: trunk/SKThumbnailTableView.m
===================================================================
--- trunk/SKThumbnailTableView.m        2012-01-22 23:56:48 UTC (rev 7629)
+++ trunk/SKThumbnailTableView.m        2012-01-23 12:36:40 UTC (rev 7630)
@@ -82,11 +82,11 @@
             [NSGraphicsContext saveGraphicsState];
             
             NSMutableIndexSet *rowIndexes = [[[self selectedRowIndexes] 
mutableCopy] autorelease];
-            NSArray *rows = [[self delegate] tableViewHighlightedRows:self];
+            NSPointerArray *rows = [[self delegate] 
tableViewHighlightedRows:self];
             NSInteger i, count = MIN((NSInteger)[rows count], 5);
             
             for (i = 0; i < count; i++) {
-                row = [[rows objectAtIndex:i] integerValue];
+                row = (NSInteger)[rows pointerAtIndex:i];
                 rect = [self rectOfRow:row];
                 if (NSIntersectsRect(rect, clipRect) && [rowIndexes 
containsIndex:row] == NO) {
                     [[color colorWithAlphaComponent:0.5 - 0.1 * i] setFill];

Modified: trunk/SKTocOutlineView.h
===================================================================
--- trunk/SKTocOutlineView.h    2012-01-22 23:56:48 UTC (rev 7629)
+++ trunk/SKTocOutlineView.h    2012-01-23 12:36:40 UTC (rev 7630)
@@ -56,7 +56,7 @@
 @protocol SKTocOutlineViewDelegate <SKOutlineViewDelegate>
 @optional
 
-- (NSArray *)outlineViewHighlightedRows:(NSOutlineView *)anOutlineView;
+- (NSPointerArray *)outlineViewHighlightedRows:(NSOutlineView *)anOutlineView;
 - (BOOL)outlineView:(NSOutlineView *)anOutlineView 
hasImageContextForTableColumn:(NSTableColumn *)aTableColumn item:(id)item;
 - (id <SKImageToolTipContext>)outlineView:(NSOutlineView *)anOutlineView 
imageContextForTableColumn:(NSTableColumn *)aTableColumn item:(id)item;
 

Modified: trunk/SKTocOutlineView.m
===================================================================
--- trunk/SKTocOutlineView.m    2012-01-22 23:56:48 UTC (rev 7629)
+++ trunk/SKTocOutlineView.m    2012-01-23 12:36:40 UTC (rev 7630)
@@ -79,11 +79,11 @@
             [NSGraphicsContext saveGraphicsState];
             
             NSMutableIndexSet *rowIndexes = [[[self selectedRowIndexes] 
mutableCopy] autorelease];
-            NSArray *rows = [[self delegate] outlineViewHighlightedRows:self];
+            NSPointerArray *rows = [[self delegate] 
outlineViewHighlightedRows:self];
             NSInteger i, count = MIN((NSInteger)[rows count], 5);
             
             for (i = 0; i < count; i++) {
-                row = [[rows objectAtIndex:i] integerValue];
+                row = (NSInteger)[rows pointerAtIndex:i];
                 rect = [self rectOfRow:row];
                 if (NSIntersectsRect(rect, clipRect) && [rowIndexes 
containsIndex:row] == NO) {
                     [[color colorWithAlphaComponent:0.5 - 0.1 * i] setFill];

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to