Revision: 16771
http://sourceforge.net/p/skim-app/code/16771
Author: hofman
Date: 2026-11-01 17:12:39 +0000 (Sun, 01 Nov 2026)
Log Message:
-----------
gather closed document bookmarks before tryin to open them as a setup
Modified Paths:
--------------
trunk/SKBookmarkController.m
Modified: trunk/SKBookmarkController.m
===================================================================
--- trunk/SKBookmarkController.m 2026-11-01 16:57:54 UTC (rev 16770)
+++ trunk/SKBookmarkController.m 2026-11-01 17:12:39 UTC (rev 16771)
@@ -98,6 +98,13 @@
static inline NSLayoutConstraint *trailingConstraint(NSView *view);
+enum {
+ SKBookmarkTagBookmarksMenu = 10,
+ SKBookmarkTagPreviousSession,
+ SKBookmarkTagClosedDocuments,
+ SKBookmarkTagCurrentDocument,
+};
+
@interface SKBookmarkController ()
- (void)setupToolbar;
- (void)saveBookmarksData;
@@ -106,6 +113,7 @@
- (void)startObservingBookmarks:(NSArray *)newBookmarks;
- (void)stopObservingBookmarks:(NSArray *)oldBookmarks;
@property (nonatomic, readonly) NSUndoManager *undoManager;
+- (NSArray *)closedDocumentBookmarks;
@end
@implementation SKBookmarkController
@@ -441,6 +449,11 @@
}
- (IBAction)openBookmark:(id)sender {
+ SKBookmark *bookmark = [sender representedObject];
+ if ([sender tag] == SKBookmarkTagClosedDocuments && [bookmark
countOfChildren] == 0) {
+ NSArray *children = [self closedDocumentBookmarks];
+ [bookmark insertChildren:children atIndexes:[NSIndexSet
indexSetWithIndexesInRange:NSMakeRange(0, [children count])]];
+ }
[[NSDocumentController sharedDocumentController]
openDocumentWithBookmark:[sender representedObject]
completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError
*error){
if (document == nil && error && [error isUserCancelledError] == NO)
[NSApp presentError:error];
@@ -675,13 +688,6 @@
return NO;
}
-enum {
- SKBookmarkTagBookmarksMenu = 10,
- SKBookmarkTagPreviousSession,
- SKBookmarkTagClosedDocuments,
- SKBookmarkTagCurrentDocument,
-};
-
- (void)menuNeedsUpdate:(NSMenu *)menu {
if (menu == [outlineView menu]) {
NSInteger row = [outlineView clickedRow];
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