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
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit