Revision: 29272
http://sourceforge.net/p/bibdesk/svn/29272
Author: hofman
Date: 2025-06-25 22:28:57 +0000 (Wed, 25 Jun 2025)
Log Message:
-----------
separate methods to open last open files and default file, open last open files
after relaunch separately in applicationDidFinishLaunching
Modified Paths:
--------------
trunk/bibdesk/BDSKAppController.h
trunk/bibdesk/BDSKAppController.m
Modified: trunk/bibdesk/BDSKAppController.h
===================================================================
--- trunk/bibdesk/BDSKAppController.h 2025-06-25 14:48:22 UTC (rev 29271)
+++ trunk/bibdesk/BDSKAppController.h 2025-06-25 22:28:57 UTC (rev 29272)
@@ -49,7 +49,6 @@
IBOutlet NSMenu *bookmarksMenu;
IBOutlet NSMenu *historyMenu;
IBOutlet NSMenu *shareMenu;
- BOOL didReopen;
}
- (IBAction)visitWebSite:(nullable id)sender;
Modified: trunk/bibdesk/BDSKAppController.m
===================================================================
--- trunk/bibdesk/BDSKAppController.m 2025-06-25 14:48:22 UTC (rev 29271)
+++ trunk/bibdesk/BDSKAppController.m 2025-06-25 22:28:57 UTC (rev 29272)
@@ -284,12 +284,24 @@
#pragma clang diagnostic pop
}
+- (void)openDefaultFile {
+ NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+ NSURL *fileURL = [NSURL fileURLWithAliasData:[sud
objectForKey:BDSKDefaultBibFileAliasKey] bookmarkData:[sud
objectForKey:BDSKDefaultBibFileBookmarkKey]];
+ if (fileURL && NO == fileIsInTrash(fileURL))
+ [[NSDocumentController sharedDocumentController]
openDocumentWithContentsOfURL:fileURL display:YES
completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError
*error){}];
+}
+
+- (void)openLastOpenFiles {
+ NSArray *files = [[NSUserDefaults standardUserDefaults]
objectForKey:BDSKLastOpenFileNamesKey];
+ for (NSDictionary *dict in [files reverseObjectEnumerator]){
+ NSURL *fileURL = [NSURL fileURLWithAliasData:[dict
objectForKey:@"_BDAlias"] bookmarkData:[dict objectForKey:@"bookmark"]] ?:
[NSURL fileURLWithPath:[dict objectForKey:@"fileName"] isDirectory:NO];
+ if (fileURL && NO == fileIsInTrash(fileURL))
+ [[NSDocumentController sharedDocumentController]
openDocumentWithContentsOfURL:fileURL display:YES
completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError
*error){}];
+ }
+}
+
- (void)openFilesAtStartup {
- didReopen = YES;
- NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
- NSInteger option = [sud boolForKey:BDSKIsRelaunchKey] ?
BDSKStartupOpenLastOpenFiles : [sud integerForKey:BDSKStartupBehaviorKey];
- [sud removeObjectForKey:BDSKIsRelaunchKey];
- switch (option) {
+ switch ([[NSUserDefaults standardUserDefaults]
integerForKey:BDSKStartupBehaviorKey]) {
case BDSKStartupOpenUntitledFile:
[[NSDocumentController sharedDocumentController]
openUntitledDocumentAndDisplay:YES error:NULL];
break;
@@ -299,22 +311,10 @@
[[NSDocumentController sharedDocumentController] openDocument:nil];
break;
case BDSKStartupOpenDefaultFile:
- {
- NSURL *fileURL = [NSURL fileURLWithAliasData:[sud
objectForKey:BDSKDefaultBibFileAliasKey] bookmarkData:[sud
objectForKey:BDSKDefaultBibFileBookmarkKey]];
- if (fileURL && NO == fileIsInTrash(fileURL))
- [[NSDocumentController sharedDocumentController]
openDocumentWithContentsOfURL:fileURL display:YES
completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError
*error){}];
- }
+ [self openDefaultFile];
break;
case BDSKStartupOpenLastOpenFiles:
- {
- NSArray *files = [sud objectForKey:BDSKLastOpenFileNamesKey];
- NSURL *fileURL;
- for (NSDictionary *dict in [files reverseObjectEnumerator]){
- fileURL = [NSURL fileURLWithAliasData:[dict
objectForKey:@"_BDAlias"] bookmarkData:[dict objectForKey:@"bookmark"]] ?:
[NSURL fileURLWithPath:[dict objectForKey:@"fileName"] isDirectory:NO];
- if (fileURL && NO == fileIsInTrash(fileURL))
- [[NSDocumentController sharedDocumentController]
openDocumentWithContentsOfURL:fileURL display:YES
completionHandler:^(NSDocument *document, BOOL documentWasAlreadyOpen, NSError
*error){}];
- }
- }
+ [self openLastOpenFiles];
break;
default:
break;
@@ -362,14 +362,17 @@
// this registered the value transformers for radio buttons
[BDSKRadioTransformer class];
-
- if ([sud boolForKey:BDSKIsRelaunchKey])
- [self openFilesAtStartup];
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification{
- if (didReopen == NO && [[[aNotification userInfo]
objectForKey:NSApplicationLaunchIsDefaultLaunchKey] boolValue])
+ NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+
+ if ([sud boolForKey:BDSKIsRelaunchKey]) {
+ [sud removeObjectForKey:BDSKIsRelaunchKey];
+ [self openLastOpenFiles];
+ } else if ([[[aNotification userInfo]
objectForKey:NSApplicationLaunchIsDefaultLaunchKey] boolValue]) {
[self openFilesAtStartup];
+ }
// register our help book, so it's available for methods that don't
register this, e.g. the web group
[[NSHelpManager sharedHelpManager] registerBooksInBundle:[NSBundle
mainBundle]];
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit