Revision: 14676
http://sourceforge.net/p/skim-app/code/14676
Author: hofman
Date: 2024-11-11 17:42:51 +0000 (Mon, 11 Nov 2024)
Log Message:
-----------
separate methods to get bookmarks for closed documents and current document
Modified Paths:
--------------
trunk/SKBookmarkController.m
Modified: trunk/SKBookmarkController.m
===================================================================
--- trunk/SKBookmarkController.m 2024-11-11 17:30:04 UTC (rev 14675)
+++ trunk/SKBookmarkController.m 2024-11-11 17:42:51 UTC (rev 14676)
@@ -619,6 +619,30 @@
return NO;
}
+- (SKBookmark *)closedDocumentsBookmark {
+ NSArray *openFileURLs = [[[NSDocumentController sharedDocumentController]
documents] valueForKey:@"fileURL"];
+ NSMutableArray *closedBms = [NSMutableArray array];
+ for (SKBookmark *aBm in recentDocuments) {
+ NSURL *fileURL = [aBm fileURL];
+ if (fileURL && ([closedBms count] > 0 || [openFileURLs
containsObject:fileURL] == NO))
+ [closedBms addObject:aBm];
+ }
+ if ([closedBms count] > 0)
+ return [[SKBookmark alloc] initFolderWithChildren:closedBms
label:NSLocalizedString(@"Recently Closed", @"Menu item title")];
+ return nil;
+}
+
+- (SKBookmark *)currentDocumentBookmark {
+ NSURL *fileURL = [[[[NSApp mainWindow] windowController] document]
fileURL];
+ if (fileURL) {
+ NSArray *currentBookmarks = [[[self bookmarkRoot] entireContents]
filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"fileURL = %@",
fileURL]];
+ if ([currentBookmarks count] > 1) {
+ return [[SKBookmark alloc] initFolderWithChildren:[[NSArray alloc]
initWithArray:currentBookmarks copyItems:YES] label:NSLocalizedString(@"Current
Document", @"Menu item title")];
+ }
+ }
+ return nil;
+}
+
- (void)menuNeedsUpdate:(NSMenu *)menu {
if (menu == [outlineView menu]) {
NSInteger row = [outlineView clickedRow];
@@ -655,24 +679,8 @@
while (i-- > 0 && ([[menu itemAtIndex:i] isSeparatorItem] ||
[[menu itemAtIndex:i] representedObject]))
[menu removeItemAtIndex:i];
if (supermenu == [NSApp mainMenu]) {
- NSURL *fileURL = [[[[NSApp mainWindow] windowController]
document] fileURL];
- SKBookmark *currentDocument = nil;
- if (fileURL) {
- NSArray *currentBookmarks = [[[self bookmarkRoot]
entireContents] filteredArrayUsingPredicate:[NSPredicate
predicateWithFormat:@"fileURL = %@", fileURL]];
- if ([currentBookmarks count] > 1) {
- currentDocument = [[SKBookmark alloc]
initFolderWithChildren:[[NSArray alloc] initWithArray:currentBookmarks
copyItems:YES] label:NSLocalizedString(@"Current Document", @"Menu item
title")];
- }
- }
- SKBookmark *closedDocuments = nil;
- NSArray *openFileURLs = [[[NSDocumentController
sharedDocumentController] documents] valueForKey:@"fileURL"];
- NSMutableArray *closedBms = [NSMutableArray array];
- for (SKBookmark *aBm in recentDocuments) {
- fileURL = [aBm fileURL];
- if (fileURL && ([closedBms count] > 0 || [openFileURLs
containsObject:fileURL] == NO))
- [closedBms addObject:aBm];
- }
- if ([closedBms count] > 0)
- closedDocuments = [[SKBookmark alloc]
initFolderWithChildren:closedBms label:NSLocalizedString(@"Recently Closed",
@"Menu item title")];
+ SKBookmark *closedDocuments = [self closedDocumentsBookmark];
+ SKBookmark *currentDocument = [self currentDocumentBookmark];
if (previousSession || closedDocuments || currentDocument)
[menu addItem:[NSMenuItem separatorItem]];
if (previousSession) {
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