diff --git a/Documentation/ChangeLog b/Documentation/ChangeLog index a9ef267..4071588 100644 --- a/Documentation/ChangeLog +++ b/Documentation/ChangeLog @@ -1,3 +1,15 @@ +2004-06-22 Serg Stoyan + + * Library/PCFileManager.m: + (panel:shouldShowFilename:): Treat .gorm dirs not as dirs. + + * Library/PCProject.m: + (doesAcceptFile:forKey:): Check existance of file in + sourceFileKeys and resourceFileKeys. + + * Modules/*: Made cleanup in sourceFileKeys, resourceFileKeys and + otherKeys methods. + 2004-06-21 Serg Stoyan * Library/PCFileManager.m: diff --git a/Library/PCFileManager.m b/Library/PCFileManager.m index 91035b5..5f8028a 100644 --- a/Library/PCFileManager.m +++ b/Library/PCFileManager.m @@ -440,27 +440,32 @@ static PCFileManager *_mgr = nil; NSString *fileType = nil; NSString *categoryKey = nil; - if (sender == addFilesPanel - && [fileManager fileExistsAtPath:filename isDirectory:&isDir] - && !isDir) - { - project = [projectManager activeProject]; - fileType = [fileTypePopup titleOfSelectedItem]; - categoryKey = [project keyForCategory:fileType]; - fileTypes = [project fileTypesForCategoryKey:categoryKey]; - // Wrong file extension - if (fileTypes - && ![fileTypes containsObject:[filename pathExtension]]) - { - return NO; - } - // File is already in project - if (![project doesAcceptFile:filename forKey:categoryKey]) - { - return NO; - } - } + [fileManager fileExistsAtPath:filename isDirectory:&isDir]; + + if ([[filename pathExtension] isEqualToString:@"gorm"]) + { + isDir = NO; + } + if (sender == addFilesPanel && !isDir) + { + project = [projectManager activeProject]; + fileType = [fileTypePopup titleOfSelectedItem]; + categoryKey = [project keyForCategory:fileType]; + fileTypes = [project fileTypesForCategoryKey:categoryKey]; + // Wrong file extension + if (fileTypes + && ![fileTypes containsObject:[filename pathExtension]]) + { + return NO; + } + // File is already in project + if (![project doesAcceptFile:filename forKey:categoryKey]) + { + return NO; + } + } + return YES; } diff --git a/Library/PCProject.h b/Library/PCProject.h index 7a3d390..a1d73da 100644 --- a/Library/PCProject.h +++ b/Library/PCProject.h @@ -125,7 +125,9 @@ extern NSString *PCProjectDictDidSaveNotification; - (void)setLocalizableFile:(NSString *)file public:(BOOL)yn; - (NSArray *)buildTargets; +// Files placed into / - (NSArray *)sourceFileKeys; +// Files placed into /Resources or /Language.lproj - (NSArray *)resourceFileKeys; - (NSArray *)otherKeys; - (NSArray *)allowableSubprojectTypes; diff --git a/Library/PCProject.m b/Library/PCProject.m index 395d087..1197f64 100644 --- a/Library/PCProject.m +++ b/Library/PCProject.m @@ -636,18 +636,36 @@ NSString - (BOOL)doesAcceptFile:(NSString *)file forKey:(NSString *)type { - NSArray *projectFiles = [projectDict objectForKey:type]; - NSString *pFile = [self projectFileFromFile:file forKey:type]; + NSString *pFile = [self projectFileFromFile:file forKey:type]; + NSArray *sourceKeys = [self sourceFileKeys]; + NSArray *resourceKeys = [self resourceFileKeys]; + NSEnumerator *keyEnum = nil; + NSString *key = nil; + NSArray *projectFiles = nil; - if ([[projectDict allKeys] containsObject:type]) + if ([sourceKeys containsObject:type]) { - if (![projectFiles containsObject:pFile]) + keyEnum = [sourceKeys objectEnumerator]; + } + else if ([resourceKeys containsObject:type]) + { + keyEnum = [resourceKeys objectEnumerator]; + } + else + { + return YES; + } + + while (key = [keyEnum nextObject]) + { + projectFiles = [projectDict objectForKey:key]; + if ([projectFiles containsObject:pFile]) { - return YES; + return NO; } } - return NO; + return YES; } - (BOOL)addAndCopyFiles:(NSArray *)files forKey:(NSString *)key diff --git a/Modules/AggregateProject/PCAggregateProject.m b/Modules/AggregateProject/PCAggregateProject.m index 2b5f523..60cf23b 100644 --- a/Modules/AggregateProject/PCAggregateProject.m +++ b/Modules/AggregateProject/PCAggregateProject.m @@ -81,10 +81,16 @@ return @"Project that contains subprojects."; } +- (NSArray *)sourceFileKeys +{ + return [NSArray arrayWithObjects: + PCSupportingFiles, PCSubprojects, nil]; +} + - (NSArray *)otherKeys { return [NSArray arrayWithObjects: - PCSubprojects, PCSupportingFiles, PCNonProject, nil]; + PCNonProject, nil]; } - (NSArray *)allowableSubprojectTypes diff --git a/Modules/ApplicationProject/PCAppProject.m b/Modules/ApplicationProject/PCAppProject.m index 3baca30..497b776 100644 --- a/Modules/ApplicationProject/PCAppProject.m +++ b/Modules/ApplicationProject/PCAppProject.m @@ -101,7 +101,9 @@ - (void)dealloc { +#idef DEVELOPMENT NSLog (@"PCAppProject: dealloc"); +#endif [[NSNotificationCenter defaultCenter] removeObserver:self]; @@ -148,7 +150,8 @@ - (NSArray *)sourceFileKeys { return [NSArray arrayWithObjects: - PCClasses, PCHeaders, PCOtherSources, nil]; + PCClasses, PCHeaders, PCOtherSources, + PCSupportingFiles, PCSubprojects, nil]; } - (NSArray *)resourceFileKeys @@ -160,8 +163,7 @@ - (NSArray *)otherKeys { return [NSArray arrayWithObjects: - PCDocuFiles, PCLibraries, PCSubprojects, PCSupportingFiles, PCNonProject, - nil]; + PCLibraries, PCNonProject, nil]; } - (NSArray *)allowableSubprojectTypes diff --git a/Modules/BundleProject/PCBundleProject.m b/Modules/BundleProject/PCBundleProject.m index d221797..22994da 100644 --- a/Modules/BundleProject/PCBundleProject.m +++ b/Modules/BundleProject/PCBundleProject.m @@ -110,20 +110,20 @@ - (NSArray *)sourceFileKeys { return [NSArray arrayWithObjects: - PCClasses, PCHeaders, PCOtherSources, nil]; + PCClasses, PCHeaders, PCOtherSources, + PCSubprojects, PCSupportingFiles, nil]; } - (NSArray *)resourceFileKeys { return [NSArray arrayWithObjects: - PCInterfaces, PCOtherResources, PCImages, nil]; + PCInterfaces, PCOtherResources, PCImages, PCDocuFiles, nil]; } - (NSArray *)otherKeys { return [NSArray arrayWithObjects: - PCDocuFiles, PCLibraries, PCSubprojects, PCSupportingFiles, PCNonProject, - nil]; + PCLibraries, PCNonProject, nil]; } - (NSArray *)allowableSubprojectTypes diff --git a/Modules/LibraryProject/PCLibProject.m b/Modules/LibraryProject/PCLibProject.m index a210511..27ce6b2 100644 --- a/Modules/LibraryProject/PCLibProject.m +++ b/Modules/LibraryProject/PCLibProject.m @@ -129,19 +129,20 @@ - (NSArray *)sourceFileKeys { return [NSArray arrayWithObjects: - PCClasses, PCHeaders, PCOtherSources,nil]; + PCClasses, PCHeaders, PCOtherSources, + PCSubprojects, PCSupportingFiles, nil]; } - (NSArray *)resourceFileKeys { return [NSArray arrayWithObjects: - PCInterfaces, PCImages, PCOtherResources, nil]; + PCInterfaces, PCImages, PCOtherResources, PCDocuFiles, nil]; } - (NSArray *)otherKeys { return [NSArray arrayWithObjects: - PCDocuFiles, PCLibraries, PCSubprojects, PCSupportingFiles, nil]; + PCLibraries, PCNonProject, nil]; } - (NSArray *)allowableSubprojectTypes diff --git a/Modules/RenaissanceProject/PCRenaissanceProject.m b/Modules/RenaissanceProject/PCRenaissanceProject.m index b6de7a9..1e869c5 100644 --- a/Modules/RenaissanceProject/PCRenaissanceProject.m +++ b/Modules/RenaissanceProject/PCRenaissanceProject.m @@ -147,20 +147,20 @@ - (NSArray *)sourceFileKeys { return [NSArray arrayWithObjects: - PCClasses, PCHeaders, PCOtherSources, nil]; + PCClasses, PCHeaders, PCOtherSources, + PCSupportingFiles, PCSubprojects, nil]; } - (NSArray *)resourceFileKeys { return [NSArray arrayWithObjects: - PCInterfaces, PCImages, PCOtherResources, nil]; + PCInterfaces, PCImages, PCOtherResources, PCDocuFiles, nil]; } - (NSArray *)otherKeys { return [NSArray arrayWithObjects: - PCDocuFiles, PCLibraries, PCSubprojects, PCSupportingFiles, PCNonProject, - nil]; + PCLibraries, PCNonProject, nil]; } - (NSArray *)allowableSubprojectTypes diff --git a/Modules/ToolProject/PCToolProject.m b/Modules/ToolProject/PCToolProject.m index 7e3332a..5ab0e48 100644 --- a/Modules/ToolProject/PCToolProject.m +++ b/Modules/ToolProject/PCToolProject.m @@ -134,19 +134,19 @@ - (NSArray *)sourceFileKeys { return [NSArray arrayWithObjects: - PCClasses, PCHeaders, PCOtherSources, nil]; + PCClasses, PCHeaders, PCOtherSources, PCSupportingFiles, nil]; } - (NSArray *)resourceFileKeys { return [NSArray arrayWithObjects: - PCImages, PCOtherResources, nil]; + PCImages, PCOtherResources, PCDocuFiles, PCSubprojects, nil]; } - (NSArray *)otherKeys { return [NSArray arrayWithObjects: - PCSubprojects, PCLibraries, PCDocuFiles, PCSupportingFiles, nil]; + PCLibraries, PCNonProject, nil]; } - (NSArray *)allowableSubprojectTypes