From: <ho...@us...> - 2014-11-07 13:54:57
|
Revision: 20089 http://sourceforge.net/p/bibdesk/svn/20089 Author: hofman Date: 2014-11-07 13:54:44 +0000 (Fri, 07 Nov 2014) Log Message: ----------- combine two methods to copy support files into one Modified Paths: -------------- trunk/bibdesk/BDSKAppController.m trunk/bibdesk/BibPref_Export.m trunk/bibdesk/NSFileManager_BDSKExtensions.h trunk/bibdesk/NSFileManager_BDSKExtensions.m Modified: trunk/bibdesk/BDSKAppController.m =================================================================== --- trunk/bibdesk/BDSKAppController.m 2014-11-06 11:19:08 UTC (rev 20088) +++ trunk/bibdesk/BDSKAppController.m 2014-11-07 13:54:44 UTC (rev 20089) @@ -312,7 +312,7 @@ // copy files to application support NSFileManager *fileManager = [NSFileManager defaultManager]; - [fileManager copyAllExportTemplatesToApplicationSupportAndOverwrite:NO]; + [fileManager copyFileFromSharedSupportToApplicationSupport:@"Templates" overwrite:NO]; [fileManager copyFileFromSharedSupportToApplicationSupport:@"previewtemplate.tex" overwrite:NO]; [fileManager copyFileFromSharedSupportToApplicationSupport:@"template.txt" overwrite:NO]; [fileManager copyFileFromSharedSupportToApplicationSupport:@"Bookmarks.plist" overwrite:NO]; Modified: trunk/bibdesk/BibPref_Export.m =================================================================== --- trunk/bibdesk/BibPref_Export.m 2014-11-06 11:19:08 UTC (rev 20088) +++ trunk/bibdesk/BibPref_Export.m 2014-11-07 13:54:44 UTC (rev 20089) @@ -139,7 +139,7 @@ - (void)alertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo{ if (NSAlertDefaultReturn == returnCode) - [[NSFileManager defaultManager] copyAllExportTemplatesToApplicationSupportAndOverwrite:YES]; + [[NSFileManager defaultManager] copyFileFromSharedSupportToApplicationSupport:@"Templates" overwrite:YES]; } - (IBAction)resetDefaultFiles:(id)sender; Modified: trunk/bibdesk/NSFileManager_BDSKExtensions.h =================================================================== --- trunk/bibdesk/NSFileManager_BDSKExtensions.h 2014-11-06 11:19:08 UTC (rev 20088) +++ trunk/bibdesk/NSFileManager_BDSKExtensions.h 2014-11-07 13:54:44 UTC (rev 20089) @@ -74,10 +74,8 @@ - (NSURL *)downloadFolderURL; - (NSURL *)latestLyXPipeURL; -- (BOOL)copyFileFromSharedSupportToApplicationSupport:(NSString *)fileName overwrite:(BOOL)overwrite; +- (void)copyFileFromSharedSupportToApplicationSupport:(NSString *)fileName overwrite:(BOOL)overwrite; -- (void)copyAllExportTemplatesToApplicationSupportAndOverwrite:(BOOL)overwrite; - - (NSString *)temporaryPathForWritingToPath:(NSString *)path error:(NSError **)outError; // creates a temporary directory with default attributes in a system temp location; should only be used on the main thread Modified: trunk/bibdesk/NSFileManager_BDSKExtensions.m =================================================================== --- trunk/bibdesk/NSFileManager_BDSKExtensions.m 2014-11-06 11:19:08 UTC (rev 20088) +++ trunk/bibdesk/NSFileManager_BDSKExtensions.m 2014-11-07 13:54:44 UTC (rev 20089) @@ -212,30 +212,43 @@ return lyxPipeURL; } -- (BOOL)copyFileFromSharedSupportToApplicationSupport:(NSString *)fileName overwrite:(BOOL)overwrite{ - NSString *targetPath = [[self applicationSupportDirectory] stringByAppendingPathComponent:fileName]; +- (void)copyFileFromSharedSupportToApplicationSupport:(NSString *)fileName overwrite:(BOOL)overwrite{ NSString *sourcePath = [[[NSBundle mainBundle] sharedSupportPath] stringByAppendingPathComponent:fileName]; - if ([self fileExistsAtPath:targetPath]) { - if (overwrite == NO) - return NO; - [self removeItemAtPath:targetPath error:NULL]; + BOOL isDir = NO; + if ([self fileExistsAtPath:sourcePath isDirectory:&isDir]) { + NSString *targetPath = [[self applicationSupportDirectory] stringByAppendingPathComponent:fileName]; + if (isDir) { + if ([self fileExistsAtPath:targetPath isDirectory:&isDir] == NO) + isDir = [self createDirectoryAtPath:targetPath withIntermediateDirectories:NO attributes:nil error:NULL]; + if (isDir) { + for (NSString *file in [self contentsOfDirectoryAtPath:sourcePath error:NULL]) { + if ([file hasPrefix:@"."] == NO) + [self copyFileFromSharedSupportToApplicationSupport:[fileName stringByAppendingPathComponent:file] overwrite:overwrite]; + } + } + } else { + if ([self fileExistsAtPath:targetPath]) { + if (overwrite == NO) + return; + [self removeItemAtPath:targetPath error:NULL]; + } + [self copyItemAtPath:sourcePath toPath:targetPath error:NULL]; + } } - return [self copyItemAtPath:sourcePath toPath:targetPath error:NULL]; } -- (void)copyAllExportTemplatesToApplicationSupportAndOverwrite:(BOOL)overwrite{ +- (void)copyFileFromSharedSupportToApplicationSupportsInDirectory:(NSString *)folderName overwrite:(BOOL)overwrite{ NSString *applicationSupport = [self applicationSupportDirectory]; - NSString *templates = @"Templates"; - NSString *templatesPath = [applicationSupport stringByAppendingPathComponent:templates]; + NSString *targetPath = [applicationSupport stringByAppendingPathComponent:folderName]; BOOL success = YES; - if ([self fileExistsAtPath:templatesPath isDirectory:&success] == NO) - success = [self createDirectoryAtPath:templatesPath withIntermediateDirectories:NO attributes:nil error:NULL]; + if ([self fileExistsAtPath:targetPath isDirectory:&success] == NO) + success = [self createDirectoryAtPath:targetPath withIntermediateDirectories:NO attributes:nil error:NULL]; if (success) { - NSString *sourcePath = [[[NSBundle mainBundle] sharedSupportPath] stringByAppendingPathComponent:templates]; + NSString *sourcePath = [[[NSBundle mainBundle] sharedSupportPath] stringByAppendingPathComponent:folderName]; for (NSString *file in [self contentsOfDirectoryAtPath:sourcePath error:NULL]) { if ([file hasPrefix:@"."] == NO) - [self copyFileFromSharedSupportToApplicationSupport:[templates stringByAppendingPathComponent:file] overwrite:overwrite]; + [self copyFileFromSharedSupportToApplicationSupport:[folderName stringByAppendingPathComponent:file] overwrite:overwrite]; } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |