Author: rmottola
Date: Thu Mar 10 17:45:36 2016
New Revision: 39519
URL: http://svn.gna.org/viewcvs/gnustep?rev=39519&view=rev
Log:
Traverse links to get thumbnails inside linked folders, mark direct symlinked
folders and images with a link icon
Modified:
apps/gworkspace/trunk/ChangeLog
apps/gworkspace/trunk/FSNode/FSNodeRepIcons.m
Modified: apps/gworkspace/trunk/ChangeLog
URL:
http://svn.gna.org/viewcvs/gnustep/apps/gworkspace/trunk/ChangeLog?rev=39519&r1=39518&r2=39519&view=diff
==============================================================================
--- apps/gworkspace/trunk/ChangeLog (original)
+++ apps/gworkspace/trunk/ChangeLog Thu Mar 10 17:45:36 2016
@@ -1,3 +1,8 @@
+2016-03-10 Riccardo Mottola <[email protected]>
+
+ * FSNode/FSNodeRepIcons.m (iconOfSize: forNode:)
+ Traverse links to get thumbnails inside linked folders, mark direct
symlinked folders and images with a link icon.
+
2016-03-10 Wolfgang Lux <[email protected]>
* Inspector/aclocal.m4 (AC_CHECK_PDFKIT):
Modified: apps/gworkspace/trunk/FSNode/FSNodeRepIcons.m
URL:
http://svn.gna.org/viewcvs/gnustep/apps/gworkspace/trunk/FSNode/FSNodeRepIcons.m?rev=39519&r1=39518&r2=39519&view=diff
==============================================================================
--- apps/gworkspace/trunk/FSNode/FSNodeRepIcons.m (original)
+++ apps/gworkspace/trunk/FSNode/FSNodeRepIcons.m Thu Mar 10 17:45:36 2016
@@ -157,7 +157,7 @@
key = nodepath;
}
}
-
+
if (key != nil)
{
icon = [self cachedIconOfSize: size forKey: key];
@@ -168,7 +168,19 @@
{
baseIcon = [ws iconForFile: nodepath];
}
-
+
+ if ([node isLink])
+ {
+ NSImage *linkIcon;
+
+ linkIcon = [NSImage imageNamed:@"common_linkCursor"];
+ baseIcon = [baseIcon copy];
+ [baseIcon lockFocus];
+ [linkIcon compositeToPoint:NSMakePoint(0,0)
operation:NSCompositeSourceOver];
+ [baseIcon unlockFocus];
+ [baseIcon autorelease];
+ }
+
icon = [self cachedIconOfSize: size forKey: key addBaseIcon:
baseIcon];
}
}
@@ -178,10 +190,25 @@
{ // NOT DIRECTORY
if (usesThumbnails)
{
- icon = [self thumbnailForPath: nodepath];
+ NSString *realPath;
+
+ realPath = [nodepath stringByResolvingSymlinksInPath];
+ icon = [self thumbnailForPath: realPath];
if (icon) {
NSSize icnsize = [icon size];
+
+ if ([node isLink])
+ {
+ NSImage *linkIcon;
+
+ linkIcon = [NSImage imageNamed:@"common_linkCursor"];
+ icon = [icon copy];
+ [icon lockFocus];
+ [linkIcon compositeToPoint:NSMakePoint(0,0)
operation:NSCompositeSourceOver];
+ [icon unlockFocus];
+ [icon autorelease];
+ }
if ((icnsize.width > size) || (icnsize.height > size))
{
@@ -208,6 +235,17 @@
if (icon == nil)
{
baseIcon = [ws iconForFile: nodepath];
+ if ([node isLink])
+ {
+ NSImage *linkIcon;
+
+ linkIcon = [NSImage imageNamed:@"common_linkCursor"];
+ baseIcon = [baseIcon copy];
+ [baseIcon lockFocus];
+ [linkIcon compositeToPoint:NSMakePoint(0,0)
operation:NSCompositeSourceOver];
+ [baseIcon unlockFocus];
+ [baseIcon autorelease];
+ }
icon = [self cachedIconOfSize: size forKey: key addBaseIcon:
baseIcon];
}
}
@@ -224,7 +262,7 @@
icon = [self resizedIcon: icon ofSize: size];
}
}
-
+
return icon;
}
_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs