Revision: 13437
http://sourceforge.net/p/skim-app/code/13437
Author: hofman
Date: 2023-05-11 14:47:00 +0000 (Thu, 11 May 2023)
Log Message:
-----------
Add context menu item to normal bookmark items to choose the file
Modified Paths:
--------------
trunk/SKBookmark.h
trunk/SKBookmark.m
trunk/SKBookmarkController.m
trunk/de.lproj/Localizable.strings
trunk/en.lproj/Localizable.strings
trunk/es.lproj/Localizable.strings
trunk/fr.lproj/Localizable.strings
trunk/it.lproj/Localizable.strings
trunk/ja.lproj/Localizable.strings
trunk/nl.lproj/Localizable.strings
trunk/pl.lproj/Localizable.strings
trunk/ru.lproj/Localizable.strings
trunk/zh_CN.lproj/Localizable.strings
trunk/zh_TW.lproj/Localizable.strings
Modified: trunk/SKBookmark.h
===================================================================
--- trunk/SKBookmark.h 2023-05-11 13:58:51 UTC (rev 13436)
+++ trunk/SKBookmark.h 2023-05-11 14:47:00 UTC (rev 13437)
@@ -71,7 +71,7 @@
@property (nonatomic, readonly) SKBookmarkType bookmarkType;
@property (nonatomic, retain) NSString *label;
@property (nonatomic, readonly) NSImage *icon, *alternateIcon;
-@property (nonatomic, readonly) NSURL *fileURL;
+@property (nonatomic, copy) NSURL *fileURL;
@property (nonatomic, readonly) NSURL *fileURLToOpen;
@property (nonatomic, readonly) NSString *fileDescription;
@property (nonatomic, readonly) NSString *toolTip;
Modified: trunk/SKBookmark.m
===================================================================
--- trunk/SKBookmark.m 2023-05-11 13:58:51 UTC (rev 13436)
+++ trunk/SKBookmark.m 2023-05-11 14:47:00 UTC (rev 13437)
@@ -215,6 +215,7 @@
- (void)setLabel:(NSString *)newLabel {}
- (NSURL *)fileURL { return nil; }
+- (void)setFileURL:(NSURL *)fileURL {}
- (NSURL *)fileURLToOpen { return nil; }
- (NSString *)fileDescription { return nil; }
- (NSString *)toolTip { return nil; }
@@ -538,6 +539,14 @@
return [alias fileURLNoUI];
}
+- (void)setFileURL:(NSURL *)fileURL {
+ SKAlias *newAlias = [[SKAlias alloc] initWithURL:fileURL];
+ if (newAlias) {
+ [alias release];
+ alias = newAlias;
+ }
+}
+
- (NSURL *)fileURLToOpen {
NSURL *fileURL = [alias fileURL];
if (fileURL == nil && setup) {
Modified: trunk/SKBookmarkController.m
===================================================================
--- trunk/SKBookmarkController.m 2023-05-11 13:58:51 UTC (rev 13436)
+++ trunk/SKBookmarkController.m 2023-05-11 14:47:00 UTC (rev 13437)
@@ -576,6 +576,24 @@
}
}
+- (IBAction)chooseFile:(id)sender {
+ SKBookmark *bm = [[self clickedBookmarks] firstObject];
+ NSURL *fileURL = [bm fileURL];
+ NSOpenPanel *oPanel = [NSOpenPanel openPanel];
+ [oPanel setAllowedFileTypes:@[SKPDFDocumentType, SKPDFBundleDocumentType,
SKPostScriptDocumentType, SKEncapsulatedPostScriptDocumentType,
SKDVIDocumentType, SKXDVDocumentType, SKNotesDocumentType]];
+ if (fileURL)
+ [oPanel setDirectoryURL:[fileURL URLByDeletingLastPathComponent]];
+ [oPanel beginSheetModalForWindow:[self window]
completionHandler:^(NSInteger result){
+ if (result == NSModalResponseOK) {
+ NSURL *fileURL = [[oPanel URLs] firstObject];
+ if (fileURL) {
+ [bm setFileURL:fileURL];
+ [outlineView reloadDataForRowIndexes:[NSIndexSet
indexSetWithIndex:[outlineView rowForItem:bm]] columnIndexes:[NSIndexSet
indexSetWithIndex:1]];
+ }
+ }
+ }];
+}
+
- (IBAction)copyURL:(id)sender {
NSArray *selectedBookmarks = minimumCoverForBookmarks([outlineView
selectedItems]);
NSMutableArray *skimURLs = [NSMutableArray array];
@@ -630,7 +648,8 @@
[menu removeAllItems];
if (row != -1) {
[menu addItemWithTitle:NSLocalizedString(@"Remove", @"Menu item
title") action:@selector(deleteBookmarks:) target:self];
- for (SKBookmark *bm in [self clickedBookmarks]) {
+ NSArray *clickedBookmarks = [self clickedBookmarks];
+ for (SKBookmark *bm in clickedBookmarks) {
if ([bm bookmarkType] != SKBookmarkTypeSeparator) {
[menu addItemWithTitle:NSLocalizedString(@"Open", @"Menu
item title") action:@selector(openBookmarks:) target:self];
[menu addItemWithTitle:NSLocalizedString(@"Quick Look",
@"Menu item title") action:@selector(previewBookmarks:) target:self];
@@ -637,6 +656,8 @@
break;
}
}
+ if ([clickedBookmarks count] == 1 && [[clickedBookmarks
firstObject] bookmarkType] == SKBookmarkTypeBookmark)
+ [menu addItemWithTitle:NSLocalizedString(@"Choose File",
@"Menu item title") action:@selector(chooseFile:) target:self];
[menu addItem:[NSMenuItem separatorItem]];
}
[menu addItemWithTitle:NSLocalizedString(@"New Folder", @"Menu item
title") action:@selector(insertBookmarkFolder:) target:self];
Modified: trunk/de.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/en.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/es.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/fr.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/it.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/ja.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/nl.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/pl.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/ru.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/zh_CN.lproj/Localizable.strings
===================================================================
(Binary files differ)
Modified: trunk/zh_TW.lproj/Localizable.strings
===================================================================
(Binary files differ)
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