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