diff --git a/ChangeLog b/ChangeLog index 68b1ff272..2ca2586cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,7 @@ * Source/NSWorkspace.m: Add support for generic application icon. Reduce private method name pollution a little. * Images/common_UnknownApplication.tiff: copied from WM ... + * Images/common_UnknownTool.tiff: similar image for unix cmd-line tools. 2003-05-05 Michael Hanni diff --git a/Images/GNUmakefile b/Images/GNUmakefile index b4f2dc1bb..006377f53 100644 --- a/Images/GNUmakefile +++ b/Images/GNUmakefile @@ -86,6 +86,7 @@ common_WMClose.tiff \ common_WMCloseBroken.tiff \ common_Unknown.tiff \ common_UnknownApplication.tiff \ +common_UnknownTool.tiff \ common_Folder.tiff \ common_Root_PC.tiff \ common_Root_SGI.tiff \ diff --git a/Images/common_UnknownTool.tiff b/Images/common_UnknownTool.tiff new file mode 100644 index 000000000..e21da63cd Binary files /dev/null and b/Images/common_UnknownTool.tiff differ diff --git a/Source/NSWorkspace.m b/Source/NSWorkspace.m index 74061a2ba..7c8b3f740 100644 --- a/Source/NSWorkspace.m +++ b/Source/NSWorkspace.m @@ -60,7 +60,8 @@ static NSImage *folderImage = nil; static NSImage *homeImage = nil; static NSImage *multipleFiles = nil; static NSImage *rootImage = nil; -static NSImage *unknownApp = nil; +static NSImage *unknownApplication = nil; +static NSImage *unknownTool = nil; static NSString *GSWorkspaceNotification = @"GSWorkspaceNotification"; @@ -931,6 +932,31 @@ inFileViewerRootedAtPath: (NSString*)rootFullpath NSDebugLog(@"pathExtension is '%@'", pathExtension); image = [self _iconForExtension: pathExtension]; + if (image == nil || image == [self unknownFiletypeImage]) + { + NSFileManager *mgr; + + mgr = [NSFileManager defaultManager]; + if ([mgr isExecutableFileAtPath: fullPath] == YES) + { + NSDictionary *attributes; + NSString *fileType; + + attributes = [mgr fileAttributesAtPath: fullPath + traverseLink: YES]; + fileType = [attributes objectForKey: NSFileType]; + if ([fileType isEqual: NSFileTypeRegular] == YES) + { + if (unknownTool == nil) + { + unknownTool = RETAIN([self _getImageWithName: + @"UnknownTool.tiff" alternate: + @"common_UnknownTool.tiff"]); + } + image = unknownTool; + } + } + } } if (image == nil) @@ -1656,13 +1682,13 @@ inFileViewerRootedAtPath: (NSString*)rootFullpath || [ext isEqualToString: @"debug"] == YES || [ext isEqualToString: @"profile"] == YES) { - if (unknownApp == nil) + if (unknownApplication == nil) { - unknownApp = RETAIN([self _getImageWithName: + unknownApplication = RETAIN([self _getImageWithName: @"UnknownApplication.tiff" alternate: @"common_UnknownApplication.tiff"]); } - icon = unknownApp; + icon = unknownApplication; } else {