Revision: 4436
http://skim-app.svn.sourceforge.net/skim-app/?rev=4436&view=rev
Author: hofman
Date: 2008-08-20 22:13:33 +0000 (Wed, 20 Aug 2008)
Log Message:
-----------
Add method to open document with setup info to document controller so we don't
need to repeat it.
Modified Paths:
--------------
trunk/SKApplicationController.h
trunk/SKApplicationController.m
trunk/SKBookmarkController.m
trunk/SKDocumentController.h
trunk/SKDocumentController.m
Modified: trunk/SKApplicationController.h
===================================================================
--- trunk/SKApplicationController.h 2008-08-20 16:43:03 UTC (rev 4435)
+++ trunk/SKApplicationController.h 2008-08-20 22:13:33 UTC (rev 4436)
@@ -40,9 +40,6 @@
@class SUUpdater, SKLine, SKDownloadController;
-extern NSString *SKDocumentSetupAliasKey;
-extern NSString *SKDocumentSetupFileNameKey;
-
@class RemoteControl;
@interface SKApplicationController : NSObject {
Modified: trunk/SKApplicationController.m
===================================================================
--- trunk/SKApplicationController.m 2008-08-20 16:43:03 UTC (rev 4435)
+++ trunk/SKApplicationController.m 2008-08-20 22:13:33 UTC (rev 4436)
@@ -84,9 +84,6 @@
#define VIEW_MENU_INDEX 4
#define BOOKMARKS_MENU_INDEX 8
-NSString *SKDocumentSetupAliasKey = @"_BDAlias";
-NSString *SKDocumentSetupFileNameKey = @"fileName";
-
static NSString *SKCurrentDocumentSetupKey = @"currentDocumentSetup";
static NSString *SKSpotlightVersionInfoKey = @"SKSpotlightVersionInfo";
@@ -153,24 +150,12 @@
NSArray *files = [[NSUserDefaults standardUserDefaults]
objectForKey:SKLastOpenFileNamesKey];
NSEnumerator *fileEnum = [files objectEnumerator];
NSDictionary *dict;
- NSURL *fileURL = nil;
- SKPDFDocument *document;
NSError *error;
- while (dict = [fileEnum nextObject]){
- fileURL = [[BDAlias aliasWithData:[dict
objectForKey:SKDocumentSetupAliasKey]] fileURL];
- if(fileURL == nil && [dict
objectForKey:SKDocumentSetupFileNameKey])
- fileURL = [NSURL fileURLWithPath:[dict
objectForKey:SKDocumentSetupFileNameKey]];
- if(fileURL && NO == SKFileIsInTrash(fileURL)) {
- if (document = [[NSDocumentController
sharedDocumentController] openDocumentWithContentsOfURL:fileURL display:NO
error:&error]) {
- [document makeWindowControllers];
- if ([document
respondsToSelector:@selector(mainWindowController)])
- [[document mainWindowController] setInitialSetup:dict];
- [document showWindows];
- } else {
- [NSApp presentError:error];
- }
- }
+ while (dict = [fileEnum nextObject]) {
+ error = nil;
+ if (nil == [[NSDocumentController sharedDocumentController]
openDocumentWithSetup:dict error:&error] && error)
+ [NSApp presentError:error];
}
}
Modified: trunk/SKBookmarkController.m
===================================================================
--- trunk/SKBookmarkController.m 2008-08-20 16:43:03 UTC (rev 4435)
+++ trunk/SKBookmarkController.m 2008-08-20 22:13:33 UTC (rev 4436)
@@ -51,6 +51,7 @@
#import "NSImage_SKExtensions.h"
#import "SKStringConstants.h"
#import "SKRuntime.h"
+#import "SKDocumentController.h"
static NSString *SKBookmarkRowsPboardType = @"SKBookmarkRowsPboardType";
@@ -367,26 +368,18 @@
- (void)openBookmark:(SKBookmark *)bookmark {
id document = nil;
- NSString *path = [bookmark path];
- NSURL *fileURL = path ? [NSURL fileURLWithPath:path] : nil;
- NSError *error;
-
- if (fileURL && NO == SKFileIsInTrash(fileURL)) {
- NSDictionary *dict = [bookmark properties];
- BOOL display = [dict objectForKey:@"windowFrame"] == nil;
- if (document = [[NSDocumentController sharedDocumentController]
openDocumentWithContentsOfURL:fileURL display:display error:&error]) {
- if (display) {
- [[document mainWindowController] setPageNumber:[bookmark
pageIndex] + 1];
- } else {
- [document makeWindowControllers];
- if ([document
respondsToSelector:@selector(mainWindowController)])
- [[document mainWindowController] setInitialSetup:dict];
- [document showWindows];
- }
- } else {
- [NSApp presentError:error];
- }
+ NSError *error = nil;
+ NSDictionary *dict = [bookmark properties];
+ if ([dict objectForKey:@"windowFrame"]) {
+ document = [[NSDocumentController sharedDocumentController]
openDocumentWithSetup:dict error:&error];
+ } else {
+ NSString *path = [bookmark path];
+ NSURL *fileURL = path ? [NSURL fileURLWithPath:path] : nil;
+ if (fileURL && NO == SKFileIsInTrash(fileURL))
+ document = [[NSDocumentController sharedDocumentController]
openDocumentWithContentsOfURL:fileURL display:YES error:&error];
}
+ if (document == nil && error)
+ [NSApp presentError:error];
}
- (void)openBookmarks:(NSArray *)items {
Modified: trunk/SKDocumentController.h
===================================================================
--- trunk/SKDocumentController.h 2008-08-20 16:43:03 UTC (rev 4435)
+++ trunk/SKDocumentController.h 2008-08-20 22:13:33 UTC (rev 4436)
@@ -66,6 +66,9 @@
extern NSString *SKPostScriptDocumentType;
extern NSString *SKDVIDocumentType;
+extern NSString *SKDocumentSetupAliasKey;
+extern NSString *SKDocumentSetupFileNameKey;
+
@interface SKDocumentController : NSDocumentController {
NSArray *customExportTemplateFiles;
}
@@ -74,6 +77,7 @@
- (id)openDocumentWithContentsOfPasteboard:(NSPasteboard *)pboard
error:(NSError **)outError;
- (id)openDocumentWithImageFromPasteboard:(NSPasteboard *)pboard
error:(NSError **)outError;
- (id)openDocumentWithURLFromPasteboard:(NSPasteboard *)pboard error:(NSError
**)outError;
+- (id)openDocumentWithSetup:(NSDictionary *)setup error:(NSError **)outError;
- (void)resetCustomExportTemplateFiles;
- (NSArray *)customExportTemplateFiles;
Modified: trunk/SKDocumentController.m
===================================================================
--- trunk/SKDocumentController.m 2008-08-20 16:43:03 UTC (rev 4435)
+++ trunk/SKDocumentController.m 2008-08-20 22:13:33 UTC (rev 4436)
@@ -45,6 +45,9 @@
#import "SKStringConstants.h"
#import "SKRuntime.h"
#import "SKApplicationController.h"
+#import "Files_SKExtensions.h"
+#import "BDAlias.h"
+#import "SKMainWindowController.h"
static NSString *SKAutosaveIntervalKey = @"SKAutosaveInterval";
@@ -154,6 +157,10 @@
return SKPDFDocumentType;
}
+
+NSString *SKDocumentSetupAliasKey = @"_BDAlias";
+NSString *SKDocumentSetupFileNameKey = @"fileName";
+
@implementation SKDocumentController
+ (void)initialize {
@@ -349,6 +356,25 @@
[NSApp presentError:error];
}
+- (id)openDocumentWithSetup:(NSDictionary *)setup error:(NSError **)outError {
+ id document = nil;
+ NSError *error = nil;
+ NSURL *fileURL = [[BDAlias aliasWithData:[setup
objectForKey:SKDocumentSetupAliasKey]] fileURL];
+ if(fileURL == nil && [setup objectForKey:SKDocumentSetupFileNameKey])
+ fileURL = [NSURL fileURLWithPath:[setup
objectForKey:SKDocumentSetupFileNameKey]];
+ if(fileURL && NO == SKFileIsInTrash(fileURL)) {
+ if (document = [[NSDocumentController sharedDocumentController]
openDocumentWithContentsOfURL:fileURL display:NO error:&error]) {
+ [document makeWindowControllers];
+ if ([document respondsToSelector:@selector(mainWindowController)])
+ [[document mainWindowController] setInitialSetup:setup];
+ [document showWindows];
+ } else if (outError) {
+ *outError = error;
+ }
+ }
+ return document;
+}
+
- (id)openDocumentWithContentsOfURL:(NSURL *)absoluteURL
display:(BOOL)displayDocument error:(NSError **)outError {
NSString *type = [self typeForContentsOfURL:absoluteURL error:NULL];
if (SKIsNotesDocumentType(type)) {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit