Revision: 15527 http://sourceforge.net/p/skim-app/code/15527 Author: hofman Date: 2025-06-23 14:54:30 +0000 (Mon, 23 Jun 2025) Log Message: ----------- get recent document bookmark only once
Modified Paths: -------------- trunk/SKBookmarkController.h trunk/SKBookmarkController.m trunk/SKMainWindowController.m Modified: trunk/SKBookmarkController.h =================================================================== --- trunk/SKBookmarkController.h 2025-06-23 14:32:52 UTC (rev 15526) +++ trunk/SKBookmarkController.h 2025-06-23 14:54:30 UTC (rev 15527) @@ -95,8 +95,7 @@ - (void)replaceBookmarkAtIndex:(NSUInteger)anIndex ofBookmark:(SKBookmark *)parent withBookmark:(SKBookmark *)bookmark animate:(BOOL)animate; - (BOOL)addRecentDocumentForURL:(NSURL *)fileURL pageIndex:(NSUInteger)pageIndex snapshots:(nullable NSArray<NSDictionary<NSString *, id> *> *)snapshots; -- (NSUInteger)pageIndexForRecentDocumentAtURL:(NSURL *)fileURL; -- (NSArray<NSDictionary<NSString *, id> *> *)snapshotsForRecentDocumentAtURL:(NSURL *)fileURL; +- (nullable SKBookmark *)recentDocumentAtURL:(NSURL *)fileURL; - (BOOL)isBookmarkExpanded:(SKBookmark *)bookmark; - (void)setExpanded:(BOOL)flag forBookmark:(SKBookmark *)bookmark; Modified: trunk/SKBookmarkController.m =================================================================== --- trunk/SKBookmarkController.m 2025-06-23 14:32:52 UTC (rev 15526) +++ trunk/SKBookmarkController.m 2025-06-23 14:54:30 UTC (rev 15527) @@ -270,15 +270,6 @@ return NO; } -- (NSUInteger)pageIndexForRecentDocumentAtURL:(NSURL *)fileURL { - SKBookmark *info = fileURL ? [self recentDocumentAtURL:fileURL] : nil; - return info ? [info pageIndex] : NSNotFound; -} - -- (NSArray *)snapshotsForRecentDocumentAtURL:(NSURL *)fileURL { - return fileURL ? [[self recentDocumentAtURL:fileURL] snapshots] : nil; -} - #pragma mark Bookmarks support - (SKBookmark *)bookmarkForURL:(NSURL *)bookmarkURL { Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2025-06-23 14:32:52 UTC (rev 15526) +++ trunk/SKMainWindowController.m 2025-06-23 14:54:30 UTC (rev 15527) @@ -109,6 +109,7 @@ #import "SKNoteToolbarController.h" #import "SKPresentationNotesAuxiliary.h" #import "NSCharacterSet_SKExtensions.h" +#import "SKBookmark.h" #define MULTIPLICATION_SIGN_CHARACTER (unichar)0x00d7 @@ -467,10 +468,18 @@ [window zoom:self]; } + SKBookmark *recentDoc = nil; + BOOL lookedForRecentDoc = [doc fileURL] != nil; + // Go to page? SKDestination dest = [self destinationFromSetup:savedNormalSetup]; if (dest.pageIndex == NSNotFound && [sud boolForKey:SKRememberLastPageViewedKey]) { - dest.pageIndex = [[SKBookmarkController sharedBookmarkController] pageIndexForRecentDocumentAtURL:[doc fileURL]]; + if (lookedForRecentDoc == NO) { + recentDoc = [[SKBookmarkController sharedBookmarkController] recentDocumentAtURL:[doc fileURL]]; + lookedForRecentDoc = YES; + } + if (recentDoc) + dest.pageIndex = [recentDoc pageIndex]; } if (dest.pageIndex != NSNotFound && [[pdfView document] pageCount] > dest.pageIndex) { if ([[pdfView document] isLocked]) { @@ -498,8 +507,14 @@ // Open snapshots? NSArray *snapshotSetups = [savedNormalSetup objectForKey:SNAPSHOTS_KEY]; - if ([sud boolForKey:SKRememberSnapshotsKey]) - snapshotSetups = mergedSnapshotSetups(snapshotSetups, [[SKBookmarkController sharedBookmarkController] snapshotsForRecentDocumentAtURL:[doc fileURL]]); + if ([sud boolForKey:SKRememberSnapshotsKey]) { + if (lookedForRecentDoc == NO) { + recentDoc = [[SKBookmarkController sharedBookmarkController] recentDocumentAtURL:[doc fileURL]]; + lookedForRecentDoc = YES; + } + if (recentDoc) + snapshotSetups = mergedSnapshotSetups(snapshotSetups, [recentDoc snapshots]); + } if ([snapshotSetups count]) { if ([[pdfView document] isLocked]) [savedNormalSetup setObject:snapshotSetups forKey:SNAPSHOTS_KEY]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Skim-app-commit mailing list Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit