Revision: 16460
http://sourceforge.net/p/skim-app/code/16460
Author: hofman
Date: 2026-09-12 17:58:10 +0000 (Sat, 12 Sep 2026)
Log Message:
-----------
property for setup from bookmark, so we don't have to generate and remove
bookmark properties
Modified Paths:
--------------
trunk/SKBookmark.h
trunk/SKBookmark.m
trunk/SKDocumentController.m
trunk/SKMainWindowController.m
Modified: trunk/SKBookmark.h
===================================================================
--- trunk/SKBookmark.h 2026-09-12 17:35:41 UTC (rev 16459)
+++ trunk/SKBookmark.h 2026-09-12 17:58:10 UTC (rev 16460)
@@ -74,6 +74,7 @@
@property (nonatomic) NSUInteger pageIndex;
@property (nonatomic, nullable, strong) NSNumber *pageNumber;
@property (nonatomic, readonly) BOOL hasSetup;
+@property (nonatomic, nullable, readonly) NSDictionary<NSString *, id> *setup;
@property (nonatomic, nullable, readonly) NSArray<NSDictionary<NSString *, id>
*> *snapshots;
@property (nonatomic, nullable, readonly) NSString *tabs;
@property (nonatomic, nullable, weak) SKBookmark *parent;
Modified: trunk/SKBookmark.m
===================================================================
--- trunk/SKBookmark.m 2026-09-12 17:35:41 UTC (rev 16459)
+++ trunk/SKBookmark.m 2026-09-12 17:58:10 UTC (rev 16460)
@@ -96,7 +96,7 @@
@implementation SKBookmark
@synthesize parent;
-@dynamic properties, bookmarkType, label, icon, alternateIcon, fileURL,
fileURLToOpen, fileDescription, toolTip, pageIndex, pageNumber, hasSetup,
snapshots, tabs, containingBookmarks, children, countOfChildren,
scriptingParent, entireContents, bookmarks, expanded, skimURL;
+@dynamic properties, bookmarkType, label, icon, alternateIcon, fileURL,
fileURLToOpen, fileDescription, toolTip, pageIndex, pageNumber, setup,
snapshots, tabs, containingBookmarks, children, countOfChildren,
scriptingParent, entireContents, bookmarks, expanded, skimURL;
static Class SKBookmarkClass = Nil;
@@ -212,7 +212,7 @@
- (NSURL *)previewItemURL { return [self fileURL]; }
- (NSString *)previewItemTitle { return [self label]; }
-- (BOOL)hasSetup { return NO; }
+- (NSDictionary *)setup { return nil; }
- (NSArray *)snapshots { return nil; }
- (NSString *)tabs { return nil; }
@@ -541,7 +541,7 @@
- (NSImage *)icon {
NSURL *fileURL = [self fileURL];
NSString *type = fileURL ? [[NSWorkspace sharedWorkspace]
typeOfFile:[fileURL path] error:NULL] : nil;
- return [[self class] iconForFileType:type hasSetup:[self hasSetup]];
+ return [[self class] iconForFileType:type hasSetup:[setup
objectForKey:SKDocumentSetupWindowFrameKey] != nil];
}
- (NSUInteger)pageIndex {
@@ -573,8 +573,14 @@
}
}
-- (BOOL)hasSetup {
- return [setup objectForKey:SKDocumentSetupWindowFrameKey] != nil;
+- (NSDictionary *)setup {
+ if (pageIndex != NSNotFound) {
+ NSMutableDictionary *dict = [NSMutableDictionary
dictionaryWithDictionary:setup];
+ [dict setObject:[NSNumber numberWithUnsignedInteger:pageIndex]
forKey:PAGEINDEX_KEY];
+ if ([[setup objectForKey:PAGEINDEX_KEY] unsignedIntegerValue] !=
pageIndex)
+ [dict removeObjectForKey:@"scrollPoint"];
+ }
+ return setup;
}
- (NSArray *)snapshots {
Modified: trunk/SKDocumentController.m
===================================================================
--- trunk/SKDocumentController.m 2026-09-12 17:35:41 UTC (rev 16459)
+++ trunk/SKDocumentController.m 2026-09-12 17:58:10 UTC (rev 16460)
@@ -419,11 +419,7 @@
NSURL *fileURL = [bookmark fileURLToOpen];
if (fileURL && [fileURL checkResourceIsReachableAndReturnError:NULL]
&& NO == [fileURL isTrashedFileURL]) {
- NSDictionary *setup = nil;
- if ([bookmark hasSetup])
- setup = [bookmark properties];
- else if ([bookmark pageIndex] != NSNotFound)
- setup = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber
numberWithUnsignedInteger:[bookmark pageIndex]], @"pageIndex", [bookmark
snapshots], @"snapshots", nil];
+ NSDictionary *setup = [bookmark setup]; // this may be just the
pageIndex and possibly snapshots
[self openDocumentWithContentsOfURL:fileURL display:setup == nil
completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError
*error){
if (document && setup) {
if (documentWasAlreadyOpen == NO)
Modified: trunk/SKMainWindowController.m
===================================================================
--- trunk/SKMainWindowController.m 2026-09-12 17:35:41 UTC (rev 16459)
+++ trunk/SKMainWindowController.m 2026-09-12 17:58:10 UTC (rev 16460)
@@ -594,7 +594,6 @@
- (void)setCurrentSetup:(NSDictionary *)setup{
if ([self isWindowLoaded] == NO) {
[savedNormalSetup setDictionary:setup];
- [savedNormalSetup removeObjectsForKeys:@[SKDocumentSetupBookmarkKey,
SKDocumentSetupAliasKey, SKDocumentSetupTabsKey, LABEL_KEY]];
} else {
NSString *rectString = [setup objectForKey:MAINWINDOWFRAME_KEY];
@@ -616,7 +615,6 @@
if ([[pdfView document] isLocked]) {
NSArray *snapshotSetups = [savedNormalSetup
objectForKey:SNAPSHOTS_KEY];
[savedNormalSetup addEntriesFromDictionary:setup];
- [savedNormalSetup
removeObjectsForKeys:@[SKDocumentSetupBookmarkKey, SKDocumentSetupAliasKey,
SKDocumentSetupTabsKey, LABEL_KEY]];
if ([setup objectForKey:SCROLLPOINT_KEY] == nil)
[savedNormalSetup removeObjectForKey:SCROLLPOINT_KEY];
if (applySidePaneWidths)
@@ -628,7 +626,7 @@
} else {
if ([self interactionMode] != SKNormalMode) {
[savedNormalSetup addEntriesFromDictionary:setup];
- [savedNormalSetup removeObjectsForKeys:@[CROPBOXES_KEY,
SNAPSHOTS_KEY, PAGEINDEX_KEY, SCROLLPOINT_KEY, SKDocumentSetupBookmarkKey,
SKDocumentSetupAliasKey, SKDocumentSetupTabsKey, LABEL_KEY]];
+ [savedNormalSetup removeObjectsForKeys:@[CROPBOXES_KEY,
SNAPSHOTS_KEY, PAGEINDEX_KEY, SCROLLPOINT_KEY]];
if (applySidePaneWidths)
[savedNormalSetup
removeObjectsForKeys:@[LEFTSIDEPANEWIDTH_KEY, RIGHTSIDEPANEWIDTH_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