From: <ho...@us...> - 2008-07-19 18:55:11
|
Revision: 13534 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13534&view=rev Author: hofman Date: 2008-07-19 18:42:20 +0000 (Sat, 19 Jul 2008) Log Message: ----------- Make BDSKShellTask class private and move the API to an NSTask category Modified Paths: -------------- trunk/bibdesk/BDSKController.m trunk/bibdesk/BDSKDocumentController.m trunk/bibdesk/BDSKLogUtilities.m trunk/bibdesk/BDSKScriptGroup.m trunk/bibdesk/BDSKTemplateObjectProxy.m trunk/bibdesk/BibDocument.m trunk/bibdesk/BibDocument_Actions.m trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj Added Paths: ----------- trunk/bibdesk/NSTask_BDSKExtensions.h trunk/bibdesk/NSTask_BDSKExtensions.m Removed Paths: ------------- trunk/bibdesk/BDSKShellTask.h trunk/bibdesk/BDSKShellTask.m Modified: trunk/bibdesk/BDSKController.m =================================================================== --- trunk/bibdesk/BDSKController.m 2008-07-19 05:45:55 UTC (rev 13533) +++ trunk/bibdesk/BDSKController.m 2008-07-19 18:42:20 UTC (rev 13534) @@ -39,7 +39,7 @@ #import "BDSKController.h" #import <ExceptionHandling/NSExceptionHandler.h> #import "BDSKReadMeController.h" -#import "BDSKShellTask.h" +#import "NSTask_BDSKExtensions.h" #import "BDSKLogUtilities.h" #import <unistd.h> @@ -120,7 +120,7 @@ // Note: function addresses are separated by double spaces, not a single space. @try { - stack = [BDSKShellTask executeBinary:@"/usr/bin/atos" inDirectory:nil withArguments:args environment:nil inputString:nil]; + stack = [NSTask executeBinary:@"/usr/bin/atos" inDirectory:nil withArguments:args environment:nil inputString:nil]; } @catch (id exception) { NSLog(@"caught %@ while getting stack trace from %@", exception, self); Modified: trunk/bibdesk/BDSKDocumentController.m =================================================================== --- trunk/bibdesk/BDSKDocumentController.m 2008-07-19 05:45:55 UTC (rev 13533) +++ trunk/bibdesk/BDSKDocumentController.m 2008-07-19 18:42:20 UTC (rev 13534) @@ -43,7 +43,7 @@ #import "BibDocument.h" #import "BibDocument_Groups.h" #import "BibDocument_Search.h" -#import "BDSKShellTask.h" +#import "NSTask_BDSKExtensions.h" #import "NSArray_BDSKExtensions.h" #import "BDAlias.h" #import "NSWorkspace_BDSKExtensions.h" @@ -357,7 +357,7 @@ if (nil == fileInputString){ [self presentError:error]; } else { - NSString *filterOutput = [BDSKShellTask runShellCommand:shellCommand withInputString:fileInputString]; + NSString *filterOutput = [NSTask runShellCommand:shellCommand withInputString:fileInputString]; if ([NSString isEmptyString:filterOutput]){ NSAlert *alert = [NSAlert alertWithMessageText:NSLocalizedString(@"Unable To Open With Filter", @"Message in alert dialog when unable to open a document with filter") Modified: trunk/bibdesk/BDSKLogUtilities.m =================================================================== --- trunk/bibdesk/BDSKLogUtilities.m 2008-07-19 05:45:55 UTC (rev 13533) +++ trunk/bibdesk/BDSKLogUtilities.m 2008-07-19 18:42:20 UTC (rev 13534) @@ -37,7 +37,7 @@ */ #import "BDSKLogUtilities.h" -#import "BDSKShellTask.h" +#import "NSTask_BDSKExtensions.h" #import <unistd.h> #import <asl.h> #import <libkern/OSAtomic.h> @@ -65,7 +65,7 @@ NSString *logString = nil; @try{ - logString = [BDSKShellTask executeBinary:@"/usr/bin/syslog" inDirectory:nil withArguments:args environment:nil inputString:nil]; + logString = [NSTask executeBinary:@"/usr/bin/syslog" inDirectory:nil withArguments:args environment:nil inputString:nil]; } @catch(id exception){ logString = [NSString stringWithFormat:@"Caught exception \"%@\" when attempting to run /usr/bin/syslog.", exception]; Modified: trunk/bibdesk/BDSKScriptGroup.m =================================================================== --- trunk/bibdesk/BDSKScriptGroup.m 2008-07-19 05:45:55 UTC (rev 13533) +++ trunk/bibdesk/BDSKScriptGroup.m 2008-07-19 18:42:20 UTC (rev 13534) @@ -38,7 +38,6 @@ #import "BDSKScriptGroup.h" #import "BDSKOwnerProtocol.h" -#import "BDSKShellTask.h" #import "KFAppleScriptHandlerAdditionsCore.h" #import "KFASHandlerAdditions-TypeTranslation.h" #import "BDSKBibTeXParser.h" Deleted: trunk/bibdesk/BDSKShellTask.h =================================================================== --- trunk/bibdesk/BDSKShellTask.h 2008-07-19 05:45:55 UTC (rev 13533) +++ trunk/bibdesk/BDSKShellTask.h 2008-07-19 18:42:20 UTC (rev 13534) @@ -1,49 +0,0 @@ -// -// BDSKShellTask.h -// BibDesk -// -// Created by Michael McCracken on Sat Dec 14 2002. -/* - This software is Copyright (c) 2002-2008 - Michael O. McCracken. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Michael O. McCracken nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <Foundation/Foundation.h> -#import <sys/stat.h> - -@interface BDSKShellTask : NSObject { - // data used to store stdOut from the filter - NSMutableData *stdoutData; -} -+ (NSString *)runShellCommand:(NSString *)cmd withInputString:(NSString *)input; -+ (NSData *)runRawShellCommand:(NSString *)cmd withInputString:(NSString *)input; -+ (NSString *)executeBinary:(NSString *)executablePath inDirectory:(NSString *)currentDirPath withArguments:(NSArray *)args environment:(NSDictionary *)env inputString:(NSString *)input; -@end Deleted: trunk/bibdesk/BDSKShellTask.m =================================================================== --- trunk/bibdesk/BDSKShellTask.m 2008-07-19 05:45:55 UTC (rev 13533) +++ trunk/bibdesk/BDSKShellTask.m 2008-07-19 18:42:20 UTC (rev 13534) @@ -1,244 +0,0 @@ -// -// BDSKShellTask.m -// BibDesk -// -// Created by Michael McCracken on Sat Dec 14 2002. -/* - This software is Copyright (c) 2002-2008 - Michael O. McCracken. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Michael O. McCracken nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "BDSKShellTask.h" -#import "BDSKAppController.h" -#import "NSFileManager_BDSKExtensions.h" - -volatile int caughtSignal = 0; - -@interface BDSKShellTask (Private) -// Note: the returned data is not autoreleased -- (NSData *)privateRunShellCommand:(NSString *)cmd withInputString:(NSString *)input; -- (NSData *)privateExecuteBinary:(NSString *)executablePath inDirectory:(NSString *)currentDirPath withArguments:(NSArray *)args environment:(NSDictionary *)env inputString:(NSString *)input; -- (void)stdoutNowAvailable:(NSNotification *)notification; -@end - - -@implementation BDSKShellTask - -+ (NSString *)runShellCommand:(NSString *)cmd withInputString:(NSString *)input{ - BDSKShellTask *shellTask = [[self alloc] init]; - NSString *output = nil; - NSData *outputData = [shellTask privateRunShellCommand:cmd withInputString:input]; - if(outputData){ - output = [[NSString allocWithZone:[self zone]] initWithData:outputData encoding:NSUTF8StringEncoding]; - if(!output) - output = [[NSString allocWithZone:[self zone]] initWithData:outputData encoding:NSASCIIStringEncoding]; - if(!output) - output = [[NSString allocWithZone:[self zone]] initWithData:outputData encoding:[NSString defaultCStringEncoding]]; - } - [shellTask release]; - return [output autorelease]; -} - -+ (NSData *)runRawShellCommand:(NSString *)cmd withInputString:(NSString *)input{ - BDSKShellTask *shellTask = [[self alloc] init]; - NSData *output = [[shellTask privateRunShellCommand:cmd withInputString:input] retain]; - [shellTask release]; - return [output autorelease]; -} - -+ (NSString *)executeBinary:(NSString *)executablePath inDirectory:(NSString *)currentDirPath withArguments:(NSArray *)args environment:(NSDictionary *)env inputString:(NSString *)input{ - BDSKShellTask *shellTask = [[self alloc] init]; - NSString *output = nil; - NSData *outputData = [shellTask privateExecuteBinary:executablePath inDirectory:currentDirPath withArguments:args environment:env inputString:input]; - if(outputData){ - output = [[NSString allocWithZone:[self zone]] initWithData:outputData encoding:NSUTF8StringEncoding]; - if(!output) - output = [[NSString allocWithZone:[self zone]] initWithData:outputData encoding:NSASCIIStringEncoding]; - if(!output) - output = [[NSString allocWithZone:[self zone]] initWithData:outputData encoding:[NSString defaultCStringEncoding]]; - } - [shellTask release]; - return [output autorelease]; -} - -- (id)init{ - self = [super init]; - if(self) - stdoutData = [[NSMutableData alloc] init]; - return self; -} - -- (void)dealloc{ - [stdoutData release]; - [super dealloc]; -} - -@end - - -@implementation BDSKShellTask (Private) - -// -// The following three methods are borrowed from Mike Ferris' TextExtras. -// For the real versions of them, check out http://www.lorax.com/FreeStuff/TextExtras.html -// - mmcc - -// was runWithInputString in TextExtras' TEPipeCommand class. -- (NSData *)privateRunShellCommand:(NSString *)cmd withInputString:(NSString *)input{ - NSFileManager *fm = [NSFileManager defaultManager]; - NSString *shellPath = @"/bin/sh"; - NSString *shellScriptPath = [[NSFileManager defaultManager] temporaryFileWithBasename:@"shellscript"]; - NSString *script; - NSData *scriptData; - NSMutableDictionary *currentAttributes; - unsigned long currentMode; - NSData *output = nil; - - // ---------- Check the shell and create the script ---------- - if (![fm isExecutableFileAtPath:shellPath]) { - NSLog(@"Filter Pipes: Shell path for Pipe panel does not exist or is not executable. (%@)", shellPath); - return nil; - } - if (!cmd){ - return nil; - } - script = [NSString stringWithFormat:@"#!%@\n\n%@\n", shellPath, cmd]; - // Use UTF8... and write out the shell script and make it exectuable - scriptData = [script dataUsingEncoding:NSUTF8StringEncoding]; - if (![scriptData writeToFile:shellScriptPath atomically:YES]) { - NSLog(@"Filter Pipes: Failed to write temporary script file. (%@)", shellScriptPath); - return nil; - } - currentAttributes = [[[fm fileAttributesAtPath:shellScriptPath traverseLink:NO] mutableCopyWithZone:[self zone]] autorelease]; - if (!currentAttributes) { - NSLog(@"Filter Pipes: Failed to get attributes of temporary script file. (%@)", shellScriptPath); - return nil; - } - currentMode = [currentAttributes filePosixPermissions]; - currentMode |= S_IRWXU; - [currentAttributes setObject:[NSNumber numberWithUnsignedLong:currentMode] forKey:NSFilePosixPermissions]; - if (![fm changeFileAttributes:currentAttributes atPath:shellScriptPath]) { - NSLog(@"Filter Pipes: Failed to get attributes of temporary script file. (%@)", shellScriptPath); - return nil; - } - - // ---------- Execute the script ---------- - - // MF:!!! The current working dir isn't too appropriate - output = [self privateExecuteBinary:shellScriptPath inDirectory:[shellScriptPath stringByDeletingLastPathComponent] withArguments:nil environment:nil inputString:input]; - - // ---------- Remove the script file ---------- - if (![fm removeFileAtPath:shellScriptPath handler:nil]) { - NSLog(@"Filter Pipes: Failed to delete temporary script file. (%@)", shellScriptPath); - } - - return output; -} - -// This method and the little notification method following implement synchronously running a task with input piped in from a string and output piped back out and returned as a string. They require only a stdoutData instance variable to function. -- (NSData *)privateExecuteBinary:(NSString *)executablePath inDirectory:(NSString *)currentDirPath withArguments:(NSArray *)args environment:(NSDictionary *)env inputString:(NSString *)input { - NSTask *task; - NSPipe *inputPipe; - NSPipe *outputPipe; - NSFileHandle *inputFileHandle; - NSFileHandle *outputFileHandle; - - task = [[NSTask allocWithZone:[self zone]] init]; - [task setLaunchPath:executablePath]; - if (currentDirPath) { - [task setCurrentDirectoryPath:currentDirPath]; - } - if (args) { - [task setArguments:args]; - } - if (env) { - [task setEnvironment:env]; - } - - [task setStandardError:[NSFileHandle fileHandleWithStandardError]]; - inputPipe = [NSPipe pipe]; - inputFileHandle = [inputPipe fileHandleForWriting]; - [task setStandardInput:inputPipe]; - outputPipe = [NSPipe pipe]; - outputFileHandle = [outputPipe fileHandleForReading]; - [task setStandardOutput:outputPipe]; - - // ignore SIGPIPE, as it causes a crash (seems to happen if the binaries don't exist and you try writing to the pipe) - signal(SIGPIPE, SIG_IGN); - - NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; - - @try{ - - [nc addObserver:self selector:@selector(stdoutNowAvailable:) name:NSFileHandleReadCompletionNotification object:outputFileHandle]; - [outputFileHandle readInBackgroundAndNotify]; - - [task launch]; - - if ([task isRunning]) { - - // run the runloop and pick up our notifications - [task waitUntilExit]; - - [nc removeObserver:self name:NSFileHandleReadCompletionNotification object:outputFileHandle]; - - // get leftover data, since the background method won't get the last read - NSData *remainingData = [outputFileHandle availableData]; - if ([remainingData length]) - [stdoutData appendData:remainingData]; - - } else { - NSLog(@"Failed to launch task at \"%@\" or it exited without accepting input. Termination status was %d", executablePath, [task terminationStatus]); - } - } - @catch(id exception){ - // if the pipe failed, we catch an exception here and ignore it - NSLog(@"exception %@ encountered while trying to launch task %@", exception, executablePath); - [nc removeObserver:self name:NSFileHandleReadCompletionNotification object:outputFileHandle]; - } - - // reset signal handling to default behavior - signal(SIGPIPE, SIG_DFL); - [task release]; - - return [stdoutData length] ? stdoutData : nil; -} - -- (void)stdoutNowAvailable:(NSNotification *)notification { - NSData *outputData = [[notification userInfo] objectForKey:NSFileHandleNotificationDataItem]; - if ([outputData length]) { - [stdoutData appendData:outputData]; - } - [[notification object] readInBackgroundAndNotify]; -} - - -@end Modified: trunk/bibdesk/BDSKTemplateObjectProxy.m =================================================================== --- trunk/bibdesk/BDSKTemplateObjectProxy.m 2008-07-19 05:45:55 UTC (rev 13533) +++ trunk/bibdesk/BDSKTemplateObjectProxy.m 2008-07-19 18:42:20 UTC (rev 13534) @@ -39,7 +39,7 @@ #import "BDSKTemplateObjectProxy.h" #import "BDSKTemplate.h" #import "BibItem.h" -#import "BDSKShellTask.h" +#import "NSTask_BDSKExtensions.h" @implementation BDSKTemplateObjectProxy @@ -51,7 +51,7 @@ string = [BDSKTemplateParser stringByParsingTemplate:string usingObject:objectProxy delegate:objectProxy]; [objectProxy release]; if(scriptPath) - string = [BDSKShellTask runShellCommand:scriptPath withInputString:string]; + string = [NSTask runShellCommand:scriptPath withInputString:string]; return string; } @@ -88,7 +88,7 @@ BDSKTemplateObjectProxy *objectProxy = [[self alloc] initWithObject:anObject publications:items template:template]; string = [BDSKTemplateParser stringByParsingTemplate:string usingObject:objectProxy delegate:objectProxy]; [objectProxy release]; - return [BDSKShellTask runRawShellCommand:scriptPath withInputString:string]; + return [NSTask runRawShellCommand:scriptPath withInputString:string]; } - (id)initWithObject:(id)anObject publications:(NSArray *)items template:(BDSKTemplate *)aTemplate { Modified: trunk/bibdesk/BibDocument.m =================================================================== --- trunk/bibdesk/BibDocument.m 2008-07-19 05:45:55 UTC (rev 13533) +++ trunk/bibdesk/BibDocument.m 2008-07-19 18:42:20 UTC (rev 13534) @@ -107,7 +107,6 @@ #import "NSWindowController_BDSKExtensions.h" #import "NSData_BDSKExtensions.h" #import "NSURL_BDSKExtensions.h" -#import "BDSKShellTask.h" #import "NSError_BDSKExtensions.h" #import "BDSKColoredBox.h" #import "BDSKCustomCiteDrawerController.h" Modified: trunk/bibdesk/BibDocument_Actions.m =================================================================== --- trunk/bibdesk/BibDocument_Actions.m 2008-07-19 05:45:55 UTC (rev 13533) +++ trunk/bibdesk/BibDocument_Actions.m 2008-07-19 18:42:20 UTC (rev 13534) @@ -73,7 +73,7 @@ #import "BDSKMainTableView.h" #import "BDSKGroupTableView.h" #import "BDSKSplitView.h" -#import "BDSKShellTask.h" +#import "NSTask_BDSKExtensions.h" #import "BDSKColoredBox.h" #import "BDSKStringParser.h" #import "BDSKZoomablePDFView.h" @@ -545,7 +545,7 @@ NSString *lyxCmd = [NSString stringWithFormat:@"echo LYXCMD:BibDesk:citation-insert:%@ > \"%@\"", cites, lyxPipePath]; - [BDSKShellTask runShellCommand:lyxCmd withInputString:nil]; + [NSTask runShellCommand:lyxCmd withInputString:nil]; } - (IBAction)postItemToWeblog:(id)sender{ Modified: trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj =================================================================== --- trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2008-07-19 05:45:55 UTC (rev 13533) +++ trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2008-07-19 18:42:20 UTC (rev 13534) @@ -336,7 +336,7 @@ F9022C500758027800C3F701 /* BDSKFieldNameFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F9022C450758027800C3F701 /* BDSKFieldNameFormatter.m */; }; F9022C520758027800C3F701 /* BDSKComplexStringFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F9022C490758027800C3F701 /* BDSKComplexStringFormatter.m */; }; F9022C79075802E300C3F701 /* BDSKPreviewer.m in Sources */ = {isa = PBXBuildFile; fileRef = F9022C58075802E300C3F701 /* BDSKPreviewer.m */; }; - F9022C7A075802E300C3F701 /* BDSKShellTask.m in Sources */ = {isa = PBXBuildFile; fileRef = F9022C5A075802E300C3F701 /* BDSKShellTask.m */; }; + F9022C7A075802E300C3F701 /* NSTask_BDSKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = F9022C5A075802E300C3F701 /* NSTask_BDSKExtensions.m */; }; F9022C7C075802E300C3F701 /* BDSKAppController.m in Sources */ = {isa = PBXBuildFile; fileRef = F9022C5E075802E300C3F701 /* BDSKAppController.m */; }; F9022C7D075802E300C3F701 /* BibAuthor.m in Sources */ = {isa = PBXBuildFile; fileRef = F9022C60075802E300C3F701 /* BibAuthor.m */; }; F9022C7E075802E300C3F701 /* BDSKOpenCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F9022C62075802E300C3F701 /* BDSKOpenCommand.m */; }; @@ -1307,8 +1307,8 @@ F9022C490758027800C3F701 /* BDSKComplexStringFormatter.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = BDSKComplexStringFormatter.m; sourceTree = "<group>"; }; F9022C57075802E300C3F701 /* BDSKPreviewer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BDSKPreviewer.h; sourceTree = "<group>"; }; F9022C58075802E300C3F701 /* BDSKPreviewer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = BDSKPreviewer.m; sourceTree = "<group>"; }; - F9022C59075802E300C3F701 /* BDSKShellTask.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BDSKShellTask.h; sourceTree = "<group>"; }; - F9022C5A075802E300C3F701 /* BDSKShellTask.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = BDSKShellTask.m; sourceTree = "<group>"; }; + F9022C59075802E300C3F701 /* NSTask_BDSKExtensions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NSTask_BDSKExtensions.h; sourceTree = "<group>"; }; + F9022C5A075802E300C3F701 /* NSTask_BDSKExtensions.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = NSTask_BDSKExtensions.m; sourceTree = "<group>"; }; F9022C5D075802E300C3F701 /* BDSKAppController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BDSKAppController.h; sourceTree = "<group>"; }; F9022C5E075802E300C3F701 /* BDSKAppController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = BDSKAppController.m; sourceTree = "<group>"; }; F9022C5F075802E300C3F701 /* BibAuthor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BibAuthor.h; sourceTree = "<group>"; }; @@ -2145,6 +2145,7 @@ CE117D220D7047A4005BFCEB /* NSScriptClassDescription_BDSKExtensions.m */, F9022C9F0758038000C3F701 /* NSString_BDSKExtensions.m */, F9463F4409436F7500CC4549 /* NSSet_BDSKExtensions.m */, + F9022C5A075802E300C3F701 /* NSTask_BDSKExtensions.m */, F97AF8EE09575E8B00D1F1B0 /* NSURL_BDSKExtensions.m */, F90261AC096A0EF5008A551C /* OFCharacterSet_BDSKExtensions.m */, ); @@ -2318,7 +2319,6 @@ CE601A4D0AF4C488000B5680 /* BDSKReferenceMinerParser.m */, CE600E2E0AF405D6000B5680 /* BDSKRISParser.m */, F90C4ACC0C7395FB0035DD50 /* BDSKSciFinderParser.m */, - F9022C5A075802E300C3F701 /* BDSKShellTask.m */, CE0ECDA90DE78619006EEDDB /* BDSKSpiresParser.m */, CE602A5F0AF65A9C000B5680 /* BDSKStringParser.m */, CE325FCC0A1A74E9002D6E4C /* BDSKTemplateParser.m */, @@ -2640,7 +2640,6 @@ F92ED7CA09E0A93400A244D0 /* BDSKSharingServer.h */, CEBA3F450A73CCAF00588BB7 /* BDSKSheetController.h */, F90C64040AC62B7B008B2DDA /* BDSKShellCommandFormatter.h */, - F9022C59075802E300C3F701 /* BDSKShellTask.h */, F92BACCC0BCBFEE0008D5BC3 /* BDSKSkimReader.h */, CEFDBDBB0AEA86BA009EE99D /* BDSKSmartGroup.h */, CE83E3A30D294EE300BB7AD8 /* BDSKSortCommand.h */, @@ -2746,6 +2745,7 @@ F9022C9E0758038000C3F701 /* NSString_BDSKExtensions.h */, CE969E310931E4F500EE3DFD /* NSTableHeaderView_BDSKExtensions.h */, CE77A7FB0923BEBA0019D901 /* NSTableView_BDSKExtensions.h */, + F9022C59075802E300C3F701 /* NSTask_BDSKExtensions.h */, F9022CA00758038000C3F701 /* NSTextView_BDSKExtensions.h */, F97AF8ED09575E8B00D1F1B0 /* NSURL_BDSKExtensions.h */, CE4376F40D24341E00C993CF /* NSViewAnimation_BDSKExtensions.h */, @@ -3630,7 +3630,7 @@ F9022C500758027800C3F701 /* BDSKFieldNameFormatter.m in Sources */, F9022C520758027800C3F701 /* BDSKComplexStringFormatter.m in Sources */, F9022C79075802E300C3F701 /* BDSKPreviewer.m in Sources */, - F9022C7A075802E300C3F701 /* BDSKShellTask.m in Sources */, + F9022C7A075802E300C3F701 /* NSTask_BDSKExtensions.m in Sources */, F9022C7C075802E300C3F701 /* BDSKAppController.m in Sources */, F9022C7D075802E300C3F701 /* BibAuthor.m in Sources */, F9022C7E075802E300C3F701 /* BDSKOpenCommand.m in Sources */, Copied: trunk/bibdesk/NSTask_BDSKExtensions.h (from rev 13533, trunk/bibdesk/BDSKShellTask.h) =================================================================== --- trunk/bibdesk/NSTask_BDSKExtensions.h (rev 0) +++ trunk/bibdesk/NSTask_BDSKExtensions.h 2008-07-19 18:42:20 UTC (rev 13534) @@ -0,0 +1,45 @@ +// +// NSTask_BDSKExtensions.h +// BibDesk +// +// Created by Michael McCracken on Sat Dec 14 2002. +/* + This software is Copyright (c) 2002-2008 + Michael O. McCracken. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + - Neither the name of Michael O. McCracken nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#import <Foundation/Foundation.h> + +@interface NSTask (BDSKExtensions) ++ (NSString *)runShellCommand:(NSString *)cmd withInputString:(NSString *)input; ++ (NSData *)runRawShellCommand:(NSString *)cmd withInputString:(NSString *)input; ++ (NSString *)executeBinary:(NSString *)executablePath inDirectory:(NSString *)currentDirPath withArguments:(NSArray *)args environment:(NSDictionary *)env inputString:(NSString *)input; +@end Copied: trunk/bibdesk/NSTask_BDSKExtensions.m (from rev 13533, trunk/bibdesk/BDSKShellTask.m) =================================================================== --- trunk/bibdesk/NSTask_BDSKExtensions.m (rev 0) +++ trunk/bibdesk/NSTask_BDSKExtensions.m 2008-07-19 18:42:20 UTC (rev 13534) @@ -0,0 +1,248 @@ +// +// BDSKShellTask.m +// BibDesk +// +// Created by Michael McCracken on Sat Dec 14 2002. +/* + This software is Copyright (c) 2002-2008 + Michael O. McCracken. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + - Neither the name of Michael O. McCracken nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#import "NSTask_BDSKExtensions.h" +#import "BDSKAppController.h" +#import "NSFileManager_BDSKExtensions.h" +#import <sys/stat.h> + +volatile int caughtSignal = 0; + +@interface BDSKShellTask : NSObject { + NSTask *task; + // data used to store stdOut from the filter + NSMutableData *stdoutData; +} +// Note: the returned data is not autoreleased +- (NSData *)runShellCommand:(NSString *)cmd withInputString:(NSString *)input; +- (NSData *)executeBinary:(NSString *)executablePath inDirectory:(NSString *)currentDirPath withArguments:(NSArray *)args environment:(NSDictionary *)env inputString:(NSString *)input; +- (void)stdoutNowAvailable:(NSNotification *)notification; +@end + + +@implementation NSTask (BDSKExtensions) + ++ (NSString *)runShellCommand:(NSString *)cmd withInputString:(NSString *)input{ + BDSKShellTask *shellTask = [[BDSKShellTask alloc] init]; + NSString *output = nil; + NSData *outputData = [shellTask runShellCommand:cmd withInputString:input]; + if(outputData){ + output = [[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding]; + if(!output) + output = [[NSString alloc] initWithData:outputData encoding:NSASCIIStringEncoding]; + if(!output) + output = [[NSString alloc] initWithData:outputData encoding:[NSString defaultCStringEncoding]]; + } + [shellTask release]; + return [output autorelease]; +} + ++ (NSData *)runRawShellCommand:(NSString *)cmd withInputString:(NSString *)input{ + BDSKShellTask *shellTask = [[BDSKShellTask alloc] init]; + NSData *output = [[shellTask runShellCommand:cmd withInputString:input] retain]; + [shellTask release]; + return [output autorelease]; +} + ++ (NSString *)executeBinary:(NSString *)executablePath inDirectory:(NSString *)currentDirPath withArguments:(NSArray *)args environment:(NSDictionary *)env inputString:(NSString *)input{ + BDSKShellTask *shellTask = [[BDSKShellTask alloc] init]; + NSString *output = nil; + NSData *outputData = [shellTask executeBinary:executablePath inDirectory:currentDirPath withArguments:args environment:env inputString:input]; + if(outputData){ + output = [[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding]; + if(!output) + output = [[NSString alloc] initWithData:outputData encoding:NSASCIIStringEncoding]; + if(!output) + output = [[NSString alloc] initWithData:outputData encoding:[NSString defaultCStringEncoding]]; + } + [shellTask release]; + return [output autorelease]; +} + +@end + + +@implementation BDSKShellTask + +- (id)init{ + if (self = [super init]) { + task = [[NSTask alloc] init]; + stdoutData = [[NSMutableData alloc] init]; + } + return self; +} + +- (void)dealloc{ + [task release]; + [stdoutData release]; + [super dealloc]; +} + +// +// The following three methods are borrowed from Mike Ferris' TextExtras. +// For the real versions of them, check out http://www.lorax.com/FreeStuff/TextExtras.html +// - mmcc + +// was runWithInputString in TextExtras' TEPipeCommand class. +- (NSData *)runShellCommand:(NSString *)cmd withInputString:(NSString *)input{ + NSFileManager *fm = [NSFileManager defaultManager]; + NSString *shellPath = @"/bin/sh"; + NSString *shellScriptPath = [[NSFileManager defaultManager] temporaryFileWithBasename:@"shellscript"]; + NSString *script; + NSData *scriptData; + NSMutableDictionary *currentAttributes; + unsigned long currentMode; + NSData *output = nil; + + // ---------- Check the shell and create the script ---------- + if (![fm isExecutableFileAtPath:shellPath]) { + NSLog(@"Filter Pipes: Shell path for Pipe panel does not exist or is not executable. (%@)", shellPath); + return nil; + } + if (!cmd){ + return nil; + } + script = [NSString stringWithFormat:@"#!%@\n\n%@\n", shellPath, cmd]; + // Use UTF8... and write out the shell script and make it exectuable + scriptData = [script dataUsingEncoding:NSUTF8StringEncoding]; + if (![scriptData writeToFile:shellScriptPath atomically:YES]) { + NSLog(@"Filter Pipes: Failed to write temporary script file. (%@)", shellScriptPath); + return nil; + } + currentAttributes = [[[fm fileAttributesAtPath:shellScriptPath traverseLink:NO] mutableCopyWithZone:[self zone]] autorelease]; + if (!currentAttributes) { + NSLog(@"Filter Pipes: Failed to get attributes of temporary script file. (%@)", shellScriptPath); + return nil; + } + currentMode = [currentAttributes filePosixPermissions]; + currentMode |= S_IRWXU; + [currentAttributes setObject:[NSNumber numberWithUnsignedLong:currentMode] forKey:NSFilePosixPermissions]; + if (![fm changeFileAttributes:currentAttributes atPath:shellScriptPath]) { + NSLog(@"Filter Pipes: Failed to get attributes of temporary script file. (%@)", shellScriptPath); + return nil; + } + + // ---------- Execute the script ---------- + + // MF:!!! The current working dir isn't too appropriate + output = [self executeBinary:shellScriptPath inDirectory:[shellScriptPath stringByDeletingLastPathComponent] withArguments:nil environment:nil inputString:input]; + + // ---------- Remove the script file ---------- + if (![fm removeFileAtPath:shellScriptPath handler:nil]) { + NSLog(@"Filter Pipes: Failed to delete temporary script file. (%@)", shellScriptPath); + } + + return output; +} + +// This method and the little notification method following implement synchronously running a task with input piped in from a string and output piped back out and returned as a string. They require only a stdoutData instance variable to function. +- (NSData *)executeBinary:(NSString *)executablePath inDirectory:(NSString *)currentDirPath withArguments:(NSArray *)args environment:(NSDictionary *)env inputString:(NSString *)input { + NSPipe *inputPipe; + NSPipe *outputPipe; + NSFileHandle *inputFileHandle; + NSFileHandle *outputFileHandle; + + [task setLaunchPath:executablePath]; + if (currentDirPath) { + [task setCurrentDirectoryPath:currentDirPath]; + } + if (args) { + [task setArguments:args]; + } + if (env) { + [task setEnvironment:env]; + } + + [task setStandardError:[NSFileHandle fileHandleWithStandardError]]; + inputPipe = [NSPipe pipe]; + inputFileHandle = [inputPipe fileHandleForWriting]; + [task setStandardInput:inputPipe]; + outputPipe = [NSPipe pipe]; + outputFileHandle = [outputPipe fileHandleForReading]; + [task setStandardOutput:outputPipe]; + + // ignore SIGPIPE, as it causes a crash (seems to happen if the binaries don't exist and you try writing to the pipe) + signal(SIGPIPE, SIG_IGN); + + NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; + + @try{ + + [nc addObserver:self selector:@selector(stdoutNowAvailable:) name:NSFileHandleReadCompletionNotification object:outputFileHandle]; + [outputFileHandle readInBackgroundAndNotify]; + + [task launch]; + + if ([task isRunning]) { + + // run the runloop and pick up our notifications + [task waitUntilExit]; + + [nc removeObserver:self name:NSFileHandleReadCompletionNotification object:outputFileHandle]; + + // get leftover data, since the background method won't get the last read + NSData *remainingData = [outputFileHandle availableData]; + if ([remainingData length]) + [stdoutData appendData:remainingData]; + + } else { + NSLog(@"Failed to launch task at \"%@\" or it exited without accepting input. Termination status was %d", executablePath, [task terminationStatus]); + } + } + @catch(id exception){ + // if the pipe failed, we catch an exception here and ignore it + NSLog(@"exception %@ encountered while trying to launch task %@", exception, executablePath); + [nc removeObserver:self name:NSFileHandleReadCompletionNotification object:outputFileHandle]; + } + + // reset signal handling to default behavior + signal(SIGPIPE, SIG_DFL); + + return [stdoutData length] ? stdoutData : nil; +} + +- (void)stdoutNowAvailable:(NSNotification *)notification { + NSData *outputData = [[notification userInfo] objectForKey:NSFileHandleNotificationDataItem]; + if ([outputData length]) { + [stdoutData appendData:outputData]; + } + [[notification object] readInBackgroundAndNotify]; +} + + +@end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ada...@us...> - 2008-07-24 20:23:56
|
Revision: 13541 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13541&view=rev Author: adam-goldstein Date: 2008-07-24 20:24:03 +0000 (Thu, 24 Jul 2008) Log Message: ----------- commiting copy of the code in which version numbers have been updated ahead of the 1.3.18 release. Modified Paths: -------------- trunk/bibdesk/BibImporter/English.lproj/InfoPlist.strings trunk/bibdesk/BibImporter/French.lproj/InfoPlist.strings trunk/bibdesk/BibImporter/Info.plist trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj trunk/bibdesk/English.lproj/BibDesk Help/version.texi trunk/bibdesk/Info.plist Modified: trunk/bibdesk/BibImporter/English.lproj/InfoPlist.strings =================================================================== --- trunk/bibdesk/BibImporter/English.lproj/InfoPlist.strings 2008-07-24 18:10:07 UTC (rev 13540) +++ trunk/bibdesk/BibImporter/English.lproj/InfoPlist.strings 2008-07-24 20:24:03 UTC (rev 13541) @@ -1,6 +1,6 @@ \xFE\xFF |
From: <ada...@us...> - 2008-07-24 20:47:26
|
Revision: 13542 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13542&view=rev Author: adam-goldstein Date: 2008-07-24 20:47:35 +0000 (Thu, 24 Jul 2008) Log Message: ----------- some more files have had their version numbers updated for 1.3.18. Modified Paths: -------------- trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj trunk/bibdesk/French.lproj/BibDesk Help/version.texi Modified: trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj =================================================================== --- trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2008-07-24 20:24:03 UTC (rev 13541) +++ trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2008-07-24 20:47:35 UTC (rev 13542) @@ -4558,7 +4558,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = CE17EE7E0E24F27400DE06EA /* BibDesk-App.xcconfig */; buildSettings = { - CURRENT_PROJECT_VERSION = 1201; + CURRENT_PROJECT_VERSION = 1202; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -4567,7 +4567,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = CE17EE7E0E24F27400DE06EA /* BibDesk-App.xcconfig */; buildSettings = { - CURRENT_PROJECT_VERSION = 1201; + CURRENT_PROJECT_VERSION = 1202; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; @@ -4576,7 +4576,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = CE17EE7E0E24F27400DE06EA /* BibDesk-App.xcconfig */; buildSettings = { - CURRENT_PROJECT_VERSION = 1201; + CURRENT_PROJECT_VERSION = 1202; GCC_PREPROCESSOR_DEFINITIONS = UNIT_TESTING; VERSIONING_SYSTEM = "apple-generic"; }; Modified: trunk/bibdesk/French.lproj/BibDesk Help/version.texi =================================================================== --- trunk/bibdesk/French.lproj/BibDesk Help/version.texi 2008-07-24 20:24:03 UTC (rev 13541) +++ trunk/bibdesk/French.lproj/BibDesk Help/version.texi 2008-07-24 20:47:35 UTC (rev 13542) @@ -1 +1 @@ -@set VERSION 1.3.15 +@set VERSION 1.3.18 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-07-25 10:05:43
|
Revision: 13546 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13546&view=rev Author: hofman Date: 2008-07-25 10:05:49 +0000 (Fri, 25 Jul 2008) Log Message: ----------- Type static IMP declarations and initialize to NULL. Modified Paths: -------------- trunk/bibdesk/BDSKComplexString.m trunk/bibdesk/NSScrollView_BDSKExtensions.m trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m trunk/bibdesk/NSTableView_BDSKExtensions.m trunk/bibdesk/NSWindowController_BDSKExtensions.m trunk/bibdesk/PDFDocument_BDSKExtensions.m Modified: trunk/bibdesk/BDSKComplexString.m =================================================================== --- trunk/bibdesk/BDSKComplexString.m 2008-07-25 05:45:47 UTC (rev 13545) +++ trunk/bibdesk/BDSKComplexString.m 2008-07-25 10:05:49 UTC (rev 13546) @@ -498,10 +498,10 @@ @implementation NSString (ComplexStringExtensions) -static IMP originalStringByAppendingString; +static id (*originalStringByAppendingString)(id, SEL, id) = NULL; + (void)didLoad{ - originalStringByAppendingString = OBReplaceMethodImplementationWithSelector(self, @selector(stringByAppendingString:), @selector(replacementStringByAppendingString:)); + originalStringByAppendingString = (id (*)(id, SEL, id))OBReplaceMethodImplementationWithSelector(self, @selector(stringByAppendingString:), @selector(replacementStringByAppendingString:)); } - (id)initWithNodes:(NSArray *)nodesArray macroResolver:(BDSKMacroResolver *)theMacroResolver{ Modified: trunk/bibdesk/NSScrollView_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSScrollView_BDSKExtensions.m 2008-07-25 05:45:47 UTC (rev 13545) +++ trunk/bibdesk/NSScrollView_BDSKExtensions.m 2008-07-25 10:05:49 UTC (rev 13546) @@ -43,10 +43,10 @@ @implementation NSScrollView (BDSKExtensions) -static IMP originalSetHasHorizontalScroller = NULL; -static IMP originalSetAutohidesScrollers = NULL; -static IMP originalDealloc = NULL; -static IMP originalTile = NULL; +static void (*originalSetHasHorizontalScroller)(id, SEL, BOOL) = NULL; +static void (*originalSetAutohidesScrollers)(id, SEL, BOOL) = NULL; +static void (*originalDealloc)(id, SEL) = NULL; +static void (*originalTile)(id, SEL) = NULL; static CFMutableDictionaryRef scrollViewPlacards = NULL; @@ -103,10 +103,10 @@ } + (void)load{ - originalSetHasHorizontalScroller = OBReplaceMethodImplementationWithSelector(self, @selector(setHasHorizontalScroller:), @selector(replacementSetHasHorizontalScroller:)); - originalSetAutohidesScrollers = OBReplaceMethodImplementationWithSelector(self, @selector(setAutohidesScrollers:), @selector(replacementSetAutohidesScrollers:)); - originalDealloc = OBReplaceMethodImplementationWithSelector(self, @selector(dealloc), @selector(replacementDealloc)); - originalTile = OBReplaceMethodImplementationWithSelector(self, @selector(tile), @selector(replacementTile)); + originalSetHasHorizontalScroller = (void (*)(id, SEL, BOOL))OBReplaceMethodImplementationWithSelector(self, @selector(setHasHorizontalScroller:), @selector(replacementSetHasHorizontalScroller:)); + originalSetAutohidesScrollers = (void (*)(id, SEL, BOOL))OBReplaceMethodImplementationWithSelector(self, @selector(setAutohidesScrollers:), @selector(replacementSetAutohidesScrollers:)); + originalDealloc = (void (*)(id, SEL))OBReplaceMethodImplementationWithSelector(self, @selector(dealloc), @selector(replacementDealloc)); + originalTile = (void (*)(id, SEL))OBReplaceMethodImplementationWithSelector(self, @selector(tile), @selector(replacementTile)); // dictionary doesn't retain keys, so no retain cycles; pointer equality used to compare views scrollViewPlacards = CFDictionaryCreateMutable(CFAllocatorGetDefault(), 0, NULL, &kCFTypeDictionaryValueCallBacks); Modified: trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m 2008-07-25 05:45:47 UTC (rev 13545) +++ trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m 2008-07-25 10:05:49 UTC (rev 13546) @@ -42,7 +42,7 @@ @implementation NSTableHeaderView (BDSKExtensions) -static IMP originalMouseDown; +static void (*originalMouseDown)(id, SEL, id) = NULL; - (void)replacementMouseDown:(NSEvent *)theEvent{ // mouseDown in the table header has peculiar behavior for a double-click if you use -[NSTableView setDoubleAction:] on the @@ -62,7 +62,7 @@ } + (void)didLoad { - originalMouseDown = OBReplaceMethodImplementationWithSelector(self, @selector(mouseDown:), @selector(replacementMouseDown:)); + originalMouseDown = (id (*)(id, SEL, id))OBReplaceMethodImplementationWithSelector(self, @selector(mouseDown:), @selector(replacementMouseDown:)); } @end Modified: trunk/bibdesk/NSTableView_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSTableView_BDSKExtensions.m 2008-07-25 05:45:47 UTC (rev 13545) +++ trunk/bibdesk/NSTableView_BDSKExtensions.m 2008-07-25 10:05:49 UTC (rev 13546) @@ -46,10 +46,10 @@ @implementation NSTableView (BDSKExtensions) -static BOOL (*originalBecomeFirstResponder)(id self, SEL _cmd); -static IMP originalDealloc; -static IMP originalDraggedImageEndedAtOperation; -static IMP originalDragImageForRowsWithIndexesTableColumnsEventOffset; +static BOOL (*originalBecomeFirstResponder)(id, SEL) = NULL; +static void (*originalDealloc)(id self, SEL _cmd) = NULL; +static void (*originalDraggedImageEndedAtOperation)(id self, SEL _cmd, id, NSPoint, NSDragOperation) = NULL; +static id (*originalDragImageForRowsWithIndexesTableColumnsEventOffset)(id, SEL, id, id, id, NSPointPointer) = NULL; - (BOOL)validateDelegatedMenuItem:(NSMenuItem *)menuItem defaultDataSourceSelector:(SEL)dataSourceSelector{ SEL action = [menuItem action]; @@ -283,7 +283,7 @@ [[NSNotificationCenter defaultCenter] postNotificationName:OAFlagsChangedNotification object:[NSApp currentEvent]]; } -- (NSImage *)replacementDragImageForRowsWithIndexes:(NSIndexSet *)dragRows tableColumns:(NSArray *)tableColumns event:(NSEvent*)dragEvent offset:(NSPointPointer)dragImageOffset{ +- (NSImage *)replacementDragImageForRowsWithIndexes:(NSIndexSet *)dragRows tableColumns:(NSArray *)tableColumns event:(NSEvent *)dragEvent offset:(NSPointPointer)dragImageOffset{ if([[self dataSource] respondsToSelector:@selector(tableView:dragImageForRowsWithIndexes:)]) { NSImage *image = [[self dataSource] tableView:self dragImageForRowsWithIndexes:dragRows]; if (image != nil) @@ -301,9 +301,9 @@ + (void)didLoad; { originalBecomeFirstResponder = (typeof(originalBecomeFirstResponder))OBReplaceMethodImplementationWithSelector(self, @selector(becomeFirstResponder), @selector(replacementBecomeFirstResponder)); - originalDealloc = OBReplaceMethodImplementationWithSelector(self, @selector(dealloc), @selector(replacementDealloc)); - originalDraggedImageEndedAtOperation = OBReplaceMethodImplementationWithSelector(self, @selector(draggedImage:endedAt:operation:), @selector(replacementDraggedImage:endedAt:operation:)); - originalDragImageForRowsWithIndexesTableColumnsEventOffset = OBReplaceMethodImplementationWithSelector(self, @selector(dragImageForRowsWithIndexes:tableColumns:event:offset:), @selector(replacementDragImageForRowsWithIndexes:tableColumns:event:offset:)); + originalDealloc = (void (*)(id, SEL))OBReplaceMethodImplementationWithSelector(self, @selector(dealloc), @selector(replacementDealloc)); + originalDraggedImageEndedAtOperation = (void (*)(id, SEL, id, NSPoint, NSDragOperation))OBReplaceMethodImplementationWithSelector(self, @selector(draggedImage:endedAt:operation:), @selector(replacementDraggedImage:endedAt:operation:)); + originalDragImageForRowsWithIndexesTableColumnsEventOffset = (id (*)(id, SEL, id, id, id, NSPointPointer))OBReplaceMethodImplementationWithSelector(self, @selector(dragImageForRowsWithIndexes:tableColumns:event:offset:), @selector(replacementDragImageForRowsWithIndexes:tableColumns:event:offset:)); } #pragma mark Drop highlight Modified: trunk/bibdesk/NSWindowController_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSWindowController_BDSKExtensions.m 2008-07-25 05:45:47 UTC (rev 13545) +++ trunk/bibdesk/NSWindowController_BDSKExtensions.m 2008-07-25 10:05:49 UTC (rev 13546) @@ -95,7 +95,7 @@ @implementation NSWindow (BDSKExtensions) -static IMP originalSetRepresentedFilename; +static void (*originalSetRepresentedFilename)(id, SEL, id) = NULL; // see bug #1471488; overriding representedFilename is not sufficient; apparently the window doesn't use its accessor - (void)replacementSetRepresentedFilename:(NSString *)path; @@ -112,7 +112,7 @@ + (void)didLoad; { - originalSetRepresentedFilename = OBReplaceMethodImplementationWithSelector(self, @selector(setRepresentedFilename:), @selector(replacementSetRepresentedFilename:)); + originalSetRepresentedFilename = (void (*)(id, SEL, id))OBReplaceMethodImplementationWithSelector(self, @selector(setRepresentedFilename:), @selector(replacementSetRepresentedFilename:)); } @end Modified: trunk/bibdesk/PDFDocument_BDSKExtensions.m =================================================================== --- trunk/bibdesk/PDFDocument_BDSKExtensions.m 2008-07-25 05:45:47 UTC (rev 13545) +++ trunk/bibdesk/PDFDocument_BDSKExtensions.m 2008-07-25 10:05:49 UTC (rev 13546) @@ -47,10 +47,10 @@ @implementation PDFDocument (BDSKExtensions) -static IMP originalGetPrintOperationForPrintInfo = NULL; +static id (*originalGetPrintOperationForPrintInfo)(id, SEL, id, BOOL) = NULL; - (NSPrintOperation *)replacementGetPrintOperationForPrintInfo:(NSPrintInfo *)printInfo autoRotate:(BOOL)autoRotate { - NSPrintOperation *printOperation = originalGetPrintOperationForPrintInfo(self, _cmd, printInfo, autoRotate); + NSPrintOperation *printOperation = (id (*)(id, SEL, id, BOOL))originalGetPrintOperationForPrintInfo(self, _cmd, printInfo, autoRotate); NSPrintPanel *printPanel = [printOperation printPanel]; if ([printPanel respondsToSelector:@selector(setOptions:)]) [printPanel setOptions:NSPrintPanelShowsCopies | NSPrintPanelShowsPageRange | NSPrintPanelShowsPaperSize | NSPrintPanelShowsOrientation | NSPrintPanelShowsScaling | NSPrintPanelShowsPreview]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-07-25 10:09:14
|
Revision: 13547 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13547&view=rev Author: hofman Date: 2008-07-25 10:09:19 +0000 (Fri, 25 Jul 2008) Log Message: ----------- Fix typing of IMPs. Modified Paths: -------------- trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m trunk/bibdesk/PDFDocument_BDSKExtensions.m Modified: trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m 2008-07-25 10:05:49 UTC (rev 13546) +++ trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m 2008-07-25 10:09:19 UTC (rev 13547) @@ -62,7 +62,7 @@ } + (void)didLoad { - originalMouseDown = (id (*)(id, SEL, id))OBReplaceMethodImplementationWithSelector(self, @selector(mouseDown:), @selector(replacementMouseDown:)); + originalMouseDown = (void (*)(id, SEL, id))OBReplaceMethodImplementationWithSelector(self, @selector(mouseDown:), @selector(replacementMouseDown:)); } @end Modified: trunk/bibdesk/PDFDocument_BDSKExtensions.m =================================================================== --- trunk/bibdesk/PDFDocument_BDSKExtensions.m 2008-07-25 10:05:49 UTC (rev 13546) +++ trunk/bibdesk/PDFDocument_BDSKExtensions.m 2008-07-25 10:09:19 UTC (rev 13547) @@ -50,7 +50,7 @@ static id (*originalGetPrintOperationForPrintInfo)(id, SEL, id, BOOL) = NULL; - (NSPrintOperation *)replacementGetPrintOperationForPrintInfo:(NSPrintInfo *)printInfo autoRotate:(BOOL)autoRotate { - NSPrintOperation *printOperation = (id (*)(id, SEL, id, BOOL))originalGetPrintOperationForPrintInfo(self, _cmd, printInfo, autoRotate); + NSPrintOperation *printOperation = originalGetPrintOperationForPrintInfo(self, _cmd, printInfo, autoRotate); NSPrintPanel *printPanel = [printOperation printPanel]; if ([printPanel respondsToSelector:@selector(setOptions:)]) [printPanel setOptions:NSPrintPanelShowsCopies | NSPrintPanelShowsPageRange | NSPrintPanelShowsPaperSize | NSPrintPanelShowsOrientation | NSPrintPanelShowsScaling | NSPrintPanelShowsPreview]; @@ -60,7 +60,7 @@ + (void)load { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; if ([self instancesRespondToSelector:@selector(getPrintOperationForPrintInfo:autoRotate:)]) - originalGetPrintOperationForPrintInfo = OBReplaceMethodImplementationWithSelector(self, @selector(getPrintOperationForPrintInfo:autoRotate:), @selector(replacementGetPrintOperationForPrintInfo:autoRotate:)); + originalGetPrintOperationForPrintInfo = (id (*)(id, SEL, id, BOOL))OBReplaceMethodImplementationWithSelector(self, @selector(getPrintOperationForPrintInfo:autoRotate:), @selector(replacementGetPrintOperationForPrintInfo:autoRotate:)); [pool release]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-07-25 11:28:10
|
Revision: 13548 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13548&view=rev Author: hofman Date: 2008-07-25 11:28:16 +0000 (Fri, 25 Jul 2008) Log Message: ----------- Use the SkimNotesBase framework to read Skim notes and access extended attributes. Remove the BD category for EAs and the Skim Reader class. Move string encoding EA access to the main NSFileManager category. Modified Paths: -------------- trunk/bibdesk/BDSKEditor.m trunk/bibdesk/BDSKNotesWindowController.m trunk/bibdesk/BibDocument.m trunk/bibdesk/BibDocument_Actions.m trunk/bibdesk/BibDocument_DataSource.m trunk/bibdesk/BibItem.m trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj trunk/bibdesk/NSFileManager_BDSKExtensions.h trunk/bibdesk/NSFileManager_BDSKExtensions.m trunk/bibdesk/NSString_BDSKExtensions.m trunk/bibdesk/NSURL_BDSKExtensions.h trunk/bibdesk/NSURL_BDSKExtensions.m Removed Paths: ------------- trunk/bibdesk/BDSKSkimReader.h trunk/bibdesk/BDSKSkimReader.m trunk/bibdesk/NSFileManager_BDSKExtendedAttributes.h trunk/bibdesk/NSFileManager_BDSKExtendedAttributes.m Modified: trunk/bibdesk/BDSKEditor.m =================================================================== --- trunk/bibdesk/BDSKEditor.m 2008-07-25 10:09:19 UTC (rev 13547) +++ trunk/bibdesk/BDSKEditor.m 2008-07-25 11:28:16 UTC (rev 13548) @@ -74,7 +74,6 @@ #import "BDSKPublicationsArray.h" #import "BDSKCitationFormatter.h" #import "BDSKNotesWindowController.h" -#import "BDSKSkimReader.h" #import "BDSKSplitView.h" #import <FileView/FileView.h> #import "BDSKLinkedFile.h" @@ -447,7 +446,7 @@ while (fileURL = [urlEnum nextObject]) { if ([fileURL isEqual:[NSNull null]] == NO) { - NSString *notes = [[BDSKSkimReader sharedReader] textNotesAtURL:fileURL]; + NSString *notes = [fileURL textSkimNotes]; if ([notes length]) { if ([string length]) Modified: trunk/bibdesk/BDSKNotesWindowController.m =================================================================== --- trunk/bibdesk/BDSKNotesWindowController.m 2008-07-25 10:09:19 UTC (rev 13547) +++ trunk/bibdesk/BDSKNotesWindowController.m 2008-07-25 11:28:16 UTC (rev 13548) @@ -38,7 +38,7 @@ #import "BDSKNotesWindowController.h" #import "BDSKAppController.h" -#import "BDSKSkimReader.h" +#import "NSURL_BDSKExtensions.h" @implementation BDSKNotesWindowController @@ -77,7 +77,7 @@ #pragma mark Actions - (IBAction)refresh:(id)sender { - NSEnumerator *dictEnum = [[[BDSKSkimReader sharedReader] SkimNotesAtURL:url] objectEnumerator]; + NSEnumerator *dictEnum = [[url SkimNotes] objectEnumerator]; NSDictionary *dict; [notes removeAllObjects]; Deleted: trunk/bibdesk/BDSKSkimReader.h =================================================================== --- trunk/bibdesk/BDSKSkimReader.h 2008-07-25 10:09:19 UTC (rev 13547) +++ trunk/bibdesk/BDSKSkimReader.h 2008-07-25 11:28:16 UTC (rev 13548) @@ -1,52 +0,0 @@ -// -// BDSKSkimReader.h -// Bibdesk -// -// Created by Adam Maxwell on 04/09/07. -/* - This software is Copyright (c) 2007-2008 - Adam Maxwell. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Adam Maxwell nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <Cocoa/Cocoa.h> - - -@interface BDSKSkimReader : NSObject { - NSConnection *connection; - id agent; -} - -+ (id)sharedReader; -- (NSArray *)SkimNotesAtURL:(NSURL *)fileURL; -- (NSData *)RTFNotesAtURL:(NSURL *)fileURL; -- (NSString *)textNotesAtURL:(NSURL *)fileURL; - -@end Deleted: trunk/bibdesk/BDSKSkimReader.m =================================================================== --- trunk/bibdesk/BDSKSkimReader.m 2008-07-25 10:09:19 UTC (rev 13547) +++ trunk/bibdesk/BDSKSkimReader.m 2008-07-25 11:28:16 UTC (rev 13548) @@ -1,239 +0,0 @@ -// -// BDSKSkimReader.m -// Bibdesk -// -// Created by Adam Maxwell on 04/09/07. -/* - This software is Copyright (c) 2007-2008 - Adam Maxwell. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Adam Maxwell nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "BDSKSkimReader.h" -#import "NSWorkspace_BDSKExtensions.h" - -@protocol SKNAgentListenerProtocol - -- (bycopy NSData *)SkimNotesAtPath:(in bycopy NSString *)aFile; -- (bycopy NSData *)RTFNotesAtPath:(in bycopy NSString *)aFile; -- (bycopy NSData *)textNotesAtPath:(in bycopy NSString *)aFile encoding:(NSStringEncoding)encoding; - -@end - -// Argument passed; this will be unique to the client app, so multiple processes can run a skimnotes agent. Alternately, we could run it via launchd or as a login item and allow any app to talk to it. This is easier for the present. -#define AGENT_IDENTIFIER @"net_sourceforge_bibdesk_skimnotesagent" -#define AGENT_TIMEOUT 1.0f - -@implementation BDSKSkimReader - -+ (id)sharedReader; -{ - static id sharedInstance = nil; - if (nil == sharedInstance) - sharedInstance = [[self alloc] init]; - return sharedInstance; -} - -- (void)destroyConnection; -{ - [[NSNotificationCenter defaultCenter] removeObserver:self name:NSConnectionDidDieNotification object:connection]; - [agent release]; - agent = nil; - - [[connection receivePort] invalidate]; - [[connection sendPort] invalidate]; - [connection invalidate]; - [connection release]; - connection = nil; -} - -- (void)dealloc -{ - [[NSNotificationCenter defaultCenter] removeObserver:self]; - [self destroyConnection]; - [super dealloc]; -} - -- (void)handleConnectionDied:(NSNotification *)note; -{ - [[NSNotificationCenter defaultCenter] removeObserver:self name:NSConnectionDidDieNotification object:[note object]]; - // ensure the proxy ivar and ports are cleaned up; is it still okay to message it? - [self destroyConnection]; -} - -- (BOOL)launchedTask; -{ - NSTask *task = [[NSTask alloc] init]; - [task setLaunchPath:[[NSBundle mainBundle] pathForResource:@"skimnotes" ofType:nil]]; - [task setArguments:[NSArray arrayWithObjects:@"agent", AGENT_IDENTIFIER, nil]]; - BOOL taskLaunched = NO; - -#if OMNI_FORCE_ASSERTIONS - [task setStandardError:[NSFileHandle fileHandleWithStandardError]]; - NSPipe *aPipe = [NSPipe pipe]; - [task setStandardOutput:aPipe]; - @try { - [task launch]; - NSData *data = [[aPipe fileHandleForReading] readDataToEndOfFile]; - NSLog(@"skimnotes agent started with identifier \"%@\"", [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]); - taskLaunched = [task isRunning]; - } -#else - // task will print the identifier to standard output; we don't care about it, since we specified it - [task setStandardOutput:[NSFileHandle fileHandleWithNullDevice]]; - [task setStandardError:[NSFileHandle fileHandleWithNullDevice]]; - @try { - [task launch]; - taskLaunched = [task isRunning]; - } -#endif - - @catch(id exception){ - NSLog(@"failed to launch skimnotes agent: %@", exception); - taskLaunched = NO; - } - [task release]; - return taskLaunched; -} - -- (void)establishConnection; -{ - static int numberOfConnectionAttempts = 0; - if (numberOfConnectionAttempts++ > 100) { - static BOOL didWarn = NO; - if (NO == didWarn) { - NSLog(@"*** Insane number of Skim agent connection failures; disabling further attempts ***"); - didWarn = YES; - } - return; - } - - // okay to launch multiple instances, since the new one will just die, but we generally shouldn't do that - OBPRECONDITION(nil == connection); - - // no point in trying to connect if the task didn't launch - if ([self launchedTask]) { - int maxTries = 5; - connection = [[NSConnection connectionWithRegisteredName:AGENT_IDENTIFIER host:nil] retain]; - - // if we try to read data before the server is fully set up, connection will still be nil - while (nil == connection && maxTries--) { - [NSThread sleepUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - connection = [[NSConnection connectionWithRegisteredName:AGENT_IDENTIFIER host:nil] retain]; - } - - if (connection) { - - // keep an eye on the connection from our end, so we can retain the proxy object - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleConnectionDied:) name:NSConnectionDidDieNotification object:connection]; - - // if we don't set these explicitly, timeout never seems to take place - [connection setRequestTimeout:AGENT_TIMEOUT]; - [connection setReplyTimeout:AGENT_TIMEOUT]; - - @try { - id server = [connection rootProxy]; - [server setProtocolForProxy:@protocol(SKNAgentListenerProtocol)]; - agent = [server retain]; - } - @catch(id exception) { - NSLog(@"Error: exception \"%@\" caught when contacting skimnotes agent", exception); - [self destroyConnection]; - } - } - } - OBPOSTCONDITION(nil != connection); -} - -- (BOOL)connectAndCheckTypeOfFile:(NSURL *)fileURL; -{ - OBASSERT([fileURL isFileURL]); - if (nil == connection) - [self establishConnection]; - - // these checks are client side to avoid connecting to the server unless it's really necessary - CFStringRef type = (CFStringRef)[[NSWorkspace sharedWorkspace] UTIForURL:fileURL]; - if (UTTypeConformsTo(type, kUTTypePDF) || UTTypeConformsTo(type, CFSTR("com.adobe.postscript")) || - UTTypeConformsTo(type, CFSTR("net.sourceforge.skim-app.pdfd")) || UTTypeConformsTo(type, CFSTR("net.sourceforge.skim-app.skimnotes"))) - return YES; - - return NO; -} - -- (NSArray *)SkimNotesAtURL:(NSURL *)fileURL; -{ - NSData *data = nil; - if ([self connectAndCheckTypeOfFile:fileURL]) { - @try{ - data = [agent SkimNotesAtPath:[fileURL path]]; - } - @catch(id exception){ - data = nil; - NSLog(@"-[BDSKSkimReader SkimNotesAtURL:] caught %@ while contacting skim agent; please report this", exception); - [self destroyConnection]; - } - } - return data ? [NSKeyedUnarchiver unarchiveObjectWithData:data] : nil; -} - -- (NSData *)RTFNotesAtURL:(NSURL *)fileURL; -{ - NSData *data = nil; - if ([self connectAndCheckTypeOfFile:fileURL]) { - @try{ - data = [agent RTFNotesAtPath:[fileURL path]]; - } - @catch(id exception){ - data = nil; - NSLog(@"-[BDSKSkimReader RTFNotesAtURL:] caught %@ while contacting skim agent; please report this", exception); - [self destroyConnection]; - } - } - return data; -} - -- (NSString *)textNotesAtURL:(NSURL *)fileURL; -{ - NSData *textData = nil; - if ([self connectAndCheckTypeOfFile:fileURL]) { - @try{ - textData = [agent textNotesAtPath:[fileURL path] encoding:NSUnicodeStringEncoding]; - } - @catch(id exception){ - textData = nil; - NSLog(@"-[BDSKSkimReader textNotesAtURL:] caught %@ while contacting skim agent; please report this", exception); - [self destroyConnection]; - } - } - return textData ? [[[NSString alloc] initWithData:textData encoding:NSUnicodeStringEncoding] autorelease] : nil; -} - - -@end Modified: trunk/bibdesk/BibDocument.m =================================================================== --- trunk/bibdesk/BibDocument.m 2008-07-25 10:09:19 UTC (rev 13547) +++ trunk/bibdesk/BibDocument.m 2008-07-25 11:28:16 UTC (rev 13548) @@ -75,7 +75,7 @@ #import "BDSKBibTeXParser.h" #import "BDSKStringParser.h" -#import "ApplicationServices/ApplicationServices.h" +#import <ApplicationServices/ApplicationServices.h> #import "BDSKImagePopUpButton.h" #import "BDSKRatingButton.h" #import "BDSKSplitView.h" @@ -94,7 +94,6 @@ #import "NSTableView_BDSKExtensions.h" #import "NSDictionary_BDSKExtensions.h" #import "NSSet_BDSKExtensions.h" -#import "NSFileManager_BDSKExtendedAttributes.h" #import "PDFMetadata.h" #import "BDSKSharingServer.h" #import "BDSKSharingBrowser.h" @@ -123,6 +122,7 @@ #import "NSViewAnimation_BDSKExtensions.h" #import "BDSKDocumentSearch.h" #import "NSImage_BDSKExtensions.h" +#import <SkimNotesBase/SKNExtendedAttributeManager.h> // these are the same as in Info.plist NSString *BDSKBibTeXDocumentType = @"BibTeX Database"; @@ -410,7 +410,7 @@ // hidden default to remove xattrs; this presently occurs before we use them, but it may need to be earlier at some point if ([[NSUserDefaults standardUserDefaults] boolForKey:@"BDSKRemoveExtendedAttributesFromDocuments"] && [self fileURL]) { - [[NSFileManager defaultManager] removeAllExtendedAttributesAtPath:[[self fileURL] path] traverseLink:YES error:NULL]; + [[SKNExtendedAttributeManager sharedNoSplitManager] removeAllExtendedAttributesAtPath:[[self fileURL] path] traverseLink:YES error:NULL]; } // get document-specific attributes (returns empty dictionary if there are none, so defaultValue works correctly) @@ -672,7 +672,7 @@ - (NSDictionary *)mainWindowSetupDictionaryFromExtendedAttributes { NSDictionary *dict = nil; if ([self fileURL]) { - dict = [[NSFileManager defaultManager] propertyListFromExtendedAttributeNamed:BDSKMainWindowExtendedAttributeKey atPath:[[self fileURL] path] traverseLink:YES error:NULL]; + dict = [[SKNExtendedAttributeManager sharedNoSplitManager] propertyListFromExtendedAttributeNamed:BDSKMainWindowExtendedAttributeKey atPath:[[self fileURL] path] traverseLink:YES error:NULL]; } if (nil == dict) dict = [NSDictionary dictionary]; @@ -743,9 +743,9 @@ NSError *error; - if ([[NSFileManager defaultManager] setExtendedAttributeNamed:BDSKMainWindowExtendedAttributeKey + if ([[SKNExtendedAttributeManager sharedNoSplitManager] setExtendedAttributeNamed:BDSKMainWindowExtendedAttributeKey toPropertyListValue:dictionary - atPath:path options:nil error:&error] == NO) { + atPath:path options:0 error:&error] == NO) { NSLog(@"%@: %@", self, error); } @@ -2415,7 +2415,7 @@ // most reliable metadata should be our private EA if([[OFPreferenceWrapper sharedPreferenceWrapper] boolForKey:BDSKReadExtendedAttributesKey]){ - NSData *btData = [[NSFileManager defaultManager] extendedAttributeNamed:OMNI_BUNDLE_IDENTIFIER @".bibtexstring" atPath:fnStr traverseLink:NO error:&xerror]; + NSData *btData = [[SKNExtendedAttributeManager sharedNoSplitManager] extendedAttributeNamed:OMNI_BUNDLE_IDENTIFIER @".bibtexstring" atPath:fnStr traverseLink:NO error:&xerror]; if(btData){ NSString *btString = [[NSString alloc] initWithData:btData encoding:NSUTF8StringEncoding]; BOOL isPartialData; Modified: trunk/bibdesk/BibDocument_Actions.m =================================================================== --- trunk/bibdesk/BibDocument_Actions.m 2008-07-25 10:09:19 UTC (rev 13547) +++ trunk/bibdesk/BibDocument_Actions.m 2008-07-25 11:28:16 UTC (rev 13548) @@ -55,6 +55,7 @@ #import "BDSKNotesWindowController.h" #import "NSString_BDSKExtensions.h" +#import "NSURL_BDSKExtensions.h" #import "NSArray_BDSKExtensions.h" #import "NSWorkspace_BDSKExtensions.h" #import "NSFileManager_BDSKExtensions.h" @@ -81,7 +82,6 @@ #import "NSObject_BDSKExtensions.h" #import "BDSKOwnerProtocol.h" #import "BDSKPreviewer.h" -#import "BDSKSkimReader.h" #import "BDSKFileMigrationController.h" #import <FileView/FVPreviewer.h> @@ -792,7 +792,7 @@ while (pub = [e nextObject]) { fileURL = [pub URLForField:field]; if(fileURL == nil) continue; - string = [[BDSKSkimReader sharedReader] textNotesAtURL:fileURL]; + string = [fileURL textSkimNotes]; if ([NSString isEmptyString:string]) continue; if ([notes length]) [notes appendString:@"\n\n"]; @@ -1005,7 +1005,7 @@ while (fileURL = [urlEnum nextObject]) { if ([fileURL isEqual:[NSNull null]] == NO) { - string = [[BDSKSkimReader sharedReader] textNotesAtURL:fileURL]; + string = [fileURL textSkimNotes]; if ([NSString isEmptyString:string] == NO) { if ([notes length]) [notes appendString:@"\n\n"]; Modified: trunk/bibdesk/BibDocument_DataSource.m =================================================================== --- trunk/bibdesk/BibDocument_DataSource.m 2008-07-25 10:09:19 UTC (rev 13547) +++ trunk/bibdesk/BibDocument_DataSource.m 2008-07-25 11:28:16 UTC (rev 13548) @@ -35,6 +35,7 @@ */ #import "BibDocument_DataSource.h" +#import <SkimNotesBase/SKNExtendedAttributeManager.h> #import "BibDocument.h" #import "BibDocument_Actions.h" #import "BibItem.h" @@ -51,11 +52,10 @@ #import "BDSKTeXTask.h" #import "BDSKMainTableView.h" #import "BDSKGroupTableView.h" -#import "NSFileManager_BDSKExtensions.h" #import "BDSKAlert.h" #import "BDSKTypeManager.h" #import "NSURL_BDSKExtensions.h" -#import "NSFileManager_BDSKExtendedAttributes.h" +#import "NSFileManager_BDSKExtensions.h" #import "NSSet_BDSKExtensions.h" #import "BDSKEditor.h" #import "NSGeometry_BDSKExtensions.h" @@ -575,7 +575,7 @@ [filePaths addObject:path]; NSError *xerror = nil; // we can always write xattrs; this doesn't alter the original file's content in any way, but fails if you have a really long abstract/annote - if([[NSFileManager defaultManager] setExtendedAttributeNamed:OMNI_BUNDLE_IDENTIFIER @".bibtexstring" toValue:[[pub bibTeXString] dataUsingEncoding:NSUTF8StringEncoding] atPath:path options:nil error:&xerror] == NO) + if([[SKNExtendedAttributeManager sharedNoSplitManager] setExtendedAttributeNamed:OMNI_BUNDLE_IDENTIFIER @".bibtexstring" toValue:[[pub bibTeXString] dataUsingEncoding:NSUTF8StringEncoding] atPath:path options:0 error:&xerror] == NO) NSLog(@"%@ line %d: adding xattrs failed with error %@", __FILENAMEASNSSTRING__, __LINE__, xerror); // writing the standard PDF metadata alters the original file, so we'll make it a separate preference; this is also really slow if([[OFPreferenceWrapper sharedPreferenceWrapper] boolForKey:BDSKShouldWritePDFMetadata]) @@ -637,7 +637,7 @@ [filePaths addObject:path]; NSError *xerror = nil; // we can always write xattrs; this doesn't alter the original file's content in any way, but fails if you have a really long abstract/annote - if([[NSFileManager defaultManager] setExtendedAttributeNamed:OMNI_BUNDLE_IDENTIFIER @".bibtexstring" toValue:[[pub bibTeXString] dataUsingEncoding:NSUTF8StringEncoding] atPath:path options:nil error:&xerror] == NO) + if([[SKNExtendedAttributeManager sharedNoSplitManager] setExtendedAttributeNamed:OMNI_BUNDLE_IDENTIFIER @".bibtexstring" toValue:[[pub bibTeXString] dataUsingEncoding:NSUTF8StringEncoding] atPath:path options:0 error:&xerror] == NO) NSLog(@"%@ line %d: adding xattrs failed with error %@", __FILENAMEASNSSTRING__, __LINE__, xerror); } } Modified: trunk/bibdesk/BibItem.m =================================================================== --- trunk/bibdesk/BibItem.m 2008-07-25 10:09:19 UTC (rev 13547) +++ trunk/bibdesk/BibItem.m 2008-07-25 11:28:16 UTC (rev 13548) @@ -68,7 +68,6 @@ #import "BDSKTemplateParser.h" #import "BDSKPublicationsArray.h" #import "NSData_BDSKExtensions.h" -#import "BDSKSkimReader.h" #import "BDSKCitationFormatter.h" #import "BDSKLinkedFile.h" #import "BDSKScriptHook.h" @@ -1438,7 +1437,7 @@ while (file = [fileEnum nextObject]) { if (fileURL = [file URL]) { - NSString *notes = [[BDSKSkimReader sharedReader] textNotesAtURL:fileURL]; + NSString *notes = [fileURL textSkimNotes]; if ([notes length] == 0) continue; if ([string length]) Modified: trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj =================================================================== --- trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2008-07-25 10:09:19 UTC (rev 13547) +++ trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2008-07-25 11:28:16 UTC (rev 13548) @@ -118,6 +118,8 @@ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; CE023F5D0CC50F87003F52E5 /* Add_Small.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CE023F5C0CC50F86003F52E5 /* Add_Small.tiff */; }; CE09CEA70DDEF65E00F3F2FE /* BDSKCompletionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CE09CEA50DDEF65E00F3F2FE /* BDSKCompletionManager.m */; }; + CE09FF890E39DEB800BDF413 /* SkimNotesBase.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE09FF7F0E39DE4E00BDF413 /* SkimNotesBase.framework */; }; + CE09FF8A0E39DEE200BDF413 /* SkimNotesBase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE52E69D0E2D2B87007B6C62 /* SkimNotesBase.framework */; }; CE0EB4440DCFDE8A0034DF92 /* NSInvocation_BDSKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0EB4420DCFDE8A0034DF92 /* NSInvocation_BDSKExtensions.m */; }; CE0ECDAB0DE78619006EEDDB /* BDSKSpiresParser.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0ECDA90DE78619006EEDDB /* BDSKSpiresParser.m */; }; CE117D240D7047A5005BFCEB /* NSScriptClassDescription_BDSKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE117D220D7047A4005BFCEB /* NSScriptClassDescription_BDSKExtensions.m */; }; @@ -430,7 +432,6 @@ F925332408FC9FB80045D563 /* BDSKFileSearchIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = F925332208FC9FB80045D563 /* BDSKFileSearchIndex.m */; }; F925352A08FDFAE40045D563 /* BDSKFileSearchResult.m in Sources */ = {isa = PBXBuildFile; fileRef = F925352808FDFAE40045D563 /* BDSKFileSearchResult.m */; }; F92B91C00BC6B51B008D5BC3 /* SearchButtonView.nib in Resources */ = {isa = PBXBuildFile; fileRef = F92B91BF0BC6B51B008D5BC3 /* SearchButtonView.nib */; }; - F92BACCF0BCBFEE0008D5BC3 /* BDSKSkimReader.m in Sources */ = {isa = PBXBuildFile; fileRef = F92BACCD0BCBFEE0008D5BC3 /* BDSKSkimReader.m */; }; F92ECBA009DEF86600A244D0 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F92ECB6B09DEF86500A244D0 /* Security.framework */; }; F92ECBF109DF09C200A244D0 /* BDSKPasswordController.nib in Resources */ = {isa = PBXBuildFile; fileRef = F92ECBEF09DF09C200A244D0 /* BDSKPasswordController.nib */; }; F92ECBF509DF09DA00A244D0 /* BDSKPasswordController.m in Sources */ = {isa = PBXBuildFile; fileRef = F92ECBF309DF09DA00A244D0 /* BDSKPasswordController.m */; }; @@ -446,7 +447,6 @@ F945240C0B4B15A6000A5E12 /* searchDocIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = F945240B0B4B15A6000A5E12 /* searchDocIcon.icns */; }; F9463F4609436F7500CC4549 /* NSSet_BDSKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = F9463F4409436F7500CC4549 /* NSSet_BDSKExtensions.m */; }; F946DCE909FDC4B600D471DF /* BDSKAsynchronousDOServer.m in Sources */ = {isa = PBXBuildFile; fileRef = F946DCE709FDC4B600D471DF /* BDSKAsynchronousDOServer.m */; }; - F94847450E23A7A20067EA9D /* skimnotes in Resources */ = {isa = PBXBuildFile; fileRef = CE7DC8DC0E0952BB00D6D76D /* skimnotes */; }; F9484D8E08D68C3200153BDA /* KFAppleScriptHandlerAdditionsCore.m in Sources */ = {isa = PBXBuildFile; fileRef = F9484D8A08D68C3200153BDA /* KFAppleScriptHandlerAdditionsCore.m */; }; F9484D9008D68C3200153BDA /* KFASHandlerAdditions-TypeTranslation.m in Sources */ = {isa = PBXBuildFile; fileRef = F9484D8C08D68C3200153BDA /* KFASHandlerAdditions-TypeTranslation.m */; }; F94AA36B0BE8FD87007BCE2B /* Preferences.strings in Resources */ = {isa = PBXBuildFile; fileRef = F94AA3690BE8FD87007BCE2B /* Preferences.strings */; }; @@ -488,7 +488,6 @@ F9937E290AD826AA001D1DFB /* BDSKSpotlightView.m in Sources */ = {isa = PBXBuildFile; fileRef = F9A411F00A0B1FEF008493C0 /* BDSKSpotlightView.m */; }; F9937E2A0AD826AB001D1DFB /* CIImage_BDSKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7E29D70A0E84AB009D04C3 /* CIImage_BDSKExtensions.m */; }; F9937E2B0AD826AE001D1DFB /* NSBezierPath_CoreImageExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE28346209176C88006B4C63 /* NSBezierPath_CoreImageExtensions.m */; }; - F9937E2C0AD826AF001D1DFB /* NSFileManager_BDSKExtendedAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = F9E6C936099A8FEF00A8B97D /* NSFileManager_BDSKExtendedAttributes.m */; }; F9937E4E0AD826EB001D1DFB /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9B9E17E089479FC00C21B17 /* Quartz.framework */; }; F9937E6C0AD82700001D1DFB /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9706DB909102DA800526FC8 /* QuartzCore.framework */; }; F99BC25F095A5C7000E018C3 /* NSArray_BDSKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = F99BC25D095A5C7000E018C3 /* NSArray_BDSKExtensions.m */; }; @@ -534,6 +533,13 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + CE09FF870E39DE7400BDF413 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CE7DC8CF0E0952BA00D6D76D /* SkimNotes.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = CEA5F53C0E2CED0E00F65088 /* SkimNotesBase */; + remoteInfo = SkimNotesBase; + }; CE52E69C0E2D2B87007B6C62 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = CE7DC8CF0E0952BA00D6D76D /* SkimNotes.xcodeproj */; @@ -555,13 +561,6 @@ remoteGlobalIDString = CEBA2B550E0566B00000B2E6; remoteInfo = skimnotes; }; - CE7DC8DD0E0952E000D6D76D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = CE7DC8CF0E0952BA00D6D76D /* SkimNotes.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = CEBA2B540E0566B00000B2E6; - remoteInfo = skimnotes; - }; CEDB9BC70E2F405F0057FD09 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = CE7DC8CF0E0952BA00D6D76D /* SkimNotes.xcodeproj */; @@ -845,6 +844,7 @@ CE2BB8E00E0EEB480090E848 /* AGRegex.framework in CopyFiles */, CE2BB8E10E0EEB480090E848 /* BTParse.framework in CopyFiles */, CE2BB8E20E0EEB480090E848 /* FileView.framework in CopyFiles */, + CE09FF890E39DEB800BDF413 /* SkimNotesBase.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -972,6 +972,7 @@ CE05CF5C0D7743940034C2A8 /* WebURLsWithTitles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebURLsWithTitles.h; sourceTree = "<group>"; }; CE09CEA40DDEF65E00F3F2FE /* BDSKCompletionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKCompletionManager.h; sourceTree = "<group>"; }; CE09CEA50DDEF65E00F3F2FE /* BDSKCompletionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BDSKCompletionManager.m; sourceTree = "<group>"; }; + CE09FF7F0E39DE4E00BDF413 /* SkimNotesBase.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SkimNotesBase.framework; path = ../../../BuildProducts/Debug/SkimNotesBase.framework; sourceTree = SOURCE_ROOT; }; CE0EB4410DCFDE8A0034DF92 /* NSInvocation_BDSKExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSInvocation_BDSKExtensions.h; sourceTree = "<group>"; }; CE0EB4420DCFDE8A0034DF92 /* NSInvocation_BDSKExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSInvocation_BDSKExtensions.m; sourceTree = "<group>"; }; CE0ECDA80DE78619006EEDDB /* BDSKSpiresParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKSpiresParser.h; sourceTree = "<group>"; }; @@ -1471,8 +1472,6 @@ F925332208FC9FB80045D563 /* BDSKFileSearchIndex.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BDSKFileSearchIndex.m; sourceTree = "<group>"; }; F925352708FDFAE40045D563 /* BDSKFileSearchResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKFileSearchResult.h; sourceTree = "<group>"; }; F925352808FDFAE40045D563 /* BDSKFileSearchResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BDSKFileSearchResult.m; sourceTree = "<group>"; }; - F92BACCC0BCBFEE0008D5BC3 /* BDSKSkimReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKSkimReader.h; sourceTree = "<group>"; }; - F92BACCD0BCBFEE0008D5BC3 /* BDSKSkimReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BDSKSkimReader.m; sourceTree = "<group>"; }; F92ECB6B09DEF86500A244D0 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = "<absolute>"; }; F92ECBF009DF09C200A244D0 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/BDSKPasswordController.nib; sourceTree = "<group>"; }; F92ECBF209DF09DA00A244D0 /* BDSKPasswordController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKPasswordController.h; sourceTree = "<group>"; }; @@ -1687,8 +1686,6 @@ F9E5F6D80A96ABF1004A6D79 /* BDSKFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BDSKFile.m; sourceTree = "<group>"; }; F9E5F6DC0A96AC01004A6D79 /* BDSKFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKFile.h; sourceTree = "<group>"; }; F9E6C5970999323D00A8B97D /* BDSKStringParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKStringParser.h; sourceTree = "<group>"; }; - F9E6C935099A8FEF00A8B97D /* NSFileManager_BDSKExtendedAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSFileManager_BDSKExtendedAttributes.h; sourceTree = "<group>"; }; - F9E6C936099A8FEF00A8B97D /* NSFileManager_BDSKExtendedAttributes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSFileManager_BDSKExtendedAttributes.m; sourceTree = "<group>"; }; F9EA8FC80ADE01F9005EFBE4 /* BDSKUpdateChecker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKUpdateChecker.h; sourceTree = "<group>"; }; F9EA8FC90ADE01F9005EFBE4 /* BDSKUpdateChecker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BDSKUpdateChecker.m; sourceTree = "<group>"; }; F9EF21B208B1572500AAC9A9 /* BDSKScrollableTextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKScrollableTextField.h; sourceTree = "<group>"; }; @@ -1759,6 +1756,7 @@ CE2BB7E90E0DB0D00090E848 /* yaz.framework in Frameworks */, CE2BB7E80E0DB0C70090E848 /* FileView.framework in Frameworks */, CE2BB7EE0E0DB0F40090E848 /* BTParse.framework in Frameworks */, + CE09FF8A0E39DEE200BDF413 /* SkimNotesBase.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2035,6 +2033,7 @@ F9022DE30758095000C3F701 /* AGRegex.framework */, F9ABEC9E086E11B500741FC5 /* BTParse.framework */, CE2BB5920E0BE1370090E848 /* FileView.framework */, + CE09FF7F0E39DE4E00BDF413 /* SkimNotesBase.framework */, ); name = "Embedded Frameworks"; sourceTree = "<group>"; @@ -2135,7 +2134,6 @@ CE6775150A8506A7003CFC58 /* NSDictionary_BDSKExtensions.m */, F9F5E20C0AE307C0007EBB31 /* NSError_BDSKExtensions.m */, F95CC0C1087F5378002C5694 /* NSFileManager_BDSKExtensions.m */, - F9E6C936099A8FEF00A8B97D /* NSFileManager_BDSKExtendedAttributes.m */, CE3255FE0A1748D0002D6E4C /* NSGeometry_BDSKExtensions.m */, CE573D2509F6A0300020EC16 /* NSIndexSet_BDSKExtensions.m */, CE0EB4420DCFDE8A0034DF92 /* NSInvocation_BDSKExtensions.m */, @@ -2291,7 +2289,6 @@ CE6FB32109DFFCB5005E3E14 /* BDSKSharingBrowser.m */, CE82B2D00D57AE0B00A2E8C5 /* BDSKSharingClient.m */, F92ED7CB09E0A93400A244D0 /* BDSKSharingServer.m */, - F92BACCD0BCBFEE0008D5BC3 /* BDSKSkimReader.m */, F9F78CD307D5320D004B68AF /* BDSKStringEncodingManager.m */, F9022C980758038000C3F701 /* BDSKTypeManager.m */, F9022CA30758038000C3F701 /* BDSKTypeSelectHelper.m */, @@ -2640,7 +2637,6 @@ F92ED7CA09E0A93400A244D0 /* BDSKSharingServer.h */, CEBA3F450A73CCAF00588BB7 /* BDSKSheetController.h */, F90C64040AC62B7B008B2DDA /* BDSKShellCommandFormatter.h */, - F92BACCC0BCBFEE0008D5BC3 /* BDSKSkimReader.h */, CEFDBDBB0AEA86BA009EE99D /* BDSKSmartGroup.h */, CE83E3A30D294EE300BB7AD8 /* BDSKSortCommand.h */, CE0ECDA80DE78619006EEDDB /* BDSKSpiresParser.h */, @@ -2728,7 +2724,6 @@ CE6775140A8506A7003CFC58 /* NSDictionary_BDSKExtensions.h */, F9F5E20B0AE307C0007EBB31 /* NSError_BDSKExtensions.h */, F95CC0C0087F5378002C5694 /* NSFileManager_BDSKExtensions.h */, - F9E6C935099A8FEF00A8B97D /* NSFileManager_BDSKExtendedAttributes.h */, CE3255FD0A1748D0002D6E4C /* NSGeometry_BDSKExtensions.h */, F9022C9C0758038000C3F701 /* NSImage_BDSKExtensions.h */, CE573D2409F6A0300020EC16 /* NSIndexSet_BDSKExtensions.h */, @@ -3008,12 +3003,12 @@ F9AF56360BEA4160009B16D5 /* PBXTargetDependency */, F9AF56380BEA4160009B16D5 /* PBXTargetDependency */, F9AF562C0BEA4160009B16D5 /* PBXTargetDependency */, + CE09FF880E39DE7400BDF413 /* PBXTargetDependency */, F90B13050C29900200144F1B /* PBXTargetDependency */, CEEBA84A0D749DB7000204B8 /* PBXTargetDependency */, F9AF56340BEA4160009B16D5 /* PBXTargetDependency */, F9EF0CE20B4EFC8F00A1F282 /* PBXTargetDependency */, CEEBA83F0D749CC9000204B8 /* PBXTargetDependency */, - CE7DC8DE0E0952E000D6D76D /* PBXTargetDependency */, ); name = BibDesk; productInstallPath = "$(HOME)/Applications"; @@ -3303,7 +3298,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - F94847450E23A7A20067EA9D /* skimnotes in Resources */, CE6C0CB90BEE4974007BF0B5 /* MainMenu.nib in Resources */, F9022CBF0758049200C3F701 /* ReadMe.nib in Resources */, F9022CC6075804A600C3F701 /* AutoFile.nib in Resources */, @@ -3789,7 +3783,6 @@ F9937E290AD826AA001D1DFB /* BDSKSpotlightView.m in Sources */, F9937E2A0AD826AB001D1DFB /* CIImage_BDSKExtensions.m in Sources */, F9937E2B0AD826AE001D1DFB /* NSBezierPath_CoreImageExtensions.m in Sources */, - F9937E2C0AD826AF001D1DFB /* NSFileManager_BDSKExtendedAttributes.m in Sources */, CE95AF180ADBE7C000CB20E7 /* BDSKTemplateObjectProxy.m in Sources */, CE7596000ADDB0E1009C1329 /* BDSKContainerView.m in Sources */, F9EA8FCB0ADE01F9005EFBE4 /* BDSKUpdateChecker.m in Sources */, @@ -3849,7 +3842,6 @@ F924FC310BC4322500672839 /* BDSKSearchButtonController.m in Sources */, F92405030BC5856900672839 /* BDSKLevelIndicatorCell.m in Sources */, F9936CC60BC746C300A32DC4 /* BDSKItemSearchIndexes.m in Sources */, - F92BACCF0BCBFEE0008D5BC3 /* BDSKSkimReader.m in Sources */, CE6C04450BEDFA2D007BF0B5 /* NSParagraphStyle_BDSKExtensions.m in Sources */, CE6C04810BEDFC96007BF0B5 /* NSLayoutManager_BDSKExtensions.m in Sources */, F9D0E5370BF92768001C6C22 /* BDSKMODSParser.m in Sources */, @@ -3904,10 +3896,10 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - CE7DC8DE0E0952E000D6D76D /* PBXTargetDependency */ = { + CE09FF880E39DE7400BDF413 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = skimnotes; - targetProxy = CE7DC8DD0E0952E000D6D76D /* PBXContainerItemProxy */; + name = SkimNotesBase; + targetProxy = CE09FF870E39DE7400BDF413 /* PBXContainerItemProxy */; }; CEEBA83F0D749CC9000204B8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -4559,6 +4551,10 @@ baseConfigurationReference = CE17EE7E0E24F27400DE06EA /* BibDesk-App.xcconfig */; buildSettings = { CURRENT_PROJECT_VERSION = 1203; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../../../BuildProducts/Debug\"", + ); VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; @@ -4568,6 +4564,10 @@ baseConfigurationReference = CE17EE7E0E24F27400DE06EA /* BibDesk-App.xcconfig */; buildSettings = { CURRENT_PROJECT_VERSION = 1203; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../../../BuildProducts/Debug\"", + ); VERSIONING_SYSTEM = "apple-generic"; }; name = Release; @@ -4577,6 +4577,10 @@ baseConfigurationReference = CE17EE7E0E24F27400DE06EA /* BibDesk-App.xcconfig */; buildSettings = { CURRENT_PROJECT_VERSION = 1203; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../../../BuildProducts/Debug\"", + ); GCC_PREPROCESSOR_DEFINITIONS = UNIT_TESTING; VERSIONING_SYSTEM = "apple-generic"; }; Deleted: trunk/bibdesk/NSFileManager_BDSKExtendedAttributes.h =================================================================== --- trunk/bibdesk/NSFileManager_BDSKExtendedAttributes.h 2008-07-25 10:09:19 UTC (rev 13547) +++ trunk/bibdesk/NSFileManager_BDSKExtendedAttributes.h 2008-07-25 11:28:16 UTC (rev 13548) @@ -1,207 +0,0 @@ -// -// NSFileManager_BDSKExtendedAttributes.h -// -// Created by Adam R. Maxwell on 05/12/05. -// Copyright 2005-2008 Adam R. Maxwell. All rights reserved. -// -/* - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - - Neither the name of Adam R. Maxwell nor the names of any contributors may be - used to endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY - WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <Cocoa/Cocoa.h> - -/*! - @category NSFileManager (BDSKExtendedAttributes) - @abstract Provides an Objective-C wrapper for the low-level BSD functions dealing with file attributes. - @discussion (comprehensive description) -*/ -@interface NSFileManager (BDSKExtendedAttributes) - -/*! - @method extendedAttributeNamesAtPath:traverseLink: - @abstract Return a list of extended attributes for the given file. - @discussion Calls <tt>listxattr(2)</tt> to determine all of the extended attributes, and returns them as - an array of NSString objects. Returns nil if an error occurs. - @param path Path to the object in the file system. - @param follow Follow symlinks (<tt>listxattr(2)</tt> does this by default, so typically you should pass YES). - @param error Error object describing the error if nil was returned. - @result Array of strings or nil. -*/ -- (NSArray *)extendedAttributeNamesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error; - -/*! - @method extendedAttributeNamed:atPath:traverseLink:error: - @abstract Return the extended attribute named <tt>attr</tt> for a given file. - @discussion Calls <tt>getxattr(2)</tt> to determine the extended attribute, and returns it as data. - @param attr The attribute name. - @param path Path to the object in the file system. - @param follow Follow symlinks (<tt>getxattr(2)</tt> does this by default, so typically you should pass YES). - @param error Error object describing the error if nil was returned. - @result Data object representing the extended attribute or nil if an error occurred. -*/ -- (NSData *)extendedAttributeNamed:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error; - -/*! - @method allExtendedAttributesAsStringsAtPath:traverseLink:error: - @abstract Returns all extended attributes for the given file, converting each to an NSString object. - @discussion (comprehensive description) - @param path (description) - @param follow (description) - @param error (description) - @result (description) -*/ -- (NSArray *)allExtendedAttributesAsStringsAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error; - -/*! - @method allExtendedAttributesAtPath:traverseLink:error: - @abstract Returns all extended attributes for the given file, each as an NSData object. - @discussion (comprehensive description) - @param path (description) - @param follow (description) - @param error (description) - @result (description) -*/ -- (NSArray *)allExtendedAttributesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error; - -/*! - @method propertyListFromExtendedAttributeNamed:atPath:traverseLink:error: - @abstract Returns a property list using NSPropertyListSerialization. - @discussion (comprehensive description) - @param attr (description) - @param path (description) - @param traverse (description) - @param outError (description) - @result (description) -*/ -- (id)propertyListFromExtendedAttributeNamed:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)traverse error:(NSError **)outError; - -/*! - @method setExtendedAttributeNamed:toValue:atPath:options:error: - @abstract Sets the value of attribute named <tt>attr</tt> to <tt>value</tt>, which is an NSData object. - @discussion Calls <tt>setxattr(2)</tt> to set the attributes for the file. - @param attr The attribute name. - @param value The value of the attribute as NSData. - @param path Path to the object in the file system. - @param options Dictionary containing three BOOL keys, or nil for default options of <tt>setxattr(2)</tt>. - The key strings are <tt>@"FollowLinks"</tt> to traverse symlinks, <tt>@"CreateOnly"</tt> to create, but - not replace the attribute, and <tt>@"ReplaceOnly"</tt> to replace, but not create the attribute. - @param error Error object describing the error if NO was returned. - @result Returns NO if an error occurred. -*/ -- (BOOL)setExtendedAttributeNamed:(NSString *)attr toValue:(NSData *)value atPath:(NSString *)path options:(NSDictionary *)options error:(NSError **)error; - -/*! - @method addExtendedAttributeNamed:withValue:atPath:error: - @abstract Adds the extended attribute named <tt>attr</tt> with a value of <tt>value</tt> to the given file. - Returns NO if an error occurred or the named attribute already exists. - @discussion (comprehensive description) - @param attr The attribute name. - @param value The value of the attribute as NSData. - @param path Path to the object in the file system. - @param error Error object describing the error if NO was returned. - @result Returns NO if an error occurred. - -*/ -- (BOOL)addExtendedAttributeNamed:(NSString *)attr withValue:(NSData *)value atPath:(NSString *)path error:(NSError **)error; - -/*! - @method addExtendedAttributeNamed:withStringValue:atPath:error: - @abstract Adds an NSString object as the specified attribute name. - @discussion (comprehensive description) - @param attr (description) - @param value (description) - @param path (description) - @param error (description) - @result (description) -*/ -- (BOOL)addExtendedAttributeNamed:(NSString *)attr withStringValue:(NSString *)value atPath:(NSString *)path error:(NSError **)error; - -/*! - @method setExtendedAttributeNamed:toPropertyListValue:atPath:options:error: - @abstract Sets the extended attribute named <tt>attr</tt> to the specified property list. The plist is converted to NSData using NSPropertyListSerialization. - @discussion (comprehensive description) - @param attr (description) - @param plist (description) - @param path (description) - @param options (description) - @param error (description) - @result (description) -*/ -- (BOOL)setExtendedAttributeNamed:(NSString *)attr toPropertyListValue:(id)plist atPath:(NSString *)path options:(NSDictionary *)options error:(NSError **)error; - - -/*! - @method replaceExtendedAttributeNamed:withValue:atPath:error: - @abstract Replaces the attributed name <tt>attr</tt> with a value of <tt>value</tt> for the given file. - Returns NO if an error occurred or the named attribute does not exist. - @discussion (comprehensive description) - @param attr The attribute name. - @param value The value of the attribute as NSData. - @param path Path to the object in the file system. - @param error Error object describing the error if NO was returned. - @result Returns NO if an error occurred. -*/ -- (BOOL)replaceExtendedAttributeNamed:(NSString *)attr withValue:(NSData *)value atPath:(NSString *)path error:(NSError **)error; - -/*! - @method replaceExtendedAttributeNamed:withStringValue:atPath:error: - @abstract Convenience for replacing string attributes on a file - @discussion (comprehensive description) - @param attr (description) - @param value (description) - @param path (description) - @param error (description) - @result (description) -*/ -- (BOOL)replaceExtendedAttributeNamed:(NSString *)attr withStringValue:(NSString *)value atPath:(NSString *)path error:(NSError **)error; - -/*! - @method removeExtendedAttribute:atPath:followLinks:error: - @abstract Removes the given attribute <tt>attr</tt> from the named file at <tt>path</tt>. - @discussion Calls <tt>removexattr(2)</tt> to remove the given attribute from the file. - @param attr The attribute name. - @param path Path to the object in the file system. - @param follow Follow symlinks (<tt>removexattr(2)</tt> does this by default, so typically you should pass YES). - @param error Error object describing the error if nil was returned. - @result Returns NO if an error occurred. -*/ -- (BOOL)removeExtendedAttribute:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error; - -/*! - @method removeAllExtendedAttributesAtPath:traverseLink:error: - @abstract Removes all extended attributes at the specified path. - @discussion (comprehensive description) - @param path (description) - @param follow (description) - @param error (description) - @result (description) -*/ -- (BOOL)removeAllExtendedAttributesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error; - -// methods to get/set com.apple.TextEncoding attribute for 10.5 compatibility -// apparently only used by NSString methods with the usedEncoding: parameter -- (NSStringEncoding)appleStringEncodingAtPath:(NSString *)path error:(NSError **)error; -- (BOOL)setAppleStringEncoding:(NSStringEncoding)nsEncoding atPath:(NSString *)path error:(NSError **)error; - - -@end Deleted: trunk/bibdesk/NSFileManager_BDSKExtendedAttributes.m =================================================================== --- trunk/bibdesk/NSFileManager_BDSKExtendedAttributes.m 2008-07-25 10:09:19 UTC (rev 13547) +++ trunk/bibdesk/NSFileManager_BDSKExtendedAttributes.m 2008-07-25 11:28:16 UTC (rev 13548) @@ -1,480 +0,0 @@ -// -// NSFileManager_BDSKExtendedAttributes.m -// -// Created by Adam R. Maxwell on 05/12/05. -// Copyright 2005-2008 Adam R. Maxwell. All rights reserved. -// -/* - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - - Neither the name of Adam R. Maxwell nor the names of any contributors may be - used to endorse or promote products derived from this software without specific - prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY - EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY - WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "NSFileManager_BDSKExtendedAttributes.h" -#import "NSError_BDSKExtensions.h" -#include <sys/xattr.h> - -// private function to print error messages -static NSString *xattrError(int err, const char *path); - -@implementation NSFileManager (BDSKExtendedAttributes) - -- (BOOL)setAppleStringEncoding:(NSStringEncoding)nsEncoding atPath:(NSString *)path error:(NSError **)error; -{ - NSParameterAssert(0 != nsEncoding); - CFStringEncoding cfEncoding = CFStringConvertNSStringEncodingToEncoding(nsEncoding); - CFStringRef name = CFStringConvertEncodingToIANACharSetName(cfEncoding); - NSString *encodingString = [NSString stringWithFormat:@"%@;%d", name, cfEncoding]; - return [self setExtendedAttributeNamed:@"com.apple.TextEncoding" toValue:[encodingString dataUsingEncoding:NSUTF8StringEncoding] atPath:path options:nil error:error]; -} - -- (NSStringEncoding)appleStringEncodingAtPath:(NSString *)path error:(NSError **)error; -{ - NSData *eaData = [self extendedAttributeNamed:@"com.apple.TextEncoding" atPath:path traverseLink:YES error:error]; - NSString *encodingString = nil; - - // IANA charset names should be ASCII, but utf-8 is compatible - /* - MACINTOSH;0 - UTF-8;134217984 - UTF-8; - ;3071 - */ - - if (nil != eaData) - encodingString = [[[NSString alloc] initWithData:eaData encoding:NSUTF8StringEncoding] autorelease]; - - // this is not a valid NSStringEncoding - NSStringEncoding nsEncoding = 0; - NSArray *array = nil; - if (encodingString) - array = [encodingString componentsSeparatedByString:@";"]; - - // currently only two elements, but may become arbitrarily long in future - if ([array count] >= 2) { - CFStringEncoding cfEncoding = [[array objectAtIndex:1] unsignedIntValue]; - nsEncoding = CFStringConvertEncodingToNSStringEncoding(cfEncoding); - } - else if ([array count] > 0) { - CFStringRef name = (CFStringRef)[array objectAtIndex:0]; - CFStringEncoding cfEncoding = CFStringConvertIANACharSetNameToEncoding(name); - nsEncoding = CFStringConvertEncodingToNSStringEncoding(cfEncoding); - } - else if (NULL != error && nil != encodingString /* we read something from EA, but couldn't understand it */) { - *error = [NSError mutableLocalErrorWithCode:kBDSKStringEncodingError localizedDescription:NSLocalizedString(@"Unable to interpret com.apple.TextEncoding", @"")]; - } - - return nsEncoding; -} - -- (NSArray *)extendedAttributeNamesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error; -{ - const char *fsPath = [self fileSystemRepresentationWithPath:path]; - NSString *errMsg; - int err; - - int xopts; - - if(follow) - xopts = 0; - else - xopts = XATTR_NOFOLLOW; - - ssize_t bufSize; - ssize_t status; - - // call with NULL as attr name to get the size of the returned buffer - status = listxattr(fsPath, NULL, 0, xopts); - - if(status == -1){ - err = errno; - errMsg = xattrError(err, fsPath); - if(error) *error = [NSError errorWithDomain:NSPOSIXErrorDomain code:err userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, errMsg, NSLocalizedDescriptionKey, nil]]; - return nil; - } - - NSZone *zone = NSDefaultMallocZone(); - bufSize = status; - char *namebuf = (char *)NSZoneMalloc(zone, sizeof(char) * bufSize); - - // see comment in extendedAttributeNamed:... - if (NULL == namebuf) { - NSLog(@"-[%@ %@]: failed to malloc %ld bytes", [self class], NSStringFromSelector(_cmd), bufSize); - errMsg = NSLocalizedString(@"Unable to allocate memory for extended attribute names", @""); - if(error) *error = [NSError errorWithDomain:NSPOSIXErrorDomain code:errno userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, errMsg, NSLocalizedDescriptionKey, nil]]; - return nil; - } - status = listxattr(fsPath, namebuf, bufSize, xopts); - - if(status == -1){ - err = errno; - errMsg = xattrError(err, fsPath); - if(error) *error = [NSError errorWithDomain:NSPOSIXErrorDomain code:err userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, errMsg, NSLocalizedDescriptionKey, nil]]; - NSZoneFree(zone, namebuf); - return nil; - } - - int idx, start = 0; - - NSString *attribute = nil; - NSMutableArray *attrs = [NSMutableArray array]; - - // the names are separated by NULL characters - for(idx = 0; idx < bufSize; idx++){ - if(namebuf[idx] == '\0'){ - attribute = [[NSString alloc] initWithBytes:&namebuf[start] length:(idx - start) encoding:NSUTF8StringEncoding]; - if(attribute) [attrs addObject:attribute]; - [attribute release]; - attribute = nil; - start = idx + 1; - } - } - - NSZoneFree(zone, namebuf); - return attrs; -} - -- (NSArray *)allExtendedAttributesAsStringsAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error; -{ - NSError *anError = nil; - NSArray *dataAttrs = [self allExtendedAttributesAtPath:path traverseLink:follow error:&anError]; - if(dataAttrs == nil){ - if(error) *error = anError; - return nil; - } - - NSMutableArray *array = [NSMutableArray arrayWithCapacity:[dataAttrs count]]; - NSEnumerator *e = [dataAttrs objectEnumerator]; - NSData *data = nil; - NSString *string = nil; - - while(data = [e nextObject]){ - string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; - if(string != nil){ - [array addObject:string]; - [string release]; - } else { - if(error) *error = [NSError errorWithDomain:NSCocoaErrorDomain code:0 userInfo:[NSDictionary dictionaryWithObjectsAndKeys:path, NSFilePathErrorKey, [NSNumber numberWithInt:NSUTF8StringEncoding], NSStringEncodingErrorKey, NSLocalizedString(@"unable to convert to a string", @"Error description"), NSLocalizedDescriptionKey, nil]]; - return nil; - } - } - - return array; -} - -- (NSArray *)allExtendedAttributesAtPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error; -{ - NSError *anError = nil; - NSArray *attrNames = [self extendedAttributeNamesAtPath:path traverseLink:follow error:&anError]; - if(attrNames == nil){ - if(error) *error = a... [truncated message content] |
From: <ho...@us...> - 2008-08-03 14:58:04
|
Revision: 13567 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13567&view=rev Author: hofman Date: 2008-08-03 14:58:13 +0000 (Sun, 03 Aug 2008) Log Message: ----------- Don't copy keys in multi value dictionary. Be consistent with the behavior in the sets. Modified Paths: -------------- trunk/bibdesk/BDSKMultiValueDictionary.h trunk/bibdesk/BDSKMultiValueDictionary.m Modified: trunk/bibdesk/BDSKMultiValueDictionary.h =================================================================== --- trunk/bibdesk/BDSKMultiValueDictionary.h 2008-08-03 11:58:11 UTC (rev 13566) +++ trunk/bibdesk/BDSKMultiValueDictionary.h 2008-08-03 14:58:13 UTC (rev 13567) @@ -40,8 +40,8 @@ @interface BDSKMultiValueDictionary : NSObject { - NSMutableDictionary *dictionary; - NSMutableDictionary *inverseDictionary; + CFMutableDictionaryRef dictionary; + CFMutableDictionaryRef inverseDictionary; } - (unsigned int)keyCount; Modified: trunk/bibdesk/BDSKMultiValueDictionary.m =================================================================== --- trunk/bibdesk/BDSKMultiValueDictionary.m 2008-08-03 11:58:11 UTC (rev 13566) +++ trunk/bibdesk/BDSKMultiValueDictionary.m 2008-08-03 14:58:13 UTC (rev 13567) @@ -43,40 +43,40 @@ - (id)init { if (self = [super init]) { - dictionary = [[NSMutableDictionary alloc] init]; - inverseDictionary = [[NSMutableDictionary alloc] init]; + dictionary = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + inverseDictionary = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); } return self; } - (void)dealloc { - [dictionary release]; - [inverseDictionary release]; + CFRelease(dictionary); + CFRelease(inverseDictionary); [super dealloc]; } - (NSString *)description { - return [dictionary description]; + return [(id)dictionary description]; } - (NSMutableSet *)_setForValue:(id)aValue inverse:(BOOL)inverse create:(BOOL)create { - NSMutableDictionary *dict = inverse ? inverseDictionary : dictionary; - NSMutableSet *value = [dict objectForKey:aValue]; + CFMutableDictionaryRef dict = inverse ? inverseDictionary : dictionary; + NSMutableSet *value = (NSMutableSet *)CFDictionaryGetValue(dict, aValue); if (create && value == nil) { value = [[NSMutableSet alloc] init]; - [dict setObject:value forKey:aValue]; + CFDictionaryAddValue(dict, aValue, value); [value release]; } return value; } - (unsigned int)keyCount { - return [dictionary count]; + return CFDictionaryGetCount(dictionary); } - (unsigned int)objectCount { - return [inverseDictionary count]; + return CFDictionaryGetCount(inverseDictionary); } - (unsigned int)countForKey:(id)aKey { @@ -147,18 +147,18 @@ if (objectSet) { [objectSet removeObject:anObject]; if ([objectSet count] == 0) - [dictionary removeObjectForKey:aKey]; + CFDictionaryRemoveValue(dictionary, aKey); } if (keySet) { [keySet removeObject:anObject]; if ([keySet count] == 0) - [inverseDictionary removeObjectForKey:anObject]; + CFDictionaryRemoveValue(inverseDictionary, anObject); } } - (void)removeAllObjects { - [dictionary removeAllObjects]; - [inverseDictionary removeAllObjects]; + CFDictionaryRemoveAllValues(dictionary); + CFDictionaryRemoveAllValues(inverseDictionary); } static void addEntryFunction(const void *key, const void *value, void *context) { @@ -171,9 +171,9 @@ ctxt.dict = self; ctxt.value = nil; ctxt.inverse = NO; - CFDictionaryApplyFunction((CFDictionaryRef)(otherDictionary->dictionary), addEntryFunction, &ctxt); + CFDictionaryApplyFunction(otherDictionary->dictionary, addEntryFunction, &ctxt); ctxt.inverse = YES; - CFDictionaryApplyFunction((CFDictionaryRef)(otherDictionary->inverseDictionary), addEntryFunction, &ctxt); + CFDictionaryApplyFunction(otherDictionary->inverseDictionary, addEntryFunction, &ctxt); } @end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-04 17:47:00
|
Revision: 13570 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13570&view=rev Author: hofman Date: 2008-08-04 17:46:46 +0000 (Mon, 04 Aug 2008) Log Message: ----------- Rename tag classes to include template in their name. typedef names for type enums. Modified Paths: -------------- trunk/bibdesk/BDSKTemplateDocument.m trunk/bibdesk/BDSKTemplateParser.h trunk/bibdesk/BDSKTemplateParser.m trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj Added Paths: ----------- trunk/bibdesk/BDSKTemplateTag.h trunk/bibdesk/BDSKTemplateTag.m Removed Paths: ------------- trunk/bibdesk/BDSKTag.h trunk/bibdesk/BDSKTag.m Deleted: trunk/bibdesk/BDSKTag.h =================================================================== --- trunk/bibdesk/BDSKTag.h 2008-08-04 13:04:39 UTC (rev 13569) +++ trunk/bibdesk/BDSKTag.h 2008-08-04 17:46:46 UTC (rev 13570) @@ -1,155 +0,0 @@ -// -// BDSKTag.h -// BibDesk -// -// Created by Christiaan Hofman on 10/12/07. -/* - This software is Copyright (c) 2007-2008 - Christiaan Hofman. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Christiaan Hofman nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import <Cocoa/Cocoa.h> - -enum { - BDSKValueTagType, - BDSKCollectionTagType, - BDSKConditionTagType, - BDSKTextTagType -}; - -@interface BDSKTag : NSObject { -} -- (int)type; -@end - -#pragma mark - - -@interface BDSKValueTag : BDSKTag { - NSString *keyPath; -} - -- (id)initWithKeyPath:(NSString *)aKeyPath; - -- (NSString *)keyPath; - -@end - -#pragma mark - - -@interface BDSKRichValueTag : BDSKValueTag { - NSDictionary *attributes; -} - -- (id)initWithKeyPath:(NSString *)aKeyPath attributes:(NSDictionary *)anAttributes; - -- (NSDictionary *)attributes; - -@end - -#pragma mark - - -@interface BDSKCollectionTag : BDSKValueTag { - NSString *itemTemplateString; - NSString *separatorTemplateString; - NSMutableArray *itemTemplate; - NSMutableArray *separatorTemplate; -} - -- (id)initWithKeyPath:(NSString *)aKeyPath itemTemplateString:(NSString *)anItemTemplateString separatorTemplateString:(NSString *)aSeparatorTemplateString; - -- (NSArray *)itemTemplate; -- (NSArray *)separatorTemplate; - -@end - -#pragma mark - - -@interface BDSKRichCollectionTag : BDSKValueTag { - NSAttributedString *itemTemplateAttributedString; - NSAttributedString *separatorTemplateAttributedString; - NSMutableArray *itemTemplate; - NSMutableArray *separatorTemplate; -} - -- (id)initWithKeyPath:(NSString *)aKeyPath itemTemplateAttributedString:(NSAttributedString *)anItemTemplateString separatorTemplateAttributedString:(NSAttributedString *)aSeparatorTemplateString; - -- (NSArray *)itemTemplate; -- (NSArray *)separatorTemplate; - -@end - -#pragma mark - - -@interface BDSKConditionTag : BDSKValueTag { - int matchType; - NSMutableArray *subtemplates; - NSArray *matchStrings; -} - -- (id)initWithKeyPath:(NSString *)aKeyPath matchType:(int)aMatchType matchStrings:(NSArray *)aMatchStrings subtemplates:(NSArray *)aSubtemplates; - -- (int)matchType; -- (NSArray *)matchStrings; -- (NSArray *)subtemplates; -- (NSArray *)subtemplateAtIndex:(unsigned)idx; - -@end - -#pragma mark - - -@interface BDSKRichConditionTag : BDSKConditionTag -@end - -#pragma mark - - -@interface BDSKTextTag : BDSKTag { - NSString *text; -} - -- (id)initWithText:(NSString *)aText; - -- (NSString *)text; -- (void)setText:(NSString *)newText; - -@end - -#pragma mark - - -@interface BDSKRichTextTag : BDSKTag { - NSAttributedString *attributedText; -} - -- (id)initWithAttributedText:(NSAttributedString *)anAttributedText; - -- (NSAttributedString *)attributedText; -- (void)setAttributedText:(NSAttributedString *)newAttributedText; - -@end Deleted: trunk/bibdesk/BDSKTag.m =================================================================== --- trunk/bibdesk/BDSKTag.m 2008-08-04 13:04:39 UTC (rev 13569) +++ trunk/bibdesk/BDSKTag.m 2008-08-04 17:46:46 UTC (rev 13570) @@ -1,287 +0,0 @@ -// -// BDSKTag.m -// BibDesk -// -// Created by Christiaan Hofman on 10/12/07. -/* - This software is Copyright (c) 2007-2008 - Christiaan Hofman. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Christiaan Hofman nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#import "BDSKTag.h" -#import "BDSKTemplateParser.h" - - -@implementation BDSKTag -- (int)type { return -1; } -@end - -#pragma mark - - -@implementation BDSKValueTag - -- (id)initWithKeyPath:(NSString *)aKeyPath { - if (self = [super init]) - keyPath = [aKeyPath copy]; - return self; -} - -- (void)dealloc { - [keyPath release]; - [super dealloc]; -} - -- (int)type { return BDSKValueTagType; } - -- (NSString *)keyPath { - return keyPath; -} - -@end - -#pragma mark - - -@implementation BDSKRichValueTag - -- (id)initWithKeyPath:(NSString *)aKeyPath attributes:(NSDictionary *)anAttributes { - if (self = [super initWithKeyPath:aKeyPath]) { - attributes = [anAttributes copy]; - } - return self; -} - -- (void)dealloc { - [attributes release]; - [super dealloc]; -} - -- (NSDictionary *)attributes { - return attributes; -} - -@end - -#pragma mark - - -@implementation BDSKCollectionTag - -- (id)initWithKeyPath:(NSString *)aKeyPath itemTemplateString:(NSString *)anItemTemplateString separatorTemplateString:(NSString *)aSeparatorTemplateString { - if (self = [super initWithKeyPath:aKeyPath]) { - itemTemplateString = [anItemTemplateString retain]; - separatorTemplateString = [aSeparatorTemplateString retain]; - itemTemplate = nil; - separatorTemplate = nil; - } - return self; -} - -- (void)dealloc { - [itemTemplateString release]; - [separatorTemplateString release]; - [itemTemplate release]; - [separatorTemplate release]; - [super dealloc]; -} - -- (int)type { return BDSKCollectionTagType; } - -- (NSArray *)itemTemplate { - if (itemTemplate == nil && itemTemplateString) - itemTemplate = [[BDSKTemplateParser arrayByParsingTemplateString:itemTemplateString] retain]; - return itemTemplate; -} - -- (NSArray *)separatorTemplate { - if (separatorTemplate == nil && separatorTemplateString) - separatorTemplate = [[BDSKTemplateParser arrayByParsingTemplateString:separatorTemplateString] retain]; - return separatorTemplate; -} - -@end - -#pragma mark - - -@implementation BDSKRichCollectionTag - -- (id)initWithKeyPath:(NSString *)aKeyPath itemTemplateAttributedString:(NSAttributedString *)anItemTemplateString separatorTemplateAttributedString:(NSAttributedString *)aSeparatorTemplateString { - if (self = [super initWithKeyPath:aKeyPath]) { - itemTemplateAttributedString = [anItemTemplateString retain]; - separatorTemplateAttributedString = [aSeparatorTemplateString retain]; - itemTemplate = nil; - separatorTemplate = nil; - } - return self; -} - -- (void)dealloc { - [itemTemplateAttributedString release]; - [separatorTemplateAttributedString release]; - [itemTemplate release]; - [separatorTemplate release]; - [super dealloc]; -} - -- (int)type { return BDSKCollectionTagType; } - -- (NSArray *)itemTemplate { - if (itemTemplate == nil && itemTemplateAttributedString) - itemTemplate = [[BDSKTemplateParser arrayByParsingTemplateAttributedString:itemTemplateAttributedString] retain]; - return itemTemplate; -} - -- (NSArray *)separatorTemplate { - if (separatorTemplate == nil && separatorTemplateAttributedString) - separatorTemplate = [[BDSKTemplateParser arrayByParsingTemplateAttributedString:separatorTemplateAttributedString] retain]; - return separatorTemplate; -} - -@end - -#pragma mark - - -@implementation BDSKConditionTag - -- (id)initWithKeyPath:(NSString *)aKeyPath matchType:(int)aMatchType matchStrings:(NSArray *)aMatchStrings subtemplates:(NSArray *)aSubtemplates { - if (self = [super initWithKeyPath:aKeyPath]) { - matchType = aMatchType; - matchStrings = [aMatchStrings copy]; - subtemplates = [aSubtemplates mutableCopy]; - } - return self; -} - -- (void)dealloc { - [subtemplates release]; - [matchStrings release]; - [super dealloc]; -} - -- (int)type { return BDSKConditionTagType; } - -- (int)matchType { - return matchType; -} - -- (NSArray *)subtemplates { - return subtemplates; -} - -- (NSArray *)matchStrings { - return matchStrings; -} - -- (NSArray *)subtemplateAtIndex:(unsigned)idx { - id subtemplate = [subtemplates objectAtIndex:idx]; - if ([subtemplate isKindOfClass:[NSArray class]] == NO) { - subtemplate = [[BDSKTemplateParser arrayByParsingTemplateString:subtemplate] retain]; - [subtemplates replaceObjectAtIndex:idx withObject:subtemplate]; - } - return subtemplate; -} - -@end - -#pragma mark - - -@implementation BDSKRichConditionTag - -- (NSArray *)subtemplateAtIndex:(unsigned)idx { - id subtemplate = [subtemplates objectAtIndex:idx]; - if ([subtemplate isKindOfClass:[NSArray class]] == NO) { - subtemplate = [[BDSKTemplateParser arrayByParsingTemplateAttributedString:subtemplate] retain]; - [subtemplates replaceObjectAtIndex:idx withObject:subtemplate]; - } - return subtemplate; -} - -@end - -#pragma mark - - -@implementation BDSKTextTag - -- (id)initWithText:(NSString *)aText { - if (self = [super init]) { - text = [aText retain]; - } - return self; -} - -- (void)dealloc { - [text release]; - [super dealloc]; -} - -- (int)type { return BDSKTextTagType; } - -- (NSString *)text { - return text; -} - -- (void)setText:(NSString *)newText { - if (text != newText) { - [text release]; - text = [newText retain]; - } -} - -@end - -#pragma mark - - -@implementation BDSKRichTextTag - -- (id)initWithAttributedText:(NSAttributedString *)anAttributedText { - if (self = [super init]) { - attributedText = [anAttributedText retain]; - } - return self; -} - -- (void)dealloc { - [attributedText release]; - [super dealloc]; -} - -- (int)type { return BDSKTextTagType; } - -- (NSAttributedString *)attributedText { - return attributedText; -} - -- (void)setAttributedText:(NSAttributedString *)newAttributedText { - if (attributedText != newAttributedText) { - [attributedText release]; - attributedText = [newAttributedText retain]; - } -} - -@end Modified: trunk/bibdesk/BDSKTemplateDocument.m =================================================================== --- trunk/bibdesk/BDSKTemplateDocument.m 2008-08-04 13:04:39 UTC (rev 13569) +++ trunk/bibdesk/BDSKTemplateDocument.m 2008-08-04 17:46:46 UTC (rev 13570) @@ -45,7 +45,7 @@ #import "BDSKFieldSheetController.h" #import "NSWindowController_BDSKExtensions.h" #import "BDSKTemplateParser.h" -#import "BDSKTag.h" +#import "BDSKTemplateTag.h" #import "NSString_BDSKExtensions.h" #import <OmniBase/OBUtilities.h> @@ -82,9 +82,9 @@ - (void)handleTemplateDidChangeNotification:(NSNotification *)notification; - (NSDictionary *)convertPubTemplate:(NSArray *)templateArray defaultFont:(NSFont *)defaultFont; - (NSArray *)convertItemTemplate:(NSArray *)templateArray defaultFont:(NSFont *)defaultFont; -- (NSArray *)tokensForTextTag:(BDSKTag *)tag allowText:(BOOL)allowText defaultFont:(NSFont *)defaultFont; -- (id)tokenForConditionTag:(BDSKConditionTag *)tag defaultFont:(NSFont *)defaultFont; -- (id)tokenForValueTag:(BDSKValueTag *)tag defaultFont:(NSFont *)defaultFont; +- (NSArray *)tokensForTextTag:(BDSKTemplateTag *)tag allowText:(BOOL)allowText defaultFont:(NSFont *)defaultFont; +- (id)tokenForConditionTag:(BDSKConditionTemplateTag *)tag defaultFont:(NSFont *)defaultFont; +- (id)tokenForValueTag:(BDSKValueTemplateTag *)tag defaultFont:(NSFont *)defaultFont; - (NSString *)propertyForKey:(NSString *)key tokenType:(int)type; - (void)setFont:(NSFont *)font ofToken:(BDSKToken *)token defaultFont:(NSFont *)defaultFont; @end @@ -1213,17 +1213,17 @@ - (NSDictionary *)convertPubTemplate:(NSArray *)templateArray defaultFont:(NSFont *)defaultFont { NSMutableDictionary *result = [NSMutableDictionary dictionary]; NSArray *itemTemplate; - BDSKTag *tag = [templateArray count] ? [templateArray objectAtIndex:0] : nil; + BDSKTemplateTag *tag = [templateArray count] ? [templateArray objectAtIndex:0] : nil; - if ([tag type] == BDSKConditionTagType && [[(BDSKConditionTag *)tag keyPath] isEqualToString:@"pubType"]) { - if ([(BDSKConditionTag *)tag matchType] != BDSKConditionTagMatchEqual) + if ([tag type] == BDSKConditionTemplateTagType && [[(BDSKConditionTemplateTag *)tag keyPath] isEqualToString:@"pubType"]) { + if ([(BDSKConditionTemplateTag *)tag matchType] != BDSKTemplateTagMatchEqual) return nil; - NSArray *matchStrings = [(BDSKConditionTag *)tag matchStrings]; - unsigned int i = 0, keyCount = [matchStrings count], count = [[(BDSKConditionTag *)tag subtemplates] count]; + NSArray *matchStrings = [(BDSKConditionTemplateTag *)tag matchStrings]; + unsigned int i = 0, keyCount = [matchStrings count], count = [[(BDSKConditionTemplateTag *)tag subtemplates] count]; for (i = 0; i < count; i++) { - if (itemTemplate = [self convertItemTemplate:[(BDSKConditionTag *)tag subtemplateAtIndex:i] defaultFont:defaultFont]) + if (itemTemplate = [self convertItemTemplate:[(BDSKConditionTemplateTag *)tag subtemplateAtIndex:i] defaultFont:defaultFont]) [result setObject:itemTemplate forKey:i < keyCount ? [matchStrings objectAtIndex:i] : @""]; else return nil; } @@ -1239,23 +1239,23 @@ - (NSArray *)convertItemTemplate:(NSArray *)templateArray defaultFont:(NSFont *)defaultFont { NSMutableArray *result = [NSMutableArray array]; NSEnumerator *tagEnum = [templateArray objectEnumerator]; - BDSKTag *tag; + BDSKTemplateTag *tag; id token; while (tag = [tagEnum nextObject]) { - switch ([(BDSKTag *)tag type]) { - case BDSKTextTagType: + switch ([(BDSKTemplateTag *)tag type]) { + case BDSKTextTemplateTagType: if (token = [self tokensForTextTag:tag allowText:YES defaultFont:defaultFont]) [result addObjectsFromArray:token]; else return nil; break; - case BDSKValueTagType: - if (token = [self tokenForValueTag:(BDSKValueTag *)tag defaultFont:defaultFont]) + case BDSKValueTemplateTagType: + if (token = [self tokenForValueTag:(BDSKValueTemplateTag *)tag defaultFont:defaultFont]) [result addObject:token]; else return nil; break; - case BDSKConditionTagType: - if (token = [self tokenForConditionTag:(BDSKConditionTag *)tag defaultFont:defaultFont]) + case BDSKConditionTemplateTagType: + if (token = [self tokenForConditionTag:(BDSKConditionTemplateTag *)tag defaultFont:defaultFont]) [result addObject:token]; else return nil; break; @@ -1267,10 +1267,10 @@ return result; } -- (NSArray *)tokensForTextTag:(BDSKTag *)tag allowText:(BOOL)allowText defaultFont:(NSFont *)defaultFont { +- (NSArray *)tokensForTextTag:(BDSKTemplateTag *)tag allowText:(BOOL)allowText defaultFont:(NSFont *)defaultFont { NSMutableArray *tokens = [NSMutableArray array]; if (defaultFont) { - NSAttributedString *text = [(BDSKRichTextTag *)tag attributedText]; + NSAttributedString *text = [(BDSKRichTextTemplateTag *)tag attributedText]; unsigned int length = [text length]; NSRange range = NSMakeRange(0, 0); @@ -1278,7 +1278,7 @@ id token; NSFont *font = [text attribute:NSFontAttributeName atIndex:range.location longestEffectiveRange:&range inRange:NSMakeRange(range.location, length - range.location)]; if (allowText && [font isEqual:defaultFont]) { - token = [[(BDSKRichTextTag *)tag attributedText] string]; + token = [[(BDSKRichTextTemplateTag *)tag attributedText] string]; } else { token = [[[BDSKTextToken alloc] initWithTitle:[text string]] autorelease]; [self setFont:font ofToken:token defaultFont:defaultFont]; @@ -1286,23 +1286,23 @@ [tokens addObject:token]; } } else if (allowText) { - [tokens addObject:[(BDSKTextTag *)tag text]]; + [tokens addObject:[(BDSKTextTemplateTag *)tag text]]; } else { - [tokens addObject:[[[BDSKTextToken alloc] initWithTitle:[(BDSKTextTag *)tag text]] autorelease]]; + [tokens addObject:[[[BDSKTextToken alloc] initWithTitle:[(BDSKTextTemplateTag *)tag text]] autorelease]]; } return tokens; } -- (id)tokenForConditionTag:(BDSKConditionTag *)tag defaultFont:(NSFont *)defaultFont { +- (id)tokenForConditionTag:(BDSKConditionTemplateTag *)tag defaultFont:(NSFont *)defaultFont { int count = [[tag subtemplates] count]; - if ([(BDSKConditionTag *)tag matchType] != BDSKConditionTagMatchNotEmpty || count > 2) + if ([(BDSKConditionTemplateTag *)tag matchType] != BDSKTemplateTagMatchOther || count > 2) return nil; NSArray *nonemptyTemplate = [tag subtemplateAtIndex:0]; NSArray *emptyTemplate = count > 1 ? [tag subtemplateAtIndex:1] : nil; id token = nil; - if ([nonemptyTemplate count] == 1 && [(BDSKTag *)[nonemptyTemplate lastObject] type] == BDSKTextTagType) { + if ([nonemptyTemplate count] == 1 && [(BDSKTemplateTag *)[nonemptyTemplate lastObject] type] == BDSKTextTemplateTagType) { NSArray *keys = [[tag keyPath] componentsSeparatedByString:@"."]; NSArray *tokens; if ([keys count] != 2 || [[keys objectAtIndex:0] isEqualToString:@"fields"] == NO) @@ -1313,29 +1313,29 @@ [token setField:[keys lastObject]]; if ([emptyTemplate count]) { id textTag = [emptyTemplate lastObject]; - if ([(BDSKTag *)textTag type] != BDSKTextTagType) + if ([(BDSKTemplateTag *)textTag type] != BDSKTextTemplateTagType) return nil; - [token setAltText:defaultFont ? [[(BDSKRichTextTag *)textTag attributedText] string] : [(BDSKTextTag *)textTag text]]; + [token setAltText:defaultFont ? [[(BDSKRichTextTemplateTag *)textTag attributedText] string] : [(BDSKTextTemplateTag *)textTag text]]; } } else return nil; } else return nil; } else if ([emptyTemplate count] == 0 && [nonemptyTemplate count] < 4) { int i = 0; - BDSKTag *subtag = [nonemptyTemplate objectAtIndex:i]; + BDSKTemplateTag *subtag = [nonemptyTemplate objectAtIndex:i]; NSString *prefix = nil, *suffix = nil; count = [nonemptyTemplate count]; - if ([subtag type] == BDSKTextTagType) { - prefix = defaultFont ? [[(BDSKRichTextTag *)subtag attributedText] string] : [(BDSKTextTag *)subtag text]; + if ([subtag type] == BDSKTextTemplateTagType) { + prefix = defaultFont ? [[(BDSKRichTextTemplateTag *)subtag attributedText] string] : [(BDSKTextTemplateTag *)subtag text]; subtag = ++i < count ? [nonemptyTemplate objectAtIndex:i] : nil; } - if ([subtag type] == BDSKValueTagType && [[(BDSKValueTag *)subtag keyPath] isEqualToString:[tag keyPath]]) { - token = [self tokenForValueTag:(BDSKValueTag *)subtag defaultFont:defaultFont]; + if ([subtag type] == BDSKValueTemplateTagType && [[(BDSKValueTemplateTag *)subtag keyPath] isEqualToString:[tag keyPath]]) { + token = [self tokenForValueTag:(BDSKValueTemplateTag *)subtag defaultFont:defaultFont]; subtag = ++i < count ? [nonemptyTemplate objectAtIndex:i] : nil; } else return nil; if (subtag) { - if ([subtag type] == BDSKTextTagType) { - suffix = defaultFont ? [[(BDSKRichTextTag *)subtag attributedText] string] : [(BDSKTextTag *)subtag text]; + if ([subtag type] == BDSKTextTemplateTagType) { + suffix = defaultFont ? [[(BDSKRichTextTemplateTag *)subtag attributedText] string] : [(BDSKTextTemplateTag *)subtag text]; } else return nil; } if (prefix) @@ -1347,7 +1347,7 @@ return token; } -- (id)tokenForValueTag:(BDSKValueTag *)tag defaultFont:(NSFont *)defaultFont { +- (id)tokenForValueTag:(BDSKValueTemplateTag *)tag defaultFont:(NSFont *)defaultFont { NSArray *keys = [[tag keyPath] componentsSeparatedByString:@"."]; NSString *key = [keys count] ? [keys objectAtIndex:0] : nil; BDSKToken *token = nil; @@ -1392,7 +1392,7 @@ } if (defaultFont) { - NSFont *font = [[(BDSKRichValueTag *)tag attributes] objectForKey:NSFontAttributeName]; + NSFont *font = [[(BDSKRichValueTemplateTag *)tag attributes] objectForKey:NSFontAttributeName]; [self setFont:font ofToken:token defaultFont:defaultFont]; } Modified: trunk/bibdesk/BDSKTemplateParser.h =================================================================== --- trunk/bibdesk/BDSKTemplateParser.h 2008-08-04 13:04:39 UTC (rev 13569) +++ trunk/bibdesk/BDSKTemplateParser.h 2008-08-04 17:46:46 UTC (rev 13570) @@ -39,14 +39,6 @@ #import <Cocoa/Cocoa.h> -enum { - BDSKConditionTagMatchNotEmpty, - BDSKConditionTagMatchEqual, - BDSKConditionTagMatchContain, - BDSKConditionTagMatchSmaller, - BDSKConditionTagMatchSmallerOrEqual, -}; - @protocol BDSKTemplateParserDelegate - (void)templateParserWillParseTemplate:(id)template usingObject:(id)object isAttributed:(BOOL)flag; Modified: trunk/bibdesk/BDSKTemplateParser.m =================================================================== --- trunk/bibdesk/BDSKTemplateParser.m 2008-08-04 13:04:39 UTC (rev 13569) +++ trunk/bibdesk/BDSKTemplateParser.m 2008-08-04 17:46:46 UTC (rev 13570) @@ -37,7 +37,7 @@ */ #import "BDSKTemplateParser.h" -#import "BDSKTag.h" +#import "BDSKTemplateTag.h" #import "NSString_BDSKExtensions.h" #import "NSAttributedString_BDSKExtensions.h" #import "NSArray_BDSKExtensions.h" @@ -140,14 +140,14 @@ return altTag; } -static inline NSString *compareConditionTagWithTag(NSString *tag, int matchType){ +static inline NSString *compareConditionTagWithTag(NSString *tag, BDSKTemplateTagMatchType matchType){ static NSMutableDictionary *equalConditionDict = nil; static NSMutableDictionary *containConditionDict = nil; static NSMutableDictionary *smallerConditionDict = nil; static NSMutableDictionary *smallerOrEqualConditionDict = nil; NSString *altTag = nil; switch (matchType) { - case BDSKConditionTagMatchEqual: + case BDSKTemplateTagMatchEqual: if(nil == equalConditionDict) equalConditionDict = [[NSMutableDictionary alloc] init]; altTag = [equalConditionDict objectForKey:tag]; @@ -156,7 +156,7 @@ [equalConditionDict setObject:altTag forKey:tag]; } break; - case BDSKConditionTagMatchContain: + case BDSKTemplateTagMatchContain: if(nil == containConditionDict) containConditionDict = [[NSMutableDictionary alloc] init]; altTag = [containConditionDict objectForKey:tag]; @@ -165,7 +165,7 @@ [containConditionDict setObject:altTag forKey:tag]; } break; - case BDSKConditionTagMatchSmaller: + case BDSKTemplateTagMatchSmaller: if(nil == smallerConditionDict) smallerConditionDict = [[NSMutableDictionary alloc] init]; altTag = [smallerConditionDict objectForKey:tag]; @@ -174,7 +174,7 @@ [smallerConditionDict setObject:altTag forKey:tag]; } break; - case BDSKConditionTagMatchSmallerOrEqual: + case BDSKTemplateTagMatchSmallerOrEqual: if(nil == smallerOrEqualConditionDict) smallerOrEqualConditionDict = [[NSMutableDictionary alloc] init]; altTag = [smallerOrEqualConditionDict objectForKey:tag]; @@ -235,10 +235,10 @@ int start; if ([scanner scanUpToString:START_TAG_OPEN_DELIM intoString:&beforeText]) { - if (currentTag && [(BDSKTag *)currentTag type] == BDSKTextTagType) { - [(BDSKTextTag *)currentTag setText:[[(BDSKTextTag *)currentTag text] stringByAppendingString:beforeText]]; + if (currentTag && [(BDSKTemplateTag *)currentTag type] == BDSKTextTemplateTagType) { + [(BDSKTextTemplateTag *)currentTag setText:[[(BDSKTextTemplateTag *)currentTag text] stringByAppendingString:beforeText]]; } else { - currentTag = [[BDSKTextTag alloc] initWithText:beforeText]; + currentTag = [[BDSKTextTemplateTag alloc] initWithText:beforeText]; [result addObject:currentTag]; [currentTag release]; } @@ -255,7 +255,7 @@ if ([scanner scanString:VALUE_TAG_CLOSE_DELIM intoString:nil]) { // simple template currentTag - currentTag = [[BDSKValueTag alloc] initWithKeyPath:tag]; + currentTag = [[BDSKValueTemplateTag alloc] initWithKeyPath:tag]; [result addObject:currentTag]; [currentTag release]; @@ -267,14 +267,14 @@ // collection template tag // ignore whitespace before the tag. Should we also remove a newline? - if (currentTag && [(BDSKTag *)currentTag type] == BDSKTextTagType) { - wsRange = [[(BDSKTextTag *)currentTag text] rangeOfTrailingEmptyLineRequiringNewline:[result count] != 1]; + if (currentTag && [(BDSKTemplateTag *)currentTag type] == BDSKTextTemplateTagType) { + wsRange = [[(BDSKTextTemplateTag *)currentTag text] rangeOfTrailingEmptyLineRequiringNewline:[result count] != 1]; if (wsRange.location != NSNotFound) { - if (wsRange.length == [[(BDSKTextTag *)currentTag text] length]) { + if (wsRange.length == [[(BDSKTextTemplateTag *)currentTag text] length]) { [result removeLastObject]; currentTag = [result lastObject]; } else { - [(BDSKTextTag *)currentTag setText:[[(BDSKTextTag *)currentTag text] substringToIndex:wsRange.location]]; + [(BDSKTextTemplateTag *)currentTag setText:[[(BDSKTextTemplateTag *)currentTag text] substringToIndex:wsRange.location]]; } } } @@ -296,7 +296,7 @@ itemTemplate = [itemTemplate substringToIndex:sepTagRange.location]; } - currentTag = [[BDSKCollectionTag alloc] initWithKeyPath:tag itemTemplateString:itemTemplate separatorTemplateString:separatorTemplate]; + currentTag = [[BDSKCollectionTemplateTag alloc] initWithKeyPath:tag itemTemplateString:itemTemplate separatorTemplateString:separatorTemplate]; [result addObject:currentTag]; [currentTag release]; @@ -308,24 +308,24 @@ } else { NSString *matchString = nil; - int matchType = BDSKConditionTagMatchNotEmpty; + BDSKTemplateTagMatchType matchType = BDSKTemplateTagMatchOther; if ([scanner scanString:CONDITION_TAG_EQUAL intoString:nil]) { if([scanner scanUpToString:CONDITION_TAG_CLOSE_DELIM intoString:&matchString] == NO) matchString = @""; - matchType = BDSKConditionTagMatchEqual; + matchType = BDSKTemplateTagMatchEqual; } else if ([scanner scanString:CONDITION_TAG_CONTAIN intoString:nil]) { if([scanner scanUpToString:CONDITION_TAG_CLOSE_DELIM intoString:&matchString] == NO) matchString = @""; - matchType = BDSKConditionTagMatchContain; + matchType = BDSKTemplateTagMatchContain; } else if ([scanner scanString:CONDITION_TAG_SMALLER_OR_EQUAL intoString:nil]) { if([scanner scanUpToString:CONDITION_TAG_CLOSE_DELIM intoString:&matchString] == NO) matchString = @""; - matchType = BDSKConditionTagMatchSmallerOrEqual; + matchType = BDSKTemplateTagMatchSmallerOrEqual; } else if ([scanner scanString:CONDITION_TAG_SMALLER intoString:nil]) { if([scanner scanUpToString:CONDITION_TAG_CLOSE_DELIM intoString:&matchString] == NO) matchString = @""; - matchType = BDSKConditionTagMatchSmaller; + matchType = BDSKTemplateTagMatchSmaller; } if ([scanner scanString:CONDITION_TAG_CLOSE_DELIM intoString:nil]) { @@ -337,14 +337,14 @@ // condition template tag // ignore whitespace before the tag. Should we also remove a newline? - if (currentTag && [(BDSKTag *)currentTag type] == BDSKTextTagType) { - wsRange = [[(BDSKTextTag *)currentTag text] rangeOfTrailingEmptyLineRequiringNewline:[result count] != 1]; + if (currentTag && [(BDSKTemplateTag *)currentTag type] == BDSKTextTemplateTagType) { + wsRange = [[(BDSKTextTemplateTag *)currentTag text] rangeOfTrailingEmptyLineRequiringNewline:[result count] != 1]; if (wsRange.location != NSNotFound) { - if (wsRange.length == [[(BDSKTextTag *)currentTag text] length]) { + if (wsRange.length == [[(BDSKTextTemplateTag *)currentTag text] length]) { [result removeLastObject]; currentTag = [result lastObject]; } else { - [(BDSKTextTag *)currentTag setText:[[(BDSKTextTag *)currentTag text] substringToIndex:wsRange.location]]; + [(BDSKTextTemplateTag *)currentTag setText:[[(BDSKTextTemplateTag *)currentTag text] substringToIndex:wsRange.location]]; } } } @@ -363,7 +363,7 @@ subTemplates = [[NSMutableArray alloc] init]; matchStrings = [[NSMutableArray alloc] initWithObjects:matchString ? matchString : @"", nil]; - if (matchType != BDSKConditionTagMatchNotEmpty) { + if (matchType != BDSKTemplateTagMatchOther) { altTag = compareConditionTagWithTag(tag, matchType); altTagRange = altTemplateTagRange(subTemplate, altTag, CONDITION_TAG_CLOSE_DELIM, &matchString); while (altTagRange.location != NSNotFound) { @@ -381,7 +381,7 @@ } [subTemplates addObject:subTemplate]; - currentTag = [[BDSKConditionTag alloc] initWithKeyPath:tag matchType:matchType matchStrings:matchStrings subtemplates:subTemplates]; + currentTag = [[BDSKConditionTemplateTag alloc] initWithKeyPath:tag matchType:matchType matchStrings:matchStrings subtemplates:subTemplates]; [result addObject:currentTag]; [currentTag release]; @@ -395,10 +395,10 @@ } else { // an open delimiter without a close delimiter, so no template tag. Rewind - if (currentTag && [(BDSKTag *)currentTag type] == BDSKTextTagType) { - [(BDSKTextTag *)currentTag setText:[[(BDSKTextTag *)currentTag text] stringByAppendingString:START_TAG_OPEN_DELIM]]; + if (currentTag && [(BDSKTemplateTag *)currentTag type] == BDSKTextTemplateTagType) { + [(BDSKTextTemplateTag *)currentTag setText:[[(BDSKTextTemplateTag *)currentTag text] stringByAppendingString:START_TAG_OPEN_DELIM]]; } else { - currentTag = [[BDSKTextTag alloc] initWithText:START_TAG_OPEN_DELIM]; + currentTag = [[BDSKTextTemplateTag alloc] initWithText:START_TAG_OPEN_DELIM]; [result addObject:currentTag]; [currentTag release]; } @@ -422,11 +422,11 @@ NSMutableString *result = [[NSMutableString alloc] init]; while (tag = [tagEnum nextObject]) { - int type = [(BDSKTag *)tag type]; + BDSKTemplateTagType type = [(BDSKTemplateTag *)tag type]; - if (type == BDSKTextTagType) { + if (type == BDSKTextTemplateTagType) { - [result appendString:[(BDSKTextTag *)tag text]]; + [result appendString:[(BDSKTextTemplateTag *)tag text]]; } else { @@ -441,12 +441,12 @@ keyValue = [object templateValueForKeyPath:keyPath]; } - if (type == BDSKValueTagType) { + if (type == BDSKValueTemplateTagType) { if (keyValue) [result appendString:[keyValue templateStringValue]]; - } else if (type == BDSKCollectionTagType) { + } else if (type == BDSKCollectionTemplateTagType) { if ([keyValue respondsToSelector:@selector(objectEnumerator)]) { NSEnumerator *itemE = [keyValue objectEnumerator]; @@ -482,16 +482,16 @@ matchString = @""; } switch ([tag matchType]) { - case BDSKConditionTagMatchEqual: + case BDSKTemplateTagMatchEqual: isMatch = [matchString isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue templateStringValue] caseInsensitiveCompare:matchString] == NSOrderedSame; break; - case BDSKConditionTagMatchContain: + case BDSKTemplateTagMatchContain: isMatch = [matchString isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue templateStringValue] rangeOfString:matchString options:NSCaseInsensitiveSearch].location != NSNotFound; break; - case BDSKConditionTagMatchSmaller: + case BDSKTemplateTagMatchSmaller: isMatch = [matchString isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue templateStringValue] localizedCaseInsensitiveNumericCompare:matchString] == NSOrderedAscending; break; - case BDSKConditionTagMatchSmallerOrEqual: + case BDSKTemplateTagMatchSmallerOrEqual: isMatch = [matchString isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue templateStringValue] localizedCaseInsensitiveNumericCompare:matchString] != NSOrderedDescending; break; default: @@ -547,14 +547,14 @@ start = [scanner scanLocation]; if ([scanner scanUpToString:START_TAG_OPEN_DELIM intoString:&beforeText]) { - if (currentTag && [(BDSKTag *)currentTag type] == BDSKTextTagType) { - tmpAttrStr = [[(BDSKRichTextTag *)currentTag attributedText] mutableCopy]; + if (currentTag && [(BDSKTemplateTag *)currentTag type] == BDSKTextTemplateTagType) { + tmpAttrStr = [[(BDSKRichTextTemplateTag *)currentTag attributedText] mutableCopy]; [tmpAttrStr appendAttributedString:[template attributedSubstringFromRange:NSMakeRange(start, [beforeText length])]]; [tmpAttrStr fixAttributesInRange:NSMakeRange(0, [tmpAttrStr length])]; - [(BDSKRichTextTag *)currentTag setAttributedText:tmpAttrStr]; + [(BDSKRichTextTemplateTag *)currentTag setAttributedText:tmpAttrStr]; [tmpAttrStr release]; } else { - currentTag = [[BDSKRichTextTag alloc] initWithAttributedText:[template attributedSubstringFromRange:NSMakeRange(start, [beforeText length])]]; + currentTag = [[BDSKRichTextTemplateTag alloc] initWithAttributedText:[template attributedSubstringFromRange:NSMakeRange(start, [beforeText length])]]; [result addObject:currentTag]; [currentTag release]; } @@ -572,7 +572,7 @@ if ([scanner scanString:VALUE_TAG_CLOSE_DELIM intoString:nil]) { // simple template tag - currentTag = [[BDSKRichValueTag alloc] initWithKeyPath:tag attributes:attr]; + currentTag = [[BDSKRichValueTemplateTag alloc] initWithKeyPath:tag attributes:attr]; [result addObject:currentTag]; [currentTag release]; @@ -585,14 +585,14 @@ // collection template tag // ignore whitespace before the tag. Should we also remove a newline? - if (currentTag && [(BDSKTag *)currentTag type] == BDSKTextTagType) { - wsRange = [[[(BDSKRichTextTag *)currentTag attributedText] string] rangeOfTrailingEmptyLineRequiringNewline:[result count] != 1]; + if (currentTag && [(BDSKTemplateTag *)currentTag type] == BDSKTextTemplateTagType) { + wsRange = [[[(BDSKRichTextTemplateTag *)currentTag attributedText] string] rangeOfTrailingEmptyLineRequiringNewline:[result count] != 1]; if (wsRange.location != NSNotFound) { - if (wsRange.length == [[(BDSKRichTextTag *)currentTag attributedText] length]) { + if (wsRange.length == [[(BDSKRichTextTemplateTag *)currentTag attributedText] length]) { [result removeLastObject]; currentTag = [result lastObject]; } else { - [(BDSKRichTextTag *)currentTag setAttributedText:[[currentTag attributedText] attributedSubstringFromRange:NSMakeRange(0, wsRange.location)]]; + [(BDSKRichTextTemplateTag *)currentTag setAttributedText:[[currentTag attributedText] attributedSubstringFromRange:NSMakeRange(0, wsRange.location)]]; } } } @@ -614,7 +614,7 @@ itemTemplate = [itemTemplate attributedSubstringFromRange:NSMakeRange(0, sepTagRange.location)]; } - currentTag = [[BDSKRichCollectionTag alloc] initWithKeyPath:tag itemTemplateAttributedString:itemTemplate separatorTemplateAttributedString:separatorTemplate]; + currentTag = [[BDSKRichCollectionTemplateTag alloc] initWithKeyPath:tag itemTemplateAttributedString:itemTemplate separatorTemplateAttributedString:separatorTemplate]; [result addObject:currentTag]; [currentTag release]; @@ -626,24 +626,24 @@ } else { NSString *matchString = nil; - int matchType = BDSKConditionTagMatchNotEmpty; + BDSKTemplateTagMatchType matchType = BDSKTemplateTagMatchOther; if ([scanner scanString:CONDITION_TAG_EQUAL intoString:nil]) { if([scanner scanUpToString:CONDITION_TAG_CLOSE_DELIM intoString:&matchString] == NO) matchString = @""; - matchType = BDSKConditionTagMatchEqual; + matchType = BDSKTemplateTagMatchEqual; } else if ([scanner scanString:CONDITION_TAG_CONTAIN intoString:nil]) { if([scanner scanUpToString:CONDITION_TAG_CLOSE_DELIM intoString:&matchString] == NO) matchString = @""; - matchType = BDSKConditionTagMatchContain; + matchType = BDSKTemplateTagMatchContain; } else if ([scanner scanString:CONDITION_TAG_SMALLER_OR_EQUAL intoString:nil]) { if([scanner scanUpToString:CONDITION_TAG_CLOSE_DELIM intoString:&matchString] == NO) matchString = @""; - matchType = BDSKConditionTagMatchSmallerOrEqual; + matchType = BDSKTemplateTagMatchSmallerOrEqual; } else if ([scanner scanString:CONDITION_TAG_SMALLER intoString:nil]) { if([scanner scanUpToString:CONDITION_TAG_CLOSE_DELIM intoString:&matchString] == NO) matchString = @""; - matchType = BDSKConditionTagMatchSmaller; + matchType = BDSKTemplateTagMatchSmaller; } if ([scanner scanString:CONDITION_TAG_CLOSE_DELIM intoString:nil]) { @@ -656,14 +656,14 @@ // condition template tag // ignore whitespace before the tag. Should we also remove a newline? - if (currentTag && [(BDSKTag *)currentTag type] == BDSKTextTagType) { - wsRange = [[[(BDSKRichTextTag *)currentTag attributedText] string] rangeOfTrailingEmptyLineRequiringNewline:[result count] != 1]; + if (currentTag && [(BDSKTemplateTag *)currentTag type] == BDSKTextTemplateTagType) { + wsRange = [[[(BDSKRichTextTemplateTag *)currentTag attributedText] string] rangeOfTrailingEmptyLineRequiringNewline:[result count] != 1]; if (wsRange.location != NSNotFound) { - if (wsRange.length == [[(BDSKRichTextTag *)currentTag attributedText] length]) { + if (wsRange.length == [[(BDSKRichTextTemplateTag *)currentTag attributedText] length]) { [result removeLastObject]; currentTag = [result lastObject]; } else { - [(BDSKRichTextTag *)currentTag setAttributedText:[[(BDSKRichTextTag *)currentTag attributedText] attributedSubstringFromRange:NSMakeRange(0, wsRange.location)]]; + [(BDSKRichTextTemplateTag *)currentTag setAttributedText:[[(BDSKRichTextTemplateTag *)currentTag attributedText] attributedSubstringFromRange:NSMakeRange(0, wsRange.location)]]; } } } @@ -683,7 +683,7 @@ subTemplates = [[NSMutableArray alloc] init]; matchStrings = [[NSMutableArray alloc] initWithObjects:matchString ? matchString : @"", nil]; - if (matchType != BDSKConditionTagMatchNotEmpty) { + if (matchType != BDSKTemplateTagMatchOther) { altTag = compareConditionTagWithTag(tag, matchType); altTagRange = altTemplateTagRange([subTemplate string], altTag, CONDITION_TAG_CLOSE_DELIM, &matchString); while (altTagRange.location != NSNotFound) { @@ -701,7 +701,7 @@ } [subTemplates addObject:subTemplate]; - currentTag = [[BDSKRichConditionTag alloc] initWithKeyPath:tag matchType:matchType matchStrings:matchStrings subtemplates:subTemplates]; + currentTag = [[BDSKRichConditionTemplateTag alloc] initWithKeyPath:tag matchType:matchType matchStrings:matchStrings subtemplates:subTemplates]; [result addObject:currentTag]; [currentTag release]; @@ -715,14 +715,14 @@ } else { // a START_TAG_OPEN_DELIM without COLLECTION_TAG_CLOSE_DELIM, so no template tag. Rewind - if (currentTag && [(BDSKTag *)currentTag type] == BDSKTextTagType) { - tmpAttrStr = [[(BDSKRichTextTag *)currentTag attributedText] mutableCopy]; + if (currentTag && [(BDSKTemplateTag *)currentTag type] == BDSKTextTemplateTagType) { + tmpAttrStr = [[(BDSKRichTextTemplateTag *)currentTag attributedText] mutableCopy]; [tmpAttrStr appendAttributedString:[template attributedSubstringFromRange:NSMakeRange(start - [START_TAG_OPEN_DELIM length], [START_TAG_OPEN_DELIM length])]]; [tmpAttrStr fixAttributesInRange:NSMakeRange(0, [tmpAttrStr length])]; - [(BDSKRichTextTag *)currentTag setAttributedText:tmpAttrStr]; + [(BDSKRichTextTemplateTag *)currentTag setAttributedText:tmpAttrStr]; [tmpAttrStr release]; } else { - currentTag = [[BDSKRichTextTag alloc] initWithAttributedText:[template attributedSubstringFromRange:NSMakeRange(start - [START_TAG_OPEN_DELIM length], [START_TAG_OPEN_DELIM length])]]; + currentTag = [[BDSKRichTextTemplateTag alloc] initWithAttributedText:[template attributedSubstringFromRange:NSMakeRange(start - [START_TAG_OPEN_DELIM length], [START_TAG_OPEN_DELIM length])]]; [result addObject:currentTag]; [currentTag release]; } @@ -748,12 +748,12 @@ NSMutableAttributedString *result = [[NSMutableAttributedString alloc] init]; while (tag = [tagEnum nextObject]) { - int type = [(BDSKTag *)tag type]; + BDSKTemplateTagType type = [(BDSKTemplateTag *)tag type]; NSAttributedString *tmpAttrStr = nil; - if (type == BDSKTextTagType) { + if (type == BDSKTextTemplateTagType) { - [result appendAttributedString:[(BDSKRichTextTag *)tag attributedText]]; + [result appendAttributedString:[(BDSKRichTextTemplateTag *)tag attributedText]]; } else { @@ -768,12 +768,12 @@ keyValue = [object templateValueForKeyPath:keyPath]; } - if (type == BDSKValueTagType) { + if (type == BDSKValueTemplateTagType) { if (keyValue) - [result appendAttributedString:[keyValue templateAttributedStringValueWithAttributes:[(BDSKRichValueTag *)tag attributes]]]; + [result appendAttributedString:[keyValue templateAttributedStringValueWithAttributes:[(BDSKRichValueTemplateTag *)tag attributes]]]; - } else if (type == BDSKCollectionTagType) { + } else if (type == BDSKCollectionTemplateTagType) { if ([keyValue respondsToSelector:@selector(objectEnumerator)]) { NSEnumerator *itemE = [keyValue objectEnumerator]; @@ -811,16 +811,16 @@ matchString = @""; } switch ([tag matchType]) { - case BDSKConditionTagMatchEqual: + case BDSKTemplateTagMatchEqual: isMatch = [matchString isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue templateStringValue] caseInsensitiveCompare:matchString] == NSOrderedSame; break; - case BDSKConditionTagMatchContain: + case BDSKTemplateTagMatchContain: isMatch = [matchString isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue templateStringValue] rangeOfString:matchString options:NSCaseInsensitiveSearch].location != NSNotFound; break; - case BDSKConditionTagMatchSmaller: + case BDSKTemplateTagMatchSmaller: isMatch = [matchString isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue templateStringValue] localizedCaseInsensitiveNumericCompare:matchString] == NSOrderedAscending; break; - case BDSKConditionTagMatchSmallerOrEqual: + case BDSKTemplateTagMatchSmallerOrEqual: isMatch = [matchString isEqualToString:@""] ? NO == [keyValue isNotEmpty] : [[keyValue templateStringValue] localizedCaseInsensitiveNumericCompare:matchString] != NSOrderedDescending; break; default: Copied: trunk/bibdesk/BDSKTemplateTag.h (from rev 13553, trunk/bibdesk/BDSKTag.h) =================================================================== --- trunk/bibdesk/BDSKTemplateTag.h (rev 0) +++ trunk/bibdesk/BDSKTemplateTag.h 2008-08-04 17:46:46 UTC (rev 13570) @@ -0,0 +1,166 @@ +// +// BDSKTemplateTag.h +// BibDesk +// +// Created by Christiaan Hofman on 10/12/07. +/* + This software is Copyright (c) 2007-2008 + Christiaan Hofman. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + - Neither the name of Christiaan Hofman nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#import <Cocoa/Cocoa.h> + +enum { + BDSKValueTemplateTagType, + BDSKCollectionTemplateTagType, + BDSKConditionTemplateTagType, + BDSKTextTemplateTagType +}; +typedef NSInteger BDSKTemplateTagType; + +enum { + BDSKTemplateTagMatchOther, + BDSKTemplateTagMatchEqual, + BDSKTemplateTagMatchContain, + BDSKTemplateTagMatchSmaller, + BDSKTemplateTagMatchSmallerOrEqual, +}; +typedef NSInteger BDSKTemplateTagMatchType; + + +@interface BDSKTemplateTag : NSObject { +} +- (BDSKTemplateTagType)type; +@end + +#pragma mark - + +@interface BDSKValueTemplateTag : BDSKTemplateTag { + NSString *keyPath; +} + +- (id)initWithKeyPath:(NSString *)aKeyPath; + +- (NSString *)keyPath; + +@end + +#pragma mark - + +@interface BDSKRichValueTemplateTag : BDSKValueTemplateTag { + NSDictionary *attributes; +} + +- (id)initWithKeyPath:(NSString *)aKeyPath attributes:(NSDictionary *)anAttributes; + +- (NSDictionary *)attributes; + +@end + +#pragma mark - + +@interface BDSKCollectionTemplateTag : BDSKValueTemplateTag { + NSString *itemTemplateString; + NSString *separatorTemplateString; + NSMutableArray *itemTemplate; + NSMutableArray *separatorTemplate; +} + +- (id)initWithKeyPath:(NSString *)aKeyPath itemTemplateString:(NSString *)anItemTemplateString separatorTemplateString:(NSString *)aSeparatorTemplateString; + +- (NSArray *)itemTemplate; +- (NSArray *)separatorTemplate; + +@end + +#pragma mark - + +@interface BDSKRichCollectionTemplateTag : BDSKValueTemplateTag { + NSAttributedString *itemTemplateAttributedString; + NSAttributedString *separatorTemplateAttributedString; + NSMutableArray *itemTemplate; + NSMutableArray *separatorTemplate; +} + +- (id)initWithKeyPath:(NSString *)aKeyPath itemTemplateAttributedString:(NSAttributedString *)anItemTemplateString separatorTemplateAttributedString:(NSAttributedString *)aSeparatorTemplateString; + +- (NSArray *)itemTemplate; +- (NSArray *)separatorTemplate; + +@end + +#pragma mark - + +@interface BDSKConditionTemplateTag : BDSKValueTemplateTag { + BDSKTemplateTagMatchType matchType; + NSMutableArray *subtemplates; + NSArray *matchStrings; +} + +- (id)initWithKeyPath:(NSString *)aKeyPath matchType:(BDSKTemplateTagMatchType)aMatchType matchStrings:(NSArray *)aMatchStrings subtemplates:(NSArray *)aSubtemplates; + +- (BDSKTemplateTagMatchType)matchType; +- (NSArray *)matchStrings; +- (NSArray *)subtemplates; +- (NSArray *)subtemplateAtIndex:(unsigned)idx; + +@end + +#pragma mark - + +@interface BDSKRichConditionTemplateTag : BDSKConditionTemplateTag +@end + +#pragma mark - + +@interface BDSKTextTemplateTag : BDSKTemplateTag { + NSString *text; +} + +- (id)initWithText:(NSString *)aText; + +- (NSString *)text; +- (void)setText:(NSString *)newText; + +@end + +#pragma mark - + +@interface BDSKRichTextTemplateTag : BDSKTemplateTag { + NSAttributedString *attributedText; +} + +- (id)initWithAttributedText:(NSAttributedString *)anAttributedText; + +- (NSAttributedString *)attributedText; +- (void)setAttributedText:(NSAttributedString *)newAttributedText; + +@end Copied: trunk/bibdesk/BDSKTemplateTag.m (from rev 13553, trunk/bibdesk/BDSKTag.m) =================================================================== --- trunk/bibdesk/BDSKTemplateTag.m (rev 0) +++ trunk/bibdesk/BDSKTemplateTag.m 2008-08-04 17:46:46 UTC (rev 13570) @@ -0,0 +1,287 @@ +// +// BDSKTemplateTag.m +// BibDesk +// +// Created by Christiaan Hofman on 10/12/07. +/* + This software is Copyright (c) 2007-2008 + Christiaan Hofman. All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + - Neither the name of Christiaan Hofman nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#import "BDSKTemplateTag.h" +#import "BDSKTemplateParser.h" + + +@implementation BDSKTemplateTag +- (BDSKTemplateTagType)type { return -1; } +@end + +#pragma mark - + +@implementation BDSKValueTemplateTag + +- (id)initWithKeyPath:(NSString *)aKeyPath { + if (self = [super init]) + keyPath = [aKeyPath copy]; + return self; +} + +- (void)dealloc { + [keyPath release]; + [super dealloc]; +} + +- (BDSKTemplateTagType)type { return BDSKValueTemplateTagType; } + +- (NSString *)keyPath { + return keyPath; +} + +@end + +#pragma mark - + +@implementation BDSKRichValueTemplateTag + +- (id)initWithKeyPath:(NSString *)aKeyPath attributes:(NSDictionary *)anAttributes { + if (self = [super initWithKeyPath:aKeyPath]) { + attributes = [anAttributes copy]; + } + return self; +} + +- (void)dealloc { + [attributes release]; + [super dealloc]; +} + +- (NSDictionary *)attributes { + return attributes; +} + +@end + +#pragma mark - + +@implementation BDSKCollectionTemplateTag + +- (id)initWithKeyPath:(NSString *)aKeyPath itemTemplateString:(NSString *)anItem... [truncated message content] |
From: <ho...@us...> - 2008-08-04 23:40:14
|
Revision: 13572 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13572&view=rev Author: hofman Date: 2008-08-04 23:40:18 +0000 (Mon, 04 Aug 2008) Log Message: ----------- Use SkimNotes framework instead of SkimNotesBase Modified Paths: -------------- trunk/bibdesk/BibDocument.m trunk/bibdesk/BibDocument_DataSource.m trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj trunk/bibdesk/NSFileManager_BDSKExtensions.m trunk/bibdesk/NSURL_BDSKExtensions.m Modified: trunk/bibdesk/BibDocument.m =================================================================== --- trunk/bibdesk/BibDocument.m 2008-08-04 23:39:40 UTC (rev 13571) +++ trunk/bibdesk/BibDocument.m 2008-08-04 23:40:18 UTC (rev 13572) @@ -122,7 +122,7 @@ #import "NSViewAnimation_BDSKExtensions.h" #import "BDSKDocumentSearch.h" #import "NSImage_BDSKExtensions.h" -#import <SkimNotesBase/SKNExtendedAttributeManager.h> +#import <SkimNotes/SKNExtendedAttributeManager.h> // these are the same as in Info.plist NSString *BDSKBibTeXDocumentType = @"BibTeX Database"; Modified: trunk/bibdesk/BibDocument_DataSource.m =================================================================== --- trunk/bibdesk/BibDocument_DataSource.m 2008-08-04 23:39:40 UTC (rev 13571) +++ trunk/bibdesk/BibDocument_DataSource.m 2008-08-04 23:40:18 UTC (rev 13572) @@ -35,7 +35,7 @@ */ #import "BibDocument_DataSource.h" -#import <SkimNotesBase/SKNExtendedAttributeManager.h> +#import <SkimNotes/SKNExtendedAttributeManager.h> #import "BibDocument.h" #import "BibDocument_Actions.h" #import "BibItem.h" Modified: trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj =================================================================== --- trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2008-08-04 23:39:40 UTC (rev 13571) +++ trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2008-08-04 23:40:18 UTC (rev 13572) @@ -124,9 +124,7 @@ CE0901560E39F38300BDF413 /* AGRegex.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = F9C7E5470BEA3C0500D65C7F /* AGRegex.framework */; }; CE0901570E39F38300BDF413 /* FileView.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = F911D6B40CFE8E420009C77B /* FileView.framework */; }; CE0901580E39F38300BDF413 /* BTParse.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = F9AF4DF50BEA3E5B009B16D5 /* BTParse.framework */; }; - CE0901590E39F38300BDF413 /* SkimNotesBase.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE52E69D0E2D2B87007B6C62 /* SkimNotesBase.framework */; }; CE09CEA70DDEF65E00F3F2FE /* BDSKCompletionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CE09CEA50DDEF65E00F3F2FE /* BDSKCompletionManager.m */; }; - CE09FF8A0E39DEE200BDF413 /* SkimNotesBase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE52E69D0E2D2B87007B6C62 /* SkimNotesBase.framework */; }; CE0EB4440DCFDE8A0034DF92 /* NSInvocation_BDSKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0EB4420DCFDE8A0034DF92 /* NSInvocation_BDSKExtensions.m */; }; CE0ECDAB0DE78619006EEDDB /* BDSKSpiresParser.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0ECDA90DE78619006EEDDB /* BDSKSpiresParser.m */; }; CE117D240D7047A5005BFCEB /* NSScriptClassDescription_BDSKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE117D220D7047A4005BFCEB /* NSScriptClassDescription_BDSKExtensions.m */; }; @@ -272,6 +270,8 @@ CE966C710B47CF25003BAB9A /* BDSKDublinCoreXMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = CE966C6F0B47CF25003BAB9A /* BDSKDublinCoreXMLParser.m */; }; CE969E340931E4F500EE3DFD /* NSTableHeaderView_BDSKExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE969E320931E4F500EE3DFD /* NSTableHeaderView_BDSKExtensions.m */; }; CE9F85410956A2C50073FCAD /* BDSKFieldEditor.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9F853F0956A2C50073FCAD /* BDSKFieldEditor.m */; }; + CEA4513E0E47C86200D161AD /* SkimNotes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE7DC8DA0E0952BB00D6D76D /* SkimNotes.framework */; }; + CEA4516F0E47C93000D161AD /* SkimNotes.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE7DC8DA0E0952BB00D6D76D /* SkimNotes.framework */; }; CEAB9F5A0B4FF20800673AC2 /* BDSKCitationFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = CEAB9F580B4FF20800673AC2 /* BDSKCitationFormatter.m */; }; CEAC48510A96589A00B8DF43 /* BDSKTemplatedTextCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = CEAC484F0A96589A00B8DF43 /* BDSKTemplatedTextCommand.m */; }; CEAC51570A97730800B8DF43 /* BDSKExportUsingTemplateCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = CEAC51550A97730800B8DF43 /* BDSKExportUsingTemplateCommand.m */; }; @@ -533,13 +533,6 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - CE09FF870E39DE7400BDF413 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = CE7DC8CF0E0952BA00D6D76D /* SkimNotes.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = CEA5F53C0E2CED0E00F65088; - remoteInfo = SkimNotesBase; - }; CE52E69C0E2D2B87007B6C62 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = CE7DC8CF0E0952BA00D6D76D /* SkimNotes.xcodeproj */; @@ -561,6 +554,13 @@ remoteGlobalIDString = CEBA2B550E0566B00000B2E6; remoteInfo = skimnotes; }; + CEA451690E47C8C000D161AD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = CE7DC8CF0E0952BA00D6D76D /* SkimNotes.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 8DC2EF4F0486A6940098B216 /* SkimNotes */; + remoteInfo = SkimNotes; + }; CEDB9BC70E2F405F0057FD09 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = CE7DC8CF0E0952BA00D6D76D /* SkimNotes.xcodeproj */; @@ -844,7 +844,7 @@ CE0901560E39F38300BDF413 /* AGRegex.framework in CopyFiles */, CE0901570E39F38300BDF413 /* FileView.framework in CopyFiles */, CE0901580E39F38300BDF413 /* BTParse.framework in CopyFiles */, - CE0901590E39F38300BDF413 /* SkimNotesBase.framework in CopyFiles */, + CEA4516F0E47C93000D161AD /* SkimNotes.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -972,7 +972,6 @@ CE05CF5C0D7743940034C2A8 /* WebURLsWithTitles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebURLsWithTitles.h; sourceTree = "<group>"; }; CE09CEA40DDEF65E00F3F2FE /* BDSKCompletionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKCompletionManager.h; sourceTree = "<group>"; }; CE09CEA50DDEF65E00F3F2FE /* BDSKCompletionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BDSKCompletionManager.m; sourceTree = "<group>"; }; - CE09FF7F0E39DE4E00BDF413 /* SkimNotesBase.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SkimNotesBase.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CE0EB4410DCFDE8A0034DF92 /* NSInvocation_BDSKExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSInvocation_BDSKExtensions.h; sourceTree = "<group>"; }; CE0EB4420DCFDE8A0034DF92 /* NSInvocation_BDSKExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSInvocation_BDSKExtensions.m; sourceTree = "<group>"; }; CE0ECDA80DE78619006EEDDB /* BDSKSpiresParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKSpiresParser.h; sourceTree = "<group>"; }; @@ -1206,6 +1205,7 @@ CE9DBEDE093CF2640008648B /* BDSKBibliographyCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BDSKBibliographyCommand.m; sourceTree = "<group>"; }; CE9F853E0956A2C50073FCAD /* BDSKFieldEditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKFieldEditor.h; sourceTree = "<group>"; }; CE9F853F0956A2C50073FCAD /* BDSKFieldEditor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BDSKFieldEditor.m; sourceTree = "<group>"; }; + CEA451600E47C88E00D161AD /* SkimNotes.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SkimNotes.framework; path = ../../../BuildProducts/Debug/SkimNotes.framework; sourceTree = SOURCE_ROOT; }; CEAB9F570B4FF20800673AC2 /* BDSKCitationFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKCitationFormatter.h; sourceTree = "<group>"; }; CEAB9F580B4FF20800673AC2 /* BDSKCitationFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BDSKCitationFormatter.m; sourceTree = "<group>"; }; CEAC484E0A96589A00B8DF43 /* BDSKTemplatedTextCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BDSKTemplatedTextCommand.h; sourceTree = "<group>"; }; @@ -1756,7 +1756,7 @@ CE2BB7E90E0DB0D00090E848 /* yaz.framework in Frameworks */, CE2BB7E80E0DB0C70090E848 /* FileView.framework in Frameworks */, CE2BB7EE0E0DB0F40090E848 /* BTParse.framework in Frameworks */, - CE09FF8A0E39DEE200BDF413 /* SkimNotesBase.framework in Frameworks */, + CEA4513E0E47C86200D161AD /* SkimNotes.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2033,7 +2033,7 @@ F9022DE30758095000C3F701 /* AGRegex.framework */, F9ABEC9E086E11B500741FC5 /* BTParse.framework */, CE2BB5920E0BE1370090E848 /* FileView.framework */, - CE09FF7F0E39DE4E00BDF413 /* SkimNotesBase.framework */, + CEA451600E47C88E00D161AD /* SkimNotes.framework */, ); name = "Embedded Frameworks"; sourceTree = "<group>"; @@ -3003,7 +3003,7 @@ F9AF56360BEA4160009B16D5 /* PBXTargetDependency */, F9AF56380BEA4160009B16D5 /* PBXTargetDependency */, F9AF562C0BEA4160009B16D5 /* PBXTargetDependency */, - CE09FF880E39DE7400BDF413 /* PBXTargetDependency */, + CEA4516A0E47C8C000D161AD /* PBXTargetDependency */, F90B13050C29900200144F1B /* PBXTargetDependency */, CEEBA84A0D749DB7000204B8 /* PBXTargetDependency */, F9AF56340BEA4160009B16D5 /* PBXTargetDependency */, @@ -3896,10 +3896,10 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - CE09FF880E39DE7400BDF413 /* PBXTargetDependency */ = { + CEA4516A0E47C8C000D161AD /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = SkimNotesBase; - targetProxy = CE09FF870E39DE7400BDF413 /* PBXContainerItemProxy */; + name = SkimNotes; + targetProxy = CEA451690E47C8C000D161AD /* PBXContainerItemProxy */; }; CEEBA83F0D749CC9000204B8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; Modified: trunk/bibdesk/NSFileManager_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSFileManager_BDSKExtensions.m 2008-08-04 23:39:40 UTC (rev 13571) +++ trunk/bibdesk/NSFileManager_BDSKExtensions.m 2008-08-04 23:40:18 UTC (rev 13572) @@ -44,7 +44,7 @@ #import "NSObject_BDSKExtensions.h" #import "BDSKVersionNumber.h" #import "NSError_BDSKExtensions.h" -#import <SkimNotesBase/SKNExtendedAttributeManager.h> +#import <SkimNotes/SKNExtendedAttributeManager.h> /* The WLDragMapHeaderStruct stuff was borrowed from CocoaTech Foundation, http://www.cocoatech.com (BSD licensed). This is used for creating WebLoc files, which are a resource-only Finder clipping. Apple provides no API for creating them, so apparently everyone just reverse-engineers the resource file format and creates them. Since I have no desire to mess with ResEdit anymore, we're borrowing this code directly and using Omni's resource fork methods to create the file. Note that you can check the contents of a resource fork in Terminal with `cat somefile/rsrc`, not that it's incredibly helpful. Modified: trunk/bibdesk/NSURL_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSURL_BDSKExtensions.m 2008-08-04 23:39:40 UTC (rev 13571) +++ trunk/bibdesk/NSURL_BDSKExtensions.m 2008-08-04 23:40:18 UTC (rev 13572) @@ -43,7 +43,7 @@ #import <FileView/FVFinderLabel.h> #import "KFASHandlerAdditions-TypeTranslation.h" #import "NSWorkspace_BDSKExtensions.h" -#import <SkimNotesBase/SkimNotesBase.h> +#import <SkimNotes/SkimNotes.h> @implementation NSURL (BDSKExtensions) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-05 21:25:37
|
Revision: 13574 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13574&view=rev Author: hofman Date: 2008-08-05 21:25:42 +0000 (Tue, 05 Aug 2008) Log Message: ----------- Implement undo for bookmarks using KVO. Modified Paths: -------------- trunk/bibdesk/BDSKBookmark.h trunk/bibdesk/BDSKBookmark.m trunk/bibdesk/BDSKBookmarkController.h trunk/bibdesk/BDSKBookmarkController.m trunk/bibdesk/BDSKSearchBookmark.h trunk/bibdesk/BDSKSearchBookmark.m trunk/bibdesk/BDSKSearchBookmarkController.h trunk/bibdesk/BDSKSearchBookmarkController.m Modified: trunk/bibdesk/BDSKBookmark.h =================================================================== --- trunk/bibdesk/BDSKBookmark.h 2008-08-04 23:50:27 UTC (rev 13573) +++ trunk/bibdesk/BDSKBookmark.h 2008-08-05 21:25:42 UTC (rev 13574) @@ -38,9 +38,6 @@ #import <Cocoa/Cocoa.h> -extern NSString *BDSKBookmarkChangedNotification; -extern NSString *BDSKBookmarkWillBeRemovedNotification; - enum { BDSKBookmarkTypeBookmark, BDSKBookmarkTypeFolder, @@ -49,7 +46,6 @@ @interface BDSKBookmark : NSObject <NSCopying> { BDSKBookmark *parent; - NSUndoManager *undoManager; } - (id)initWithUrlString:(NSString *)aUrlString name:(NSString *)aName; @@ -75,13 +71,11 @@ - (BDSKBookmark *)parent; - (void)setParent:(BDSKBookmark *)newParent; - (NSArray *)children; -- (void)insertChild:(BDSKBookmark *)child atIndex:(unsigned int)index; -- (void)addChild:(BDSKBookmark *)child; -- (void)removeChild:(BDSKBookmark *)child; +- (unsigned int)countOfChildren; +- (BDSKBookmark *)objectInChildrenAtIndex:(unsigned int)idx; +- (void)insertObject:(BDSKBookmark *)child inChildrenAtIndex:(unsigned int)idx; +- (void)removeObjectFromChildrenAtIndex:(unsigned int)idx; -- (NSUndoManager *)undoManager; -- (void)setUndoManager:(NSUndoManager *)newUndoManager; - - (BOOL)isDescendantOf:(BDSKBookmark *)bookmark; - (BOOL)isDescendantOfArray:(NSArray *)bookmarks; Modified: trunk/bibdesk/BDSKBookmark.m =================================================================== --- trunk/bibdesk/BDSKBookmark.m 2008-08-04 23:50:27 UTC (rev 13573) +++ trunk/bibdesk/BDSKBookmark.m 2008-08-05 21:25:42 UTC (rev 13574) @@ -43,9 +43,6 @@ #define URL_KEY @"URLString" #define TYPE_KEY @"Type" -NSString *BDSKBookmarkChangedNotification = @"BDSKBookmarkChangedNotification"; -NSString *BDSKBookmarkWillBeRemovedNotification = @"BDSKBookmarkWillBeRemovedNotification"; - static NSString *BDSKBookmarkTypeBookmarkString = @"bookmark"; static NSString *BDSKBookmarkTypeFolderString = @"folder"; static NSString *BDSKBookmarkTypeSeparatorString = @"separator"; @@ -136,7 +133,6 @@ - (void)dealloc { if (self != defaultPlaceholderBookmark) { - [undoManager release]; [super dealloc]; } } @@ -155,9 +151,10 @@ - (void)setUrlString:(NSString *)newUrlString {} - (NSArray *)children { return nil; } -- (void)insertChild:(BDSKBookmark *)child atIndex:(unsigned int)idx {} -- (void)addChild:(BDSKBookmark *)child {} -- (void)removeChild:(BDSKBookmark *)child {} +- (unsigned int)countOfChildren { return 0; } +- (BDSKBookmark *)objectInChildrenAtIndex:(unsigned int)idx { return nil; } +- (void)insertObject:(BDSKBookmark *)child inChildrenAtIndex:(unsigned int)idx {} +- (void)removeObjectFromChildrenAtIndex:(unsigned int)idx {} - (BDSKBookmark *)parent { return parent; @@ -167,17 +164,6 @@ parent = newParent; } -- (NSUndoManager *)undoManager { - return undoManager ? undoManager : [parent undoManager]; -} - -- (void)setUndoManager:(NSUndoManager *)newUndoManager { - if (undoManager != newUndoManager) { - [undoManager release]; - undoManager = [newUndoManager retain]; - } -} - - (BOOL)isDescendantOf:(BDSKBookmark *)bookmark { if (self == bookmark) return YES; @@ -218,7 +204,6 @@ } - (void)dealloc { - [[self undoManager] removeAllActionsWithTarget:self]; [name release]; [urlString release]; [super dealloc]; @@ -242,7 +227,6 @@ - (void)setName:(NSString *)newName { if (name != newName) { - [(BDSKBookmark *)[[self undoManager] prepareWithInvocationTarget:self] setName:name]; [name release]; name = [newName retain]; } @@ -272,7 +256,6 @@ - (void)setUrlString:(NSString *)newUrlString { if (urlString != newUrlString) { - [[[self undoManager] prepareWithInvocationTarget:self] setUrlString:urlString]; [urlString release]; urlString = [newUrlString retain]; } @@ -316,7 +299,6 @@ } - (void)dealloc { - [[self undoManager] removeAllActionsWithTarget:self]; [name release]; [children release]; [super dealloc]; @@ -344,7 +326,6 @@ - (void)setName:(NSString *)newName { if (name != newName) { - [(BDSKBookmark *)[[self undoManager] prepareWithInvocationTarget:self] setName:name]; [name release]; name = [newName retain]; } @@ -365,28 +346,27 @@ } - (NSArray *)children { - return children; + return [[children copy] autorelease]; } -- (void)insertChild:(BDSKBookmark *)child atIndex:(unsigned int)idx { - [(BDSKBookmark *)[[self undoManager] prepareWithInvocationTarget:self] removeChild:child]; - [children insertObject:child atIndex:idx]; - [child setParent:self]; - [[NSNotificationCenter defaultCenter] postNotificationName:BDSKBookmarkChangedNotification object:self]; +- (unsigned int)countOfChildren { + return [children count]; } -- (void)addChild:(BDSKBookmark *)child { - [self insertChild:child atIndex:[children count]]; +- (BDSKBookmark *)objectInChildrenAtIndex:(unsigned int)idx { + return [children objectAtIndex:idx]; } -- (void)removeChild:(BDSKBookmark *)child { - [(BDSKBookmark *)[[self undoManager] prepareWithInvocationTarget:self] insertChild:child atIndex:[[self children] indexOfObject:child]]; - [[NSNotificationCenter defaultCenter] postNotificationName:BDSKBookmarkWillBeRemovedNotification object:self]; - [child setParent:nil]; - [children removeObject:child]; - [[NSNotificationCenter defaultCenter] postNotificationName:BDSKBookmarkChangedNotification object:self]; +- (void)insertObject:(BDSKBookmark *)child inChildrenAtIndex:(unsigned int)idx { + [children insertObject:child atIndex:idx]; + [child setParent:self]; } +- (void)removeObjectFromChildrenAtIndex:(unsigned int)idx { + [[children objectAtIndex:idx] setParent:nil]; + [children removeObjectAtIndex:idx]; +} + @end #pragma mark - Modified: trunk/bibdesk/BDSKBookmarkController.h =================================================================== --- trunk/bibdesk/BDSKBookmarkController.h 2008-08-04 23:50:27 UTC (rev 13573) +++ trunk/bibdesk/BDSKBookmarkController.h 2008-08-05 21:25:42 UTC (rev 13574) @@ -61,10 +61,6 @@ - (void)addBookmarkWithUrlString:(NSString *)urlString name:(NSString *)name toFolder:(BDSKBookmark *)folder; - (void)addBookmarkWithUrlString:(NSString *)urlString proposedName:(NSString *)name modalForWindow:(NSWindow *)window; -- (void)handleApplicationWillTerminateNotification:(NSNotification *)notification; -- (void)handleBookmarkWillBeRemovedNotification:(NSNotification *)notification; -- (void)handleBookmarkChangedNotification:(NSNotification *)notification; - - (IBAction)insertBookmark:(id)sender; - (IBAction)insertBookmarkFolder:(id)sender; - (IBAction)insertBookmarkSeparator:(id)sender; @@ -74,8 +70,6 @@ - (NSUndoManager *)undoManager; -- (void)setupToolbar; - @end #pragma mark - Modified: trunk/bibdesk/BDSKBookmarkController.m =================================================================== --- trunk/bibdesk/BDSKBookmarkController.m 2008-08-04 23:50:27 UTC (rev 13573) +++ trunk/bibdesk/BDSKBookmarkController.m 2008-08-05 21:25:42 UTC (rev 13574) @@ -51,6 +51,21 @@ static NSString *BDSKBookmarksNewSeparatorToolbarItemIdentifier = @"BDSKBookmarksNewSeparatorToolbarItemIdentifier"; static NSString *BDSKBookmarksDeleteToolbarItemIdentifier = @"BDSKBookmarksDeleteToolbarItemIdentifier"; +static NSString *BDSKBookmarkChildrenKey = @"children"; +static NSString *BDSKBookmarkNameKey = @"name"; +static NSString *BDSKBookmarkUrlStringKey = @"urlString"; + +static NSString *BDSKBookmarkPropertiesObservationContext = @"BDSKBookmarkPropertiesObservationContext"; + + +@interface BDSKBookmarkController (BDSKPrivate) +- (void)setupToolbar; +- (void)handleApplicationWillTerminateNotification:(NSNotification *)notification; +- (void)endEditing; +- (void)startObservingBookmarks:(NSArray *)newBookmarks; +- (void)stopObservingBookmarks:(NSArray *)oldBookmarks; +@end + @implementation BDSKBookmarkController + (id)sharedBookmarkController { @@ -80,16 +95,15 @@ } bookmarkRoot = [[BDSKBookmark alloc] initFolderWithChildren:bookmarks name:nil]; - [bookmarkRoot setUndoManager:[self undoManager]]; + [self startObservingBookmarks:[NSArray arrayWithObject:bookmarkRoot]]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleApplicationWillTerminateNotification:) name:NSApplicationWillTerminateNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleBookmarkChangedNotification:) name:BDSKBookmarkChangedNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleBookmarkWillBeRemovedNotification:) name:BDSKBookmarkWillBeRemovedNotification object:nil]; } return self; } - (void)dealloc { + [self stopObservingBookmarks:[NSArray arrayWithObject:bookmarkRoot]]; [bookmarkRoot release]; [undoManager release]; [super dealloc]; @@ -141,7 +155,8 @@ - (void)addBookmarkWithUrlString:(NSString *)urlString name:(NSString *)name toFolder:(BDSKBookmark *)folder { BDSKBookmark *bookmark = [[BDSKBookmark alloc] initWithUrlString:urlString name:name]; if (bookmark) { - [(folder ? folder : bookmarkRoot) addChild:bookmark]; + if (folder == nil) folder = bookmarkRoot; + [folder insertObject:bookmark inChildrenAtIndex:[folder countOfChildren]]; [bookmark release]; } } @@ -209,7 +224,7 @@ idx = [[item children] indexOfObject:selectedItem] + 1; } } - [item insertChild:bookmark atIndex:idx]; + [item insertObject:bookmark inChildrenAtIndex:idx]; int row = [outlineView rowForItem:bookmark]; [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO]; @@ -232,7 +247,7 @@ idx = [[item children] indexOfObject:selectedItem] + 1; } } - [item insertChild:folder atIndex:idx]; + [item insertObject:folder inChildrenAtIndex:idx]; int row = [outlineView rowForItem:folder]; [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO]; @@ -255,7 +270,7 @@ idx = [[item children] indexOfObject:selectedItem] + 1; } } - [item insertChild:separator atIndex:idx]; + [item insertObject:separator inChildrenAtIndex:idx]; int row = [outlineView rowForItem:separator]; [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO]; @@ -283,15 +298,11 @@ [data writeToFile:bookmarksPath atomically:YES]; } -- (void)handleBookmarkWillBeRemovedNotification:(NSNotification *)notification { +- (void)endEditing { if ([outlineView editedRow] && [[self window] makeFirstResponder:outlineView] == NO) [[self window] endEditingFor:nil]; } -- (void)handleBookmarkChangedNotification:(NSNotification *)notification { - [outlineView reloadData]; -} - #pragma mark Undo support - (NSUndoManager *)undoManager { @@ -304,6 +315,100 @@ return [self undoManager]; } +- (void)startObservingBookmarks:(NSArray *)newBookmarks { + NSEnumerator *bmEnum = [newBookmarks objectEnumerator]; + BDSKBookmark *bm; + while (bm = [bmEnum nextObject]) { + if ([bm bookmarkType] != BDSKBookmarkTypeSeparator) { + [bm addObserver:self forKeyPath:BDSKBookmarkNameKey options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:BDSKBookmarkPropertiesObservationContext]; + [bm addObserver:self forKeyPath:BDSKBookmarkUrlStringKey options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:BDSKBookmarkPropertiesObservationContext]; + if ([bm bookmarkType] == BDSKBookmarkTypeFolder) { + [bm addObserver:self forKeyPath:BDSKBookmarkChildrenKey options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:BDSKBookmarkPropertiesObservationContext]; + [self startObservingBookmarks:[bm children]]; + } + } + } +} + +- (void)stopObservingBookmarks:(NSArray *)oldBookmarks { + NSEnumerator *bmEnum = [oldBookmarks objectEnumerator]; + BDSKBookmark *bm; + while (bm = [bmEnum nextObject]) { + if ([bm bookmarkType] != BDSKBookmarkTypeSeparator) { + [bm removeObserver:self forKeyPath:BDSKBookmarkNameKey]; + [bm removeObserver:self forKeyPath:BDSKBookmarkUrlStringKey]; + if ([bm bookmarkType] == BDSKBookmarkTypeFolder) { + [bm removeObserver:self forKeyPath:BDSKBookmarkChildrenKey]; + [self stopObservingBookmarks:[bm children]]; + } + } + } +} + +- (void)insertObjects:(NSArray *)newChildren inChildrenOfBookmark:(BDSKBookmark *)bookmark atIndexes:(NSIndexSet *)indexes { + [[bookmark mutableArrayValueForKey:BDSKBookmarkChildrenKey] insertObjects:newChildren atIndexes:indexes]; +} + +- (void)removeObjectsFromChildrenOfBookmark:(BDSKBookmark *)bookmark atIndexes:(NSIndexSet *)indexes { + [[bookmark mutableArrayValueForKey:BDSKBookmarkChildrenKey] removeObjectsAtIndexes:indexes]; +} + +#pragma mark KVO + +- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { + if (context == BDSKBookmarkPropertiesObservationContext) { + BDSKBookmark *bookmark = (BDSKBookmark *)object; + id newValue = [change objectForKey:NSKeyValueChangeNewKey]; + id oldValue = [change objectForKey:NSKeyValueChangeOldKey]; + NSIndexSet *indexes = [change objectForKey:NSKeyValueChangeIndexesKey]; + + if ([newValue isEqual:[NSNull null]]) newValue = nil; + if ([oldValue isEqual:[NSNull null]]) oldValue = nil; + + switch ([[change objectForKey:NSKeyValueChangeKindKey] unsignedIntValue]) { + case NSKeyValueChangeSetting: + if ([keyPath isEqualToString:BDSKBookmarkChildrenKey]) { + NSMutableArray *old = [NSMutableArray arrayWithArray:oldValue]; + NSMutableArray *new = [NSMutableArray arrayWithArray:newValue]; + [old removeObjectsInArray:newValue]; + [new removeObjectsInArray:oldValue]; + [self stopObservingBookmarks:old]; + [self startObservingBookmarks:new]; + [[[self undoManager] prepareWithInvocationTarget:bookmark] setChildren:oldValue]; + } else if ([keyPath isEqualToString:BDSKBookmarkNameKey]) { + [(BDSKBookmark *)[[self undoManager] prepareWithInvocationTarget:bookmark] setName:oldValue]; + } else if ([keyPath isEqualToString:BDSKBookmarkUrlStringKey]) { + [[[self undoManager] prepareWithInvocationTarget:bookmark] setUrlString:oldValue]; + } + break; + case NSKeyValueChangeInsertion: + if ([keyPath isEqualToString:BDSKBookmarkChildrenKey]) { + [self startObservingBookmarks:newValue]; + [[[self undoManager] prepareWithInvocationTarget:self] removeObjectsFromChildrenOfBookmark:bookmark atIndexes:indexes]; + } + break; + case NSKeyValueChangeRemoval: + if ([keyPath isEqualToString:BDSKBookmarkChildrenKey]) { + [self stopObservingBookmarks:oldValue]; + [[[self undoManager] prepareWithInvocationTarget:self] insertObjects:oldValue inChildrenOfBookmark:bookmark atIndexes:indexes]; + } + break; + case NSKeyValueChangeReplacement: + if ([keyPath isEqualToString:BDSKBookmarkChildrenKey]) { + [self stopObservingBookmarks:oldValue]; + [self startObservingBookmarks:newValue]; + [[[self undoManager] prepareWithInvocationTarget:self] removeObjectsFromChildrenOfBookmark:bookmark atIndexes:indexes]; + [[[self undoManager] prepareWithInvocationTarget:self] insertObjects:oldValue inChildrenOfBookmark:bookmark atIndexes:indexes]; + } + break; + } + + [outlineView reloadData]; + } else { + [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; + } +} + #pragma mark NSOutlineView datasource methods - (int)outlineView:(NSOutlineView *)ov numberOfChildrenOfItem:(id)item { @@ -407,16 +512,19 @@ NSEnumerator *bmEnum = [[self draggedBookmarks] objectEnumerator]; BDSKBookmark *bookmark; + [self endEditing]; + while (bookmark = [bmEnum nextObject]) { - int bookmarkIndex = [[[bookmark parent] children] indexOfObject:bookmark]; - if (item == [bookmark parent]) { + BDSKBookmark *parent = [bookmark parent]; + int bookmarkIndex = [[parent children] indexOfObject:bookmark]; + if (item == parent) { if (idx > bookmarkIndex) idx--; if (idx == bookmarkIndex) continue; } - [[bookmark parent] removeChild:bookmark]; - [(BDSKBookmark *)item insertChild:bookmark atIndex:idx++]; + [parent removeObjectFromChildrenAtIndex:bookmarkIndex]; + [(BDSKBookmark *)item insertObject:bookmark inChildrenAtIndex:idx++]; } return YES; } else if (type) { @@ -433,7 +541,7 @@ BDSKBookmark *bookmark = [[BDSKBookmark alloc] initWithUrlString:urlString name:nil]; if (idx == NSOutlineViewDropOnItemIndex) idx = [[item children] count]; - [(BDSKBookmark *)item insertChild:bookmark atIndex:idx]; + [(BDSKBookmark *)item insertObject:bookmark inChildrenAtIndex:idx]; [bookmark release]; } return YES; @@ -486,8 +594,14 @@ NSEnumerator *itemEnum = [[self minimumCoverForBookmarks:items] reverseObjectEnumerator]; BDSKBookmark *item; - while (item = [itemEnum nextObject]) - [[item parent] removeChild:item]; + [self endEditing]; + + while (item = [itemEnum nextObject]) { + BDSKBookmark *parent = [item parent]; + unsigned int itemIndex = [[parent children] indexOfObject:item]; + if (itemIndex != NSNotFound) + [parent removeObjectFromChildrenAtIndex:itemIndex]; + } } - (BOOL)outlineView:(NSOutlineView *)ov drawSeparatorRowForItem:(id)item { Modified: trunk/bibdesk/BDSKSearchBookmark.h =================================================================== --- trunk/bibdesk/BDSKSearchBookmark.h 2008-08-04 23:50:27 UTC (rev 13573) +++ trunk/bibdesk/BDSKSearchBookmark.h 2008-08-05 21:25:42 UTC (rev 13574) @@ -38,9 +38,6 @@ #import <Cocoa/Cocoa.h> -extern NSString *BDSKSearchBookmarkChangedNotification; -extern NSString *BDSKSearchBookmarkWillBeRemovedNotification; - enum { BDSKSearchBookmarkTypeBookmark, BDSKSearchBookmarkTypeFolder, @@ -49,7 +46,6 @@ @interface BDSKSearchBookmark : NSObject <NSCopying> { BDSKSearchBookmark *parent; - NSUndoManager *undoManager; } - (id)initFolderWithChildren:(NSArray *)aChildren label:(NSString *)aLabel; @@ -72,13 +68,11 @@ - (BDSKSearchBookmark *)parent; - (void)setParent:(BDSKSearchBookmark *)newParent; - (NSArray *)children; -- (void)insertChild:(BDSKSearchBookmark *)child atIndex:(unsigned int)index; -- (void)addChild:(BDSKSearchBookmark *)child; -- (void)removeChild:(BDSKSearchBookmark *)child; +- (unsigned int)countOfChildren; +- (BDSKSearchBookmark *)objectInChildrenAtIndex:(unsigned int)idx; +- (void)insertObject:(BDSKSearchBookmark *)child inChildrenAtIndex:(unsigned int)idx; +- (void)removeObjectFromChildrenAtIndex:(unsigned int)idx; -- (NSUndoManager *)undoManager; -- (void)setUndoManager:(NSUndoManager *)undoManager; - - (BOOL)isDescendantOf:(BDSKSearchBookmark *)bookmark; - (BOOL)isDescendantOfArray:(NSArray *)bookmarks; Modified: trunk/bibdesk/BDSKSearchBookmark.m =================================================================== --- trunk/bibdesk/BDSKSearchBookmark.m 2008-08-04 23:50:27 UTC (rev 13573) +++ trunk/bibdesk/BDSKSearchBookmark.m 2008-08-05 21:25:42 UTC (rev 13574) @@ -38,9 +38,6 @@ #import "BDSKSearchBookmark.h" -NSString *BDSKSearchBookmarkChangedNotification = @"BDSKSearchBookmarkChangedNotification"; -NSString *BDSKSearchBookmarkWillBeRemovedNotification = @"BDSKSearchBookmarkWillBeRemovedNotification"; - static NSString *BDSKSearchBookmarkTypeBookmarkString = @"bookmark"; static NSString *BDSKSearchBookmarkTypeFolderString = @"folder"; static NSString *BDSKSearchBookmarkTypeSeparatorString = @"separator"; @@ -134,7 +131,6 @@ - (void)dealloc { if (self != defaultPlaceholderSearchBookmark) { - [undoManager release]; [super dealloc]; } } @@ -151,9 +147,10 @@ - (NSDictionary *)info { return nil; } - (NSArray *)children { return nil; } -- (void)insertChild:(BDSKSearchBookmark *)child atIndex:(unsigned int)idx {} -- (void)addChild:(BDSKSearchBookmark *)child {} -- (void)removeChild:(BDSKSearchBookmark *)child {} +- (unsigned int)countOfChildren { return 0; } +- (BDSKSearchBookmark *)objectInChildrenAtIndex:(unsigned int)idx { return nil; } +- (void)insertObject:(BDSKSearchBookmark *)child inChildrenAtIndex:(unsigned int)idx {} +- (void)removeObjectFromChildrenAtIndex:(unsigned int)idx {} - (BDSKSearchBookmark *)parent { return parent; @@ -163,17 +160,6 @@ parent = newParent; } -- (NSUndoManager *)undoManager { - return undoManager ? undoManager : [parent undoManager]; -} - -- (void)setUndoManager:(NSUndoManager *)newUndoManager { - if (undoManager != newUndoManager) { - [undoManager release]; - undoManager = [newUndoManager retain]; - } -} - - (BOOL)isDescendantOf:(BDSKSearchBookmark *)bookmark { if (self == bookmark) return YES; @@ -214,7 +200,6 @@ } - (void)dealloc { - [[self undoManager] removeAllActionsWithTarget:self]; [info release]; [label release]; [super dealloc]; @@ -244,10 +229,8 @@ - (void)setLabel:(NSString *)newLabel { if (label != newLabel) { - [(BDSKSearchBookmark *)[[self undoManager] prepareWithInvocationTarget:self] setLabel:label]; [label release]; label = [newLabel retain]; - [[NSNotificationCenter defaultCenter] postNotificationName:BDSKSearchBookmarkChangedNotification object:self]; } } @@ -285,7 +268,6 @@ } - (void)dealloc { - [[self undoManager] removeAllActionsWithTarget:self]; [label release]; [children release]; [super dealloc]; @@ -309,10 +291,8 @@ - (void)setLabel:(NSString *)newLabel { if (label != newLabel) { - [(BDSKSearchBookmark *)[[self undoManager] prepareWithInvocationTarget:self] setLabel:label]; [label release]; label = [newLabel retain]; - [[NSNotificationCenter defaultCenter] postNotificationName:BDSKSearchBookmarkChangedNotification object:self]; } } @@ -321,28 +301,27 @@ } - (NSArray *)children { - return children; + return [[children copy] autorelease]; } -- (void)insertChild:(BDSKSearchBookmark *)child atIndex:(unsigned int)idx { - [(BDSKSearchBookmark *)[[self undoManager] prepareWithInvocationTarget:self] removeChild:child]; - [children insertObject:child atIndex:idx]; - [child setParent:self]; - [[NSNotificationCenter defaultCenter] postNotificationName:BDSKSearchBookmarkChangedNotification object:self]; +- (unsigned int)countOfChildren { + return [children count]; } -- (void)addChild:(BDSKSearchBookmark *)child { - [self insertChild:child atIndex:[children count]]; +- (BDSKSearchBookmark *)objectInChildrenAtIndex:(unsigned int)idx { + return [children objectAtIndex:idx]; } -- (void)removeChild:(BDSKSearchBookmark *)child { - [(BDSKSearchBookmark *)[[self undoManager] prepareWithInvocationTarget:self] insertChild:child atIndex:[[self children] indexOfObject:child]]; - [[NSNotificationCenter defaultCenter] postNotificationName:BDSKSearchBookmarkWillBeRemovedNotification object:self]; - [child setParent:nil]; - [children removeObject:child]; - [[NSNotificationCenter defaultCenter] postNotificationName:BDSKSearchBookmarkChangedNotification object:self]; +- (void)insertObject:(BDSKSearchBookmark *)child inChildrenAtIndex:(unsigned int)idx { + [children insertObject:child atIndex:idx]; + [child setParent:self]; } +- (void)removeObjectFromChildrenAtIndex:(unsigned int)idx { + [[children objectAtIndex:idx] setParent:nil]; + [children removeObjectAtIndex:idx]; +} + @end #pragma mark - Modified: trunk/bibdesk/BDSKSearchBookmarkController.h =================================================================== --- trunk/bibdesk/BDSKSearchBookmarkController.h 2008-08-04 23:50:27 UTC (rev 13573) +++ trunk/bibdesk/BDSKSearchBookmarkController.h 2008-08-05 21:25:42 UTC (rev 13574) @@ -60,11 +60,7 @@ - (IBAction)deleteBookmark:(id)sender; - (void)saveBookmarks; -- (void)handleSearchBookmarkChangedNotification:(NSNotification *)notification; -- (void)handleSearchBookmarkWillBeRemovedNotification:(NSNotification *)notification; - (NSUndoManager *)undoManager; -- (void)setupToolbar; - @end Modified: trunk/bibdesk/BDSKSearchBookmarkController.m =================================================================== --- trunk/bibdesk/BDSKSearchBookmarkController.m 2008-08-04 23:50:27 UTC (rev 13573) +++ trunk/bibdesk/BDSKSearchBookmarkController.m 2008-08-05 21:25:42 UTC (rev 13574) @@ -49,6 +49,19 @@ static NSString *BDSKSearchBookmarksNewSeparatorToolbarItemIdentifier = @"BDSKSearchBookmarksNewSeparatorToolbarItemIdentifier"; static NSString *BDSKSearchBookmarksDeleteToolbarItemIdentifier = @"BDSKSearchBookmarksDeleteToolbarItemIdentifier"; +static NSString *BDSKSearchBookmarkChildrenKey = @"children"; +static NSString *BDSKSearchBookmarkLabelKey = @"label"; + +static NSString *BDSKSearchBookmarkPropertiesObservationContext = @"BDSKSearchBookmarkPropertiesObservationContext"; + + +@interface BDSKSearchBookmarkController (BDSKPrivate) +- (void)setupToolbar; +- (void)endEditing; +- (void)startObservingBookmarks:(NSArray *)newBookmarks; +- (void)stopObservingBookmarks:(NSArray *)oldBookmarks; +@end + @implementation BDSKSearchBookmarkController + (id)sharedBookmarkController { @@ -71,21 +84,13 @@ } bookmarkRoot = [[BDSKSearchBookmark alloc] initFolderWithChildren:bookmarks label:nil]; - [bookmarkRoot setUndoManager:[self undoManager]]; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(handleSearchBookmarkChangedNotification:) - name:BDSKSearchBookmarkChangedNotification - object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(handleSearchBookmarkWillBeRemovedNotification:) - name:BDSKSearchBookmarkWillBeRemovedNotification - object:nil]; + [self startObservingBookmarks:[NSArray arrayWithObject:bookmarkRoot]]; } return self; } - (void)dealloc { + [self stopObservingBookmarks:[NSArray arrayWithObject:bookmarkRoot]]; [[NSNotificationCenter defaultCenter] removeObserver:self]; [bookmarkRoot release]; [super dealloc]; @@ -122,7 +127,8 @@ - (void)addBookmarkWithInfo:(NSDictionary *)info label:(NSString *)label toFolder:(BDSKSearchBookmark *)folder { BDSKSearchBookmark *bookmark = [[BDSKSearchBookmark alloc] initWithInfo:info label:label]; if (bookmark) { - [folder ? folder : bookmarkRoot addChild:bookmark]; + if (folder == nil) folder = bookmarkRoot; + [folder insertObject:bookmark inChildrenAtIndex:[folder countOfChildren]]; [bookmark release]; } } @@ -160,7 +166,7 @@ idx = [[item children] indexOfObject:selectedItem] + 1; } } - [item insertChild:folder atIndex:idx]; + [item insertObject:folder inChildrenAtIndex:idx]; int row = [outlineView rowForItem:folder]; [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO]; @@ -183,7 +189,7 @@ idx = [[item children] indexOfObject:selectedItem] + 1; } } - [item insertChild:separator atIndex:idx]; + [item insertObject:separator inChildrenAtIndex:idx]; int row = [outlineView rowForItem:separator]; [outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO]; @@ -193,18 +199,11 @@ [outlineView delete:sender]; } -#pragma mark Notification handlers - -- (void)handleSearchBookmarkWillBeRemovedNotification:(NSNotification *)notification { +- (void)endEditing { if ([outlineView editedRow] && [[self window] makeFirstResponder:outlineView] == NO) [[self window] endEditingFor:nil]; } -- (void)handleSearchBookmarkChangedNotification:(NSNotification *)notification { - [self saveBookmarks]; - [outlineView reloadData]; -} - #pragma mark Undo support - (NSUndoManager *)undoManager { @@ -217,6 +216,97 @@ return [self undoManager]; } +- (void)startObservingBookmarks:(NSArray *)newBookmarks { + NSEnumerator *bmEnum = [newBookmarks objectEnumerator]; + BDSKSearchBookmark *bm; + while (bm = [bmEnum nextObject]) { + if ([bm bookmarkType] != BDSKSearchBookmarkTypeSeparator) { + [bm addObserver:self forKeyPath:BDSKSearchBookmarkLabelKey options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:BDSKSearchBookmarkPropertiesObservationContext]; + if ([bm bookmarkType] == BDSKSearchBookmarkTypeFolder) { + [bm addObserver:self forKeyPath:BDSKSearchBookmarkChildrenKey options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld) context:BDSKSearchBookmarkPropertiesObservationContext]; + [self startObservingBookmarks:[bm children]]; + } + } + } +} + +- (void)stopObservingBookmarks:(NSArray *)oldBookmarks { + NSEnumerator *bmEnum = [oldBookmarks objectEnumerator]; + BDSKSearchBookmark *bm; + while (bm = [bmEnum nextObject]) { + if ([bm bookmarkType] != BDSKSearchBookmarkTypeSeparator) { + [bm removeObserver:self forKeyPath:BDSKSearchBookmarkLabelKey]; + if ([bm bookmarkType] == BDSKSearchBookmarkTypeFolder) { + [bm removeObserver:self forKeyPath:BDSKSearchBookmarkChildrenKey]; + [self stopObservingBookmarks:[bm children]]; + } + } + } +} + +- (void)insertObjects:(NSArray *)newChildren inChildrenOfBookmark:(BDSKSearchBookmark *)bookmark atIndexes:(NSIndexSet *)indexes { + [[bookmark mutableArrayValueForKey:BDSKSearchBookmarkChildrenKey] insertObjects:newChildren atIndexes:indexes]; +} + +- (void)removeObjectsFromChildrenOfBookmark:(BDSKSearchBookmark *)bookmark atIndexes:(NSIndexSet *)indexes { + [[bookmark mutableArrayValueForKey:BDSKSearchBookmarkChildrenKey] removeObjectsAtIndexes:indexes]; +} + +#pragma mark KVO + +- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { + if (context == BDSKSearchBookmarkPropertiesObservationContext) { + BDSKSearchBookmark *bookmark = (BDSKSearchBookmark *)object; + id newValue = [change objectForKey:NSKeyValueChangeNewKey]; + id oldValue = [change objectForKey:NSKeyValueChangeOldKey]; + NSIndexSet *indexes = [change objectForKey:NSKeyValueChangeIndexesKey]; + + if ([newValue isEqual:[NSNull null]]) newValue = nil; + if ([oldValue isEqual:[NSNull null]]) oldValue = nil; + + switch ([[change objectForKey:NSKeyValueChangeKindKey] unsignedIntValue]) { + case NSKeyValueChangeSetting: + if ([keyPath isEqualToString:BDSKSearchBookmarkChildrenKey]) { + NSMutableArray *old = [NSMutableArray arrayWithArray:oldValue]; + NSMutableArray *new = [NSMutableArray arrayWithArray:newValue]; + [old removeObjectsInArray:newValue]; + [new removeObjectsInArray:oldValue]; + [self stopObservingBookmarks:old]; + [self startObservingBookmarks:new]; + [[[self undoManager] prepareWithInvocationTarget:bookmark] setChildren:oldValue]; + } else if ([keyPath isEqualToString:BDSKSearchBookmarkLabelKey]) { + [[[self undoManager] prepareWithInvocationTarget:bookmark] setLabel:oldValue]; + } + break; + case NSKeyValueChangeInsertion: + if ([keyPath isEqualToString:BDSKSearchBookmarkChildrenKey]) { + [self startObservingBookmarks:newValue]; + [[[self undoManager] prepareWithInvocationTarget:self] removeObjectsFromChildrenOfBookmark:bookmark atIndexes:indexes]; + } + break; + case NSKeyValueChangeRemoval: + if ([keyPath isEqualToString:BDSKSearchBookmarkChildrenKey]) { + [self stopObservingBookmarks:oldValue]; + [[[self undoManager] prepareWithInvocationTarget:self] insertObjects:oldValue inChildrenOfBookmark:bookmark atIndexes:indexes]; + } + break; + case NSKeyValueChangeReplacement: + if ([keyPath isEqualToString:BDSKSearchBookmarkChildrenKey]) { + [self stopObservingBookmarks:oldValue]; + [self startObservingBookmarks:newValue]; + [[[self undoManager] prepareWithInvocationTarget:self] removeObjectsFromChildrenOfBookmark:bookmark atIndexes:indexes]; + [[[self undoManager] prepareWithInvocationTarget:self] insertObjects:oldValue inChildrenOfBookmark:bookmark atIndexes:indexes]; + } + break; + } + + [outlineView reloadData]; + [self saveBookmarks]; + } else { + [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; + } +} + #pragma mark NSOutlineView datasource methods - (int)outlineView:(NSOutlineView *)ov numberOfChildrenOfItem:(id)item { @@ -295,17 +385,20 @@ BDSKSearchBookmark *bookmark; if (item == nil) item = bookmarkRoot; - + + [self endEditing]; + while (bookmark = [bmEnum nextObject]) { - int bookmarkIndex = [[[bookmark parent] children] indexOfObject:bookmark]; - if (item == [bookmark parent]) { + BDSKSearchBookmark *parent = [bookmark parent]; + int bookmarkIndex = [[parent children] indexOfObject:bookmark]; + if (item == parent) { if (idx > bookmarkIndex) idx--; if (idx == bookmarkIndex) continue; } - [[bookmark parent] removeChild:bookmark]; - [(BDSKSearchBookmark *)item insertChild:bookmark atIndex:idx++]; + [parent removeObjectFromChildrenAtIndex:bookmarkIndex]; + [(BDSKSearchBookmark *)item insertObject:bookmark inChildrenAtIndex:idx++]; } return YES; } @@ -342,8 +435,14 @@ NSEnumerator *itemEnum = [[self minimumCoverForBookmarks:items] reverseObjectEnumerator]; BDSKSearchBookmark *item; - while (item = [itemEnum nextObject]) - [[item parent] removeChild:item]; + [self endEditing]; + + while (item = [itemEnum nextObject]) { + BDSKSearchBookmark *parent = [item parent]; + unsigned int itemIndex = [[parent children] indexOfObject:item]; + if (itemIndex != NSNotFound) + [parent removeObjectFromChildrenAtIndex:itemIndex]; + } } - (BOOL)outlineView:(NSOutlineView *)ov drawSeparatorRowForItem:(id)item { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-07 00:19:50
|
Revision: 13575 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13575&view=rev Author: hofman Date: 2008-08-07 00:19:57 +0000 (Thu, 07 Aug 2008) Log Message: ----------- Use method swizzling instead of deprecated class posing Modified Paths: -------------- trunk/bibdesk/BDSKDocumentController.m trunk/bibdesk/BDSKTemplateDocument.h trunk/bibdesk/BDSKTemplateDocument.m Modified: trunk/bibdesk/BDSKDocumentController.m =================================================================== --- trunk/bibdesk/BDSKDocumentController.m 2008-08-05 21:25:42 UTC (rev 13574) +++ trunk/bibdesk/BDSKDocumentController.m 2008-08-07 00:19:57 UTC (rev 13575) @@ -56,6 +56,7 @@ #import "BDSKGroupsArray.h" #import "NSFileManager_BDSKExtensions.h" #import "BDSKTemplateDocument.h" +#import <OmniBase/OBUtilities.h> @implementation BDSKDocumentController @@ -553,21 +554,18 @@ #pragma mark - -@interface NSSavePanel (AppleBugPrivate) +@interface NSSavePanel (BDSKAppleBugPrivate) - (BOOL)_canShowGoto; @end -@interface BDSKPosingSavePanel : NSSavePanel @end +@interface NSSavePanel (BDSKAppleBugFixes) @end -@implementation BDSKPosingSavePanel +@implementation NSSavePanel (BDSKAppleBugFixes) -+ (void)load -{ - [self poseAsClass:NSClassFromString(@"NSSavePanel")]; -} +static BOOL (*originalCanShowGoTo)(id, SEL) = NULL; // hack around an acknowledged Apple bug (http://www.cocoabuilder.com/archive/message/cocoa/2006/4/14/161080) that causes the goto panel to be displayed when trying to enter a leading / in "Open Using Filter" accessory view (our bug #1480815) -- (BOOL)_canShowGoto; +- (BOOL)replacementCanShowGoto; { id firstResponder = [self firstResponder]; // this is likely a field editor, but we have to make sure @@ -577,7 +575,12 @@ if (accessoryView != nil && [accessoryView ancestorSharedWithView:[firstResponder delegate]] == accessoryView) return NO; } - return [super _canShowGoto]; + return originalCanShowGoTo(self, _cmd); } ++ (void)load +{ + originalCanShowGoTo = (BOOL (*)(id, SEL))OBReplaceMethodImplementationWithSelector(self, @selector(_canShowGoto), @selector(replacementCanShowGoto)); +} + @end Modified: trunk/bibdesk/BDSKTemplateDocument.h =================================================================== --- trunk/bibdesk/BDSKTemplateDocument.h 2008-08-05 21:25:42 UTC (rev 13574) +++ trunk/bibdesk/BDSKTemplateDocument.h 2008-08-07 00:19:57 UTC (rev 13575) @@ -193,7 +193,7 @@ #pragma mark - -@interface BDSKTokenField : NSTokenField +@interface NSTokenField (BDSKExtensions) @end @interface NSObject (BDSKTokenFieldDelegate) Modified: trunk/bibdesk/BDSKTemplateDocument.m =================================================================== --- trunk/bibdesk/BDSKTemplateDocument.m 2008-08-05 21:25:42 UTC (rev 13574) +++ trunk/bibdesk/BDSKTemplateDocument.m 2008-08-07 00:19:57 UTC (rev 13575) @@ -1470,40 +1470,37 @@ #pragma mark - -@implementation BDSKTokenField +@implementation NSTokenField (BDSKExtensions) -+ (void)load { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - [BDSKTokenField poseAsClass:[NSTokenField class]]; - [pool release]; -} +static void (*originalTextViewDidChangeSelection)(id, SEL, id) = NULL; -- (void)textViewDidChangeSelection:(NSNotification *)notification { - if ([[BDSKTokenField superclass] instancesRespondToSelector:_cmd]) - [super textViewDidChangeSelection:notification]; +- (void)replacementTextViewDidChangeSelection:(NSNotification *)notification { + if (originalTextViewDidChangeSelection != NULL) + originalTextViewDidChangeSelection(self, _cmd, notification); if ([[self delegate] respondsToSelector:@selector(tokenField:textViewDidChangeSelection:)]) [[self delegate] tokenField:self textViewDidChangeSelection:[notification object]]; } ++ (void)load { + if ([self instancesRespondToSelector:@selector(textViewDidChangeSelection:)]) + originalTextViewDidChangeSelection = (void (*)(id, SEL, id))OBReplaceMethodImplementationWithSelector(self, @selector(textViewDidChangeSelection:), @selector(replacementTextViewDidChangeSelection:)); + else + OBRegisterInstanceMethodWithSelector(self, @selector(textViewDidChangeSelection:), @selector(replacementTextViewDidChangeSelection:)); +} + @end #pragma mark - -@interface BDSKTokenFieldCell : NSTokenFieldCell +@interface NSTokenFieldCell (BDSKExtensions) @end -@implementation BDSKTokenFieldCell +@implementation NSTokenFieldCell (BDSKExtensions) -+ (void)load { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - // in later versions, messing with the binding info causes an infinite loop and crash - if (floor(NSAppKitVersionNumber) <= 824 /* 10.4 */) - [BDSKTokenFieldCell poseAsClass:NSClassFromString(@"NSTokenFieldCell")]; - [pool release]; -} +static void (*originalSetObjectValue)(id, SEL, id) = NULL; -- (void)setObjectValue:(id)value { - [super setObjectValue:value]; +- (void)replacementSetObjectValue:(id)value { + originalSetObjectValue(self, _cmd, value); // updating in NSTokenField binding does not work for drop of tokens NSDictionary *valueBindingInformation = [[self controlView] infoForBinding:@"value"]; if (valueBindingInformation != nil) { @@ -1514,6 +1511,10 @@ } } ++ (void)load { + originalSetObjectValue = (void (*)(id, SEL, id))OBReplaceMethodImplementationWithSelector(self, @selector(setObjectValue:), @selector(replacementSetObjectValue:)); +} + @end #pragma mark - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-07 11:39:43
|
Revision: 13576 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13576&view=rev Author: hofman Date: 2008-08-07 11:39:52 +0000 (Thu, 07 Aug 2008) Log Message: ----------- Implement notification and initialization for computer name used by sharing server in +initialize. Make sure the affected objects are used only in methods of the class. Modified Paths: -------------- trunk/bibdesk/BDSKSharingBrowser.h trunk/bibdesk/BDSKSharingServer.m Modified: trunk/bibdesk/BDSKSharingBrowser.h =================================================================== --- trunk/bibdesk/BDSKSharingBrowser.h 2008-08-07 00:19:57 UTC (rev 13575) +++ trunk/bibdesk/BDSKSharingBrowser.h 2008-08-07 11:39:52 UTC (rev 13576) @@ -40,8 +40,6 @@ extern NSString *BDSKNetServiceDomain; -extern NSString *BDSKComputerName(); - @interface BDSKSharingBrowser : NSObject { NSMutableSet *sharingClients; NSNetServiceBrowser *browser; Modified: trunk/bibdesk/BDSKSharingServer.m =================================================================== --- trunk/bibdesk/BDSKSharingServer.m 2008-08-07 00:19:57 UTC (rev 13575) +++ trunk/bibdesk/BDSKSharingServer.m 2008-08-07 11:39:52 UTC (rev 13576) @@ -48,6 +48,8 @@ #import "BDSKSharedGroup.h" #import "BDSKAsynchronousDOServer.h" #import "BDSKThreadSafeMutableDictionary.h" +#import <OmniBase/OBUtilities.h> +#import <OmniBase/assertions.h> #include <sys/socket.h> #include <netinet/in.h> @@ -86,11 +88,6 @@ [pool release]; } -// This is the computer name as set in sys prefs (sharing) -NSString *BDSKComputerName() { - return [(id)SCDynamicStoreCopyComputerName(dynamicStore, NULL) autorelease]; -} - #pragma mark - // private protocol for inter-thread messaging @@ -120,12 +117,11 @@ @implementation BDSKSharingServer -// +load so this gets sets up regardless of whether we instantiate the server -+ (void)load; ++ (void)initialize; { - /* Ensure that computer name changes are propagated as future clients connect to a document. Also, note that the OS will change the computer name to avoid conflicts by appending "(2)" or similar to the previous name, which is likely the most common scenario. - */ - NSAutoreleasePool *pool = [NSAutoreleasePool new]; + OBINITIALIZE; + + // Ensure that computer name changes are propagated as future clients connect to a document. Also, note that the OS will change the computer name to avoid conflicts by appending "(2)" or similar to the previous name, which is likely the most common scenario. if(dynamicStore == NULL){ CFAllocatorRef alloc = CFAllocatorGetDefault(); CFRetain(alloc); // make sure this is maintained for the life of the program @@ -143,30 +139,29 @@ else { CFStringRef bundleID = CFBundleGetIdentifier(mainBundle); dynamicStore = SCDynamicStoreCreate(alloc, bundleID, &SCDynamicStoreChanged, &SCNSObjectContext); - CFRunLoopSourceRef rlSource = SCDynamicStoreCreateRunLoopSource(alloc, dynamicStore, 0); - CFRunLoopAddSource(CFRunLoopGetCurrent(), rlSource, kCFRunLoopCommonModes); - CFRelease(rlSource); - - CFMutableArrayRef keys = CFArrayCreateMutable(alloc, 0, &kCFTypeArrayCallBacks); - - // use SCDynamicStore keys as NSNotification names; don't release them - CFStringRef key = SCDynamicStoreKeyCreateComputerName(alloc); - CFArrayAppendValue(keys, key); - BDSKComputerNameChangedNotification = (NSString *)key; - - key = SCDynamicStoreKeyCreateHostNames(alloc); - CFArrayAppendValue(keys, key); - BDSKHostNameChangedNotification = (NSString *)key; - - OBASSERT(BDSKComputerNameChangedNotification); - OBASSERT(BDSKHostNameChangedNotification); + CFRunLoopSourceRef rlSource = SCDynamicStoreCreateRunLoopSource(alloc, dynamicStore, 0); + CFRunLoopAddSource(CFRunLoopGetCurrent(), rlSource, kCFRunLoopCommonModes); + CFRelease(rlSource); - if(SCDynamicStoreSetNotificationKeys(dynamicStore, keys, NULL) == FALSE) - fprintf(stderr, "unable to register for dynamic store notifications.\n"); - CFRelease(keys); + CFMutableArrayRef keys = CFArrayCreateMutable(alloc, 0, &kCFTypeArrayCallBacks); + + // use SCDynamicStore keys as NSNotification names; don't release them + CFStringRef key = SCDynamicStoreKeyCreateComputerName(alloc); + CFArrayAppendValue(keys, key); + BDSKComputerNameChangedNotification = (NSString *)key; + + key = SCDynamicStoreKeyCreateHostNames(alloc); + CFArrayAppendValue(keys, key); + BDSKHostNameChangedNotification = (NSString *)key; + + OBASSERT(BDSKComputerNameChangedNotification); + OBASSERT(BDSKHostNameChangedNotification); + + if(SCDynamicStoreSetNotificationKeys(dynamicStore, keys, NULL) == FALSE) + fprintf(stderr, "unable to register for dynamic store notifications.\n"); + CFRelease(keys); + } } - } - [pool release]; } // base name for sharing (also used for storing remote host names in keychain) @@ -174,8 +169,11 @@ { // docs say to use computer name instead of host name http://developer.apple.com/qa/qa2001/qa1228.html NSString *sharingName = [[OFPreferenceWrapper sharedPreferenceWrapper] objectForKey:BDSKSharingNameKey]; + OBASSERT(dynamicStore); + // default to the computer name as set in sys prefs (sharing) if([NSString isEmptyString:sharingName]) - sharingName = BDSKComputerName(); + sharingName = [(id)SCDynamicStoreCopyComputerName(dynamicStore, NULL) autorelease]; + OBPOSTCONDITION(sharingName); return sharingName; } @@ -280,6 +278,8 @@ // register for notifications NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; + OBASSERT(BDSKComputerNameChangedNotification); + [nc addObserver:self selector:@selector(handleComputerNameChangedNotification:) name:BDSKComputerNameChangedNotification This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-07 11:57:12
|
Revision: 13578 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13578&view=rev Author: hofman Date: 2008-08-07 11:57:21 +0000 (Thu, 07 Aug 2008) Log Message: ----------- Register NSURL as conversion handler in +initialize of app controller instead of +load of NSURL, as +load may come too early. Modified Paths: -------------- trunk/bibdesk/BDSKAppController.m trunk/bibdesk/NSURL_BDSKExtensions.m Modified: trunk/bibdesk/BDSKAppController.m =================================================================== --- trunk/bibdesk/BDSKAppController.m 2008-08-07 11:52:12 UTC (rev 13577) +++ trunk/bibdesk/BDSKAppController.m 2008-08-07 11:57:21 UTC (rev 13578) @@ -89,6 +89,7 @@ #import "BDSKGroupsArray.h" #import "BDSKWebGroup.h" #import "BDSKWebGroupViewController.h" +#import "KFASHandlerAdditions-TypeTranslation.h" @implementation BDSKAppController @@ -154,6 +155,11 @@ static NSImage *nsCautionIcon = nil; nsCautionIcon = [[NSImage iconWithSize:NSMakeSize(16.0, 16.0) forToolboxCode:kAlertCautionIcon] retain]; [nsCautionIcon setName:@"BDSKSmallCautionIcon"]; + + // register NSURL as conversion handler for file types + [NSAppleEventDescriptor registerConversionHandler:[NSURL class] + selector:@selector(fileURLWithAEDesc:) + forDescriptorTypes:typeFileURL, typeFSS, typeAlias, typeFSRef, nil]; } - (id)init Modified: trunk/bibdesk/NSURL_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSURL_BDSKExtensions.m 2008-08-07 11:52:12 UTC (rev 13577) +++ trunk/bibdesk/NSURL_BDSKExtensions.m 2008-08-07 11:57:21 UTC (rev 13578) @@ -41,20 +41,11 @@ #import "NSImage_BDSKExtensions.h" #import "NSAppleEventDescriptor_BDSKExtensions.h" #import <FileView/FVFinderLabel.h> -#import "KFASHandlerAdditions-TypeTranslation.h" #import "NSWorkspace_BDSKExtensions.h" #import <SkimNotes/SkimNotes.h> @implementation NSURL (BDSKExtensions) -+ (void)load { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - [NSAppleEventDescriptor registerConversionHandler:self - selector:@selector(fileURLWithAEDesc:) - forDescriptorTypes:typeFileURL, typeFSS, typeAlias, typeFSRef, nil]; - [pool release]; -} - + (NSURL *)fileURLWithAEDesc:(NSAppleEventDescriptor *)desc { return [desc fileURLValue]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-07 12:02:55
|
Revision: 13579 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13579&view=rev Author: hofman Date: 2008-08-07 12:03:04 +0000 (Thu, 07 Aug 2008) Log Message: ----------- Avoid obj-c method in +load. Make use of behavior of OB runtime extension methods. Modified Paths: -------------- trunk/bibdesk/BDSKTemplateDocument.m trunk/bibdesk/PDFDocument_BDSKExtensions.m Modified: trunk/bibdesk/BDSKTemplateDocument.m =================================================================== --- trunk/bibdesk/BDSKTemplateDocument.m 2008-08-07 11:57:21 UTC (rev 13578) +++ trunk/bibdesk/BDSKTemplateDocument.m 2008-08-07 12:03:04 UTC (rev 13579) @@ -1482,9 +1482,9 @@ } + (void)load { - if (NULL != class_getInstanceMethod(self, @selector(textViewDidChangeSelection:))) - originalTextViewDidChangeSelection = (void (*)(id, SEL, id))OBReplaceMethodImplementationWithSelector(self, @selector(textViewDidChangeSelection:), @selector(replacementTextViewDidChangeSelection:)); - else + originalTextViewDidChangeSelection = (void (*)(id, SEL, id))OBReplaceMethodImplementationWithSelector(self, @selector(textViewDidChangeSelection:), @selector(replacementTextViewDidChangeSelection:)); + // if it was returning NULL nothing was replaced, so we just register the method because we want to use it + if (originalTextViewDidChangeSelection == NULL) OBRegisterInstanceMethodWithSelector(self, @selector(replacementTextViewDidChangeSelection:), @selector(textViewDidChangeSelection:)); } Modified: trunk/bibdesk/PDFDocument_BDSKExtensions.m =================================================================== --- trunk/bibdesk/PDFDocument_BDSKExtensions.m 2008-08-07 11:57:21 UTC (rev 13578) +++ trunk/bibdesk/PDFDocument_BDSKExtensions.m 2008-08-07 12:03:04 UTC (rev 13579) @@ -58,10 +58,7 @@ } + (void)load { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - if ([self instancesRespondToSelector:@selector(getPrintOperationForPrintInfo:autoRotate:)]) - originalGetPrintOperationForPrintInfo = (id (*)(id, SEL, id, BOOL))OBReplaceMethodImplementationWithSelector(self, @selector(getPrintOperationForPrintInfo:autoRotate:), @selector(replacementGetPrintOperationForPrintInfo:autoRotate:)); - [pool release]; + originalGetPrintOperationForPrintInfo = (id (*)(id, SEL, id, BOOL))OBReplaceMethodImplementationWithSelector(self, @selector(getPrintOperationForPrintInfo:autoRotate:), @selector(replacementGetPrintOperationForPrintInfo:autoRotate:)); } + (NSData *)PDFDataWithPostScriptData:(NSData *)psData; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-09 17:04:32
|
Revision: 13581 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13581&view=rev Author: hofman Date: 2008-08-09 17:04:37 +0000 (Sat, 09 Aug 2008) Log Message: ----------- Bind smart group condition views through an NSObjectController, and properly commit edits from the conditions using this controller. Modified Paths: -------------- trunk/bibdesk/BDSKConditionController.h trunk/bibdesk/BDSKConditionController.m trunk/bibdesk/BDSKFilterController.h trunk/bibdesk/BDSKFilterController.m trunk/bibdesk/English.lproj/BDSKCondition.nib/classes.nib trunk/bibdesk/English.lproj/BDSKCondition.nib/info.nib trunk/bibdesk/English.lproj/BDSKCondition.nib/keyedobjects.nib Modified: trunk/bibdesk/BDSKConditionController.h =================================================================== --- trunk/bibdesk/BDSKConditionController.h 2008-08-07 18:36:57 UTC (rev 13580) +++ trunk/bibdesk/BDSKConditionController.h 2008-08-09 17:04:37 UTC (rev 13581) @@ -43,6 +43,7 @@ @interface BDSKConditionController : NSWindowController { + IBOutlet NSObjectController *objectController; IBOutlet NSComboBox *keyComboBox; IBOutlet NSPopUpButton *comparisonPopUp; IBOutlet NSPopUpButton *attachmentComparisonPopUp; @@ -88,4 +89,7 @@ - (NSArray *)keys; - (void)setKeys:(NSArray *)newKeys; +- (BOOL)commitEditing; +- (void)discardEditing; + @end Modified: trunk/bibdesk/BDSKConditionController.m =================================================================== --- trunk/bibdesk/BDSKConditionController.m 2008-08-07 18:36:57 UTC (rev 13580) +++ trunk/bibdesk/BDSKConditionController.m 2008-08-09 17:04:37 UTC (rev 13581) @@ -382,4 +382,12 @@ } } +- (BOOL)commitEditing { + return [objectController commitEditing]; +} + +- (void)discardEditing { + [objectController discardEditing]; +} + @end Modified: trunk/bibdesk/BDSKFilterController.h =================================================================== --- trunk/bibdesk/BDSKFilterController.h 2008-08-07 18:36:57 UTC (rev 13580) +++ trunk/bibdesk/BDSKFilterController.h 2008-08-09 17:04:37 UTC (rev 13581) @@ -68,6 +68,7 @@ - (void)setConjunction:(BDSKConjunction)newConjunction; - (BOOL)commitEditing; +- (void)discardEditing; - (NSUndoManager *)undoManager; Modified: trunk/bibdesk/BDSKFilterController.m =================================================================== --- trunk/bibdesk/BDSKFilterController.m 2008-08-07 18:36:57 UTC (rev 13580) +++ trunk/bibdesk/BDSKFilterController.m 2008-08-09 17:04:37 UTC (rev 13581) @@ -191,29 +191,23 @@ conjunction = newConjunction; } -#pragma mark NSEditorRegistration +#pragma mark NSEditor -- (void)objectDidBeginEditing:(id)editor { - if (CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor) == -1) - CFArrayAppendValue((CFMutableArrayRef)editors, editor); -} - -- (void)objectDidEndEditing:(id)editor { - CFIndex idx = CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor); - if (idx != -1) - CFArrayRemoveValueAtIndex((CFMutableArrayRef)editors, idx); -} - - (BOOL)commitEditing { - CFIndex idx = CFArrayGetCount(editors); + NSEnumerator *cEnum = [conditionControllers objectEnumerator]; + BDSKConditionController *controller; - while (idx--) - if([(NSObject *)(CFArrayGetValueAtIndex(editors, idx)) commitEditing] == NO) - return NO; - + while (controller = [cEnum nextObject]) { + if (NO == [controller commitEditing]) + return NO; + } return YES; } +- (void)discardEditing { + [conditionControllers makeObjectsPerformSelector:@selector(discardEditing)]; +} + #pragma mark Undo support - (NSUndoManager *)undoManager{ Modified: trunk/bibdesk/English.lproj/BDSKCondition.nib/classes.nib =================================================================== --- trunk/bibdesk/English.lproj/BDSKCondition.nib/classes.nib 2008-08-07 18:36:57 UTC (rev 13580) +++ trunk/bibdesk/English.lproj/BDSKCondition.nib/classes.nib 2008-08-09 17:04:37 UTC (rev 13581) @@ -1,74 +1,144 @@ -{ - IBClasses = ( - { - ACTIONS = { - addNewCondition = id; - changeRating = id; - removeThisCondition = id; - }; - CLASS = BDSKConditionController; - LANGUAGE = ObjC; - OUTLETS = { - addButton = NSButton; - agoText = NSTextField; - andNumberTextField = NSTextField; - attachmentComparisonPopUp = NSPopUpButton; - booleanButton = NSButton; - comparisonBox = NSBox; - comparisonPopUp = NSPopUpButton; - countTextField = NSTextField; - dateComparisonPopUp = NSPopUpButton; - dateTextField = NSTextField; - keyComboBox = NSComboBox; - numberTextField = NSTextField; - periodPopUp = NSPopUpButton; - ratingButton = BDSKRatingButton; - removeButton = NSButton; - toDateTextField = NSTextField; - triStateButton = NSButton; - valueBox = NSBox; - valueTextField = NSTextField; - view = NSView; - }; - SUPERCLASS = NSWindowController; - }, - { - ACTIONS = { - addNewCondition = id; - removeThisCondition = id; - }; - CLASS = BDSKConditionController1; - LANGUAGE = ObjC; - OUTLETS = { - addButton = NSButton; - agoText = NSTextField; - andNumberTextField = NSTextField; - comparisonBox = NSBox; - comparisonPopUp = NSPopUpButton; - dateComparisonPopUp = NSPopUpButton; - dateTextField = NSTextField; - keyComboBox = NSComboBox; - numberTextField = NSTextField; - ownerController = NSObjectController; - periodPopUp = NSPopUpButton; - removeButton = NSButton; - toDateTextField = NSTextField; - valueBox = NSBox; - valueTextField = NSTextField; - view = NSView; - }; - SUPERCLASS = NSObject; - }, - { - CLASS = BDSKRatingButton; - LANGUAGE = ObjC; - SUPERCLASS = NSButton; - }, - { - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - } - ); - IBVersion = 1; -} \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IBClasses</key> + <array> + <dict> + <key>CLASS</key> + <string>BDSKRatingButton</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSButton</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSControl</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSView</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSMenu</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>hideWindow</key> + <string>id</string> + <key>toggleShowingWindow</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>NSWindowController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSObject</string> + <key>LANGUAGE</key> + <string>ObjC</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSWindow</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSMenuItem</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>CLASS</key> + <string>FirstResponder</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>addNewCondition</key> + <string>id</string> + <key>changeRating</key> + <string>id</string> + <key>removeThisCondition</key> + <string>id</string> + <key>selectKeyText</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>BDSKConditionController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>addButton</key> + <string>NSButton</string> + <key>agoText</key> + <string>NSTextField</string> + <key>andNumberTextField</key> + <string>NSTextField</string> + <key>attachmentComparisonPopUp</key> + <string>NSPopUpButton</string> + <key>booleanButton</key> + <string>NSButton</string> + <key>comparisonBox</key> + <string>NSBox</string> + <key>comparisonPopUp</key> + <string>NSPopUpButton</string> + <key>countTextField</key> + <string>NSTextField</string> + <key>dateComparisonPopUp</key> + <string>NSPopUpButton</string> + <key>dateTextField</key> + <string>NSTextField</string> + <key>keyComboBox</key> + <string>NSComboBox</string> + <key>numberTextField</key> + <string>NSTextField</string> + <key>objectController</key> + <string>NSObjectController</string> + <key>periodPopUp</key> + <string>NSPopUpButton</string> + <key>ratingButton</key> + <string>BDSKRatingButton</string> + <key>removeButton</key> + <string>NSButton</string> + <key>toDateTextField</key> + <string>NSTextField</string> + <key>triStateButton</key> + <string>NSButton</string> + <key>valueBox</key> + <string>NSBox</string> + <key>valueTextField</key> + <string>NSTextField</string> + <key>view</key> + <string>NSView</string> + </dict> + <key>SUPERCLASS</key> + <string>NSWindowController</string> + </dict> + </array> + <key>IBVersion</key> + <string>1</string> +</dict> +</plist> Modified: trunk/bibdesk/English.lproj/BDSKCondition.nib/info.nib =================================================================== --- trunk/bibdesk/English.lproj/BDSKCondition.nib/info.nib 2008-08-07 18:36:57 UTC (rev 13580) +++ trunk/bibdesk/English.lproj/BDSKCondition.nib/info.nib 2008-08-09 17:04:37 UTC (rev 13581) @@ -2,25 +2,20 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>IBDocumentLocation</key> - <string>111 68 356 240 0 0 1440 938 </string> - <key>IBEditorPositions</key> - <dict> - <key>175</key> - <string>480 437 480 374 0 0 1440 938 </string> - </dict> <key>IBFramework Version</key> - <string>489.0</string> - <key>IBLockedObjects</key> - <array> - <integer>268</integer> - </array> + <string>670</string> + <key>IBLastKnownRelativeProjectPath</key> + <string>../Bibdesk.xcodeproj</string> + <key>IBOldestOS</key> + <integer>5</integer> <key>IBOpenObjects</key> <array> - <integer>268</integer> <integer>175</integer> + <integer>269</integer> </array> <key>IBSystem Version</key> - <string>9C31</string> + <string>9E17</string> + <key>targetFramework</key> + <string>IBCocoaFramework</string> </dict> </plist> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-09 17:09:08
|
Revision: 13582 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13582&view=rev Author: hofman Date: 2008-08-09 17:09:13 +0000 (Sat, 09 Aug 2008) Log Message: ----------- Remove now obsolete editor array for smart filter controller Modified Paths: -------------- trunk/bibdesk/BDSKFilterController.h trunk/bibdesk/BDSKFilterController.m Modified: trunk/bibdesk/BDSKFilterController.h =================================================================== --- trunk/bibdesk/BDSKFilterController.h 2008-08-09 17:04:37 UTC (rev 13581) +++ trunk/bibdesk/BDSKFilterController.h 2008-08-09 17:09:13 UTC (rev 13582) @@ -51,7 +51,6 @@ NSMutableArray *conditionControllers; BDSKFilter *filter; BDSKConjunction conjunction; - CFArrayRef editors; NSUndoManager *undoManager; } Modified: trunk/bibdesk/BDSKFilterController.m =================================================================== --- trunk/bibdesk/BDSKFilterController.m 2008-08-09 17:04:37 UTC (rev 13581) +++ trunk/bibdesk/BDSKFilterController.m 2008-08-09 17:09:13 UTC (rev 13582) @@ -59,7 +59,6 @@ filter = [aFilter retain]; conditionControllers = [[NSMutableArray alloc] initWithCapacity:[[filter conditions] count]]; conjunction = [filter conjunction]; - editors = CFArrayCreateMutable(kCFAllocatorMallocZone, 0, NULL); undoManager = nil; } return self; @@ -74,7 +73,6 @@ conditionControllers = nil; [undoManager release]; undoManager = nil; - CFRelease(editors); editors = nil; [super dealloc]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-09 17:49:33
|
Revision: 13583 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13583&view=rev Author: hofman Date: 2008-08-09 17:49:31 +0000 (Sat, 09 Aug 2008) Log Message: ----------- Bind various controllers as file's owner through NSObjectControllers to avoid the need to implement the NSEditorRegistration protocol. Modified Paths: -------------- trunk/bibdesk/BDSKFieldSheetController.h trunk/bibdesk/BDSKFieldSheetController.m trunk/bibdesk/BDSKFindController.h trunk/bibdesk/BDSKFindController.m trunk/bibdesk/BDSKScriptGroupSheetController.h trunk/bibdesk/BDSKScriptGroupSheetController.m trunk/bibdesk/BDSKSearchGroupSheetController.h trunk/bibdesk/BDSKSearchGroupSheetController.m trunk/bibdesk/BDSKURLGroupSheetController.h trunk/bibdesk/BDSKURLGroupSheetController.m trunk/bibdesk/English.lproj/AddFieldSheet.nib/classes.nib trunk/bibdesk/English.lproj/AddFieldSheet.nib/info.nib trunk/bibdesk/English.lproj/AddFieldSheet.nib/keyedobjects.nib trunk/bibdesk/English.lproj/BDSKFindPanel.nib/classes.nib trunk/bibdesk/English.lproj/BDSKFindPanel.nib/info.nib trunk/bibdesk/English.lproj/BDSKFindPanel.nib/keyedobjects.nib trunk/bibdesk/English.lproj/BDSKScriptGroupSheet.nib/classes.nib trunk/bibdesk/English.lproj/BDSKScriptGroupSheet.nib/info.nib trunk/bibdesk/English.lproj/BDSKScriptGroupSheet.nib/keyedobjects.nib trunk/bibdesk/English.lproj/BDSKSearchGroupSheet.nib/classes.nib trunk/bibdesk/English.lproj/BDSKSearchGroupSheet.nib/info.nib trunk/bibdesk/English.lproj/BDSKSearchGroupSheet.nib/keyedobjects.nib trunk/bibdesk/English.lproj/BDSKURLGroupSheet.nib/classes.nib trunk/bibdesk/English.lproj/BDSKURLGroupSheet.nib/info.nib trunk/bibdesk/English.lproj/BDSKURLGroupSheet.nib/keyedobjects.nib trunk/bibdesk/English.lproj/ChangeFieldSheet.nib/classes.nib trunk/bibdesk/English.lproj/ChangeFieldSheet.nib/info.nib trunk/bibdesk/English.lproj/ChangeFieldSheet.nib/keyedobjects.nib trunk/bibdesk/English.lproj/RemoveFieldSheet.nib/classes.nib trunk/bibdesk/English.lproj/RemoveFieldSheet.nib/info.nib trunk/bibdesk/English.lproj/RemoveFieldSheet.nib/keyedobjects.nib Modified: trunk/bibdesk/BDSKFieldSheetController.h =================================================================== --- trunk/bibdesk/BDSKFieldSheetController.h 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/BDSKFieldSheetController.h 2008-08-09 17:49:31 UTC (rev 13583) @@ -41,6 +41,7 @@ @interface BDSKFieldSheetController : BDSKSheetController { + IBOutlet NSObjectController *objectController; IBOutlet NSControl *fieldsControl; IBOutlet NSButton *okButton; IBOutlet NSButton *cancelButton; @@ -48,7 +49,6 @@ NSString *prompt; NSArray *fieldsArray; NSString *field; - CFArrayRef editors; } - (id)initWithPrompt:(NSString *)prompt fieldsArray:(NSArray *)fields; @@ -60,8 +60,6 @@ - (NSString *)prompt; - (void)setPrompt:(NSString *)promptString; -- (BOOL)commitEditing; - @end @interface BDSKAddFieldSheetController : BDSKFieldSheetController { Modified: trunk/bibdesk/BDSKFieldSheetController.m =================================================================== --- trunk/bibdesk/BDSKFieldSheetController.m 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/BDSKFieldSheetController.m 2008-08-09 17:49:31 UTC (rev 13583) @@ -47,7 +47,6 @@ field = nil; [self setPrompt:promptString]; [self setFieldsArray:fields]; - editors = CFArrayCreateMutable(kCFAllocatorMallocZone, 0, NULL); } return self; } @@ -56,7 +55,6 @@ [prompt release]; [fieldsArray release]; [field release]; - CFRelease(editors); [super dealloc]; } @@ -106,31 +104,12 @@ } - (IBAction)dismiss:(id)sender{ - if ([sender tag] == NSCancelButton || [self commitEditing]) + if ([sender tag] == NSCancelButton || [objectController commitEditing]) { + [objectController setContent:nil]; [super dismiss:sender]; + } } -- (void)objectDidBeginEditing:(id)editor { - if (CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor) == -1) - CFArrayAppendValue((CFMutableArrayRef)editors, editor); -} - -- (void)objectDidEndEditing:(id)editor { - CFIndex idx = CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor); - if (idx != -1) - CFArrayRemoveValueAtIndex((CFMutableArrayRef)editors, idx); -} - -- (BOOL)commitEditing { - CFIndex idx = CFArrayGetCount(editors); - - while (idx--) - if([(NSObject *)(CFArrayGetValueAtIndex(editors, idx)) commitEditing] == NO) - return NO; - - return YES; -} - @end Modified: trunk/bibdesk/BDSKFindController.h =================================================================== --- trunk/bibdesk/BDSKFindController.h 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/BDSKFindController.h 2008-08-09 17:49:31 UTC (rev 13583) @@ -60,7 +60,7 @@ IBOutlet NSBox *findOptionsBox; IBOutlet NSBox *setOptionsBox; IBOutlet BDSKStatusBar *statusBar; - + IBOutlet NSObjectController *objectController; NSTextView *findFieldEditor; NSMutableArray *findHistory; @@ -78,7 +78,6 @@ int operation; NSString *replaceLabel; NSString *replaceAllTooltip; - CFArrayRef editors; } /*! @@ -97,8 +96,6 @@ */ - (void)updateUI; -- (BOOL)commitEditing; - /*! @method regexIsValid: @abstract Check to make sure the regular expression is valid. AGRegex returns nil if the Modified: trunk/bibdesk/BDSKFindController.m =================================================================== --- trunk/bibdesk/BDSKFindController.m 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/BDSKFindController.m 2008-08-09 17:49:31 UTC (rev 13583) @@ -106,8 +106,6 @@ operation = FCOperationFindAndReplace; replaceAllTooltip = [NSLocalizedString(@"Replace all matches.", @"Tool tip message") retain]; - - editors = CFArrayCreateMutable(kCFAllocatorMallocZone, 0, NULL); } return self; } @@ -118,7 +116,6 @@ [replaceString release]; [statusBar release]; [replaceAllTooltip release]; - CFRelease(editors); [super dealloc]; } @@ -611,29 +608,6 @@ return nil; } -#pragma mark NSEditorRegistration - -- (void)objectDidBeginEditing:(id)editor { - if (CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor) == -1) - CFArrayAppendValue((CFMutableArrayRef)editors, editor); -} - -- (void)objectDidEndEditing:(id)editor { - CFIndex idx = CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor); - if (idx != -1) - CFArrayRemoveValueAtIndex((CFMutableArrayRef)editors, idx); -} - -- (BOOL)commitEditing { - CFIndex idx = CFArrayGetCount(editors); - - while (idx--) - if([(NSObject *)(CFArrayGetValueAtIndex(editors, idx)) commitEditing] == NO) - return NO; - - return YES; -} - #pragma mark Action methods - (IBAction)openHelp:(id)sender{ @@ -733,7 +707,7 @@ NSBeep(); [statusBar setStringValue:NSLocalizedString(@"Cannot replace in external items", @"Status message")]; return; - }else if([self commitEditing] == NO){ + }else if([objectController commitEditing] == NO){ NSBeep(); [statusBar setStringValue:NSLocalizedString(@"There were invalid values", @"Status message")]; return; @@ -800,7 +774,7 @@ NSBeep(); [statusBar setStringValue:NSLocalizedString(@"Cannot replace in external items", @"Status message")]; return; - }else if([self commitEditing] == NO){ + }else if([objectController commitEditing] == NO){ NSBeep(); [statusBar setStringValue:NSLocalizedString(@"There were invalid values", @"Status message")]; return; Modified: trunk/bibdesk/BDSKScriptGroupSheetController.h =================================================================== --- trunk/bibdesk/BDSKScriptGroupSheetController.h 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/BDSKScriptGroupSheetController.h 2008-08-09 17:49:31 UTC (rev 13583) @@ -44,13 +44,13 @@ @interface BDSKScriptGroupSheetController : BDSKSheetController { IBOutlet BDSKDragTextField *pathField; + IBOutlet NSObjectController *objectController; BDSKScriptGroup *group; NSString *path; NSString *arguments; int type; NSUndoManager *undoManager; BDSKFieldEditor *dragFieldEditor; - CFArrayRef editors; } - (id)initWithGroup:(BDSKScriptGroup *)aGroup; Modified: trunk/bibdesk/BDSKScriptGroupSheetController.m =================================================================== --- trunk/bibdesk/BDSKScriptGroupSheetController.m 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/BDSKScriptGroupSheetController.m 2008-08-09 17:49:31 UTC (rev 13583) @@ -65,7 +65,6 @@ type = [group scriptType]; undoManager = nil; dragFieldEditor = nil; - editors = CFArrayCreateMutable(kCFAllocatorMallocZone, 0, NULL); } return self; } @@ -76,7 +75,6 @@ [group release]; [undoManager release]; [dragFieldEditor release]; - CFRelease(editors); [super dealloc]; } @@ -135,6 +133,9 @@ } } + + [objectController setContent:nil]; + [super dismiss:sender]; } @@ -194,24 +195,10 @@ } } -#pragma mark NSEditorRegistration +#pragma mark NSEditor -- (void)objectDidBeginEditing:(id)editor { - if (CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor) == -1) - CFArrayAppendValue((CFMutableArrayRef)editors, editor); -} - -- (void)objectDidEndEditing:(id)editor { - CFIndex idx = CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor); - if (idx != -1) - CFArrayRemoveValueAtIndex((CFMutableArrayRef)editors, idx); -} - - (BOOL)commitEditing { - CFIndex idx = CFArrayGetCount(editors); - - while (idx--) - if([(NSObject *)(CFArrayGetValueAtIndex(editors, idx)) commitEditing] == NO) + if ([objectController commitEditing] == NO) return NO; NSString *errorMessage; Modified: trunk/bibdesk/BDSKSearchGroupSheetController.h =================================================================== --- trunk/bibdesk/BDSKSearchGroupSheetController.h 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/BDSKSearchGroupSheetController.h 2008-08-09 17:49:31 UTC (rev 13583) @@ -44,7 +44,6 @@ @interface BDSKSearchGroupSheetController : BDSKSheetController { BDSKSearchGroup *group; NSUndoManager *undoManager; - CFMutableArrayRef editors; BDSKMutableServerInfo *serverInfo; NSString *type; @@ -69,6 +68,8 @@ IBOutlet BDSKCollapsibleView *serverView; IBOutlet NSButton *revealButton; + + IBOutlet NSObjectController *objectController; } + (void)resetServers; Modified: trunk/bibdesk/BDSKSearchGroupSheetController.m =================================================================== --- trunk/bibdesk/BDSKSearchGroupSheetController.m 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/BDSKSearchGroupSheetController.m 2008-08-09 17:49:31 UTC (rev 13583) @@ -240,7 +240,6 @@ { if (self = [super init]) { group = [aGroup retain]; - editors = CFArrayCreateMutable(kCFAllocatorMallocZone, 0, NULL); undoManager = nil; type = group ? [[group type] copy] : [BDSKSearchGroupEntrez copy]; @@ -259,7 +258,6 @@ [undoManager release]; [serverInfo release]; [serverView release]; - CFRelease(editors); [super dealloc]; } @@ -551,24 +549,10 @@ - (NSString *)type { return type; } -#pragma mark NSEditorRegistration +#pragma mark NSEditor -- (void)objectDidBeginEditing:(id)editor { - if (CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor) == -1) - CFArrayAppendValue(editors, editor); -} - -- (void)objectDidEndEditing:(id)editor { - CFIndex idx = CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor); - if (idx != -1) - CFArrayRemoveValueAtIndex(editors, idx); -} - - (BOOL)commitEditing { - CFIndex idx = CFArrayGetCount(editors); - - while (idx--) - if([(NSObject *)(CFArrayGetValueAtIndex(editors, idx)) commitEditing] == NO) + if ([objectController commitEditing] == NO) return NO; NSString *message = nil; Modified: trunk/bibdesk/BDSKURLGroupSheetController.h =================================================================== --- trunk/bibdesk/BDSKURLGroupSheetController.h 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/BDSKURLGroupSheetController.h 2008-08-09 17:49:31 UTC (rev 13583) @@ -44,6 +44,7 @@ @interface BDSKURLGroupSheetController : BDSKSheetController { IBOutlet BDSKDragTextField *urlField; + IBOutlet NSObjectController *objectController; BDSKURLGroup *group; NSString *urlString; NSUndoManager *undoManager; Modified: trunk/bibdesk/BDSKURLGroupSheetController.m =================================================================== --- trunk/bibdesk/BDSKURLGroupSheetController.m 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/BDSKURLGroupSheetController.m 2008-08-09 17:49:31 UTC (rev 13583) @@ -55,7 +55,6 @@ if (self = [super init]) { group = [aGroup retain]; urlString = [[[group URL] absoluteString] retain]; - editors = CFArrayCreateMutable(kCFAllocatorMallocZone, 0, NULL); undoManager = nil; dragFieldEditor = nil; } @@ -67,7 +66,6 @@ [group release]; [undoManager release]; [dragFieldEditor release]; - CFRelease(editors); [super dealloc]; } @@ -104,6 +102,8 @@ } } + [objectController setContent:nil]; + [super dismiss:sender]; } @@ -145,24 +145,10 @@ } } -#pragma mark NSEditorRegistration +#pragma mark NSEditor -- (void)objectDidBeginEditing:(id)editor { - if (CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor) == -1) - CFArrayAppendValue((CFMutableArrayRef)editors, editor); -} - -- (void)objectDidEndEditing:(id)editor { - CFIndex idx = CFArrayGetFirstIndexOfValue(editors, CFRangeMake(0, CFArrayGetCount(editors)), editor); - if (idx != -1) - CFArrayRemoveValueAtIndex((CFMutableArrayRef)editors, idx); -} - - (BOOL)commitEditing { - CFIndex idx = CFArrayGetCount(editors); - - while (idx--) - if([(NSObject *)(CFArrayGetValueAtIndex(editors, idx)) commitEditing] == NO) + if ([objectController commitEditing] == NO) return NO; if ([NSString isEmptyString:urlString]) { Modified: trunk/bibdesk/English.lproj/AddFieldSheet.nib/classes.nib =================================================================== --- trunk/bibdesk/English.lproj/AddFieldSheet.nib/classes.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/AddFieldSheet.nib/classes.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -1,39 +1,111 @@ -{ - IBClasses = ( - { - CLASS = BDSKAddFieldSheetController; - LANGUAGE = ObjC; - SUPERCLASS = BDSKFieldSheetController; - }, - { - CLASS = BDSKFieldSheetController; - LANGUAGE = ObjC; - OUTLETS = { - cancelButton = NSButton; - fieldsControl = NSControl; - okButton = NSButton; - promptField = NSTextField; - }; - SUPERCLASS = BDSKSheetController; - }, - { - CLASS = BDSKRemoveFieldSheetController; - LANGUAGE = ObjC; - SUPERCLASS = BDSKFieldSheetController; - }, - { - ACTIONS = { - dismiss = id; - }; - CLASS = BDSKSheetController; - LANGUAGE = ObjC; - SUPERCLASS = NSWindowController; - }, - { - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - } - ); - IBVersion = 1; -} \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IBClasses</key> + <array> + <dict> + <key>CLASS</key> + <string>NSControl</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSView</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSMenu</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>hideWindow</key> + <string>id</string> + <key>toggleShowingWindow</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>NSWindowController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSObject</string> + <key>LANGUAGE</key> + <string>ObjC</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSWindow</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>BDSKFieldSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>cancelButton</key> + <string>NSButton</string> + <key>fieldsControl</key> + <string>NSControl</string> + <key>objectController</key> + <string>NSObjectController</string> + <key>okButton</key> + <string>NSButton</string> + <key>promptField</key> + <string>NSTextField</string> + </dict> + <key>SUPERCLASS</key> + <string>BDSKSheetController</string> + </dict> + <dict> + <key>CLASS</key> + <string>BDSKAddFieldSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>BDSKFieldSheetController</string> + </dict> + <dict> + <key>CLASS</key> + <string>FirstResponder</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>dismiss</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>BDSKSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>theModalDelegate</key> + <string>id</string> + </dict> + <key>SUPERCLASS</key> + <string>NSWindowController</string> + </dict> + </array> + <key>IBVersion</key> + <string>1</string> +</dict> +</plist> Modified: trunk/bibdesk/English.lproj/AddFieldSheet.nib/info.nib =================================================================== --- trunk/bibdesk/English.lproj/AddFieldSheet.nib/info.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/AddFieldSheet.nib/info.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -2,19 +2,19 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>IBDocumentLocation</key> - <string>69 58 356 240 0 0 1440 938 </string> <key>IBFramework Version</key> - <string>489.0</string> - <key>IBLockedObjects</key> - <array> - <integer>7</integer> - </array> + <string>670</string> + <key>IBLastKnownRelativeProjectPath</key> + <string>../Bibdesk.xcodeproj</string> + <key>IBOldestOS</key> + <integer>5</integer> <key>IBOpenObjects</key> <array> - <integer>7</integer> + <integer>8</integer> </array> <key>IBSystem Version</key> - <string>9C7010</string> + <string>9E17</string> + <key>targetFramework</key> + <string>IBCocoaFramework</string> </dict> </plist> Modified: trunk/bibdesk/English.lproj/BDSKScriptGroupSheet.nib/classes.nib =================================================================== --- trunk/bibdesk/English.lproj/BDSKScriptGroupSheet.nib/classes.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/BDSKScriptGroupSheet.nib/classes.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -1,37 +1,131 @@ -{ - IBClasses = ( - { - CLASS = BDSKDragTextField; - LANGUAGE = ObjC; - SUPERCLASS = NSTextField; - }, - { - ACTIONS = { - chooseScriptPath = id; - }; - CLASS = BDSKScriptGroupSheetController; - LANGUAGE = ObjC; - OUTLETS = { - pathField = BDSKDragTextField; - }; - SUPERCLASS = BDSKSheetController; - }, - { - ACTIONS = { - dismiss = id; - }; - CLASS = BDSKSheetController; - LANGUAGE = ObjC; - SUPERCLASS = NSWindowController; - }, - { - ACTIONS = { - "" = id; - }; - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - } - ); - IBVersion = 1; -} \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IBClasses</key> + <array> + <dict> + <key>CLASS</key> + <string>NSControl</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSView</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSMenu</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>hideWindow</key> + <string>id</string> + <key>toggleShowingWindow</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>NSWindowController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSObject</string> + <key>LANGUAGE</key> + <string>ObjC</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSWindow</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSScrollView</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSView</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key></key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>FirstResponder</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>dismiss</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>BDSKSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>theModalDelegate</key> + <string>id</string> + </dict> + <key>SUPERCLASS</key> + <string>NSWindowController</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSTextView</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSText</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>chooseScriptPath</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>BDSKScriptGroupSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>objectController</key> + <string>NSObjectController</string> + <key>pathField</key> + <string>BDSKDragTextField</string> + </dict> + <key>SUPERCLASS</key> + <string>BDSKSheetController</string> + </dict> + <dict> + <key>CLASS</key> + <string>BDSKDragTextField</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSTextField</string> + </dict> + </array> + <key>IBVersion</key> + <string>1</string> +</dict> +</plist> Modified: trunk/bibdesk/English.lproj/BDSKScriptGroupSheet.nib/info.nib =================================================================== --- trunk/bibdesk/English.lproj/BDSKScriptGroupSheet.nib/info.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/BDSKScriptGroupSheet.nib/info.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -2,15 +2,19 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>IBDocumentLocation</key> - <string>69 58 356 240 0 0 1440 938 </string> <key>IBFramework Version</key> - <string>489.0</string> + <string>670</string> + <key>IBLastKnownRelativeProjectPath</key> + <string>../Bibdesk.xcodeproj</string> + <key>IBOldestOS</key> + <integer>5</integer> <key>IBOpenObjects</key> <array> - <integer>5</integer> + <integer>6</integer> </array> <key>IBSystem Version</key> - <string>9C7010</string> + <string>9E17</string> + <key>targetFramework</key> + <string>IBCocoaFramework</string> </dict> </plist> Modified: trunk/bibdesk/English.lproj/BDSKSearchGroupSheet.nib/classes.nib =================================================================== --- trunk/bibdesk/English.lproj/BDSKSearchGroupSheet.nib/classes.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/BDSKSearchGroupSheet.nib/classes.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -1,101 +1,176 @@ -{ - IBClasses = ( - { - CLASS = BDSKCollapsibleView; - LANGUAGE = ObjC; - SUPERCLASS = BDSKContainerView; - }, - { - CLASS = BDSKContainerView; - LANGUAGE = ObjC; - OUTLETS = { - contentView = id; - }; - SUPERCLASS = NSView; - }, - { - ACTIONS = { - addRemoveServer = id; - editServer = id; - resetServers = id; - selectPredefinedServer = id; - selectServerType = id; - selectSyntax = id; - toggle = id; - }; - CLASS = BDSKSearchGroupSheetController; - LANGUAGE = ObjC; - OUTLETS = { - addRemoveButton = NSButton; - addressField = NSTextField; - databaseField = NSTextField; - editButton = NSButton; - encodingComboBox = NSComboBox; - nameField = NSTextField; - passwordField = NSSecureTextField; - portField = NSTextField; - removeDiacriticsButton = NSButton; - revealButton = NSButton; - serverPopup = NSPopUpButton; - serverView = BDSKCollapsibleView; - syntaxPopup = NSPopUpButton; - typeMatrix = NSMatrix; - userField = NSTextField; - }; - SUPERCLASS = BDSKSheetController; - }, - { - ACTIONS = { - dismiss = id; - }; - CLASS = BDSKSheetController; - LANGUAGE = ObjC; - OUTLETS = { - theModalDelegate = id; - }; - SUPERCLASS = NSWindowController; - }, - { - ACTIONS = { - "" = id; - }; - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - }, - { - CLASS = NSControl; - LANGUAGE = ObjC; - SUPERCLASS = NSView; - }, - { - CLASS = NSMenu; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - }, - { - CLASS = NSMenuItem; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - }, - { - CLASS = NSObject; - LANGUAGE = ObjC; - }, - { - CLASS = NSWindow; - LANGUAGE = ObjC; - SUPERCLASS = NSResponder; - }, - { - ACTIONS = { - hideWindow = id; - toggleShowingWindow = id; - }; - CLASS = NSWindowController; - LANGUAGE = ObjC; - SUPERCLASS = NSResponder; - } - ); - IBVersion = 1; -} \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IBClasses</key> + <array> + <dict> + <key>CLASS</key> + <string>NSMenu</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSControl</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSView</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>hideWindow</key> + <string>id</string> + <key>toggleShowingWindow</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>NSWindowController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSObject</string> + <key>LANGUAGE</key> + <string>ObjC</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSWindow</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>BDSKCollapsibleView</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>BDSKContainerView</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSMenuItem</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key></key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>FirstResponder</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>dismiss</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>BDSKSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>theModalDelegate</key> + <string>id</string> + </dict> + <key>SUPERCLASS</key> + <string>NSWindowController</string> + </dict> + <dict> + <key>CLASS</key> + <string>BDSKContainerView</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>contentView</key> + <string>id</string> + </dict> + <key>SUPERCLASS</key> + <string>NSView</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>addRemoveServer</key> + <string>id</string> + <key>editServer</key> + <string>id</string> + <key>resetServers</key> + <string>id</string> + <key>selectPredefinedServer</key> + <string>id</string> + <key>selectServerType</key> + <string>id</string> + <key>selectSyntax</key> + <string>id</string> + <key>toggle</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>BDSKSearchGroupSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>addRemoveButton</key> + <string>NSButton</string> + <key>addressField</key> + <string>NSTextField</string> + <key>databaseField</key> + <string>NSTextField</string> + <key>editButton</key> + <string>NSButton</string> + <key>encodingComboBox</key> + <string>NSComboBox</string> + <key>nameField</key> + <string>NSTextField</string> + <key>objectController</key> + <string>NSObjectController</string> + <key>passwordField</key> + <string>NSSecureTextField</string> + <key>portField</key> + <string>NSTextField</string> + <key>removeDiacriticsButton</key> + <string>NSButton</string> + <key>revealButton</key> + <string>NSButton</string> + <key>serverPopup</key> + <string>NSPopUpButton</string> + <key>serverView</key> + <string>BDSKCollapsibleView</string> + <key>syntaxPopup</key> + <string>NSPopUpButton</string> + <key>typeMatrix</key> + <string>NSMatrix</string> + <key>userField</key> + <string>NSTextField</string> + </dict> + <key>SUPERCLASS</key> + <string>BDSKSheetController</string> + </dict> + </array> + <key>IBVersion</key> + <string>1</string> +</dict> +</plist> Modified: trunk/bibdesk/English.lproj/BDSKSearchGroupSheet.nib/info.nib =================================================================== --- trunk/bibdesk/English.lproj/BDSKSearchGroupSheet.nib/info.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/BDSKSearchGroupSheet.nib/info.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -2,20 +2,18 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>IBDocumentLocation</key> - <string>69 68 356 240 0 0 1440 938 </string> <key>IBFramework Version</key> - <string>489.0</string> + <string>670</string> <key>IBLastKnownRelativeProjectPath</key> - <string>../../Bibdesk.xcodeproj</string> + <string>../Bibdesk.xcodeproj</string> <key>IBOldestOS</key> <integer>5</integer> <key>IBOpenObjects</key> <array> - <integer>5</integer> + <integer>6</integer> </array> <key>IBSystem Version</key> - <string>9C7010</string> + <string>9E17</string> <key>targetFramework</key> <string>IBCocoaFramework</string> </dict> Modified: trunk/bibdesk/English.lproj/BDSKURLGroupSheet.nib/classes.nib =================================================================== --- trunk/bibdesk/English.lproj/BDSKURLGroupSheet.nib/classes.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/BDSKURLGroupSheet.nib/classes.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -1,34 +1,110 @@ -{ - IBClasses = ( - { - CLASS = BDSKDragTextField; - LANGUAGE = ObjC; - SUPERCLASS = NSTextField; - }, - { - ACTIONS = { - dismiss = id; - }; - CLASS = BDSKSheetController; - LANGUAGE = ObjC; - SUPERCLASS = NSWindowController; - }, - { - ACTIONS = { - chooseURL = id; - }; - CLASS = BDSKURLGroupSheetController; - LANGUAGE = ObjC; - OUTLETS = { - urlField = BDSKDragTextField; - }; - SUPERCLASS = BDSKSheetController; - }, - { - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - } - ); - IBVersion = 1; -} \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IBClasses</key> + <array> + <dict> + <key>CLASS</key> + <string>NSMenu</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSControl</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSView</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>hideWindow</key> + <string>id</string> + <key>toggleShowingWindow</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>NSWindowController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSObject</string> + <key>LANGUAGE</key> + <string>ObjC</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSWindow</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>FirstResponder</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>dismiss</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>BDSKSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>theModalDelegate</key> + <string>id</string> + </dict> + <key>SUPERCLASS</key> + <string>NSWindowController</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>chooseURL</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>BDSKURLGroupSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>objectController</key> + <string>NSObjectController</string> + <key>urlField</key> + <string>BDSKDragTextField</string> + </dict> + <key>SUPERCLASS</key> + <string>BDSKSheetController</string> + </dict> + <dict> + <key>CLASS</key> + <string>BDSKDragTextField</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSTextField</string> + </dict> + </array> + <key>IBVersion</key> + <string>1</string> +</dict> +</plist> Modified: trunk/bibdesk/English.lproj/BDSKURLGroupSheet.nib/info.nib =================================================================== --- trunk/bibdesk/English.lproj/BDSKURLGroupSheet.nib/info.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/BDSKURLGroupSheet.nib/info.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -2,15 +2,19 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>IBDocumentLocation</key> - <string>69 58 356 240 0 0 1440 938 </string> <key>IBFramework Version</key> - <string>489.0</string> + <string>670</string> + <key>IBLastKnownRelativeProjectPath</key> + <string>../Bibdesk.xcodeproj</string> + <key>IBOldestOS</key> + <integer>5</integer> <key>IBOpenObjects</key> <array> - <integer>5</integer> + <integer>6</integer> </array> <key>IBSystem Version</key> - <string>9C7010</string> + <string>9E17</string> + <key>targetFramework</key> + <string>IBCocoaFramework</string> </dict> </plist> Modified: trunk/bibdesk/English.lproj/ChangeFieldSheet.nib/classes.nib =================================================================== --- trunk/bibdesk/English.lproj/ChangeFieldSheet.nib/classes.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/ChangeFieldSheet.nib/classes.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -1,48 +1,134 @@ -{ - IBClasses = ( - { - CLASS = BDSKAddFieldSheetController; - LANGUAGE = ObjC; - SUPERCLASS = BDSKFieldSheetController; - }, - { - CLASS = BDSKChangeFieldSheetController; - LANGUAGE = ObjC; - OUTLETS = { - newFieldsComboBox = NSComboBox; - newPromptField = NSTextField; - }; - SUPERCLASS = BDSKRemoveFieldSheetController; - }, - { - CLASS = BDSKFieldSheetController; - LANGUAGE = ObjC; - OUTLETS = { - cancelButton = NSButton; - fieldsControl = NSControl; - okButton = NSButton; - promptField = NSTextField; - }; - SUPERCLASS = BDSKSheetController; - }, - { - CLASS = BDSKRemoveFieldSheetController; - LANGUAGE = ObjC; - SUPERCLASS = BDSKFieldSheetController; - }, - { - ACTIONS = { - dismiss = id; - }; - CLASS = BDSKSheetController; - LANGUAGE = ObjC; - SUPERCLASS = NSWindowController; - }, - { - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - } - ); - IBVersion = 1; -} \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IBClasses</key> + <array> + <dict> + <key>CLASS</key> + <string>BDSKChangeFieldSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>newFieldsComboBox</key> + <string>NSComboBox</string> + <key>newPromptField</key> + <string>NSTextField</string> + </dict> + <key>SUPERCLASS</key> + <string>BDSKRemoveFieldSheetController</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSMenu</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSControl</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSView</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>hideWindow</key> + <string>id</string> + <key>toggleShowingWindow</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>NSWindowController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSObject</string> + <key>LANGUAGE</key> + <string>ObjC</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSWindow</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>BDSKRemoveFieldSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>BDSKFieldSheetController</string> + </dict> + <dict> + <key>CLASS</key> + <string>BDSKFieldSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>cancelButton</key> + <string>NSButton</string> + <key>fieldsControl</key> + <string>NSControl</string> + <key>objectController</key> + <string>NSObjectController</string> + <key>okButton</key> + <string>NSButton</string> + <key>promptField</key> + <string>NSTextField</string> + </dict> + <key>SUPERCLASS</key> + <string>BDSKSheetController</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSMenuItem</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>CLASS</key> + <string>FirstResponder</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>dismiss</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>BDSKSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>theModalDelegate</key> + <string>id</string> + </dict> + <key>SUPERCLASS</key> + <string>NSWindowController</string> + </dict> + </array> + <key>IBVersion</key> + <string>1</string> +</dict> +</plist> Modified: trunk/bibdesk/English.lproj/ChangeFieldSheet.nib/info.nib =================================================================== --- trunk/bibdesk/English.lproj/ChangeFieldSheet.nib/info.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/ChangeFieldSheet.nib/info.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -2,19 +2,19 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>IBDocumentLocation</key> - <string>69 58 356 240 0 0 1440 938 </string> <key>IBFramework Version</key> - <string>489.0</string> - <key>IBLockedObjects</key> - <array> - <integer>7</integer> - </array> + <string>670</string> + <key>IBLastKnownRelativeProjectPath</key> + <string>../Bibdesk.xcodeproj</string> + <key>IBOldestOS</key> + <integer>5</integer> <key>IBOpenObjects</key> <array> - <integer>7</integer> + <integer>8</integer> </array> <key>IBSystem Version</key> - <string>9C7010</string> + <string>9E17</string> + <key>targetFramework</key> + <string>IBCocoaFramework</string> </dict> </plist> Modified: trunk/bibdesk/English.lproj/RemoveFieldSheet.nib/classes.nib =================================================================== --- trunk/bibdesk/English.lproj/RemoveFieldSheet.nib/classes.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/RemoveFieldSheet.nib/classes.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -1,39 +1,119 @@ -{ - IBClasses = ( - { - CLASS = BDSKAddFieldSheetController; - LANGUAGE = ObjC; - SUPERCLASS = BDSKFieldSheetController; - }, - { - CLASS = BDSKFieldSheetController; - LANGUAGE = ObjC; - OUTLETS = { - cancelButton = NSButton; - fieldsControl = NSControl; - okButton = NSButton; - promptField = NSTextField; - }; - SUPERCLASS = BDSKSheetController; - }, - { - CLASS = BDSKRemoveFieldSheetController; - LANGUAGE = ObjC; - SUPERCLASS = BDSKFieldSheetController; - }, - { - ACTIONS = { - dismiss = id; - }; - CLASS = BDSKSheetController; - LANGUAGE = ObjC; - SUPERCLASS = NSWindowController; - }, - { - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - } - ); - IBVersion = 1; -} \ No newline at end of file +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>IBClasses</key> + <array> + <dict> + <key>CLASS</key> + <string>NSControl</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSView</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSMenu</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>hideWindow</key> + <string>id</string> + <key>toggleShowingWindow</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>NSWindowController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSObject</string> + <key>LANGUAGE</key> + <string>ObjC</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSWindow</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSResponder</string> + </dict> + <dict> + <key>CLASS</key> + <string>BDSKRemoveFieldSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>BDSKFieldSheetController</string> + </dict> + <dict> + <key>CLASS</key> + <string>BDSKFieldSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>cancelButton</key> + <string>NSButton</string> + <key>fieldsControl</key> + <string>NSControl</string> + <key>objectController</key> + <string>NSObjectController</string> + <key>okButton</key> + <string>NSButton</string> + <key>promptField</key> + <string>NSTextField</string> + </dict> + <key>SUPERCLASS</key> + <string>BDSKSheetController</string> + </dict> + <dict> + <key>CLASS</key> + <string>NSMenuItem</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>CLASS</key> + <string>FirstResponder</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>SUPERCLASS</key> + <string>NSObject</string> + </dict> + <dict> + <key>ACTIONS</key> + <dict> + <key>dismiss</key> + <string>id</string> + </dict> + <key>CLASS</key> + <string>BDSKSheetController</string> + <key>LANGUAGE</key> + <string>ObjC</string> + <key>OUTLETS</key> + <dict> + <key>theModalDelegate</key> + <string>id</string> + </dict> + <key>SUPERCLASS</key> + <string>NSWindowController</string> + </dict> + </array> + <key>IBVersion</key> + <string>1</string> +</dict> +</plist> Modified: trunk/bibdesk/English.lproj/RemoveFieldSheet.nib/info.nib =================================================================== --- trunk/bibdesk/English.lproj/RemoveFieldSheet.nib/info.nib 2008-08-09 17:09:13 UTC (rev 13582) +++ trunk/bibdesk/English.lproj/RemoveFieldSheet.nib/info.nib 2008-08-09 17:49:31 UTC (rev 13583) @@ -2,19 +2,19 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> - <key>IBDocumentLocation</key> - <string>69 58 356 240 0 0 1440 938 </string> <key>IBFramework Version</key> - <string>489.0</string> - <key>IBLockedObjects</key> - <array> - <integer>7</integer> - </array> + <string>670</string> + <key>IBLastKnownRelativeProjectPath</key> + <string>../Bibdesk.xcodeproj</string> + <key>IBOldestOS</key> + <integer>5</integer> <key>IBOpenObjects</key> <array> - <integer>7</integer> + <integer>8</integer> </array> <key>IBSystem Version</key> - <string>9C7010</string> + <string>9E17</string> + <key>targetFramework</key> + <string>IBCocoaFramework</string> </dict> </plist> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-11 18:46:47
|
Revision: 13584 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13584&view=rev Author: hofman Date: 2008-08-11 18:45:59 +0000 (Mon, 11 Aug 2008) Log Message: ----------- Use gcc ?: operator to get default values. Modified Paths: -------------- trunk/bibdesk/BDSKAppController.m trunk/bibdesk/BDSKBookmarkController.m trunk/bibdesk/BDSKComplexStringEditor.m trunk/bibdesk/BDSKCondition.m trunk/bibdesk/BDSKDocumentController.m trunk/bibdesk/BDSKEditor.m trunk/bibdesk/BDSKField.m trunk/bibdesk/BDSKFileMatchConfigController.m trunk/bibdesk/BDSKFilterController.m trunk/bibdesk/BDSKFindController.m trunk/bibdesk/BDSKGroupCell.m trunk/bibdesk/BDSKISIWebServices.m trunk/bibdesk/BDSKItemPasteboardHelper.m trunk/bibdesk/BDSKJSTORParser.m trunk/bibdesk/BDSKMacro.m trunk/bibdesk/BDSKMacroResolver.m trunk/bibdesk/BDSKPreviewItem.m trunk/bibdesk/BDSKPreviewer.m trunk/bibdesk/BDSKPublicationsArray.m trunk/bibdesk/BDSKSearchBookmarkController.m trunk/bibdesk/BDSKSearchForCommand.m trunk/bibdesk/BDSKSearchGroup.m trunk/bibdesk/BDSKSearchGroupSheetController.m trunk/bibdesk/BDSKTemplateDocument.m trunk/bibdesk/BDSKTemplateParser.m trunk/bibdesk/BDSKTextImportController.m trunk/bibdesk/BDSKTypeManager.m trunk/bibdesk/BDSKUpdateChecker.m trunk/bibdesk/BDSKWebGroupViewController.m trunk/bibdesk/BDSKZoomGroupServer.m trunk/bibdesk/BibDocument+Menus.m trunk/bibdesk/BibDocument.m trunk/bibdesk/BibDocument_Actions.m trunk/bibdesk/BibDocument_Groups.m trunk/bibdesk/BibItem+Scripting.m trunk/bibdesk/BibItem.m trunk/bibdesk/BibPref_Display.m trunk/bibdesk/NSAttributedString_BDSKExtensions.m Modified: trunk/bibdesk/BDSKAppController.m =================================================================== --- trunk/bibdesk/BDSKAppController.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKAppController.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -449,9 +449,7 @@ NSDictionary *dict; NSURL *fileURL; while (dict = [fileEnum nextObject]){ - fileURL = [[BDAlias aliasWithData:[dict objectForKey:@"_BDAlias"]] fileURL]; - if(fileURL == nil) - fileURL = [NSURL fileURLWithPath:[dict objectForKey:@"fileName"]]; + fileURL = [[BDAlias aliasWithData:[dict objectForKey:@"_BDAlias"]] fileURL] ?: [NSURL fileURLWithPath:[dict objectForKey:@"fileName"]]; if(fileURL) [[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:fileURL display:YES error:NULL]; } @@ -888,9 +886,7 @@ theURLString = [theURLString substringWithRange:NSMakeRange(0, [theURLString length] - 2)]; if ([theURLString hasPrefix:@"URL:"]) theURLString = [theURLString substringFromIndex:4]; - theURL = [NSURL URLWithString:theURLString]; - if (theURL == nil) - theURL = [NSURL URLWithStringByNormalizingPercentEscapes:theURLString]; + theURL = [NSURL URLWithString:theURLString] ?: [NSURL URLWithStringByNormalizingPercentEscapes:theURLString]; } if ([[theURL scheme] isEqualToString:@"x-bdsk"]) { Modified: trunk/bibdesk/BDSKBookmarkController.m =================================================================== --- trunk/bibdesk/BDSKBookmarkController.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKBookmarkController.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -412,8 +412,7 @@ #pragma mark NSOutlineView datasource methods - (int)outlineView:(NSOutlineView *)ov numberOfChildrenOfItem:(id)item { - if (item == nil) item = bookmarkRoot; - return [[item children] count]; + return [[(item ?: bookmarkRoot) children] count]; } - (BOOL)outlineView:(NSOutlineView *)ov isItemExpandable:(id)item { @@ -421,8 +420,7 @@ } - (id)outlineView:(NSOutlineView *)ov child:(int)idx ofItem:(id)item { - if (item == nil) item = bookmarkRoot; - return [[item children] objectAtIndex:idx]; + return [[(item ?: bookmarkRoot) children] objectAtIndex:idx]; } - (id)outlineView:(NSOutlineView *)ov objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item { @@ -716,8 +714,7 @@ - (IBAction)addBookmark:(id)sender { WebDataSource *datasource = [[self mainFrame] dataSource]; NSString *URLString = [[[datasource request] URL] absoluteString]; - NSString *name = [datasource pageTitle]; - if(name == nil) name = [URLString lastPathComponent]; + NSString *name = [datasource pageTitle] ?: [URLString lastPathComponent]; if (URLString) [[BDSKBookmarkController sharedBookmarkController] addBookmarkWithUrlString:URLString proposedName:name modalForWindow:[self window]]; Modified: trunk/bibdesk/BDSKComplexStringEditor.m =================================================================== --- trunk/bibdesk/BDSKComplexStringEditor.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKComplexStringEditor.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -115,9 +115,7 @@ - (void)registerForNotifications { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSWindow *tableViewWindow = [tableView window]; - NSView *contentView = [[tableView enclosingScrollView] contentView]; - if (contentView == nil) - contentView = tableView; + NSView *contentView = (NSView *)[[tableView enclosingScrollView] contentView] ?: (NSView *)tableView; [nc addObserver:self selector:@selector(controlTextDidChange:) @@ -159,9 +157,7 @@ - (void)unregisterForNotifications { NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; NSWindow *tableViewWindow = [tableView window]; - NSView *contentView = [[tableView enclosingScrollView] contentView]; - if (contentView == nil) - contentView = tableView; + NSView *contentView = (NSView *)[[tableView enclosingScrollView] contentView] ?: (NSView *)tableView; [nc removeObserver:self name:NSControlTextDidChangeNotification object:tableView]; [nc removeObserver:self name:NSControlTextDidEndEditingNotification object:tableView]; @@ -228,9 +224,7 @@ NSRect winFrame = [[self window] frame]; float margin = 4.0; // for the shadow and focus ring float minWidth = 16.0; // minimal width of the window without margins, so subviews won't get shifted - NSView *contentView = [[tableView enclosingScrollView] contentView]; - if (contentView == nil) - contentView = tableView; + NSView *contentView = (NSView *)[[tableView enclosingScrollView] contentView] ?: (NSView *)tableView; NSDivideRect([self currentCellFrame], &lowerEdgeRect, &ignored, 1.0, lowerEdge); lowerEdgeRect = NSIntersectionRect(lowerEdgeRect, [contentView visibleRect]); Modified: trunk/bibdesk/BDSKCondition.m =================================================================== --- trunk/bibdesk/BDSKCondition.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKCondition.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -278,10 +278,8 @@ // use local values, as we may change them to support "Any Field" int comparison = stringComparison; NSString *value = stringValue; - NSString *itemValue = [item stringValueOfField:key]; // unset values are considered empty strings - if (itemValue == nil) - itemValue = @""; + NSString *itemValue = [item stringValueOfField:key] ?: @""; // to speed up comparisons if ([itemValue isComplex] || [itemValue isInherited]) itemValue = [NSString stringWithString:itemValue]; @@ -355,10 +353,9 @@ - (void)setKey:(NSString *)newKey { // we never want the key to be nil. It is set to nil sometimes by the binding mechanism - if (newKey == nil) newKey = @""; - if (![key isEqualToString:newKey]) { + if (key != newKey) { [key release]; - key = [newKey copy]; + key = [(newKey ?: @"") copy]; } } @@ -485,10 +482,9 @@ - (void)setStringValue:(NSString *)newValue { // we never want the value to be nil. It is set to nil sometimes by the binding mechanism - if (newValue == nil) newValue = @""; - if (![stringValue isEqualToString:newValue]) { + if (stringValue != newValue) { [stringValue release]; - stringValue = [newValue retain]; + stringValue = [(newValue ?: @"") retain]; } } @@ -749,20 +745,20 @@ *endDate = [today dateByAddingNumber:1-MIN(numberValue,andNumberValue) ofPeriod:periodValue]; break; case BDSKDate: - *startDate = (dateValue == nil) ? nil : [dateValue startOfDay]; + *startDate = [dateValue startOfDay]; *endDate = [*startDate dateByAddingNumber:1 ofPeriod:BDSKPeriodDay]; break; case BDSKAfterDate: - *startDate = (dateValue == nil) ? nil : [dateValue endOfDay]; + *startDate = [dateValue endOfDay]; *endDate = nil; break; case BDSKBeforeDate: *startDate = nil; - *endDate = (dateValue == nil) ? nil : [dateValue startOfDay]; + *endDate = [dateValue startOfDay]; break; case BDSKInDateRange: - *startDate = (dateValue == nil) ? nil : [dateValue startOfDay]; - *endDate = (toDateValue == nil) ? nil : [toDateValue endOfDay]; + *startDate = [dateValue startOfDay]; + *endDate = [toDateValue endOfDay]; break; } } Modified: trunk/bibdesk/BDSKDocumentController.m =================================================================== --- trunk/bibdesk/BDSKDocumentController.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKDocumentController.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -384,11 +384,9 @@ if ([theUTI isEqualToUTI:@"net.sourceforge.bibdesk.bdskcache"]) { NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfURL:absoluteURL]; BDAlias *fileAlias = [BDAlias aliasWithData:[dictionary valueForKey:@"FileAlias"]]; - NSString *fullPath = [fileAlias fullPath]; + // if the alias didn't work, let's see if we have a filepath key... + NSString *fullPath = [fileAlias fullPath] ?: [dictionary valueForKey:@"net_sourceforge_bibdesk_owningfilepath"]; - if(fullPath == nil) // if the alias didn't work, let's see if we have a filepath key... - fullPath = [dictionary valueForKey:@"net_sourceforge_bibdesk_owningfilepath"]; - if(fullPath == nil){ if(outError != nil) *outError = [NSError errorWithDomain:NSCocoaErrorDomain code:NSFileNoSuchFileError userInfo:[NSDictionary dictionaryWithObjectsAndKeys:NSLocalizedString(@"Unable to find the file associated with this item.", @"Error description"), NSLocalizedDescriptionKey, nil]]; Modified: trunk/bibdesk/BDSKEditor.m =================================================================== --- trunk/bibdesk/BDSKEditor.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKEditor.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -2209,9 +2209,7 @@ // changeKey == nil, all fields are set if ([tableView editedRow] != -1) { NSString *key = [fields objectAtIndex:[tableView editedRow]]; - NSString *tmpValue = [publication valueOfField:key]; - if (tmpValue == nil) - tmpValue = @""; + NSString *tmpValue = [publication valueOfField:key] ?: @""; if ([changeKey isCitationField] == NO && [tableCellFormatter editAsComplexString]) tmpValue = [tmpValue stringAsBibTeXString]; [[tableView currentEditor] setString:tmpValue]; @@ -2756,9 +2754,7 @@ if ([tv isEqual:tableView] && [[tableColumn identifier] isEqualToString:@"value"]) { if (ignoreEdit == NO) { NSString *field = [fields objectAtIndex:row]; - NSString *oldValue = [publication valueOfField:field]; - if (oldValue == nil) - oldValue = @""; + NSString *oldValue = [publication valueOfField:field] ?: @""; if (object == nil) object = @""; Modified: trunk/bibdesk/BDSKField.m =================================================================== --- trunk/bibdesk/BDSKField.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKField.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -85,9 +85,7 @@ } - (NSString *)value { - NSString *value = [bibItem valueOfField:name inherit:[name isIntegerField] == NO && [name isNoteField] == NO]; - if (value == nil) return @""; - return value; + return [bibItem valueOfField:name inherit:[name isIntegerField] == NO && [name isNoteField] == NO] ?: @""; } - (void)setValue:(NSString *)newValue { @@ -106,9 +104,7 @@ } - (NSString *)bibTeXString { - NSString *value = [bibItem valueOfField:name inherit:[name isIntegerField] == NO && [name isNoteField] == NO]; - if (value == nil) return @""; - return [value stringAsBibTeXString]; + return [([bibItem valueOfField:name inherit:[name isIntegerField] == NO && [name isNoteField] == NO] ?: @"") stringAsBibTeXString]; } - (void)setBibTeXString:(NSString *)newValue { Modified: trunk/bibdesk/BDSKFileMatchConfigController.m =================================================================== --- trunk/bibdesk/BDSKFileMatchConfigController.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKFileMatchConfigController.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -139,9 +139,7 @@ NSMutableArray *array = [NSMutableArray array]; NSDocument *doc; while (doc = [e nextObject]) { - NSString *docType = [[[NSDocumentController sharedDocumentController] fileExtensionsFromType:[doc fileType]] lastObject]; - if (nil == docType) - docType = @""; + NSString *docType = [[[NSDocumentController sharedDocumentController] fileExtensionsFromType:[doc fileType]] lastObject] ?: @""; NSDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:[doc displayName], OATextWithIconCellStringKey, [NSImage imageForFileType:docType], OATextWithIconCellImageKey, [NSNumber numberWithBool:NO], @"useDocument", doc, @"document", nil]; [array addObject:dict]; } Modified: trunk/bibdesk/BDSKFilterController.m =================================================================== --- trunk/bibdesk/BDSKFilterController.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKFilterController.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -73,7 +73,6 @@ conditionControllers = nil; [undoManager release]; undoManager = nil; - editors = nil; [super dealloc]; } Modified: trunk/bibdesk/BDSKFindController.m =================================================================== --- trunk/bibdesk/BDSKFindController.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKFindController.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -248,9 +248,7 @@ } - (NSString *)findString { - if (findString == nil) - return @""; - return [[findString retain] autorelease]; + return [[(findString ?: @"") retain] autorelease]; } - (void)setFindString:(NSString *)newFindString { @@ -266,9 +264,7 @@ } - (NSString *)replaceString { - if (replaceString == nil) - return @""; - return [[replaceString retain] autorelease]; + return [[(replaceString ?: @"") retain] autorelease]; } - (void)setReplaceString:(NSString *)newReplaceString { Modified: trunk/bibdesk/BDSKGroupCell.m =================================================================== --- trunk/bibdesk/BDSKGroupCell.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKGroupCell.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -327,10 +327,8 @@ @implementation BDSKGroupCell (Private) - (void)recacheCountAttributes { - NSFont *countFont = [NSFont fontWithName:@"Helvetica-Bold" size:([[self font] pointSize] - 1)]; + NSFont *countFont = [NSFont fontWithName:@"Helvetica-Bold" size:([[self font] pointSize] - 1)] ?: [NSFont boldSystemFontOfSize:([[self font] pointSize] - 1)]; OBPRECONDITION(countFont); - if (nil == countFont) - countFont = [NSFont boldSystemFontOfSize:([[self font] pointSize] - 1)]; [countAttributes removeAllObjects]; [countAttributes setObject:[NSColor alternateSelectedControlTextColor] forKey:NSForegroundColorAttributeName]; Modified: trunk/bibdesk/BDSKISIWebServices.m =================================================================== --- trunk/bibdesk/BDSKISIWebServices.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKISIWebServices.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -15,12 +15,8 @@ + (void)initialize { OBINITIALIZE; - BDSKISIEndpoint = [[[NSUserDefaults standardUserDefaults] objectForKey:@"BDSKISIEndpoint"] copy]; - if (nil == BDSKISIEndpoint) - BDSKISIEndpoint = @"http://wok-ws.isiknowledge.com/esti/soap/SearchRetrieve"; - BDSKISINamespace = [[[NSUserDefaults standardUserDefaults] objectForKey:@"BDSKISINamespace"] copy]; - if (nil == BDSKISINamespace) - BDSKISINamespace = @"http://esti.isinet.com/soap/search"; + BDSKISIEndpoint = [([[NSUserDefaults standardUserDefaults] objectForKey:@"BDSKISIEndpoint"] ?: @"http://wok-ws.isiknowledge.com/esti/soap/SearchRetrieve") copy]; + BDSKISINamespace = [([[NSUserDefaults standardUserDefaults] objectForKey:@"BDSKISINamespace"] ?: @"http://esti.isinet.com/soap/search") copy]; } @end Modified: trunk/bibdesk/BDSKItemPasteboardHelper.m =================================================================== --- trunk/bibdesk/BDSKItemPasteboardHelper.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKItemPasteboardHelper.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -144,9 +144,7 @@ if ([URLs count] == 0) return NO; - NSArray *titles = [[self promisedItemsForPasteboard:pboard] valueForKey:@"citeKey"]; - if (titles == nil) - titles = [URLs valueForKey:@"absoluteString"]; + NSArray *titles = [[self promisedItemsForPasteboard:pboard] valueForKey:@"citeKey"] ?: [URLs valueForKey:@"absoluteString"]; NSURL *firstURL = [URLs objectAtIndex:0]; NSString *firstTitle = [titles objectAtIndex:0]; Modified: trunk/bibdesk/BDSKJSTORParser.m =================================================================== --- trunk/bibdesk/BDSKJSTORParser.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKJSTORParser.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -214,8 +214,7 @@ tag = [sourceLine substringWithRange:NSMakeRange(0,2)]; // find the BibTeX key - key = [typeManager fieldNameForJSTORTag:tag]; - if(key == nil) key = tag; + key = [typeManager fieldNameForJSTORTag:tag] ?: tag; // get the value... value = [[sourceLine substringWithRange:NSMakeRange(5,[sourceLine length]-5)] Modified: trunk/bibdesk/BDSKMacro.m =================================================================== --- trunk/bibdesk/BDSKMacro.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKMacro.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -115,10 +115,7 @@ } - (id)value { - NSString *value = [macroResolver valueOfMacro:name]; - OBASSERT(value); - if (value == nil) return [NSNull null]; // returns "missing value" in AppleScript - return value; + return (id)[macroResolver valueOfMacro:name] ?: (id)[NSNull null]; } - (void)setValue:(NSString *)newValue { @@ -133,10 +130,7 @@ } - (id)bibTeXString { - NSString *value = [macroResolver valueOfMacro:name]; - OBASSERT(value); - if (value == nil) return [NSNull null]; // returns "missing value" in AppleScript - return [value stringAsBibTeXString]; + return (id)[[macroResolver valueOfMacro:name] stringAsBibTeXString] ?: (id)[NSNull null]; } - (void)setBibTeXString:(NSString *)newValue { Modified: trunk/bibdesk/BDSKMacroResolver.m =================================================================== --- trunk/bibdesk/BDSKMacroResolver.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKMacroResolver.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -443,12 +443,9 @@ } - (NSString *)valueOfMacro:(NSString *)macroString{ - NSString *value = [[self macroDefinitions] objectForKey:macroString]; - if(value == nil) - value = [[self fileMacroDefinitions] objectForKey:macroString]; - if(value == nil) - value = [standardMacroDefinitions objectForKey:macroString]; - return value; + return ([[self macroDefinitions] objectForKey:macroString] ?: + [[self fileMacroDefinitions] objectForKey:macroString]) ?: + [standardMacroDefinitions objectForKey:macroString]; } @end Modified: trunk/bibdesk/BDSKPreviewItem.m =================================================================== --- trunk/bibdesk/BDSKPreviewItem.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKPreviewItem.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -61,7 +61,7 @@ @implementation BDSKPreviewItem + (BDSKPreviewItem *)sharedItem { - id sharedItem = nil; + static id sharedItem = nil; if (sharedItem == nil) sharedItem = [[self alloc] init]; return sharedItem; Modified: trunk/bibdesk/BDSKPreviewer.m =================================================================== --- trunk/bibdesk/BDSKPreviewer.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKPreviewer.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -357,9 +357,7 @@ else message = NSLocalizedString(@"***** ERROR: unable to create preview *****", @"Preview message"); - logString = [[server texTask] logFileString]; - if (nil == logString) - logString = NSLocalizedString(@"Unable to read log file from TeX run.", @"Preview message"); + logString = [[server texTask] logFileString] ?: NSLocalizedString(@"Unable to read log file from TeX run.", @"Preview message"); pdfData = [self PDFData]; if(success == NO || pdfData == nil){ Modified: trunk/bibdesk/BDSKPublicationsArray.m =================================================================== --- trunk/bibdesk/BDSKPublicationsArray.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKPublicationsArray.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -225,7 +225,7 @@ NSArray *items = nil; if ([NSString isEmptyString:key] == NO) items = [itemsForCiteKeys arrayForKey:key]; - return (items == nil) ? [NSArray array] : items; + return items ?: [NSArray array]; } - (BOOL)citeKeyIsUsed:(NSString *)key byItemOtherThan:(BibItem *)anItem; Modified: trunk/bibdesk/BDSKSearchBookmarkController.m =================================================================== --- trunk/bibdesk/BDSKSearchBookmarkController.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKSearchBookmarkController.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -310,8 +310,7 @@ #pragma mark NSOutlineView datasource methods - (int)outlineView:(NSOutlineView *)ov numberOfChildrenOfItem:(id)item { - if (item == nil) item = bookmarkRoot; - return [[item children] count]; + return [[(item ?: bookmarkRoot) children] count]; } - (BOOL)outlineView:(NSOutlineView *)ov isItemExpandable:(id)item { @@ -319,8 +318,7 @@ } - (id)outlineView:(NSOutlineView *)ov child:(int)idx ofItem:(id)item { - if (item == nil) item = bookmarkRoot; - return [[item children] objectAtIndex:idx]; + return [[(item ?: bookmarkRoot) children] objectAtIndex:idx]; } - (id)outlineView:(NSOutlineView *)ov objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item { Modified: trunk/bibdesk/BDSKSearchForCommand.m =================================================================== --- trunk/bibdesk/BDSKSearchForCommand.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKSearchForCommand.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -198,9 +198,7 @@ NSMutableString *string = [[NSMutableString alloc] initWithCapacity:20]; while(auth = [authEnum nextObject]) { - NSString *name = [auth lastName]; - if (nil == name) - name = [auth name]; + NSString *name = [auth lastName] ?: [auth name]; if (nil != name) { [string appendString:name]; [string appendFormat:@"%C", 0x1E]; @@ -231,9 +229,7 @@ NSMutableString * surnames = [NSMutableString string]; auth = [authEnum nextObject]; if (auth) { - NSString *name = [auth lastName]; - if (nil == name) - name = [auth name]; + NSString *name = [auth lastName] ?: [auth name]; if (nil != name) [surnames appendString:name]; if([pubAuthors count] > 2){ Modified: trunk/bibdesk/BDSKSearchGroup.m =================================================================== --- trunk/bibdesk/BDSKSearchGroup.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKSearchGroup.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -79,13 +79,7 @@ // designated initializer - (id)initWithType:(NSString *)aType serverInfo:(BDSKServerInfo *)info searchTerm:(NSString *)string; { - NSString *aName = [info name]; - if (aName == nil) - aName = [info database]; - if (aName == nil) - aName = string; - if (aName == nil) - aName = NSLocalizedString(@"Empty", @"Name for empty search group"); + NSString *aName = (([info name] ?: [info database]) ?: string) ?: NSLocalizedString(@"Empty", @"Name for empty search group"); if (self = [super initWithName:aName count:0]) { type = [aType copy]; searchTerm = [string copy]; @@ -121,16 +115,13 @@ NSString *aPort = [[bdsksearchURL port] stringValue]; NSString *path = [bdsksearchURL path]; NSString *aDatabase = [([path hasPrefix:@"/"] ? [path substringFromIndex:1] : path ? path : @"") stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; - NSString *aName = [[bdsksearchURL parameterString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; + NSString *aName = [[bdsksearchURL parameterString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] ?: aDatabase; NSString *query = [bdsksearchURL query]; NSString *aSearchTerm = nil; NSString *aType = BDSKSearchGroupZoom; NSMutableDictionary *options = [NSMutableDictionary dictionary]; NSEnumerator *queryEnum = [[query componentsSeparatedByString:@"&"] objectEnumerator]; - if (aName == nil) - aName = aDatabase; - [options setValue:[bdsksearchURL password] forKey:@"password"]; [options setValue:[bdsksearchURL user] forKey:@"username"]; Modified: trunk/bibdesk/BDSKSearchGroupSheetController.m =================================================================== --- trunk/bibdesk/BDSKSearchGroupSheetController.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKSearchGroupSheetController.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -533,7 +533,7 @@ - (void)setServerInfo:(BDSKServerInfo *)info; { - CFArrayRemoveAllValues(editors); + [objectController discardEditing]; [serverInfo setDelegate:nil]; [serverInfo autorelease]; serverInfo = [info mutableCopy]; Modified: trunk/bibdesk/BDSKTemplateDocument.m =================================================================== --- trunk/bibdesk/BDSKTemplateDocument.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKTemplateDocument.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -365,9 +365,7 @@ parsedTemplate = [BDSKTemplateParser arrayByParsingTemplateAttributedString:[attrString attributedSubstringFromRange:MAKE_RANGE(NSMaxRange(startRange), (sepRange.location == NSNotFound ? endRange.location : sepRange.location))]]; - font = [attrString attribute:NSFontAttributeName atIndex:startLoc effectiveRange:NULL]; - if (font == nil) - font = [NSFont userFontOfSize:0.0]; + font = [attrString attribute:NSFontAttributeName atIndex:startLoc effectiveRange:NULL] ?: [NSFont userFontOfSize:0.0]; int traits = [[NSFontManager sharedFontManager] traitsOfFont:font]; [self setFontName:[font familyName]]; [self setFontSize:[font pointSize]]; Modified: trunk/bibdesk/BDSKTemplateParser.m =================================================================== --- trunk/bibdesk/BDSKTemplateParser.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKTemplateParser.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -477,9 +477,7 @@ for (i = 0; i < count; i++) { matchString = [matchStrings objectAtIndex:i]; if ([matchString hasPrefix:@"$"]) { - matchString = [[object templateValueForKeyPath:[matchString substringFromIndex:1]] templateStringValue]; - if (matchString == nil) - matchString = @""; + matchString = [[object templateValueForKeyPath:[matchString substringFromIndex:1]] templateStringValue] ?: @""; } switch ([tag matchType]) { case BDSKTemplateTagMatchEqual: @@ -806,9 +804,7 @@ for (i = 0; i < count; i++) { matchString = [matchStrings objectAtIndex:i]; if ([matchString hasPrefix:@"$"]) { - matchString = [[object templateValueForKeyPath:[matchString substringFromIndex:1]] templateStringValue]; - if (matchString == nil) - matchString = @""; + matchString = [[object templateValueForKeyPath:[matchString substringFromIndex:1]] templateStringValue] ?: @""; } switch ([tag matchType]) { case BDSKTemplateTagMatchEqual: Modified: trunk/bibdesk/BDSKTextImportController.m =================================================================== --- trunk/bibdesk/BDSKTextImportController.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKTextImportController.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -576,8 +576,7 @@ - (void)bookmarkLink:(id)sender{ NSDictionary *element = (NSDictionary *)[sender representedObject]; NSString *URLString = [(NSURL *)[element objectForKey:WebElementLinkURLKey] absoluteString]; - NSString *title = [element objectForKey:WebElementLinkLabelKey]; - if(title == nil) title = [URLString lastPathComponent]; + NSString *title = [element objectForKey:WebElementLinkLabelKey] ?: [URLString lastPathComponent]; [[BDSKBookmarkController sharedBookmarkController] addBookmarkWithUrlString:URLString proposedName:title modalForWindow:[self window]]; } Modified: trunk/bibdesk/BDSKTypeManager.m =================================================================== --- trunk/bibdesk/BDSKTypeManager.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKTypeManager.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -612,10 +612,7 @@ } - (NSString *)bibtexTypeForReferType:(NSString *)type { - NSString *btType = [bibtexTypeForReferTypeDict objectForKey:type]; - if (nil == btType) - btType = BDSKMiscString; - return btType; + return [bibtexTypeForReferTypeDict objectForKey:type] ?: BDSKMiscString; } - (NSString *)bibtexTypeForHCiteType:(NSString *)type { @@ -624,14 +621,8 @@ if([[self bibTypesForFileType:BDSKBibtexString] containsObject:type]) return type; - // then try to find 'type' in the custom dict: - NSString *btType = [bibtexTypeForHCiteTypeDict objectForKey:type]; - - // if it's not there, give up and return "misc". - if (nil == btType) - btType = BDSKMiscString; - - return btType; + // then try to find 'type' in the custom dict:, and if it's not there, give up and return "misc". + return [bibtexTypeForHCiteTypeDict objectForKey:type] ?: BDSKMiscString; } Modified: trunk/bibdesk/BDSKUpdateChecker.m =================================================================== --- trunk/bibdesk/BDSKUpdateChecker.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKUpdateChecker.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -382,12 +382,8 @@ // returns UTC date of next update check - (NSDate *)nextUpdateCheckDate; { - NSDate *lastCheck = [NSDate dateWithString:[[OFPreferenceWrapper sharedPreferenceWrapper] objectForKey:BDSKUpdateCheckLastDateKey]]; + NSDate *lastCheck = [NSDate dateWithString:[[OFPreferenceWrapper sharedPreferenceWrapper] objectForKey:BDSKUpdateCheckLastDateKey]] ?: [NSDate distantPast]; - // if nil, return a date in the past - if (nil == lastCheck) - lastCheck = [NSDate distantPast]; - CFAbsoluteTime lastCheckTime = CFDateGetAbsoluteTime((CFDateRef)lastCheck); // use GMT everywhere Modified: trunk/bibdesk/BDSKWebGroupViewController.m =================================================================== --- trunk/bibdesk/BDSKWebGroupViewController.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKWebGroupViewController.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -235,8 +235,7 @@ - (IBAction)bookmarkLink:(id)sender { NSDictionary *element = (NSDictionary *)[sender representedObject]; NSString *URLString = [(NSURL *)[element objectForKey:WebElementLinkURLKey] absoluteString]; - NSString *title = [element objectForKey:WebElementLinkLabelKey]; - if(title == nil) title = [URLString lastPathComponent]; + NSString *title = [element objectForKey:WebElementLinkLabelKey] ?: [URLString lastPathComponent]; [[BDSKBookmarkController sharedBookmarkController] addBookmarkWithUrlString:URLString proposedName:title modalForWindow:[webView window]]; } Modified: trunk/bibdesk/BDSKZoomGroupServer.m =================================================================== --- trunk/bibdesk/BDSKZoomGroupServer.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BDSKZoomGroupServer.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -203,9 +203,7 @@ [connection setResultEncodingToIANACharSetName:[info resultEncoding]]; - NSString *proxy = [[info options] objectForKey:@"proxy"]; - if (proxy == nil) - proxy = BDSKHTTPProxySetting(); + NSString *proxy = [[info options] objectForKey:@"proxy"] ?: BDSKHTTPProxySetting(); if (proxy) [connection setOption:proxy forKey:@"proxy"]; Modified: trunk/bibdesk/BibDocument+Menus.m =================================================================== --- trunk/bibdesk/BibDocument+Menus.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BibDocument+Menus.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -158,9 +158,7 @@ } - (BOOL) validateOpenLocalURLMenuItem:(NSMenuItem*) menuItem { - NSString *field = [menuItem representedObject]; - if (field == nil) - field = BDSKLocalUrlString; + NSString *field = [menuItem representedObject] ?: BDSKLocalUrlString; NSEnumerator *e = [[self selectedPublications] objectEnumerator]; BibItem *pub = nil; @@ -174,9 +172,7 @@ } - (BOOL) validateRevealLocalURLMenuItem:(NSMenuItem*) menuItem { - NSString *field = [menuItem representedObject]; - if (field == nil) - field = BDSKLocalUrlString; + NSString *field = [menuItem representedObject] ?: BDSKLocalUrlString; NSEnumerator *e = [[self selectedPublications] objectEnumerator]; BibItem *pub = nil; @@ -190,9 +186,7 @@ } - (BOOL) validateOpenRemoteURLMenuItem:(NSMenuItem*) menuItem { - NSString *field = [menuItem representedObject]; - if (field == nil) - field = BDSKUrlString; + NSString *field = [menuItem representedObject] ?: BDSKUrlString; NSEnumerator *e = [[self selectedPublications] objectEnumerator]; BibItem *pub = nil; @@ -206,9 +200,7 @@ } - (BOOL) validateShowNotesForLocalURLMenuItem:(NSMenuItem*) menuItem { - NSString *field = [menuItem representedObject]; - if (field == nil) - field = BDSKLocalUrlString; + NSString *field = [menuItem representedObject] ?: BDSKLocalUrlString; NSEnumerator *e = [[self selectedPublications] objectEnumerator]; BibItem *pub = nil; @@ -222,9 +214,7 @@ } - (BOOL) validateCopyNotesForLocalURLMenuItem:(NSMenuItem*) menuItem { - NSString *field = [menuItem representedObject]; - if (field == nil) - field = BDSKLocalUrlString; + NSString *field = [menuItem representedObject] ?: BDSKLocalUrlString; NSEnumerator *e = [[self selectedPublications] objectEnumerator]; BibItem *pub = nil; Modified: trunk/bibdesk/BibDocument.m =================================================================== --- trunk/bibdesk/BibDocument.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BibDocument.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -936,10 +936,7 @@ - (NSString *)fileNameExtensionForType:(NSString *)typeName saveOperation:(NSSaveOperationType)saveOperation { // this will never be called on 10.4, so we can safely call super - NSString *fileExtension = [super fileNameExtensionForType:typeName saveOperation:saveOperation]; - if(fileExtension == nil) - fileExtension = [[BDSKTemplate templateForStyle:typeName] fileExtension]; - return fileExtension; + return [super fileNameExtensionForType:typeName saveOperation:saveOperation] ?: [[BDSKTemplate templateForStyle:typeName] fileExtension]; } #define SAVE_ENCODING_VIEW_OFFSET 30.0 @@ -1136,9 +1133,7 @@ NSString *errTitle = NSAutosaveOperation == docState.currentSaveOperationType ? NSLocalizedString(@"Unable to autosave file", @"Error description") : NSLocalizedString(@"Unable to save file", @"Error description"); // @@ do this in fileWrapperOfType:forPublications:error:? should just use error localizedDescription - NSString *errMsg = [nsError valueForKey:NSLocalizedRecoverySuggestionErrorKey]; - if (nil == errMsg) - errMsg = NSLocalizedString(@"The underlying cause of this error is unknown. Please submit a bug report with the file attached.", @"Error informative text"); + NSString *errMsg = [nsError valueForKey:NSLocalizedRecoverySuggestionErrorKey] ?: NSLocalizedString(@"The underlying cause of this error is unknown. Please submit a bug report with the file attached.", @"Error informative text"); nsError = [NSError mutableLocalErrorWithCode:kBDSKDocumentSaveError localizedDescription:errTitle underlyingError:nsError]; [nsError setValue:errMsg forKey:NSLocalizedRecoverySuggestionErrorKey]; @@ -1538,11 +1533,8 @@ options |= BDSKBibTeXOptionDropInternalMask; if([[OFPreferenceWrapper sharedPreferenceWrapper] boolForKey:BDSKShouldUseTemplateFile]){ - NSMutableString *templateFile = [NSMutableString stringWithContentsOfFile:[[[OFPreferenceWrapper sharedPreferenceWrapper] stringForKey:BDSKOutputTemplateFileKey] stringByExpandingTildeInPath] usedEncoding:NULL error:NULL]; + NSMutableString *templateFile = [NSMutableString stringWithContentsOfFile:[[[OFPreferenceWrapper sharedPreferenceWrapper] stringForKey:BDSKOutputTemplateFileKey] stringByExpandingTildeInPath] usedEncoding:NULL error:NULL] ?: [NSMutableString string]; - if (templateFile == nil) - templateFile = [NSMutableString string]; - NSString *userName = NSFullUserName(); if ([userName canBeConvertedToEncoding:encoding] == NO) userName = [[[NSString alloc] initWithData:[userName dataUsingEncoding:encoding allowLossyConversion:YES] encoding:encoding] autorelease]; @@ -2627,9 +2619,7 @@ - (BOOL)selectItemForPartialItem:(NSDictionary *)partialItem{ - NSString *itemKey = [partialItem objectForKey:@"net_sourceforge_bibdesk_citekey"]; - if(itemKey == nil) - itemKey = [partialItem objectForKey:BDSKCiteKeyString]; + NSString *itemKey = [partialItem objectForKey:@"net_sourceforge_bibdesk_citekey"] ?: [partialItem objectForKey:BDSKCiteKeyString]; BOOL matchFound = NO; @@ -3115,9 +3105,7 @@ [textStorage beginEditing]; - BDSKTemplate *template = [BDSKTemplate templateForStyle:templateStyle]; - if (template == nil) - template = [BDSKTemplate templateForStyle:[BDSKTemplate defaultStyleNameForFileType:@"rtf"]]; + BDSKTemplate *template = [BDSKTemplate templateForStyle:templateStyle] ?: [BDSKTemplate templateForStyle:[BDSKTemplate defaultStyleNameForFileType:@"rtf"]]; // make sure this is really one of the attributed string types... if([template templateFormat] & BDSKRichTextTemplateFormat){ Modified: trunk/bibdesk/BibDocument_Actions.m =================================================================== --- trunk/bibdesk/BibDocument_Actions.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BibDocument_Actions.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -601,9 +601,7 @@ #pragma mark | URL Field actions - (IBAction)openLocalURL:(id)sender{ - NSString *field = [sender representedObject]; - if (field == nil) - field = BDSKLocalUrlString; + NSString *field = [sender representedObject] ?: BDSKLocalUrlString; [self openLocalURLForField:field]; } @@ -650,9 +648,7 @@ } - (IBAction)revealLocalURL:(id)sender{ - NSString *field = [sender representedObject]; - if (field == nil) - field = BDSKLocalUrlString; + NSString *field = [sender representedObject] ?: BDSKLocalUrlString; [self revealLocalURLForField:field]; } @@ -691,9 +687,7 @@ } - (IBAction)openRemoteURL:(id)sender{ - NSString *field = [sender representedObject]; - if (field == nil) - field = BDSKUrlString; + NSString *field = [sender representedObject] ?: BDSKUrlString; [self openRemoteURLForField:field]; } @@ -730,9 +724,7 @@ } - (IBAction)showNotesForLocalURL:(id)sender{ - NSString *field = [sender representedObject]; - if (field == nil) - field = BDSKLocalUrlString; + NSString *field = [sender representedObject] ?: BDSKLocalUrlString; [self showNotesForLocalURLForField:field]; } @@ -776,9 +768,7 @@ } - (IBAction)copyNotesForLocalURL:(id)sender{ - NSString *field = [sender representedObject]; - if (field == nil) - field = BDSKLocalUrlString; + NSString *field = [sender representedObject] ?: BDSKLocalUrlString; [self copyNotesForLocalURLForField:field]; } Modified: trunk/bibdesk/BibDocument_Groups.m =================================================================== --- trunk/bibdesk/BibDocument_Groups.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BibDocument_Groups.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -1552,9 +1552,9 @@ continue; if (groupName == nil) - groupName = [NSString stringWithFormat:@"group %@", [group name]]; + groupName = [NSString stringWithFormat:NSLocalizedString(@"group %@", @"Partial status message"), [group name]]; else - groupName = @"selected groups"; + groupName = NSLocalizedString(@"selected groups", @"Partial status message"); if ([group isStatic]) { [(BDSKStaticGroup *)group removePublicationsInArray:pubs]; Modified: trunk/bibdesk/BibItem+Scripting.m =================================================================== --- trunk/bibdesk/BibItem+Scripting.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BibItem+Scripting.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -434,9 +434,7 @@ - (NSTextStorage *)styledTextValue { NSString *templateStyle = [[OFPreferenceWrapper sharedPreferenceWrapper] stringForKey:BDSKBottomPreviewDisplayTemplateKey]; - BDSKTemplate *template = [BDSKTemplate templateForStyle:templateStyle]; - if (template == nil) - template = [BDSKTemplate templateForStyle:[BDSKTemplate defaultStyleNameForFileType:@"rtf"]]; + BDSKTemplate *template = [BDSKTemplate templateForStyle:templateStyle] ?: [BDSKTemplate templateForStyle:[BDSKTemplate defaultStyleNameForFileType:@"rtf"]]; NSAttributedString *attrString = nil; if ([template templateFormat] & BDSKRichTextTemplateFormat) { Modified: trunk/bibdesk/BibItem.m =================================================================== --- trunk/bibdesk/BibItem.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BibItem.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -893,9 +893,7 @@ // this is used for the lower pane - (NSString *)title{ - NSString *title = [self valueOfField:BDSKTitleString]; - if (title == nil) - title = @""; + NSString *title = [self valueOfField:BDSKTitleString] ?: @""; if ([[self pubType] isEqualToString:BDSKInbookString]) { NSString *chapter = [self valueOfField:BDSKChapterString]; if (![NSString isEmptyString:chapter]) { Modified: trunk/bibdesk/BibPref_Display.m =================================================================== --- trunk/bibdesk/BibPref_Display.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/BibPref_Display.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -211,10 +211,7 @@ - (void)changeFont:(id)sender{ NSFontManager *fontManager = [NSFontManager sharedFontManager]; - NSFont *font = [self currentFont]; - - if (font == nil) - font = [NSFont systemFontOfSize:[NSFont systemFontSize]]; + NSFont *font = [self currentFont] ?: [NSFont systemFontOfSize:[NSFont systemFontSize]]; font = [fontManager convertFont:font]; [self setCurrentFont:font]; @@ -226,9 +223,7 @@ } - (void)updateFontPanel:(NSNotification *)notification{ - NSFont *font = [self currentFont]; - if (font == nil) - font = [NSFont systemFontOfSize:[NSFont systemFontSize]]; + NSFont *font = [self currentFont] ?: [NSFont systemFontOfSize:[NSFont systemFontSize]]; [[NSFontManager sharedFontManager] setSelectedFont:font isMultiple:NO]; [[NSFontManager sharedFontManager] setAction:@selector(localChangeFont:)]; } Modified: trunk/bibdesk/NSAttributedString_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSAttributedString_BDSKExtensions.m 2008-08-09 17:49:31 UTC (rev 13583) +++ trunk/bibdesk/NSAttributedString_BDSKExtensions.m 2008-08-11 18:45:59 UTC (rev 13584) @@ -54,9 +54,7 @@ NSFontManager *fontManager = [NSFontManager sharedFontManager]; NSString *texStyle = nil; NSMutableDictionary *attrs; - NSFont *font = [attributes objectForKey:NSFontAttributeName]; - if (font == nil) - font = [NSFont systemFontOfSize:0]; + NSFont *font = [attributes objectForKey:NSFontAttributeName] ?: [NSFont systemFontOfSize:0]; NSRange range = *rangePtr; NSRange searchRange = range; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-18 14:57:58
|
Revision: 13591 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13591&view=rev Author: hofman Date: 2008-08-18 14:58:07 +0000 (Mon, 18 Aug 2008) Log Message: ----------- Declare initializers in collection subclasses, as those are not automatically inherited for a class cluster. Modified Paths: -------------- trunk/bibdesk/BDSKThreadSafeMutableArray.h trunk/bibdesk/BDSKThreadSafeMutableArray.m trunk/bibdesk/BDSKThreadSafeMutableDictionary.h Modified: trunk/bibdesk/BDSKThreadSafeMutableArray.h =================================================================== --- trunk/bibdesk/BDSKThreadSafeMutableArray.h 2008-08-18 11:11:22 UTC (rev 13590) +++ trunk/bibdesk/BDSKThreadSafeMutableArray.h 2008-08-18 14:58:07 UTC (rev 13591) @@ -43,4 +43,6 @@ NSMutableArray *embeddedArray; pthread_rwlock_t rwlock; } +- (id)init; +- (id)initWithCapacity:(unsigned)capacity; @end Modified: trunk/bibdesk/BDSKThreadSafeMutableArray.m =================================================================== --- trunk/bibdesk/BDSKThreadSafeMutableArray.m 2008-08-18 11:11:22 UTC (rev 13590) +++ trunk/bibdesk/BDSKThreadSafeMutableArray.m 2008-08-18 14:58:07 UTC (rev 13591) @@ -57,14 +57,6 @@ return self; } -- (id)initWithObjects:(id *)objects count:(unsigned)count { - if (self = [super init]) { - embeddedArray = [[NSMutableArray allocWithZone:[self zone]] initWithObjects:objects count:count]; - pthread_rwlock_init(&rwlock, NULL); - } - return self; -} - - (id)copyWithZone:(NSZone *)zone { id copy; pthread_rwlock_rdlock(&rwlock); Modified: trunk/bibdesk/BDSKThreadSafeMutableDictionary.h =================================================================== --- trunk/bibdesk/BDSKThreadSafeMutableDictionary.h 2008-08-18 11:11:22 UTC (rev 13590) +++ trunk/bibdesk/BDSKThreadSafeMutableDictionary.h 2008-08-18 14:58:07 UTC (rev 13591) @@ -44,4 +44,6 @@ NSMutableDictionary *embeddedDictionary; pthread_rwlock_t rwlock; } +- (id)init; +- (id)initWithCapacity:(unsigned)capacity; @end This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-18 16:13:31
|
Revision: 13592 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13592&view=rev Author: hofman Date: 2008-08-18 16:13:37 +0000 (Mon, 18 Aug 2008) Log Message: ----------- Implement bookmark class clusters using a separate placeholder subclass Modified Paths: -------------- trunk/bibdesk/BDSKBookmark.m trunk/bibdesk/BDSKSearchBookmark.m Modified: trunk/bibdesk/BDSKBookmark.m =================================================================== --- trunk/bibdesk/BDSKBookmark.m 2008-08-18 14:58:07 UTC (rev 13591) +++ trunk/bibdesk/BDSKBookmark.m 2008-08-18 16:13:37 UTC (rev 13592) @@ -47,6 +47,10 @@ static NSString *BDSKBookmarkTypeFolderString = @"folder"; static NSString *BDSKBookmarkTypeSeparatorString = @"separator"; + +@interface BDSKPlaceholderBookmark : BDSKBookmark +@end + @interface BDSKURLBookmark : BDSKBookmark { NSString *name; NSString *urlString; @@ -66,64 +70,42 @@ @implementation BDSKBookmark -static BDSKBookmark *defaultPlaceholderBookmark = nil; +static BDSKPlaceholderBookmark *defaultPlaceholderBookmark = nil; static Class BDSKBookmarkClass = Nil; + (void)initialize { OBINITIALIZE; - if (self == [BDSKBookmark class]) { - BDSKBookmarkClass = self; - defaultPlaceholderBookmark = (BDSKBookmark *)NSAllocateObject(BDSKBookmarkClass, 0, NSDefaultMallocZone()); - } + BDSKBookmarkClass = self; + defaultPlaceholderBookmark = (BDSKPlaceholderBookmark *)NSAllocateObject([BDSKPlaceholderBookmark class], 0, NSDefaultMallocZone()); } + (id)allocWithZone:(NSZone *)aZone { - return BDSKBookmarkClass == self ? defaultPlaceholderBookmark : NSAllocateObject(self, 0, aZone); + return BDSKBookmarkClass == self ? defaultPlaceholderBookmark : [super allocWithZone:aZone]; } -- (id)init { - if (self == defaultPlaceholderBookmark) - self = [self initWithUrlString:@"http://" name:nil]; - else - self = [super init]; - return self; -} - - (id)initWithUrlString:(NSString *)aUrlString name:(NSString *)aName { - if (self != defaultPlaceholderBookmark) - [self release]; - return [[BDSKURLBookmark alloc] initWithUrlString:aUrlString name:aName ? aName : NSLocalizedString(@"New Boookmark", @"Default name for boookmark")]; + [self doesNotRecognizeSelector:_cmd]; + return nil; } - (id)initFolderWithChildren:(NSArray *)aChildren name:(NSString *)aName { - if (self != defaultPlaceholderBookmark) - [self release]; - return [[BDSKFolderBookmark alloc] initFolderWithChildren:aChildren name:aName]; + [self doesNotRecognizeSelector:_cmd]; + return nil; } - (id)initFolderWithName:(NSString *)aName { - return [self initFolderWithChildren:[NSArray array] name:aName]; + [self doesNotRecognizeSelector:_cmd]; + return nil; } - (id)initSeparator { - if (self != defaultPlaceholderBookmark) - [self release]; - return [[BDSKSeparatorBookmark alloc] init]; + [self doesNotRecognizeSelector:_cmd]; + return nil; } - (id)initWithDictionary:(NSDictionary *)dictionary { - if ([[dictionary objectForKey:TYPE_KEY] isEqualToString:BDSKBookmarkTypeFolderString]) { - NSEnumerator *dictEnum = [[dictionary objectForKey:CHILDREN_KEY] objectEnumerator]; - NSDictionary *dict; - NSMutableArray *newChildren = [NSMutableArray array]; - while (dict = [dictEnum nextObject]) - [newChildren addObject:[[[[self class] alloc] initWithDictionary:dict] autorelease]]; - return [self initFolderWithChildren:newChildren name:[dictionary objectForKey:TITLE_KEY]]; - } else if ([[dictionary objectForKey:TYPE_KEY] isEqualToString:BDSKBookmarkTypeSeparatorString]) { - return [self initSeparator]; - } else { - return [self initWithUrlString:[dictionary objectForKey:URL_KEY] name:[dictionary objectForKey:TITLE_KEY]]; - } + [self doesNotRecognizeSelector:_cmd]; + return nil; } - (id)copyWithZone:(NSZone *)aZone { @@ -131,12 +113,6 @@ return nil; } -- (void)dealloc { - if (self != defaultPlaceholderBookmark) { - [super dealloc]; - } -} - - (NSDictionary *)dictionaryValue { return nil; } - (int)bookmarkType { return 0; } @@ -189,6 +165,55 @@ #pragma mark - +@implementation BDSKPlaceholderBookmark + +- (id)init { + return [self initWithUrlString:@"http://" name:nil]; +} + +- (id)initWithUrlString:(NSString *)aUrlString name:(NSString *)aName { + return [[BDSKURLBookmark alloc] initWithUrlString:aUrlString name:aName ? aName : NSLocalizedString(@"New Boookmark", @"Default name for boookmark")]; +} + +- (id)initFolderWithChildren:(NSArray *)aChildren name:(NSString *)aName { + return [[BDSKFolderBookmark alloc] initFolderWithChildren:aChildren name:aName]; +} + +- (id)initFolderWithName:(NSString *)aName { + return [self initFolderWithChildren:[NSArray array] name:aName]; +} + +- (id)initSeparator { + return [[BDSKSeparatorBookmark alloc] init]; +} + +- (id)initWithDictionary:(NSDictionary *)dictionary { + if ([[dictionary objectForKey:TYPE_KEY] isEqualToString:BDSKBookmarkTypeFolderString]) { + NSEnumerator *dictEnum = [[dictionary objectForKey:CHILDREN_KEY] objectEnumerator]; + NSDictionary *dict; + NSMutableArray *newChildren = [NSMutableArray array]; + while (dict = [dictEnum nextObject]) + [newChildren addObject:[[[[self class] alloc] initWithDictionary:dict] autorelease]]; + return [self initFolderWithChildren:newChildren name:[dictionary objectForKey:TITLE_KEY]]; + } else if ([[dictionary objectForKey:TYPE_KEY] isEqualToString:BDSKBookmarkTypeSeparatorString]) { + return [self initSeparator]; + } else { + return [self initWithUrlString:[dictionary objectForKey:URL_KEY] name:[dictionary objectForKey:TITLE_KEY]]; + } +} + +- (id)retain { return self; } + +- (id)autorelease { return self; } + +- (void)release {} + +- (unsigned)retainCount { return UINT_MAX; } + +@end + +#pragma mark - + @implementation BDSKURLBookmark - (id)initWithUrlString:(NSString *)aUrlString name:(NSString *)aName { Modified: trunk/bibdesk/BDSKSearchBookmark.m =================================================================== --- trunk/bibdesk/BDSKSearchBookmark.m 2008-08-18 14:58:07 UTC (rev 13591) +++ trunk/bibdesk/BDSKSearchBookmark.m 2008-08-18 16:13:37 UTC (rev 13592) @@ -47,6 +47,9 @@ #define BOOKMARK_TYPE_KEY @"bookmarkType" +@interface BDSKPlaceholderSearchBookmark : BDSKSearchBookmark +@end + @interface BDSKServerSearchBookmark : BDSKSearchBookmark { NSString *label; NSDictionary *info; @@ -66,75 +69,49 @@ @implementation BDSKSearchBookmark -static BDSKSearchBookmark *defaultPlaceholderSearchBookmark = nil; +static BDSKPlaceholderSearchBookmark *defaultPlaceholderSearchBookmark = nil; static Class BDSKSearchBookmarkClass = Nil; + (void)initialize { OBINITIALIZE; - if (self == [BDSKSearchBookmark class]) { - BDSKSearchBookmarkClass = self; - defaultPlaceholderSearchBookmark = (BDSKSearchBookmark *)NSAllocateObject(BDSKSearchBookmarkClass, 0, NSDefaultMallocZone()); - } + BDSKSearchBookmarkClass = self; + defaultPlaceholderSearchBookmark = (BDSKPlaceholderSearchBookmark *)NSAllocateObject([BDSKPlaceholderSearchBookmark class], 0, NSDefaultMallocZone()); } + (id)allocWithZone:(NSZone *)aZone { - return BDSKSearchBookmarkClass == self ? defaultPlaceholderSearchBookmark : NSAllocateObject(self, 0, aZone); + return BDSKSearchBookmarkClass == self ? defaultPlaceholderSearchBookmark : [super allocWithZone:aZone]; } -- (id)init { - return self == defaultPlaceholderSearchBookmark ? nil : [super init]; -} - - (id)initFolderWithChildren:(NSArray *)aChildren label:(NSString *)aLabel { - if (self != defaultPlaceholderSearchBookmark) - [self release]; - return [[BDSKFolderSearchBookmark alloc] initFolderWithChildren:aChildren label:aLabel]; + [self doesNotRecognizeSelector:_cmd]; + return nil; } - (id)initFolderWithLabel:(NSString *)aLabel { - return [self initFolderWithChildren:[NSArray array] label:aLabel]; + [self doesNotRecognizeSelector:_cmd]; + return nil; } - (id)initSeparator { - if (self != defaultPlaceholderSearchBookmark) - [self release]; - return [[BDSKSeparatorSearchBookmark alloc] init]; + [self doesNotRecognizeSelector:_cmd]; + return nil; } - (id)initWithInfo:(NSDictionary *)aDictionary label:(NSString *)aLabel { - if (self != defaultPlaceholderSearchBookmark) - [self release]; - return [[BDSKServerSearchBookmark alloc] initWithInfo:aDictionary label:aLabel]; + [self doesNotRecognizeSelector:_cmd]; + return nil; } - (id)initWithDictionary:(NSDictionary *)dictionary { - if ([[dictionary objectForKey:BOOKMARK_TYPE_KEY] isEqualToString:BDSKSearchBookmarkTypeFolderString]) { - NSEnumerator *dictEnum = [[dictionary objectForKey:CHILDREN_KEY] objectEnumerator]; - NSDictionary *dict; - NSMutableArray *newChildren = [NSMutableArray array]; - while (dict = [dictEnum nextObject]) - [newChildren addObject:[[[[self class] alloc] initWithDictionary:dict] autorelease]]; - return [self initFolderWithChildren:newChildren label:[dictionary objectForKey:LABEL_KEY]]; - } else if ([[dictionary objectForKey:BOOKMARK_TYPE_KEY] isEqualToString:BDSKSearchBookmarkTypeSeparatorString]) { - return [self initSeparator]; - } else { - NSMutableDictionary *dict = [[dictionary mutableCopy] autorelease]; - [dict removeObjectForKey:BOOKMARK_TYPE_KEY]; - [dict removeObjectForKey:LABEL_KEY]; - return [self initWithInfo:dict label:[dictionary objectForKey:LABEL_KEY]]; - } + [self doesNotRecognizeSelector:_cmd]; + return nil; } - (id)copyWithZone:(NSZone *)aZone { + [self doesNotRecognizeSelector:_cmd]; return nil; } -- (void)dealloc { - if (self != defaultPlaceholderSearchBookmark) { - [super dealloc]; - } -} - - (NSDictionary *)dictionaryValue { return nil; } - (int)bookmarkType { return 0; } @@ -185,6 +162,58 @@ #pragma mark - +@implementation BDSKPlaceholderSearchBookmark + +- (id)init { + return nil; +} + +- (id)initFolderWithChildren:(NSArray *)aChildren label:(NSString *)aLabel { + return [[BDSKFolderSearchBookmark alloc] initFolderWithChildren:aChildren label:aLabel]; +} + +- (id)initFolderWithLabel:(NSString *)aLabel { + return [self initFolderWithChildren:[NSArray array] label:aLabel]; +} + +- (id)initSeparator { + return [[BDSKSeparatorSearchBookmark alloc] init]; +} + +- (id)initWithInfo:(NSDictionary *)aDictionary label:(NSString *)aLabel { + return [[BDSKServerSearchBookmark alloc] initWithInfo:aDictionary label:aLabel]; +} + +- (id)initWithDictionary:(NSDictionary *)dictionary { + if ([[dictionary objectForKey:BOOKMARK_TYPE_KEY] isEqualToString:BDSKSearchBookmarkTypeFolderString]) { + NSEnumerator *dictEnum = [[dictionary objectForKey:CHILDREN_KEY] objectEnumerator]; + NSDictionary *dict; + NSMutableArray *newChildren = [NSMutableArray array]; + while (dict = [dictEnum nextObject]) + [newChildren addObject:[[[[self class] alloc] initWithDictionary:dict] autorelease]]; + return [self initFolderWithChildren:newChildren label:[dictionary objectForKey:LABEL_KEY]]; + } else if ([[dictionary objectForKey:BOOKMARK_TYPE_KEY] isEqualToString:BDSKSearchBookmarkTypeSeparatorString]) { + return [self initSeparator]; + } else { + NSMutableDictionary *dict = [[dictionary mutableCopy] autorelease]; + [dict removeObjectForKey:BOOKMARK_TYPE_KEY]; + [dict removeObjectForKey:LABEL_KEY]; + return [self initWithInfo:dict label:[dictionary objectForKey:LABEL_KEY]]; + } +} + +- (id)retain { return self; } + +- (id)autorelease { return self; } + +- (void)release {} + +- (unsigned)retainCount { return UINT_MAX; } + +@end + +#pragma mark - + @implementation BDSKServerSearchBookmark - (id)initWithInfo:(NSDictionary *)aDictionary label:(NSString *)aLabel { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-18 16:54:04
|
Revision: 13593 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13593&view=rev Author: hofman Date: 2008-08-18 16:54:09 +0000 (Mon, 18 Aug 2008) Log Message: ----------- Implement file class clusters using a separate placeholder subclass Modified Paths: -------------- trunk/bibdesk/BDSKFile.m trunk/bibdesk/BDSKLinkedFile.m Modified: trunk/bibdesk/BDSKFile.m =================================================================== --- trunk/bibdesk/BDSKFile.m 2008-08-18 16:13:37 UTC (rev 13592) +++ trunk/bibdesk/BDSKFile.m 2008-08-18 16:54:09 UTC (rev 13593) @@ -40,6 +40,11 @@ #import <OmniBase/assertions.h> #import "NSURL_BDSKExtensions.h" +// private placeholder subclass + +@interface BDSKPlaceholderFile : BDSKFile +@end + // private subclasses returned by -[BDSKFile init...] methods @interface BDSKFSRefFile : BDSKFile <NSCopying> @@ -61,7 +66,7 @@ @end // singleton returned by -[BDSKFile allocWithZone:] -static BDSKFile *defaultPlaceholderFile = nil; +static BDSKPlaceholderFile *defaultPlaceholderFile = nil; static Class BDSKFileClass = Nil; @implementation BDSKFile @@ -76,10 +81,8 @@ + (void)initialize { OBINITIALIZE; - if(self == [BDSKFile class]){ - BDSKFileClass = self; - defaultPlaceholderFile = (BDSKFile *)NSAllocateObject(BDSKFileClass, 0, NSDefaultMallocZone()); - } + BDSKFileClass = self; + defaultPlaceholderFile = (BDSKPlaceholderFile *)NSAllocateObject([BDSKPlaceholderFile class], 0, NSDefaultMallocZone()); } + (id)allocWithZone:(NSZone *)aZone @@ -92,46 +95,27 @@ // returns an FSRef wrapper - (id)initWithFSRef:(FSRef *)aRef; { - if(aRef != NULL){ - self = [[BDSKFSRefFile alloc] initWithFSRef:aRef]; - } else { - self = nil; - } - return self; + OBRequestConcreteImplementation(self, _cmd); + return nil; } // This is a common, convenient initializer, but we prefer to return the FSRef variant so we can use FSCompareFSRefs and survive external name changes. If the file doesn't exist (yet), though, we return an NSURL variant. - (id)initWithURL:(NSURL *)aURL; { - FSRef aRef; - - // return a concrete subclass or nil - if(aURL && CFURLGetFSRef((CFURLRef)aURL, &aRef)){ - self = [[BDSKFSRefFile alloc] initWithFSRef:&aRef]; - } else if(aURL){ - self = [[BDSKURLFile alloc] initWithURL:aURL]; - } else { - // nil URL - self = nil; - } - return self; + OBRequestConcreteImplementation(self, _cmd); + return nil; } - (id)initWithPath:(NSString *)aPath; { - return [self initWithURL:[NSURL fileURLWithPath:aPath]]; + OBRequestConcreteImplementation(self, _cmd); + return nil; } + (id)fileWithURL:(NSURL *)aURL { - return [[[self allocWithZone:NULL] initWithURL:aURL] autorelease]; + return [[[self allocWithZone:nil] initWithURL:aURL] autorelease]; } -- (void)dealloc -{ - if ([self class] != BDSKFileClass) - [super dealloc]; -} - - (NSString *)description { NSMutableString *desc = [[super description] mutableCopy]; @@ -162,14 +146,14 @@ - (id)initWithCoder:(NSCoder *)coder { - NSURL *aURL = [coder decodeObject]; - return [self initWithURL:aURL]; // handles [super init] + OBRequestConcreteImplementation(self, _cmd); + return nil; } -// immutable subclasses may override - (id)copyWithZone:(NSZone *)aZone { - return [[BDSKFile allocWithZone:aZone] initWithURL:[self fileURL]]; + OBRequestConcreteImplementation(self, _cmd); + return nil; } // primitive methods: subclass responsibility @@ -188,8 +172,7 @@ - (NSString *)fileName; { - OBRequestConcreteImplementation(self, _cmd); - return nil; + return [(id)CFURLCopyLastPathComponent((CFURLRef)[self fileURL]) autorelease]; } // following properties are derived using the primitive methods, but subclasses may override for better performance @@ -207,6 +190,56 @@ @end #pragma mark - +#pragma mark Placeholder subclass + +@implementation BDSKPlaceholderFile + +- (id)init { + return nil; +} + +// returns an FSRef wrapper +- (id)initWithFSRef:(FSRef *)aRef; +{ + return aRef != NULL ? [[BDSKFSRefFile alloc] initWithFSRef:aRef] : nil; +} + +// This is a common, convenient initializer, but we prefer to return the FSRef variant so we can use FSCompareFSRefs and survive external name changes. If the file doesn't exist (yet), though, we return an NSURL variant. +- (id)initWithURL:(NSURL *)aURL; +{ + FSRef aRef; + + // return a concrete subclass or nil + if(aURL && CFURLGetFSRef((CFURLRef)aURL, &aRef)) + return [[BDSKFSRefFile alloc] initWithFSRef:&aRef]; + else if(aURL) + return [[BDSKURLFile alloc] initWithURL:aURL]; + else + // nil URL + return nil; +} + +- (id)initWithPath:(NSString *)aPath; +{ + return [self initWithURL:[NSURL fileURLWithPath:aPath]]; +} + +- (id)initWithCoder:(NSCoder *)coder +{ + return [self initWithURL:[coder decodeObject]]; +} + +- (id)retain { return self; } + +- (id)autorelease { return self; } + +- (void)release {} + +- (unsigned)retainCount { return UINT_MAX; } + +@end + +#pragma mark - #pragma mark NSURL-based concrete subclass @implementation BDSKURLFile @@ -265,11 +298,6 @@ return NULL; } -- (NSString *)fileName; -{ - return [(id)CFURLCopyLastPathComponent((CFURLRef)fileURL) autorelease]; -} - @end #pragma mark - @@ -343,18 +371,13 @@ return fileRef; } -static inline CFStringRef copyFileNameFromFSRef(const FSRef *fsRef) +- (NSString *)fileName; { HFSUniStr255 fileName; - OSErr err = FSGetCatalogInfo(fsRef, kFSCatInfoNone, NULL, &fileName, NULL, NULL); - return noErr == err ? CFStringCreateWithCharacters(CFAllocatorGetDefault(), fileName.unicode, fileName.length) : NULL; + OSErr err = FSGetCatalogInfo(fileRef, kFSCatInfoNone, NULL, &fileName, NULL, NULL); + return noErr == err ? [(NSString *)CFStringCreateWithCharacters(CFAllocatorGetDefault(), fileName.unicode, fileName.length) autorelease] : NULL; } -- (NSString *)fileName; -{ - return [(NSString *)copyFileNameFromFSRef(fileRef) autorelease]; -} - @end #pragma mark NSURL file equality fix Modified: trunk/bibdesk/BDSKLinkedFile.m =================================================================== --- trunk/bibdesk/BDSKLinkedFile.m 2008-08-18 16:13:37 UTC (rev 13592) +++ trunk/bibdesk/BDSKLinkedFile.m 2008-08-18 16:54:09 UTC (rev 13593) @@ -139,6 +139,11 @@ return alias; } +// Private placeholder subclass + +@interface BDSKPlaceholderLinkedFile : BDSKLinkedFile +@end + // Private concrete subclasses @interface BDSKLinkedAliasFile : BDSKLinkedFile @@ -172,46 +177,37 @@ @implementation BDSKLinkedFile -static BDSKLinkedFile *defaultPlaceholderLinkedObject = nil; -static Class BDSKLinkedObjectClass = Nil; +static BDSKPlaceholderLinkedFile *defaultPlaceholderLinkedFile = nil; +static Class BDSKLinkedFileClass = Nil; + (void)initialize { OBINITIALIZE; - if(self == [BDSKLinkedFile class]){ - BDSKLinkedObjectClass = self; - defaultPlaceholderLinkedObject = (BDSKLinkedFile *)NSAllocateObject(BDSKLinkedObjectClass, 0, NSDefaultMallocZone()); - } + BDSKLinkedFileClass = self; + defaultPlaceholderLinkedFile = (BDSKPlaceholderLinkedFile *)NSAllocateObject([BDSKPlaceholderLinkedFile class], 0, NSDefaultMallocZone()); } + (id)allocWithZone:(NSZone *)aZone { - return BDSKLinkedObjectClass == self ? defaultPlaceholderLinkedObject : NSAllocateObject(self, 0, aZone); + return BDSKLinkedFileClass == self ? defaultPlaceholderLinkedFile : NSAllocateObject(self, 0, aZone); } - (id)initWithURL:(NSURL *)aURL delegate:(id)aDelegate; { - OBASSERT(self == defaultPlaceholderLinkedObject); - if([aURL isFileURL]){ - self = [[BDSKLinkedAliasFile alloc] initWithURL:aURL delegate:aDelegate]; - } else if (aURL){ - self = [[BDSKLinkedURL alloc] initWithURL:aURL delegate:aDelegate]; - } else { - self = nil; - } - return self; + OBRequestConcreteImplementation(self, _cmd); + return nil; } - (id)initWithBase64String:(NSString *)base64String delegate:(id)aDelegate; { - OBASSERT(self == defaultPlaceholderLinkedObject); - return [[BDSKLinkedAliasFile alloc] initWithBase64String:base64String delegate:aDelegate]; + OBRequestConcreteImplementation(self, _cmd); + return nil; } - (id)initWithURLString:(NSString *)aString; { - OBASSERT(self == defaultPlaceholderLinkedObject); - return [[BDSKLinkedURL alloc] initWithURLString:aString]; + OBRequestConcreteImplementation(self, _cmd); + return nil; } - (id)copyWithZone:(NSZone *)aZone @@ -231,12 +227,6 @@ OBRequestConcreteImplementation(self, _cmd); } -- (void)dealloc -{ - if ([self class] != BDSKLinkedObjectClass) - [super dealloc]; -} - - (NSString *)description { return [NSString stringWithFormat:@"<%@: URL=%@>", [self class], [self URL]]; } @@ -282,6 +272,44 @@ #pragma mark - +@implementation BDSKPlaceholderLinkedFile + +- (id)init { + return nil; +} + +- (id)initWithURL:(NSURL *)aURL delegate:(id)aDelegate; +{ + if([aURL isFileURL]) + return [[BDSKLinkedAliasFile alloc] initWithURL:aURL delegate:aDelegate]; + else if (aURL) + return [[BDSKLinkedURL alloc] initWithURL:aURL delegate:aDelegate]; + else + return nil; +} + +- (id)initWithBase64String:(NSString *)base64String delegate:(id)aDelegate; +{ + return [[BDSKLinkedAliasFile alloc] initWithBase64String:base64String delegate:aDelegate]; +} + +- (id)initWithURLString:(NSString *)aString; +{ + return [[BDSKLinkedURL alloc] initWithURLString:aString]; +} + +- (id)retain { return self; } + +- (id)autorelease { return self; } + +- (void)release {} + +- (unsigned)retainCount { return UINT_MAX; } + +@end + +#pragma mark - + // Alias- and FSRef-based concrete subclass for local files @implementation BDSKLinkedAliasFile @@ -290,17 +318,17 @@ - (id)initWithAlias:(AliasHandle)anAlias relativePath:(NSString *)relPath delegate:(id)aDelegate; { OBASSERT(nil == aDelegate || [aDelegate respondsToSelector:@selector(basePathForLinkedFile:)]); - + self = [super init]; if (anAlias == NULL) { - [[super init] release]; + [self release]; self = nil; - } else if (self = [super init]) { + } else if (self == nil) { + BDSKDisposeAliasHandle(anAlias); + } else { fileRef = NULL; // this is updated lazily, as we don't know the base path at this point alias = anAlias; relativePath = [relPath copy]; delegate = aDelegate; - } else { - BDSKDisposeAliasHandle(anAlias); } return self; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-19 17:54:17
|
Revision: 13596 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13596&view=rev Author: hofman Date: 2008-08-19 17:54:26 +0000 (Tue, 19 Aug 2008) Log Message: ----------- Add class factory methods for bookmarks Modified Paths: -------------- trunk/bibdesk/BDSKBookmark.h trunk/bibdesk/BDSKBookmark.m trunk/bibdesk/BDSKBookmarkController.m trunk/bibdesk/BDSKSearchBookmark.h trunk/bibdesk/BDSKSearchBookmark.m trunk/bibdesk/BDSKSearchBookmarkController.m Modified: trunk/bibdesk/BDSKBookmark.h =================================================================== --- trunk/bibdesk/BDSKBookmark.h 2008-08-19 12:49:33 UTC (rev 13595) +++ trunk/bibdesk/BDSKBookmark.h 2008-08-19 17:54:26 UTC (rev 13596) @@ -48,6 +48,12 @@ BDSKBookmark *parent; } ++ (id)bookmarkWithUrlString:(NSString *)aUrlString name:(NSString *)aName; ++ (id)bookmarkFolderWithChildren:(NSArray *)aChildren name:(NSString *)aName; ++ (id)bookmarkFolderWithName:(NSString *)aName; ++ (id)bookmarkSeparator; ++ (id)bookmarkWithDictionary:(NSDictionary *)dictionary; + - (id)initWithUrlString:(NSString *)aUrlString name:(NSString *)aName; - (id)initFolderWithChildren:(NSArray *)aChildren name:(NSString *)aName; - (id)initFolderWithName:(NSString *)aName; Modified: trunk/bibdesk/BDSKBookmark.m =================================================================== --- trunk/bibdesk/BDSKBookmark.m 2008-08-19 12:49:33 UTC (rev 13595) +++ trunk/bibdesk/BDSKBookmark.m 2008-08-19 17:54:26 UTC (rev 13596) @@ -83,6 +83,26 @@ return BDSKBookmarkClass == self ? defaultPlaceholderBookmark : [super allocWithZone:aZone]; } ++ (id)bookmarkWithUrlString:(NSString *)aUrlString name:(NSString *)aName { + return [[[[self class] alloc] initWithUrlString:aUrlString name:aName] autorelease]; +} + ++ (id)bookmarkFolderWithChildren:(NSArray *)aChildren name:(NSString *)aName { + return [[[[self class] alloc] initFolderWithChildren:aChildren name:aName] autorelease]; +} + ++ (id)bookmarkFolderWithName:(NSString *)aName { + return [[[[self class] alloc] initFolderWithName:aName] autorelease]; +} + ++ (id)bookmarkSeparator { + return [[[[self class] alloc] initSeparator] autorelease]; +} + ++ (id)bookmarkWithDictionary:(NSDictionary *)dictionary { + return [[[[self class] alloc] initWithDictionary:dictionary] autorelease]; +} + - (id)initWithUrlString:(NSString *)aUrlString name:(NSString *)aName { [self doesNotRecognizeSelector:_cmd]; return nil; Modified: trunk/bibdesk/BDSKBookmarkController.m =================================================================== --- trunk/bibdesk/BDSKBookmarkController.m 2008-08-19 12:49:33 UTC (rev 13595) +++ trunk/bibdesk/BDSKBookmarkController.m 2008-08-19 17:54:26 UTC (rev 13596) @@ -88,9 +88,9 @@ NSDictionary *dict; while(dict = [bEnum nextObject]){ - BDSKBookmark *bookmark = [[BDSKBookmark alloc] initWithDictionary:dict]; - [bookmarks addObject:bookmark]; - [bookmark release]; + BDSKBookmark *bookmark = [BDSKBookmark bookmarkWithDictionary:dict]; + if (bookmark) + [bookmarks addObject:bookmark]; } } @@ -153,11 +153,10 @@ } - (void)addBookmarkWithUrlString:(NSString *)urlString name:(NSString *)name toFolder:(BDSKBookmark *)folder { - BDSKBookmark *bookmark = [[BDSKBookmark alloc] initWithUrlString:urlString name:name]; + BDSKBookmark *bookmark = [BDSKBookmark bookmarkWithUrlString:urlString name:name]; if (bookmark) { if (folder == nil) folder = bookmarkRoot; [folder insertObject:bookmark inChildrenAtIndex:[folder countOfChildren]]; - [bookmark release]; } } @@ -209,7 +208,7 @@ #pragma mark Actions - (IBAction)insertBookmark:(id)sender { - BDSKBookmark *bookmark = [[[BDSKBookmark alloc] initWithUrlString:@"http://" name:nil] autorelease]; + BDSKBookmark *bookmark = [BDSKBookmark bookmarkWithUrlString:@"http://" name:nil]; int rowIndex = [[outlineView selectedRowIndexes] lastIndex]; BDSKBookmark *item = bookmarkRoot; unsigned int idx = [[bookmarkRoot children] count]; @@ -232,7 +231,7 @@ } - (IBAction)insertBookmarkFolder:(id)sender { - BDSKBookmark *folder = [[[BDSKBookmark alloc] initFolderWithName:NSLocalizedString(@"Folder", @"default folder name")] autorelease]; + BDSKBookmark *folder = [BDSKBookmark bookmarkFolderWithName:NSLocalizedString(@"Folder", @"default folder name")]; int rowIndex = [[outlineView selectedRowIndexes] lastIndex]; BDSKBookmark *item = bookmarkRoot; unsigned int idx = [[bookmarkRoot children] count]; @@ -255,7 +254,7 @@ } - (IBAction)insertBookmarkSeparator:(id)sender { - BDSKBookmark *separator = [[[BDSKBookmark alloc] initSeparator] autorelease]; + BDSKBookmark *separator = [BDSKBookmark bookmarkSeparator]; int rowIndex = [[outlineView selectedRowIndexes] lastIndex]; BDSKBookmark *item = bookmarkRoot; unsigned int idx = [[bookmarkRoot children] count]; @@ -536,11 +535,11 @@ if (idx == NSOutlineViewDropOnItemIndex && [item bookmarkType] == BDSKBookmarkTypeBookmark) { [item setUrlString:urlString]; } else { - BDSKBookmark *bookmark = [[BDSKBookmark alloc] initWithUrlString:urlString name:nil]; + BDSKBookmark *bookmark = [BDSKBookmark bookmarkWithUrlString:urlString name:nil]; if (idx == NSOutlineViewDropOnItemIndex) idx = [[item children] count]; - [(BDSKBookmark *)item insertObject:bookmark inChildrenAtIndex:idx]; - [bookmark release]; + if (bookmark) + [(BDSKBookmark *)item insertObject:bookmark inChildrenAtIndex:idx]; } return YES; } Modified: trunk/bibdesk/BDSKSearchBookmark.h =================================================================== --- trunk/bibdesk/BDSKSearchBookmark.h 2008-08-19 12:49:33 UTC (rev 13595) +++ trunk/bibdesk/BDSKSearchBookmark.h 2008-08-19 17:54:26 UTC (rev 13596) @@ -48,6 +48,12 @@ BDSKSearchBookmark *parent; } ++ (id)searchBookmarkFolderWithChildren:(NSArray *)aChildren label:(NSString *)aLabel; ++ (id)searchBookmarkFolderWithLabel:(NSString *)aLabel; ++ (id)searchBookmarkSeparator; ++ (id)searchBookmarkWithInfo:(NSDictionary *)aDictionary label:(NSString *)aLabel; ++ (id)searchBookmarkWithDictionary:(NSDictionary *)dictionary; + - (id)initFolderWithChildren:(NSArray *)aChildren label:(NSString *)aLabel; - (id)initFolderWithLabel:(NSString *)aLabel; - (id)initSeparator; Modified: trunk/bibdesk/BDSKSearchBookmark.m =================================================================== --- trunk/bibdesk/BDSKSearchBookmark.m 2008-08-19 12:49:33 UTC (rev 13595) +++ trunk/bibdesk/BDSKSearchBookmark.m 2008-08-19 17:54:26 UTC (rev 13596) @@ -82,6 +82,26 @@ return BDSKSearchBookmarkClass == self ? defaultPlaceholderSearchBookmark : [super allocWithZone:aZone]; } ++ (id)searchBookmarkFolderWithChildren:(NSArray *)aChildren label:(NSString *)aLabel { + return [[[[self class] alloc] initFolderWithChildren:aChildren label:aLabel] autorelease]; +} + ++ (id)searchBookmarkFolderWithLabel:(NSString *)aLabel { + return [[[[self class] alloc] initFolderWithLabel:aLabel] autorelease]; +} + ++ (id)searchBookmarkSeparator { + return [[[[self class] alloc] initSeparator] autorelease]; +} + ++ (id)searchBookmarkWithInfo:(NSDictionary *)aDictionary label:(NSString *)aLabel { + return [[[[self class] alloc] initWithInfo:aDictionary label:aLabel] autorelease]; +} + ++ (id)searchBookmarkWithDictionary:(NSDictionary *)dictionary { + return [[[[self class] alloc] initWithDictionary:dictionary] autorelease]; +} + - (id)initFolderWithChildren:(NSArray *)aChildren label:(NSString *)aLabel { [self doesNotRecognizeSelector:_cmd]; return nil; Modified: trunk/bibdesk/BDSKSearchBookmarkController.m =================================================================== --- trunk/bibdesk/BDSKSearchBookmarkController.m 2008-08-19 12:49:33 UTC (rev 13595) +++ trunk/bibdesk/BDSKSearchBookmarkController.m 2008-08-19 17:54:26 UTC (rev 13596) @@ -78,9 +78,9 @@ NSMutableArray *bookmarks = [NSMutableArray array]; while (dict = [dictEnum nextObject]) { - BDSKSearchBookmark *bm = [[BDSKSearchBookmark alloc] initWithDictionary:dict]; - [bookmarks addObject:bm]; - [bm release]; + BDSKSearchBookmark *bm = [BDSKSearchBookmark searchBookmarkWithDictionary:dict]; + if (bm) + [bookmarks addObject:bm]; } bookmarkRoot = [[BDSKSearchBookmark alloc] initFolderWithChildren:bookmarks label:nil]; @@ -125,11 +125,10 @@ } - (void)addBookmarkWithInfo:(NSDictionary *)info label:(NSString *)label toFolder:(BDSKSearchBookmark *)folder { - BDSKSearchBookmark *bookmark = [[BDSKSearchBookmark alloc] initWithInfo:info label:label]; + BDSKSearchBookmark *bookmark = [BDSKSearchBookmark searchBookmarkWithInfo:info label:label]; if (bookmark) { if (folder == nil) folder = bookmarkRoot; [folder insertObject:bookmark inChildrenAtIndex:[folder countOfChildren]]; - [bookmark release]; } } @@ -151,7 +150,7 @@ #pragma mark Actions - (IBAction)insertBookmarkFolder:(id)sender { - BDSKSearchBookmark *folder = [[[BDSKSearchBookmark alloc] initFolderWithLabel:NSLocalizedString(@"Folder", @"default folder name")] autorelease]; + BDSKSearchBookmark *folder = [BDSKSearchBookmark searchBookmarkFolderWithLabel:NSLocalizedString(@"Folder", @"default folder name")]; int rowIndex = [[outlineView selectedRowIndexes] lastIndex]; BDSKSearchBookmark *item = bookmarkRoot; unsigned int idx = [[bookmarkRoot children] count]; @@ -174,7 +173,7 @@ } - (IBAction)insertBookmarkSeparator:(id)sender { - BDSKSearchBookmark *separator = [[[BDSKSearchBookmark alloc] initSeparator] autorelease]; + BDSKSearchBookmark *separator = [BDSKSearchBookmark searchBookmarkSeparator]; int rowIndex = [[outlineView selectedRowIndexes] lastIndex]; BDSKSearchBookmark *item = bookmarkRoot; unsigned int idx = [[bookmarkRoot children] count]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-19 18:33:07
|
Revision: 13597 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13597&view=rev Author: hofman Date: 2008-08-19 18:33:16 +0000 (Tue, 19 Aug 2008) Log Message: ----------- remove some unnecessary class method calls. Modified Paths: -------------- trunk/bibdesk/BDSKBookmark.m trunk/bibdesk/BDSKSearchBookmark.m Modified: trunk/bibdesk/BDSKBookmark.m =================================================================== --- trunk/bibdesk/BDSKBookmark.m 2008-08-19 17:54:26 UTC (rev 13596) +++ trunk/bibdesk/BDSKBookmark.m 2008-08-19 18:33:16 UTC (rev 13597) @@ -84,23 +84,23 @@ } + (id)bookmarkWithUrlString:(NSString *)aUrlString name:(NSString *)aName { - return [[[[self class] alloc] initWithUrlString:aUrlString name:aName] autorelease]; + return [[[self alloc] initWithUrlString:aUrlString name:aName] autorelease]; } + (id)bookmarkFolderWithChildren:(NSArray *)aChildren name:(NSString *)aName { - return [[[[self class] alloc] initFolderWithChildren:aChildren name:aName] autorelease]; + return [[[self alloc] initFolderWithChildren:aChildren name:aName] autorelease]; } + (id)bookmarkFolderWithName:(NSString *)aName { - return [[[[self class] alloc] initFolderWithName:aName] autorelease]; -} + return [[[self alloc] initFolderWithName:aName] autorelease]; + + (id)bookmarkSeparator { - return [[[[self class] alloc] initSeparator] autorelease]; + return [[[self alloc] initSeparator] autorelease]; } + (id)bookmarkWithDictionary:(NSDictionary *)dictionary { - return [[[[self class] alloc] initWithDictionary:dictionary] autorelease]; + return [[[self alloc] initWithDictionary:dictionary] autorelease]; } - (id)initWithUrlString:(NSString *)aUrlString name:(NSString *)aName { Modified: trunk/bibdesk/BDSKSearchBookmark.m =================================================================== --- trunk/bibdesk/BDSKSearchBookmark.m 2008-08-19 17:54:26 UTC (rev 13596) +++ trunk/bibdesk/BDSKSearchBookmark.m 2008-08-19 18:33:16 UTC (rev 13597) @@ -83,23 +83,23 @@ } + (id)searchBookmarkFolderWithChildren:(NSArray *)aChildren label:(NSString *)aLabel { - return [[[[self class] alloc] initFolderWithChildren:aChildren label:aLabel] autorelease]; + return [[[self alloc] initFolderWithChildren:aChildren label:aLabel] autorelease]; } + (id)searchBookmarkFolderWithLabel:(NSString *)aLabel { - return [[[[self class] alloc] initFolderWithLabel:aLabel] autorelease]; + return [[[self alloc] initFolderWithLabel:aLabel] autorelease]; } + (id)searchBookmarkSeparator { - return [[[[self class] alloc] initSeparator] autorelease]; + return [[[self alloc] initSeparator] autorelease]; } + (id)searchBookmarkWithInfo:(NSDictionary *)aDictionary label:(NSString *)aLabel { - return [[[[self class] alloc] initWithInfo:aDictionary label:aLabel] autorelease]; + return [[[self alloc] initWithInfo:aDictionary label:aLabel] autorelease]; } + (id)searchBookmarkWithDictionary:(NSDictionary *)dictionary { - return [[[[self class] alloc] initWithDictionary:dictionary] autorelease]; + return [[[self alloc] initWithDictionary:dictionary] autorelease]; } - (id)initFolderWithChildren:(NSArray *)aChildren label:(NSString *)aLabel { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-19 18:40:43
|
Revision: 13598 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13598&view=rev Author: hofman Date: 2008-08-19 18:40:52 +0000 (Tue, 19 Aug 2008) Log Message: ----------- Add class factory methods for linked files Modified Paths: -------------- trunk/bibdesk/BDSKEditor.m trunk/bibdesk/BDSKISIGroupServer.m trunk/bibdesk/BDSKLinkedFile.h trunk/bibdesk/BDSKLinkedFile.m trunk/bibdesk/BibItem+Scripting.m trunk/bibdesk/BibItem.m Modified: trunk/bibdesk/BDSKEditor.m =================================================================== --- trunk/bibdesk/BDSKEditor.m 2008-08-19 18:33:16 UTC (rev 13597) +++ trunk/bibdesk/BDSKEditor.m 2008-08-19 18:40:52 UTC (rev 13598) @@ -543,7 +543,7 @@ unsigned int anIndex = (unsigned int)contextInfo; NSURL *aURL = [[sheet URLs] objectAtIndex:0]; if (anIndex != NSNotFound) { - BDSKLinkedFile *aFile = [[[BDSKLinkedFile alloc] initWithURL:aURL delegate:publication] autorelease]; + BDSKLinkedFile *aFile = [BDSKLinkedFile linkedFileWithURL:aURL delegate:publication]; if (aFile == nil) return; NSURL *oldURL = [[[publication objectInFilesAtIndex:anIndex] URL] retain]; @@ -597,7 +597,7 @@ return; unsigned int anIndex = (unsigned int)contextInfo; if (anIndex != NSNotFound) { - BDSKLinkedFile *aFile = [[[BDSKLinkedFile alloc] initWithURL:aURL delegate:publication] autorelease]; + BDSKLinkedFile *aFile = [BDSKLinkedFile linkedFileWithURL:aURL delegate:publication]; if (aFile == nil) return; NSURL *oldURL = [[[publication objectInFilesAtIndex:anIndex] URL] retain]; @@ -1474,7 +1474,7 @@ while (NSNotFound != idx) { if ((aURL = [enumerator nextObject]) && - (aFile = [[BDSKLinkedFile alloc] initWithURL:aURL delegate:publication])) { + (aFile = [BDSKLinkedFile linkedFileWithURL:aURL delegate:publication])) { NSURL *oldURL = [[[publication objectInFilesAtIndex:idx] URL] retain]; [publication removeObjectFromFilesAtIndex:idx]; if (oldURL) @@ -1484,7 +1484,6 @@ [[self document] userAddedURL:aURL forPublication:publication]; if (([NSApp currentModifierFlags] & NSCommandKeyMask) == 0) [publication autoFileLinkedFile:aFile]; - [aFile release]; } idx = [aSet indexGreaterThanIndex:idx]; } @@ -1500,12 +1499,11 @@ while (NSNotFound != idx) { if ((aURL = [enumerator nextObject]) && - (aFile = [[BDSKLinkedFile alloc] initWithURL:aURL delegate:publication])) { + (aFile = [BDSKLinkedFile linkedFileWithURL:aURL delegate:publication])) { [publication insertObject:aFile inFilesAtIndex:idx - offset]; [[self document] userAddedURL:aURL forPublication:publication]; if (([NSApp currentModifierFlags] & NSCommandKeyMask) == 0) [publication autoFileLinkedFile:aFile]; - [aFile release]; } else { // the indexes in aSet assume that we inserted the file offset++; Modified: trunk/bibdesk/BDSKISIGroupServer.m =================================================================== --- trunk/bibdesk/BDSKISIGroupServer.m 2008-08-19 18:33:16 UTC (rev 13597) +++ trunk/bibdesk/BDSKISIGroupServer.m 2008-08-19 18:40:52 UTC (rev 13598) @@ -607,7 +607,7 @@ // insert the ISI URL into the normal file array if hasn't been put elsewhere if (isiURL && ISIURLFieldName == nil) { NSURL *newURL = [NSURL URLWithStringByNormalizingPercentEscapes:isiURL]; - BDSKLinkedFile *file = [[[BDSKLinkedFile alloc] initWithURL:newURL delegate:pub] autorelease]; + BDSKLinkedFile *file = [BDSKLinkedFile linkedFileWithURL:newURL delegate:pub]; [pub insertObject:file inFilesAtIndex:0]; } Modified: trunk/bibdesk/BDSKLinkedFile.h =================================================================== --- trunk/bibdesk/BDSKLinkedFile.h 2008-08-19 18:33:16 UTC (rev 13597) +++ trunk/bibdesk/BDSKLinkedFile.h 2008-08-19 18:40:52 UTC (rev 13598) @@ -41,6 +41,10 @@ @interface BDSKLinkedFile : NSObject <NSCopying, NSCoding> ++ (id)linkedFileWithURL:(NSURL *)aURL delegate:(id)aDelegate; ++ (id)linkedFileWithBase64String:(NSString *)base64String delegate:(id)aDelegate; ++ (id)linkedFileWithURLString:(NSString *)aString; + // creates a linked local file or remote URL object depending on the URL - (id)initWithURL:(NSURL *)aURL delegate:(id)aDelegate; // creates a linked local file Modified: trunk/bibdesk/BDSKLinkedFile.m =================================================================== --- trunk/bibdesk/BDSKLinkedFile.m 2008-08-19 18:33:16 UTC (rev 13597) +++ trunk/bibdesk/BDSKLinkedFile.m 2008-08-19 18:40:52 UTC (rev 13598) @@ -192,6 +192,21 @@ return BDSKLinkedFileClass == self ? defaultPlaceholderLinkedFile : NSAllocateObject(self, 0, aZone); } ++ (id)linkedFileWithURL:(NSURL *)aURL delegate:(id)aDelegate; +{ + return [[[self alloc] initWithURL:aURL delegate:aDelegate] autorelease]; +} + ++ (id)linkedFileWithBase64String:(NSString *)base64String delegate:(id)aDelegate; +{ + return [[[self alloc] initWithBase64String:base64String delegate:aDelegate] autorelease]; +} + ++ (id)linkedFileWithURLString:(NSString *)aString; +{ + return [[[self alloc] initWithURLString:aString] autorelease]; +} + - (id)initWithURL:(NSURL *)aURL delegate:(id)aDelegate; { OBRequestConcreteImplementation(self, _cmd); Modified: trunk/bibdesk/BibItem+Scripting.m =================================================================== --- trunk/bibdesk/BibItem+Scripting.m 2008-08-19 18:33:16 UTC (rev 13597) +++ trunk/bibdesk/BibItem+Scripting.m 2008-08-19 18:40:52 UTC (rev 13598) @@ -145,7 +145,7 @@ - (void)insertObject:(NSURL *)newURL inLinkedFilesAtIndex:(unsigned int)idx { if ([[self owner] isDocument]) { - BDSKLinkedFile *file = [[[BDSKLinkedFile alloc] initWithURL:newURL delegate:self] autorelease]; + BDSKLinkedFile *file = [BDSKLinkedFile alloc] initWithURL:newURL delegate:self]; if (file) { NSArray *localFiles = [self localFiles]; if (idx > 0) { @@ -179,7 +179,7 @@ - (void)insertObject:(NSString *)newURLString inLinkedURLsAtIndex:(unsigned int)idx { if ([[self owner] isDocument]) { NSURL *newURL = [NSURL URLWithStringByNormalizingPercentEscapes:newURLString]; - BDSKLinkedFile *file = [[[BDSKLinkedFile alloc] initWithURL:newURL delegate:self] autorelease]; + BDSKLinkedFile *file = [BDSKLinkedFile linkedFileWithURL:newURL delegate:self]; if (file) { NSArray *remoteURLs = [self remoteURLs]; if (idx < [remoteURLs count]) { @@ -325,7 +325,7 @@ - (void) setRemoteURLString:(NSString*) newURLString{ if ([[self owner] isDocument]) { - BDSKLinkedFile *file = [[[BDSKLinkedFile alloc] initWithURLString:newURLString] autorelease]; + BDSKLinkedFile *file = [BDSKLinkedFile linkedFileWithURLString:newURLString]; if (file == nil) return; NSArray *remoteURLs = [self remoteURLs]; @@ -356,7 +356,7 @@ NSURL *newURL = [newPath hasPrefix:@"file://"] ? [NSURL URLWithString:newPath] : [NSURL fileURLWithPath:[newPath stringByExpandingTildeInPath]]; if (newURL == nil) return; - BDSKLinkedFile *file = [[[BDSKLinkedFile alloc] initWithURL:newURL delegate:self] autorelease]; + BDSKLinkedFile *file = [BDSKLinkedFile linkedFileWithURL:newURL delegate:self]; if (file == nil) return; NSArray *localFiles = [self localFiles]; Modified: trunk/bibdesk/BibItem.m =================================================================== --- trunk/bibdesk/BibItem.m 2008-08-19 18:33:16 UTC (rev 13597) +++ trunk/bibdesk/BibItem.m 2008-08-19 18:40:52 UTC (rev 13598) @@ -2438,7 +2438,7 @@ } - (BOOL)addFileForURL:(NSURL *)aURL autoFile:(BOOL)shouldAutoFile runScriptHook:(BOOL)runScriptHook { - BDSKLinkedFile *aFile = [[[BDSKLinkedFile alloc] initWithURL:aURL delegate:self] autorelease]; + BDSKLinkedFile *aFile = [BDSKLinkedFile linkedFileWithURL:aURL delegate:self]; if (aFile == nil) return NO; unsigned idx = [files count]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2008-08-21 13:07:09
|
Revision: 13602 http://bibdesk.svn.sourceforge.net/bibdesk/?rev=13602&view=rev Author: hofman Date: 2008-08-21 13:07:06 +0000 (Thu, 21 Aug 2008) Log Message: ----------- Import precompiled headers for Omni frameworks. Modified Paths: -------------- trunk/bibdesk/BDSKAppController+Scripting.m trunk/bibdesk/BDSKApplication.h trunk/bibdesk/BDSKCitationFormatter.m trunk/bibdesk/BDSKComplexString.m trunk/bibdesk/BDSKComplexStringEditor.m trunk/bibdesk/BDSKCondition.m trunk/bibdesk/BDSKConditionController.m trunk/bibdesk/BDSKConverter.h trunk/bibdesk/BDSKCountedSet.m trunk/bibdesk/BDSKDocumentController.m trunk/bibdesk/BDSKDragImageView.m trunk/bibdesk/BDSKEditorTextView.m trunk/bibdesk/BDSKErrorEditor.m trunk/bibdesk/BDSKErrorObjectController.m trunk/bibdesk/BDSKFile.m trunk/bibdesk/BDSKFiler.m trunk/bibdesk/BDSKFilter.m trunk/bibdesk/BDSKFormatParser.m trunk/bibdesk/BDSKGroup.m trunk/bibdesk/BDSKGroupCell.m trunk/bibdesk/BDSKGroupTableView.h trunk/bibdesk/BDSKGroupTableView.m trunk/bibdesk/BDSKGroupsArray.m trunk/bibdesk/BDSKHeaderPopUpButtonCell.m trunk/bibdesk/BDSKISIGroupServer.m trunk/bibdesk/BDSKImagePopUpButton.m trunk/bibdesk/BDSKItemPasteboardHelper.m trunk/bibdesk/BDSKJSTORParser.m trunk/bibdesk/BDSKLinkedFile.m trunk/bibdesk/BDSKMARCParser.m trunk/bibdesk/BDSKMacroResolver.m trunk/bibdesk/BDSKMacroWindowController.m trunk/bibdesk/BDSKMainTableView.m trunk/bibdesk/BDSKOverlay.m trunk/bibdesk/BDSKPathIconTransformer.m trunk/bibdesk/BDSKPreferenceController.h trunk/bibdesk/BDSKPreferenceController.m trunk/bibdesk/BDSKPreviewItem.m trunk/bibdesk/BDSKPreviewer.m trunk/bibdesk/BDSKPublicationsArray.m trunk/bibdesk/BDSKRatingButton.m trunk/bibdesk/BDSKRegExFindPattern.h trunk/bibdesk/BDSKScriptGroup.h trunk/bibdesk/BDSKScriptGroup.m trunk/bibdesk/BDSKScriptHookManager.m trunk/bibdesk/BDSKScriptMenu.m trunk/bibdesk/BDSKSearchGroup.m trunk/bibdesk/BDSKSharingServer.m trunk/bibdesk/BDSKSplitView.h trunk/bibdesk/BDSKStaticGroup.m trunk/bibdesk/BDSKStatusBar.m trunk/bibdesk/BDSKStringParser.m trunk/bibdesk/BDSKTableSortDescriptor.m trunk/bibdesk/BDSKTeXTask.h trunk/bibdesk/BDSKTeXTask.m trunk/bibdesk/BDSKTemplateDocument.m trunk/bibdesk/BDSKTextImportController.m trunk/bibdesk/BDSKTextViewFindController.h trunk/bibdesk/BDSKTextViewFindController.m trunk/bibdesk/BDSKTextWithIconCell.h trunk/bibdesk/BDSKWebParser.m trunk/bibdesk/BDSKZoomablePDFView.m trunk/bibdesk/BDSKZoomableTextView.m trunk/bibdesk/BibDocument+Scripting.m trunk/bibdesk/BibDocument.m trunk/bibdesk/BibDocumentView_Toolbar.m trunk/bibdesk/BibDocument_DataSource.m trunk/bibdesk/BibDocument_Search.m trunk/bibdesk/BibItem.h trunk/bibdesk/BibPref_Defaults.h trunk/bibdesk/BibPref_InputManager.h trunk/bibdesk/BibPref_ScriptHooks.m trunk/bibdesk/BibPref_TeX.m trunk/bibdesk/CFString_BDSKExtensions.m trunk/bibdesk/NSFileManager_BDSKExtensions.m trunk/bibdesk/NSImage_BDSKExtensions.h trunk/bibdesk/NSImage_BDSKExtensions.m trunk/bibdesk/NSScrollView_BDSKExtensions.m trunk/bibdesk/NSSet_BDSKExtensions.m trunk/bibdesk/NSString_BDSKExtensions.h trunk/bibdesk/NSString_BDSKExtensions.m trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m trunk/bibdesk/NSTableView_BDSKExtensions.m trunk/bibdesk/NSTextView_BDSKExtensions.m trunk/bibdesk/NSWorkspace_BDSKExtensions.m trunk/bibdesk/OAToolbarItem_BDSKExtensions.h trunk/bibdesk/OFCharacterSet_BDSKExtensions.h trunk/bibdesk/PDFDocument_BDSKExtensions.m Modified: trunk/bibdesk/BDSKAppController+Scripting.m =================================================================== --- trunk/bibdesk/BDSKAppController+Scripting.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKAppController+Scripting.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "BDSKAppController+Scripting.h" -#import <OmniFoundation/OFPreference.h> +#import <OmniFoundation/OmniFoundation.h> #import "BDSKScriptHookManager.h" #import "BDSKTypeManager.h" #import "BDSKMacroResolver.h" Modified: trunk/bibdesk/BDSKApplication.h =================================================================== --- trunk/bibdesk/BDSKApplication.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKApplication.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import <Cocoa/Cocoa.h> -#import <OmniAppKit/OAApplication.h> +#import <OmniAppKit/OmniAppKit.h> @interface BDSKApplication : OAApplication Modified: trunk/bibdesk/BDSKCitationFormatter.m =================================================================== --- trunk/bibdesk/BDSKCitationFormatter.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKCitationFormatter.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ #import "BDSKCitationFormatter.h" #import "BDSKTypeManager.h" -#import <OmniBase/OBUtilities.h> +#import <OmniBase/OmniBase.h> @implementation BDSKCitationFormatter Modified: trunk/bibdesk/BDSKComplexString.m =================================================================== --- trunk/bibdesk/BDSKComplexString.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKComplexString.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -35,8 +35,8 @@ #import "BDSKComplexString.h" #import "NSString_BDSKExtensions.h" -#import <OmniFoundation/NSMutableString-OFExtensions.h> #import <OmniBase/OmniBase.h> +#import <OmniFoundation/OmniFoundation.h> #import "BDSKStringNode.h" #import "BDSKMacroResolver.h" Modified: trunk/bibdesk/BDSKComplexStringEditor.m =================================================================== --- trunk/bibdesk/BDSKComplexStringEditor.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKComplexStringEditor.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ #import "BDSKComplexString.h" #import "BDSKComplexStringFormatter.h" #import "BDSKBackgroundView.h" -#import <OmniBase/assertions.h> +#import <OmniBase/OmniBase.h> #import "NSWindowController_BDSKExtensions.h" @interface BDSKComplexStringEditor (Private) Modified: trunk/bibdesk/BDSKCondition.m =================================================================== --- trunk/bibdesk/BDSKCondition.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKCondition.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -40,7 +40,7 @@ #import "BibItem.h" #import "NSString_BDSKExtensions.h" #import "NSDate_BDSKExtensions.h" -#import <OmniBase/assertions.h> +#import <OmniBase/OmniBase.h> #import "BDSKTypeManager.h" #import "BDSKSmartGroup.h" #import "BDSKCondition+Scripting.h" Modified: trunk/bibdesk/BDSKConditionController.m =================================================================== --- trunk/bibdesk/BDSKConditionController.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKConditionController.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -42,7 +42,7 @@ #import "BDSKFieldNameFormatter.h" #import "BDSKBooleanValueTransformer.h" #import "BDSKRatingButton.h" -#import <OmniBase/assertions.h> +#import <OmniBase/OmniBase.h> static NSString *BDSKConditionControllerObservationContext = @"BDSKConditionControllerObservationContext"; Modified: trunk/bibdesk/BDSKConverter.h =================================================================== --- trunk/bibdesk/BDSKConverter.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKConverter.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -39,7 +39,7 @@ */ #import <Cocoa/Cocoa.h> -#import <OmniFoundation/NSString-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import "BDSKTypeManager.h" // The filename and keys used in the plist Modified: trunk/bibdesk/BDSKCountedSet.m =================================================================== --- trunk/bibdesk/BDSKCountedSet.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKCountedSet.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,10 +37,8 @@ */ #import "BDSKCountedSet.h" -#import <OmniFoundation/OFCFCallbacks.h> -#import <OmniFoundation/CFDictionary-OFExtensions.h> -#import <OmniFoundation/CFSet-OFExtensions.h> -#import <OmniBase/assertions.h> +#import <OmniBase/OmniBase.h> +#import <OmniFoundation/OmniFoundation.h> #import "CFString_BDSKExtensions.h" const void *BDSKStringCopy(CFAllocatorRef allocator, const void *value) Modified: trunk/bibdesk/BDSKDocumentController.m =================================================================== --- trunk/bibdesk/BDSKDocumentController.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKDocumentController.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -56,7 +56,6 @@ #import "BDSKGroupsArray.h" #import "NSFileManager_BDSKExtensions.h" #import "BDSKTemplateDocument.h" -#import <OmniBase/OBUtilities.h> @implementation BDSKDocumentController Modified: trunk/bibdesk/BDSKDragImageView.m =================================================================== --- trunk/bibdesk/BDSKDragImageView.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKDragImageView.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ #import "BDSKDragImageView.h" #import "NSBezierPath_BDSKExtensions.h" -#import <OmniAppKit/OAApplication.h> +#import <OmniAppKit/OmniAppKit.h> @implementation BDSKDragImageView Modified: trunk/bibdesk/BDSKEditorTextView.m =================================================================== --- trunk/bibdesk/BDSKEditorTextView.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKEditorTextView.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -39,7 +39,7 @@ #import "BDSKEditorTextView.h" #import "NSURL_BDSKExtensions.h" #import "BDSKStringConstants.h" -#import <OmniFoundation/OFPreference.h> +#import <OmniFoundation/OmniFoundation.h> @interface BDSKEditorTextView (Private) Modified: trunk/bibdesk/BDSKErrorEditor.m =================================================================== --- trunk/bibdesk/BDSKErrorEditor.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKErrorEditor.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,8 +37,8 @@ */ #import "BDSKErrorEditor.h" -#import <OmniBase/assertions.h> -#import <OmniAppKit/OAFindControllerTargetProtocol.h> +#import <OmniBase/OmniBase.h> +#import <OmniAppKit/OmniAppKit.h> #import "BDSKErrorManager.h" #import "NSTextView_BDSKExtensions.h" #import "NSString_BDSKExtensions.h" Modified: trunk/bibdesk/BDSKErrorObjectController.m =================================================================== --- trunk/bibdesk/BDSKErrorObjectController.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKErrorObjectController.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,8 +37,8 @@ */ #import "BDSKErrorObjectController.h" -#import <OmniBase/assertions.h> -#import <BTParse/BDSKErrorObject.h> +#import <OmniBase/OmniBase.h> +#import <BTParse/btparse.h> #import "BDSKErrorManager.h" #import "BDSKErrorEditor.h" #import "BDSKStringConstants.h" Modified: trunk/bibdesk/BDSKFile.m =================================================================== --- trunk/bibdesk/BDSKFile.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKFile.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "BDSKFile.h" -#import <OmniBase/assertions.h> +#import <OmniBase/OmniBase.h> #import "NSURL_BDSKExtensions.h" // private placeholder subclass Modified: trunk/bibdesk/BDSKFiler.m =================================================================== --- trunk/bibdesk/BDSKFiler.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKFiler.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -40,7 +40,7 @@ #import "NSImage_BDSKExtensions.h" #import "BDSKScriptHookManager.h" #import "BDSKPathColorTransformer.h" -#import <OmniAppKit/NSTableView-OAExtensions.h> +#import <OmniAppKit/OmniAppKit.h> #import "BibDocument.h" #import "BibDocument_Actions.h" #import "BDSKAppController.h" Modified: trunk/bibdesk/BDSKFilter.m =================================================================== --- trunk/bibdesk/BDSKFilter.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKFilter.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -41,7 +41,7 @@ #import "BibItem.h" #import "BDSKSmartGroup.h" #import "BDSKOwnerProtocol.h" -#import <OmniFoundation/NSArray-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> @implementation BDSKFilter Modified: trunk/bibdesk/BDSKFormatParser.m =================================================================== --- trunk/bibdesk/BDSKFormatParser.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKFormatParser.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "BDSKFormatParser.h" -#import <OmniFoundation/NSAttributedString-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import "BDSKStringConstants.h" #import "BibAuthor.h" #import "BDSKConverter.h" Modified: trunk/bibdesk/BDSKGroup.m =================================================================== --- trunk/bibdesk/BDSKGroup.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKGroup.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -42,7 +42,7 @@ #import "BDSKOwnerProtocol.h" #import "BibDocument.h" #import "BDSKMacroResolver.h" -#import <OmniBase/OBUtilities.h> +#import <OmniBase/OmniBase.h> @implementation BDSKGroup Modified: trunk/bibdesk/BDSKGroupCell.m =================================================================== --- trunk/bibdesk/BDSKGroupCell.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKGroupCell.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,9 +38,8 @@ #import "BDSKGroupCell.h" #import "BDSKGroup.h" -#import <OmniBase/rcsid.h> +#import <OmniBase/OmniBase.h> #import "NSBezierPath_BDSKExtensions.h" -#import <OmniBase/OBUtilities.h> #import "NSImage_BDSKExtensions.h" #import "NSGeometry_BDSKExtensions.h" #import "NSParagraphStyle_BDSKExtensions.h" Modified: trunk/bibdesk/BDSKGroupTableView.h =================================================================== --- trunk/bibdesk/BDSKGroupTableView.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKGroupTableView.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import <Cocoa/Cocoa.h> -#import <OmniAppKit/OAGradientTableView.h> +#import <OmniAppKit/OmniAppKit.h> @class BDSKGroupTableView, BDSKTypeSelectHelper; Modified: trunk/bibdesk/BDSKGroupTableView.m =================================================================== --- trunk/bibdesk/BDSKGroupTableView.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKGroupTableView.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,9 +38,9 @@ #import "BDSKGroupTableView.h" #import <OmniBase/OmniBase.h> +#import <OmniFoundation/OmniFoundation.h> #import <OmniAppKit/OmniAppKit.h> #import "BDSKStringConstants.h" -#import <OmniFoundation/NSString-OFExtensions.h> #import "BDSKHeaderPopUpButtonCell.h" #import "NSBezierPath_BDSKExtensions.h" #import "BibDocument_Groups.h" Modified: trunk/bibdesk/BDSKGroupsArray.m =================================================================== --- trunk/bibdesk/BDSKGroupsArray.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKGroupsArray.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -51,7 +51,7 @@ #import "NSObject_BDSKExtensions.h" #import "NSIndexSet_BDSKExtensions.h" #import "BDSKFilter.h" -#import <OmniFoundation/NSArray-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> @interface BDSKGroupsArray (Private) Modified: trunk/bibdesk/BDSKHeaderPopUpButtonCell.m =================================================================== --- trunk/bibdesk/BDSKHeaderPopUpButtonCell.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKHeaderPopUpButtonCell.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ #import "BDSKHeaderPopUpButtonCell.h" #import "NSGeometry_BDSKExtensions.h" -#import <OmniAppkit/NSImage-OAExtensions.h> +#import <OmniAppkit/OmniAppkit.h> @implementation BDSKHeaderPopUpButtonCell Modified: trunk/bibdesk/BDSKISIGroupServer.m =================================================================== --- trunk/bibdesk/BDSKISIGroupServer.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKISIGroupServer.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -44,7 +44,7 @@ #import "NSArray_BDSKExtensions.h" #import "NSError_BDSKExtensions.h" #import "NSURL_BDSKExtensions.h" -#import <OmniFoundation/OFStringScanner.h> +#import <OmniFoundation/OmniFoundation.h> #define MAX_RESULTS 100 #if(OMNI_FORCE_ASSERTIONS) Modified: trunk/bibdesk/BDSKImagePopUpButton.m =================================================================== --- trunk/bibdesk/BDSKImagePopUpButton.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKImagePopUpButton.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -39,7 +39,7 @@ #import "BDSKImagePopUpButton.h" #import "NSBezierPath_BDSKExtensions.h" -#import <OmniAppKit/OAApplication.h> +#import <OmniAppKit/OmniAppKit.h> #import "BDSKImageFadeAnimation.h" @implementation BDSKImagePopUpButton Modified: trunk/bibdesk/BDSKItemPasteboardHelper.m =================================================================== --- trunk/bibdesk/BDSKItemPasteboardHelper.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKItemPasteboardHelper.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -40,7 +40,7 @@ #import "BibDocument.h" #import "NSArray_BDSKExtensions.h" #import "NSObject_BDSKExtensions.h" -#import <OmniBase/assertions.h> +#import <OmniBase/OmniBase.h> #import "WebURLsWithTitles.h" Modified: trunk/bibdesk/BDSKJSTORParser.m =================================================================== --- trunk/bibdesk/BDSKJSTORParser.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKJSTORParser.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -41,7 +41,7 @@ #import "BDSKTypeManager.h" #import "BibItem.h" #import "BDSKAppController.h" -#import <OmniBase/assertions.h> +#import <OmniBase/OmniBase.h> #import "NSError_BDSKExtensions.h" // Modified: trunk/bibdesk/BDSKLinkedFile.m =================================================================== --- trunk/bibdesk/BDSKLinkedFile.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKLinkedFile.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ #import "BDSKLinkedFile.h" #import <CoreServices/CoreServices.h> -#import <OmniFoundation/NSData-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> static void BDSKDisposeAliasHandle(AliasHandle inAlias) { Modified: trunk/bibdesk/BDSKMARCParser.m =================================================================== --- trunk/bibdesk/BDSKMARCParser.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKMARCParser.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -41,8 +41,7 @@ #import "BDSKTypeManager.h" #import "BibItem.h" #import "BDSKAppController.h" -#import <OmniFoundation/NSScanner-OFExtensions.h> -#import <OmniFoundation/NSString-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import <AGRegex/AGRegex.h> #import "NSError_BDSKExtensions.h" Modified: trunk/bibdesk/BDSKMacroResolver.m =================================================================== --- trunk/bibdesk/BDSKMacroResolver.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKMacroResolver.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -45,7 +45,7 @@ #import "BDSKBibTeXParser.h" #import "BDSKOwnerProtocol.h" #import "BibDocument.h" -#import <OmniFoundation/OFPreference.h> +#import <OmniFoundation/OmniFoundation.h> #import "NSObject_BDSKExtensions.h" #import "NSError_BDSKExtensions.h" Modified: trunk/bibdesk/BDSKMacroWindowController.m =================================================================== --- trunk/bibdesk/BDSKMacroWindowController.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKMacroWindowController.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -40,9 +40,7 @@ #import "BDSKOwnerProtocol.h" #import "BDSKComplexString.h" // for BDSKMacroResolver protocol #import "BDSKStringConstants.h" // for notification name declarations -#import <OmniFoundation/NSUndoManager-OFExtensions.h> // for isUndoingOrRedoing -#import <OmniFoundation/NSString-OFExtensions.h> -#import "OmniFoundation/NSData-OFExtensions.h" +#import <OmniFoundation/OmniFoundation.h> #import "BDSKComplexStringEditor.h" #import "NSString_BDSKExtensions.h" #import "BDSKBibTeXParser.h" @@ -51,7 +49,7 @@ #import "BibItem.h" #import "BDSKMacroResolver.h" #import "NSWindowController_BDSKExtensions.h" -#import <OmniAppKit/OATypeAheadSelectionHelper.h> +#import <OmniAppKit/OmniAppKit.h> #import "BDSKTypeSelectHelper.h" #import "BibDocument.h" #import "BDSKMacro.h" Modified: trunk/bibdesk/BDSKMainTableView.m =================================================================== --- trunk/bibdesk/BDSKMainTableView.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKMainTableView.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -34,8 +34,8 @@ */ #import "BDSKMainTableView.h" -#import <OmniFoundation/OFPreference.h> -#import <OmniFoundation/CFArray-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> +#import <OmniAppKit/OmniAppKit.h> #import "BDSKStringConstants.h" #import "BibDocument.h" #import "BibDocument_Actions.h" @@ -48,8 +48,6 @@ #import "BDSKImagePopUpButton.h" #import "BDSKImagePopUpButtonCell.h" #import "NSObject_BDSKExtensions.h" -#import <OmniAppKit/NSMenu-OAExtensions.h> -#import <OmniAppKit/NSTableView-OAColumnConfigurationExtensions.h> #import "NSBezierPath_BDSKExtensions.h" #import "NSBezierPath_CoreImageExtensions.h" #import "BDSKCenterScaledImageCell.h" Modified: trunk/bibdesk/BDSKOverlay.m =================================================================== --- trunk/bibdesk/BDSKOverlay.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKOverlay.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ */ #import "BDSKOverlay.h" -#import <OmniAppKit/NSToolbar-OAExtensions.h> +#import <OmniAppKit/OmniAppKit.h> @implementation BDSKOverlay Modified: trunk/bibdesk/BDSKPathIconTransformer.m =================================================================== --- trunk/bibdesk/BDSKPathIconTransformer.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKPathIconTransformer.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,8 +38,7 @@ #import "BDSKPathIconTransformer.h" #import "NSImage_BDSKExtensions.h" -#import <OmniAppKit/FrameworkDefines.h> -#import <OmniAppKit/OATextWithIconCell.h> +#import <OmniAppKit/OmniAppKit.h> #import "NSFileManager_BDSKExtensions.h" @implementation BDSKPathIconTransformer Modified: trunk/bibdesk/BDSKPreferenceController.h =================================================================== --- trunk/bibdesk/BDSKPreferenceController.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKPreferenceController.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import <Cocoa/Cocoa.h> -#import <OmniAppKit/OAPreferenceController.h> +#import <OmniAppKit/OmniAppKit.h> #import "BDSKSpotlightView.h" @class BDSKOverlayWindow; Modified: trunk/bibdesk/BDSKPreferenceController.m =================================================================== --- trunk/bibdesk/BDSKPreferenceController.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKPreferenceController.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,10 +38,7 @@ #import "BDSKPreferenceController.h" #import "BDSKOverlay.h" -#import <OmniAppKit/OAPreferencesIconView.h> -#import <OmniAppKit/NSToolbar-OAExtensions.h> -#import <OmniAppKit/OAPreferenceClient.h> -#import <OmniAppKit/OAPreferenceClientRecord.h> +#import <OmniAppKit/OmniAppKit.h> @interface NSArray (PreferencesSearch) - (BOOL)containsCaseInsensitiveSubstring:(NSString *)substring; Modified: trunk/bibdesk/BDSKPreviewItem.m =================================================================== --- trunk/bibdesk/BDSKPreviewItem.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKPreviewItem.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -44,8 +44,7 @@ #import "BDSKTypeManager.h" #import "NSString_BDSKExtensions.h" #import "NSArray_BDSKExtensions.h" -#import <OmniFoundation/NSString-OFExtensions.h> -#import <OmniFoundation/NSArray-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import "BDSKOwnerProtocol.h" #import "BDSKLinkedFile.h" Modified: trunk/bibdesk/BDSKPreviewer.m =================================================================== --- trunk/bibdesk/BDSKPreviewer.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKPreviewer.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -41,7 +41,7 @@ #import "BDSKAppController.h" #import "BDSKZoomableTextView.h" #import "BDSKZoomablePDFView.h" -#import <OmniFoundation/NSThread-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import "BibDocument.h" #import "NSString_BDSKExtensions.h" #import "NSArray_BDSKExtensions.h" Modified: trunk/bibdesk/BDSKPublicationsArray.m =================================================================== --- trunk/bibdesk/BDSKPublicationsArray.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKPublicationsArray.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -40,8 +40,7 @@ #import "BDSKCountedSet.h" #import "BibItem.h" #import "BibAuthor.h" -#import <OmniFoundation/OFMultiValueDictionary.h> -#import <OmniFoundation/NSString-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import "NSObject_BDSKExtensions.h" Modified: trunk/bibdesk/BDSKRatingButton.m =================================================================== --- trunk/bibdesk/BDSKRatingButton.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKRatingButton.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "BDSKRatingButton.h" -#import <OmniBase/assertions.h> +#import <OmniBase/OmniBase.h> @implementation BDSKRatingButton Modified: trunk/bibdesk/BDSKRegExFindPattern.h =================================================================== --- trunk/bibdesk/BDSKRegExFindPattern.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKRegExFindPattern.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -35,7 +35,7 @@ @class AGRegex, AGRegexMatch; -#import <OmniAppKit/OAFindControllerTargetProtocol.h> +#import <OmniAppKit/OmniAppKit.h> @interface BDSKRegExFindPattern : NSObject <OAFindPattern> { Modified: trunk/bibdesk/BDSKScriptGroup.h =================================================================== --- trunk/bibdesk/BDSKScriptGroup.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKScriptGroup.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ #import <Cocoa/Cocoa.h> #import "BDSKGroup.h" -#import <OmniFoundation/OFWeakRetainConcreteImplementation.h> +#import <OmniFoundation/OmniFoundation.h> #import "BDSKOwnerProtocol.h" @class OFMessageQueue, BDSKPublicationsArray, BDSKMacroResolver, BDSKItemSearchIndexes; Modified: trunk/bibdesk/BDSKScriptGroup.m =================================================================== --- trunk/bibdesk/BDSKScriptGroup.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKScriptGroup.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -48,7 +48,7 @@ #import "NSError_BDSKExtensions.h" #import "NSFileManager_BDSKExtensions.h" #import "NSScanner_BDSKExtensions.h" -#import <OmniFoundation/OFMessageQueue.h> +#import <OmniFoundation/OmniFoundation.h> #import "BibItem.h" #import "BDSKPublicationsArray.h" #import "BDSKMacroResolver.h" Modified: trunk/bibdesk/BDSKScriptHookManager.m =================================================================== --- trunk/bibdesk/BDSKScriptHookManager.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKScriptHookManager.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -39,7 +39,7 @@ #import "BDSKScriptHookManager.h" #import "BibDocument.h" #import "BDSKStringConstants.h" -#import <OmniFoundation/NSString-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #define MAX_RUNNING_SCRIPT_HOOKS 100 Modified: trunk/bibdesk/BDSKScriptMenu.m =================================================================== --- trunk/bibdesk/BDSKScriptMenu.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKScriptMenu.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,10 +37,9 @@ */ #import "BDSKScriptMenu.h" -#import <OmniFoundation/OmniFoundation.h> -#import <OmniAppKit/NSMenu-OAExtensions.h> #import <OmniBase/OmniBase.h> -#import <OmniAppKit/OAApplication.h> +#import <OmniFoundation/OmniFoundation.h> +#import <OmniAppKit/OmniAppKit.h> @interface BDSKScriptMenuController : NSObject + (id)sharedInstance; Modified: trunk/bibdesk/BDSKSearchGroup.m =================================================================== --- trunk/bibdesk/BDSKSearchGroup.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKSearchGroup.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -43,7 +43,7 @@ #import "NSImage_BDSKExtensions.h" #import "BDSKPublicationsArray.h" #import "BDSKServerInfo.h" -#import <OmniFoundation/NSArray-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import "BDSKItemSearchIndexes.h" #import "BDSKISIGroupServer.h" #import "BDSKDBLPGroupServer.h" Modified: trunk/bibdesk/BDSKSharingServer.m =================================================================== --- trunk/bibdesk/BDSKSharingServer.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKSharingServer.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -48,8 +48,7 @@ #import "BDSKSharedGroup.h" #import "BDSKAsynchronousDOServer.h" #import "BDSKThreadSafeMutableDictionary.h" -#import <OmniBase/OBUtilities.h> -#import <OmniBase/assertions.h> +#import <OmniBase/OmniBase.h> #include <sys/socket.h> #include <netinet/in.h> Modified: trunk/bibdesk/BDSKSplitView.h =================================================================== --- trunk/bibdesk/BDSKSplitView.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKSplitView.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import <Cocoa/Cocoa.h> -#import <OmniAppKit/OASplitView.h> +#import <OmniAppKit/OmniAppKit.h> enum { BDSKMinBlendStyleMask = 1, Modified: trunk/bibdesk/BDSKStaticGroup.m =================================================================== --- trunk/bibdesk/BDSKStaticGroup.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKStaticGroup.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -39,7 +39,7 @@ #import "BDSKStaticGroup.h" #import "NSImage_BDSKExtensions.h" #import "BibItem.h" -#import <OmniBase/OBUtilities.h> +#import <OmniBase/OmniBase.h> @implementation BDSKStaticGroup Modified: trunk/bibdesk/BDSKStatusBar.m =================================================================== --- trunk/bibdesk/BDSKStatusBar.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKStatusBar.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ #import "BDSKStatusBar.h" #import "NSGeometry_BDSKExtensions.h" -#import <OmniBase/assertions.h> +#import <OmniBase/OmniBase.h> #import "CIImage_BDSKExtensions.h" #import "BDSKCenterScaledImageCell.h" Modified: trunk/bibdesk/BDSKStringParser.m =================================================================== --- trunk/bibdesk/BDSKStringParser.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKStringParser.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "BDSKStringParser.h" -#import <OmniBase/OBUtilities.h> +#import <OmniBase/OmniBase.h> #import "NSError_BDSKExtensions.h" #import "BDSKBibTeXParser.h" #import "BDSKPubMedParser.h" Modified: trunk/bibdesk/BDSKTableSortDescriptor.m =================================================================== --- trunk/bibdesk/BDSKTableSortDescriptor.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKTableSortDescriptor.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,9 +37,8 @@ */ #import "BDSKTableSortDescriptor.h" -#import <OmniBase/assertions.h> -#import <OmniBase/OBUtilities.h> -#import <OmniFoundation/NSString-OFExtensions.h> +#import <OmniBase/OmniBase.h> +#import <OmniFoundation/OmniFoundation.h> #import "BDSKTypeManager.h" @interface NSArray (BibAuthorMultipleCompare) Modified: trunk/bibdesk/BDSKTeXTask.h =================================================================== --- trunk/bibdesk/BDSKTeXTask.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKTeXTask.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ */ #import <Cocoa/Cocoa.h> -#import <OmniFoundation/OFWeakRetainConcreteImplementation.h> +#import <OmniFoundation/OmniFoundation.h> enum { BDSKGenerateLTB = 0, Modified: trunk/bibdesk/BDSKTeXTask.m =================================================================== --- trunk/bibdesk/BDSKTeXTask.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKTeXTask.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -41,7 +41,7 @@ #import "NSFileManager_BDSKExtensions.h" #import "BDSKStringConstants.h" #import "BDSKAppController.h" -#import <OmniFoundation/NSThread-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import "UKDirectoryEnumerator.h" #import "BDSKShellCommandFormatter.h" #import <libkern/OSAtomic.h> Modified: trunk/bibdesk/BDSKTemplateDocument.m =================================================================== --- trunk/bibdesk/BDSKTemplateDocument.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKTemplateDocument.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -47,7 +47,7 @@ #import "BDSKTemplateParser.h" #import "BDSKTemplateTag.h" #import "NSString_BDSKExtensions.h" -#import <OmniBase/OBUtilities.h> +#import <OmniBase/OmniBase.h> static float BDSKDefaultFontSizes[] = {8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 16.0, 18.0, 20.0, 24.0, 28.0, 32.0, 48.0, 64.0}; Modified: trunk/bibdesk/BDSKTextImportController.m =================================================================== --- trunk/bibdesk/BDSKTextImportController.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKTextImportController.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -42,10 +42,10 @@ #import "BDSKTypeManager.h" #import "BDSKComplexStringEditor.h" #import "BDSKImagePopUpButton.h" -#import <OmniAppKit/OATypeAheadSelectionHelper.h> +#import <OmniAppKit/OmniAppKit.h> #import "BDSKTypeSelectHelper.h" #import <WebKit/WebKit.h> -#import <OmniFoundation/NSString-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import "BDSKComplexStringFormatter.h" #import "BDSKCrossrefFormatter.h" #import "BDSKCiteKeyFormatter.h" Modified: trunk/bibdesk/BDSKTextViewFindController.h =================================================================== --- trunk/bibdesk/BDSKTextViewFindController.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKTextViewFindController.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import <Cocoa/Cocoa.h> -#import <OmniAppKit/OAFindController.h> +#import <OmniAppKit/OmniAppKit.h> @interface BDSKTextViewFindController : OAFindController { IBOutlet NSPopUpButton *findTypePopUp; Modified: trunk/bibdesk/BDSKTextViewFindController.m =================================================================== --- trunk/bibdesk/BDSKTextViewFindController.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKTextViewFindController.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "BDSKTextViewFindController.h" -#import <OmniAppKit/OAFindPattern.h> +#import <OmniAppKit/OmniAppKit.h> #import <AGRegex/AGRegex.h> #import "BDSKRegExFindPattern.h" #import "BDSKFindFieldEditor.h" Modified: trunk/bibdesk/BDSKTextWithIconCell.h =================================================================== --- trunk/bibdesk/BDSKTextWithIconCell.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKTextWithIconCell.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,9 +37,8 @@ */ #import <Cocoa/Cocoa.h> -#import <OmniAppKit/OATextWithIconCell.h> +#import <OmniAppKit/OmniAppKit.h> -#import <AppKit/NSTextFieldCell.h> @interface BDSKTextWithIconCell : NSTextFieldCell { Modified: trunk/bibdesk/BDSKWebParser.m =================================================================== --- trunk/bibdesk/BDSKWebParser.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKWebParser.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "BDSKWebParser.h" -#import <OmniBase/OBUtilities.h> +#import <OmniBase/OmniBase.h> #import "BDSKHCiteParser.h" #import "BDSKCiteULikeParser.h" #import "BDSKACMDLParser.h" Modified: trunk/bibdesk/BDSKZoomablePDFView.m =================================================================== --- trunk/bibdesk/BDSKZoomablePDFView.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKZoomablePDFView.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,11 +37,11 @@ */ #import "BDSKZoomablePDFView.h" -#import <OmniAppKit/NSView-OAExtensions.h> -#import <OmniBase/OBUtilities.h> +#import <OmniBase/OmniBase.h> +#import <OmniFoundation/OmniFoundation.h> +#import <OmniAppKit/OmniAppKit.h> #import "BDSKHeaderPopUpButton.h" #import "NSString_BDSKExtensions.h" -#import <OmniFoundation/NSString-OFExtensions.h> #import "NSURL_BDSKExtensions.h" #import "NSScrollView_BDSKExtensions.h" Modified: trunk/bibdesk/BDSKZoomableTextView.m =================================================================== --- trunk/bibdesk/BDSKZoomableTextView.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BDSKZoomableTextView.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "BDSKZoomableTextView.h" -#import <OmniAppKit/NSView-OAExtensions.h> +#import <OmniAppKit/OmniAppKit.h> #import "BDSKHeaderPopUpButton.h" #import "NSScrollview_BDSKExtensions.h" Modified: trunk/bibdesk/BibDocument+Scripting.m =================================================================== --- trunk/bibdesk/BibDocument+Scripting.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BibDocument+Scripting.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -63,7 +63,7 @@ #import "BibAuthor+Scripting.h" #import "BDSKTypeManager.h" #import <Quartz/Quartz.h> -#import <OmniFoundation/OFCFCallbacks.h> +#import <OmniFoundation/OmniFoundation.h> const CFArrayCallBacks BDSKCaseInsensitiveStringArrayCallBacks = { Modified: trunk/bibdesk/BibDocument.m =================================================================== --- trunk/bibdesk/BibDocument.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BibDocument.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -122,7 +122,7 @@ #import "NSViewAnimation_BDSKExtensions.h" #import "BDSKDocumentSearch.h" #import "NSImage_BDSKExtensions.h" -#import <SkimNotes/SKNExtendedAttributeManager.h> +#import <SkimNotes/SkimNotes.h> // these are the same as in Info.plist NSString *BDSKBibTeXDocumentType = @"BibTeX Database"; Modified: trunk/bibdesk/BibDocumentView_Toolbar.m =================================================================== --- trunk/bibdesk/BibDocumentView_Toolbar.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BibDocumentView_Toolbar.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ #import "BibDocument_Search.h" #import "BDSKAppController.h" #import "NSImage_BDSKExtensions.h" -#import <OmniAppKit/OAToolbarItem.h> +#import <OmniAppKit/OmniAppKit.h> #import "OAToolbarItem_BDSKExtensions.h" #import "BDSKImagePopUpButton.h" #import "BibDocument_Actions.h" Modified: trunk/bibdesk/BibDocument_DataSource.m =================================================================== --- trunk/bibdesk/BibDocument_DataSource.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BibDocument_DataSource.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -35,7 +35,7 @@ */ #import "BibDocument_DataSource.h" -#import <SkimNotes/SKNExtendedAttributeManager.h> +#import <SkimNotes/SkimNotes.h> #import "BibDocument.h" #import "BibDocument_Actions.h" #import "BibItem.h" Modified: trunk/bibdesk/BibDocument_Search.m =================================================================== --- trunk/bibdesk/BibDocument_Search.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BibDocument_Search.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -53,8 +53,7 @@ #import "BibDocument_Groups.h" #import "BDSKMainTableView.h" #import "BDSKFindController.h" -#import <OmniAppKit/OAFindControllerTargetProtocol.h> -#import <OmniAppKit/NSText-OAExtensions.h> +#import <OmniAppKit/OmniAppKit.h> #import "BDSKSearchButtonController.h" #import "BDSKItemSearchIndexes.h" #import "NSArray_BDSKExtensions.h" Modified: trunk/bibdesk/BibItem.h =================================================================== --- trunk/bibdesk/BibItem.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BibItem.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -39,7 +39,7 @@ */ #import <Cocoa/Cocoa.h> -#import <OmniFoundation/OFObject.h> +#import <OmniFoundation/<OmniFoundation.h> #import "BDSKFormatParser.h" enum { Modified: trunk/bibdesk/BibPref_Defaults.h =================================================================== --- trunk/bibdesk/BibPref_Defaults.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BibPref_Defaults.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -34,7 +34,7 @@ */ #import <Cocoa/Cocoa.h> -#import <OmniAppKit/OAPreferenceClient.h> +#import <OmniAppKit/OmniAppKit.h> #import "BDSKStringConstants.h" #import "BDSKFieldNameFormatter.h" #import "BDSKMacroWindowController.h" Modified: trunk/bibdesk/BibPref_InputManager.h =================================================================== --- trunk/bibdesk/BibPref_InputManager.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BibPref_InputManager.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -39,8 +39,7 @@ #import <Cocoa/Cocoa.h> #import "BDSKStringConstants.h" -#import <OmniAppKit/OAGradientTableView.h> -#import <OmniAppKit/OATextWithIconCell.h> +#import <OmniAppKit/OmniAppKit.h> @interface BibPref_InputManager : OAPreferenceClient { Modified: trunk/bibdesk/BibPref_ScriptHooks.m =================================================================== --- trunk/bibdesk/BibPref_ScriptHooks.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BibPref_ScriptHooks.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -39,8 +39,8 @@ #import "BibPref_ScriptHooks.h" #import "BDSKScriptHookManager.h" #import "NSFileManager_BDSKExtensions.h" -#import <OmniFoundation/NSString-OFExtensions.h> -#import <OmniAppKit/NSTableView-OAExtensions.h> +#import <OmniFoundation/OmniFoundation.h> +#import <OmniAppKit/OmniAppKit.h> @implementation BibPref_ScriptHooks Modified: trunk/bibdesk/BibPref_TeX.m =================================================================== --- trunk/bibdesk/BibPref_TeX.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/BibPref_TeX.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -41,7 +41,7 @@ #import "NSFileManager_BDSKExtensions.h" #import "NSWindowController_BDSKExtensions.h" #import "BDSKShellCommandFormatter.h" -#import <OmniAppKit/OAPreferenceClientRecord.h> +#import <OmniAppKit/OmniAppKit.h> #define BDSK_TEX_DOWNLOAD_URL @"http://tug.org/mactex/" Modified: trunk/bibdesk/CFString_BDSKExtensions.m =================================================================== --- trunk/bibdesk/CFString_BDSKExtensions.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/CFString_BDSKExtensions.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "CFString_BDSKExtensions.h" -#import <OmniFoundation/OFPreference.h> +#import <OmniFoundation/OmniFoundation.h> // This object is a cache for our stop words, so we don't have to hit user defaults every time __BDDeleteArticlesForSorting() is called (which is fairly often). Modified: trunk/bibdesk/NSFileManager_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSFileManager_BDSKExtensions.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/NSFileManager_BDSKExtensions.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -39,12 +39,12 @@ #import "NSFileManager_BDSKExtensions.h" #import "BDSKStringConstants.h" -#import <OmniFoundation/OFResourceFork.h> +#import <OmniFoundation/OmniFoundation.h> #import "NSURL_BDSKExtensions.h" #import "NSObject_BDSKExtensions.h" #import "BDSKVersionNumber.h" #import "NSError_BDSKExtensions.h" -#import <SkimNotes/SKNExtendedAttributeManager.h> +#import <SkimNotes/SkimNotes.h> /* The WLDragMapHeaderStruct stuff was borrowed from CocoaTech Foundation, http://www.cocoatech.com (BSD licensed). This is used for creating WebLoc files, which are a resource-only Finder clipping. Apple provides no API for creating them, so apparently everyone just reverse-engineers the resource file format and creates them. Since I have no desire to mess with ResEdit anymore, we're borrowing this code directly and using Omni's resource fork methods to create the file. Note that you can check the contents of a resource fork in Terminal with `cat somefile/rsrc`, not that it's incredibly helpful. Modified: trunk/bibdesk/NSImage_BDSKExtensions.h =================================================================== --- trunk/bibdesk/NSImage_BDSKExtensions.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/NSImage_BDSKExtensions.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ #import <Cocoa/Cocoa.h> #import <ApplicationServices/ApplicationServices.h> -#import <OmniAppKit/NSImage-OAExtensions.h> +#import <OmniAppKit/OmniAppKit.h> @interface NSImage (BDSKExtensions) Modified: trunk/bibdesk/NSImage_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSImage_BDSKExtensions.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/NSImage_BDSKExtensions.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,9 +37,9 @@ */ #import "NSImage_BDSKExtensions.h" -#import <OmniFoundation/NSString-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import "NSBezierPath_BDSKExtensions.h" -#import <OmniAppKit/IconFamily.h> +#import <OmniAppKit/OmniAppKit.h> @implementation NSImage (BDSKExtensions) Modified: trunk/bibdesk/NSScrollView_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSScrollView_BDSKExtensions.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/NSScrollView_BDSKExtensions.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "NSScrollView_BDSKExtensions.h" -#import <OmniBase/OBUtilities.h> +#import <OmniBase/OmniBase.h> #import "BDSKEdgeView.h" Modified: trunk/bibdesk/NSSet_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSSet_BDSKExtensions.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/NSSet_BDSKExtensions.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -38,7 +38,7 @@ #import "NSSet_BDSKExtensions.h" #import <OmniBase/OmniBase.h> -#import <OmniFoundation/CFSet-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import "BDSKCountedSet.h" @implementation NSSet (BDSKExtensions) Modified: trunk/bibdesk/NSString_BDSKExtensions.h =================================================================== --- trunk/bibdesk/NSString_BDSKExtensions.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/NSString_BDSKExtensions.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -35,7 +35,7 @@ */ #import <Foundation/Foundation.h> -#import <OmniFoundation/NSMutableString-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import <CoreFoundation/CoreFoundation.h> #import "NSCharacterSet_BDSKExtensions.h" #import "CFString_BDSKExtensions.h" Modified: trunk/bibdesk/NSString_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSString_BDSKExtensions.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/NSString_BDSKExtensions.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -35,11 +35,9 @@ */ #import "NSString_BDSKExtensions.h" -#import <OmniFoundation/NSString-OFExtensions.h> +#import <OmniFoundation/OmniFoundation.h> #import <Cocoa/Cocoa.h> #import <AGRegex/AGRegex.h> -#import <OmniFoundation/OFCharacterSet.h> -#import <OmniFoundation/OFStringScanner.h> #import "BDSKStringConstants.h" #import "CFString_BDSKExtensions.h" #import "OFCharacterSet_BDSKExtensions.h" Modified: trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/NSTableHeaderView_BDSKExtensions.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "NSTableHeaderView_BDSKExtensions.h" -#import <OmniBase/OBUtilities.h> +#import <OmniBase/OmniBase.h> @implementation NSTableHeaderView (BDSKExtensions) Modified: trunk/bibdesk/NSTableView_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSTableView_BDSKExtensions.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/NSTableView_BDSKExtensions.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -41,8 +41,8 @@ #import "NSBezierPath_BDSKExtensions.h" #import "NSLayoutManager_BDSKExtensions.h" #import "BDSKFieldEditor.h" -#import <OmniAppKit/OAApplication.h> -#import <OmniFoundation/OFPreference.h> +#import <OmniFoundation/OmniFoundation.h> +#import <OmniAppKit/OmniAppKit.h> @implementation NSTableView (BDSKExtensions) Modified: trunk/bibdesk/NSTextView_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSTextView_BDSKExtensions.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/NSTextView_BDSKExtensions.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,8 +37,8 @@ #import "NSTextView_BDSKExtensions.h" #import "BDSKStringConstants.h" #import <OmniFoundation/OmniFoundation.h> +#import <OmniAppKit/OmniAppKit.h> #import "BDSKTextViewFindController.h" -#import <OmniAppKit/OAApplication.h> #import "NSObject_BDSKExtensions.h" @implementation NSTextView (BDSKExtensions) Modified: trunk/bibdesk/NSWorkspace_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSWorkspace_BDSKExtensions.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/NSWorkspace_BDSKExtensions.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "NSWorkspace_BDSKExtensions.h" -#import <OmniBase/assertions.h> +#import <OmniBase/OmniBase.h> #import <Carbon/Carbon.h> #import "NSURL_BDSKExtensions.h" Modified: trunk/bibdesk/OAToolbarItem_BDSKExtensions.h =================================================================== --- trunk/bibdesk/OAToolbarItem_BDSKExtensions.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/OAToolbarItem_BDSKExtensions.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -36,7 +36,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#import <OmniAppKit/OAToolbarItem.h> +#import <OmniAppKit/OmniAppKit.h> @interface OAToolbarItem (BDSKExtensions) Modified: trunk/bibdesk/OFCharacterSet_BDSKExtensions.h =================================================================== --- trunk/bibdesk/OFCharacterSet_BDSKExtensions.h 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/OFCharacterSet_BDSKExtensions.h 2008-08-21 13:07:06 UTC (rev 13602) @@ -36,7 +36,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#import <OmniFoundation/OFCharacterSet.h> +#import <OmniFoundation/OmniFoundation.h> @interface OFCharacterSet (BDSKExtensions) Modified: trunk/bibdesk/PDFDocument_BDSKExtensions.m =================================================================== --- trunk/bibdesk/PDFDocument_BDSKExtensions.m 2008-08-20 12:40:04 UTC (rev 13601) +++ trunk/bibdesk/PDFDocument_BDSKExtensions.m 2008-08-21 13:07:06 UTC (rev 13602) @@ -37,7 +37,7 @@ */ #import "PDFDocument_BDSKExtensions.h" -#import <OmniBase/OBUtilities.h> +#import <OmniBase/OmniBase.h> @interface PDFDocument (BDSKPrivateDeclarations) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |