Revision: 27332
http://sourceforge.net/p/bibdesk/svn/27332
Author: hofman
Date: 2022-03-28 14:43:45 +0000 (Mon, 28 Mar 2022)
Log Message:
-----------
Return URL as display value for URL field, get image in datasource method
Modified Paths:
--------------
trunk/bibdesk/BibDocument_DataSource.m
trunk/bibdesk/BibItem.h
trunk/bibdesk/BibItem.m
Modified: trunk/bibdesk/BibDocument_DataSource.m
===================================================================
--- trunk/bibdesk/BibDocument_DataSource.m 2022-03-28 06:30:37 UTC (rev
27331)
+++ trunk/bibdesk/BibDocument_DataSource.m 2022-03-28 14:43:45 UTC (rev
27332)
@@ -161,13 +161,17 @@
[imageView setObjectValue:[value valueForKey:@"image"]];
} else if ([tcID isURLField]) {
// URL field
- BDSKASSERT(value == nil || [value isKindOfClass:[NSImage class]]);
- NSURL *url = [pub URLForField:tcID];
- [imageView setToolTip:[url isFileURL] ? [[url path]
stringByAbbreviatingWithTildeInPath] : [url absoluteString]];
- [imageView setObjectValue:value];
+ 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 : nil];
+ [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;
Modified: trunk/bibdesk/BibItem.h
===================================================================
--- trunk/bibdesk/BibItem.h 2022-03-28 06:30:37 UTC (rev 27331)
+++ trunk/bibdesk/BibItem.h 2022-03-28 14:43:45 UTC (rev 27332)
@@ -738,15 +738,6 @@
*/
@property (nonatomic, readonly) NSString *localUrlPath;
-/*!
- @method imageForURLField:
- @abstract Returns an icon representation of a URL field.
- @discussion (comprehensive description)
- @param field Needs to be a local or remote URL field.
- @result Returns nil if the item has an empty field, and returns a
question mark image if a file could not be found.
-*/
-- (NSImage *)imageForURLField:(NSString *)field;
-
// NSURL equivalents of the localFilePath... methods
- (NSURL *)localFileURLForField:(NSString *)field;
Modified: trunk/bibdesk/BibItem.m
===================================================================
--- trunk/bibdesk/BibItem.m 2022-03-28 06:30:37 UTC (rev 27331)
+++ trunk/bibdesk/BibItem.m 2022-03-28 14:43:45 UTC (rev 27332)
@@ -1356,19 +1356,19 @@
}
- (id)displayValueOfField:(NSString *)field{
- if([field isEqualToString:BDSKCiteKeyString]){
+ if ([field isEqualToString:BDSKCiteKeyString]) {
return [self citeKey];
- }else if([field isEqualToString:BDSKItemNumberString]){
+ } else if([field isEqualToString:BDSKItemNumberString]) {
return [self fileOrder];
- }else if([field isEqualToString: BDSKTitleString] ){
+ } else if([field isEqualToString: BDSKTitleString]) {
return [self displayTitle];
- }else if([field isEqualToString: BDSKContainerString] ){
+ } else if([field isEqualToString: BDSKContainerString]) {
return [self container];
- }else if([field isEqualToString: BDSKDateAddedString]){
+ } else if([field isEqualToString: BDSKDateAddedString]) {
return [[self dateAdded] shortDateDescription];
- }else if([field isEqualToString: BDSKDateModifiedString]){
+ } else if([field isEqualToString: BDSKDateModifiedString]) {
return [[self dateModified]shortDateDescription];
- }else if([field isEqualToString: BDSKPubDateString] ){
+ } else if([field isEqualToString: BDSKPubDateString]) {
NSDate *date = [self date];
if(nil == date)
return nil;
@@ -1380,48 +1380,48 @@
}
[formatter setDateFormat:[NSString isEmptyString:[self
valueOfField:BDSKMonthString]] ? @"yyyy" : @"MMM yyyy"];
return [formatter stringFromDate:date];
- }else if([field isEqualToString: BDSKFirstAuthorString] ){
+ } else if([field isEqualToString: BDSKFirstAuthorString]) {
return [[self authorAtIndex:0] displayName];
- }else if([field isEqualToString: BDSKSecondAuthorString] ){
+ } else if([field isEqualToString: BDSKSecondAuthorString]){
return [[self authorAtIndex:1] displayName];
- }else if([field isEqualToString: BDSKThirdAuthorString] ){
+ } else if([field isEqualToString: BDSKThirdAuthorString]){
return [[self authorAtIndex:2] displayName];
- }else if([field isEqualToString:BDSKLastAuthorString] ){
+ } else if([field isEqualToString:BDSKLastAuthorString]) {
return [[self lastAuthor] displayName];
- }else if([field isEqualToString: BDSKFirstAuthorEditorString] ){
+ } else if([field isEqualToString: BDSKFirstAuthorEditorString]) {
return [[self authorOrEditorAtIndex:0] displayName];
- }else if([field isEqualToString: BDSKSecondAuthorEditorString] ){
+ } else if([field isEqualToString: BDSKSecondAuthorEditorString]) {
return [[self authorOrEditorAtIndex:1] displayName];
- }else if([field isEqualToString: BDSKThirdAuthorEditorString] ){
+ } else if([field isEqualToString: BDSKThirdAuthorEditorString]) {
return [[self authorOrEditorAtIndex:2] displayName];
- }else if([field isEqualToString:BDSKLastAuthorEditorString] ){
+ } else if([field isEqualToString:BDSKLastAuthorEditorString]) {
return [[self lastAuthorOrEditor] displayName];
} else if([field isPersonField]) {
return [self peopleStringForDisplayFromField:field];
- } else if([field isEqualToString:BDSKAuthorEditorString]){
+ } else if([field isEqualToString:BDSKAuthorEditorString]) {
NSString *string = [self
peopleStringForDisplayFromField:BDSKAuthorString];
if ([NSString isEmptyString:string])
string = [self peopleStringForDisplayFromField:BDSKEditorString];
return string;
- }else if([field isURLField]){
- return [self imageForURLField:field];
- }else if([field isRatingField]){
+ } else if([field isURLField]) {
+ return [self URLForField:field];
+ } else if([field isRatingField]) {
return [NSNumber numberWithInteger:[self ratingValueOfField:field]];
- }else if([field isBooleanField]){
+ } else if([field isBooleanField]) {
return [NSNumber numberWithBool:[self boolValueOfField:field]];
- }else if([field isTriStateField]){
+ } else if([field isTriStateField]) {
return [NSNumber numberWithInteger:[self triStateValueOfField:field]];
- }else if([field isCitationField]){
+ } else if([field isCitationField]) {
return [[self valueOfField:field inherit:NO] expandedString];
- }else if([field isEqualToString:BDSKPubTypeString]){
+ } else if([field isEqualToString:BDSKPubTypeString]) {
return [self pubType];
- }else if([field isEqualToString:BDSKCrossrefString]){
+ } else if([field isEqualToString:BDSKCrossrefString]) {
return nil;
- }else if([field isEqualToString:BDSKImportOrderString]){
+ } else if([field isEqualToString:BDSKImportOrderString]) {
return nil;
- }else if([field isEqualToString:BDSKRelevanceString]){
+ } else if([field isEqualToString:BDSKRelevanceString]) {
return [NSNumber numberWithDouble:[self searchScore]];
- }else if([field isEqualToString:BDSKLocalFileString]){
+ } else if([field isEqualToString:BDSKLocalFileString]) {
NSArray *localFiles = [self localFiles];
NSUInteger count = [localFiles count];
NSDictionary *cellDictionary = nil;
@@ -1440,7 +1440,7 @@
cellDictionary = [NSDictionary dictionaryWithObjectsAndKeys:image,
@"image", label, @"string", toolTip, @"toolTip", nil];
}
return cellDictionary;
- }else if([field isEqualToString:BDSKRemoteURLString]){
+ } else if ([field isEqualToString:BDSKRemoteURLString]) {
NSUInteger count = [[self remoteURLs] count];
NSDictionary *cellDictionary = nil;
if (count > 0) {
@@ -1449,9 +1449,9 @@
cellDictionary = [NSDictionary
dictionaryWithObjectsAndKeys:[[NSWorkspace sharedWorkspace]
iconForFileType:NSFileTypeForHFSTypeCode(kGenericURLIcon)], @"image", label,
@"string", toolTip, @"toolTip", nil];
}
return cellDictionary;
- }else if([field isEqualToString:BDSKColorString] || [field
isEqualToString:BDSKColorLabelString]){
+ } else if ([field isEqualToString:BDSKColorString] || [field
isEqualToString:BDSKColorLabelString]) {
return [self color];
- }else{
+ } else {
// the tableColumn isn't something we handle in a custom way.
return [[self valueOfField:field] expandedString];
}
@@ -2788,18 +2788,6 @@
userInfo:notifInfo];
}
-- (NSImage *)imageForURLField:(NSString *)field{
- NSURL *url = [self URLForField:field];
- if (nil == url)
- return nil;
- else if ([field isRemoteURLField])
- return [NSImage imageForURL:url];
- else if ((url = [url fileURLByStrictlyResolvingAliases]) == nil)
- return [NSImage missingFileImage];
- else
- return [[NSWorkspace sharedWorkspace] iconForFileType:[url
pathExtension]];
-}
-
- (NSURL *)URLForField:(NSString *)field{
return ([field isLocalFileField] ? [self localFileURLForField:field] :
[self remoteURLForField:field]);
}
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