Revision: 27356
          http://sourceforge.net/p/bibdesk/svn/27356
Author:   hofman
Date:     2022-04-05 14:12:05 +0000 (Tue, 05 Apr 2022)
Log Message:
-----------
Use custom cell image if provided for URL fields

Modified Paths:
--------------
    trunk/bibdesk/BibDocument_DataSource.m

Modified: trunk/bibdesk/BibDocument_DataSource.m
===================================================================
--- trunk/bibdesk/BibDocument_DataSource.m      2022-04-05 06:30:20 UTC (rev 
27355)
+++ trunk/bibdesk/BibDocument_DataSource.m      2022-04-05 14:12:05 UTC (rev 
27356)
@@ -153,26 +153,36 @@
             else
                 [textField setTextColor:[NSColor controlTextColor]];
             [textField setObjectValue:value];
-        } else if (textField != nil){
+        } else if (textField == nil) {
+            NSImage *image = nil;
+            if ([value isNotEmpty]) {
+                image = [tableView cellImageForField:tcID];
+                BDSKASSERT(image != nil || [value isKindOfClass:[NSURL 
class]]);
+                if ([value isKindOfClass:[NSURL class]]) {
+                    // URL field
+                    [imageView setToolTip:[value isFileURL] ? [[value path] 
stringByAbbreviatingWithTildeInPath] : [value absoluteString]];
+                    if (image == nil) {
+                        if ([value isFileURL] == NO)
+                            image =  [NSImage imageForURL:value];
+                        else if ((value = [value 
fileURLByStrictlyResolvingAliases]))
+                            image = [[NSWorkspace sharedWorkspace] 
iconForFileType:[value pathExtension]];
+                        else
+                            image = [NSImage missingFileImage];
+                    }
+                } else {
+                    // field with custom cell image, e.g. a note field
+                    [imageView setToolTip:[value isKindOfClass:[NSString 
class]] ? value : [value isKindOfClass:[NSDictionary class]] ? [value 
objectForKey:@"toolTip"] : nil];
+                }
+            } else {
+                [imageView setToolTip:nil];
+            }
+            [imageView setObjectValue:image];
+        } else {
             // linked files and URLs
             BDSKASSERT(value == nil || [value isKindOfClass:[NSDictionary 
class]]);
             [view setToolTip:[value valueForKey:@"toolTip"]];
             [textField setObjectValue:[value valueForKey:@"string"]];
             [imageView setObjectValue:[value valueForKey:@"image"]];
-        } else if ([tcID isURLField]) {
-            // URL field
-            BDSKASSERT(value == nil || [value isKindOfClass:[NSURL class]]);
-            [imageView setToolTip:[value isFileURL] ? [[value path] 
stringByAbbreviatingWithTildeInPath] : [value absoluteString]];
-            if ([value isFileURL] == NO)
-                [imageView setObjectValue:value ? [NSImage imageForURL:value] 
: nil];
-            else if ((value = [value fileURLByStrictlyResolvingAliases]))
-                [imageView setObjectValue:[[NSWorkspace sharedWorkspace] 
iconForFileType:[value pathExtension]]];
-            else
-                [imageView setObjectValue:[NSImage missingFileImage]];
-        } else {
-            // content is overridden by cell image
-            [imageView setToolTip:[value isKindOfClass:[NSString class]] ? 
value : [value isKindOfClass:[NSDictionary class]] ? [value 
objectForKey:@"toolTip"] : nil];
-            [imageView setObjectValue:[value isNotEmpty] ? [tableView 
cellImageForField:tcID] : nil];
         }
         return view;
     } else {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to