Revision: 27667
          http://sourceforge.net/p/bibdesk/svn/27667
Author:   hofman
Date:     2022-07-01 14:17:34 +0000 (Fri, 01 Jul 2022)
Log Message:
-----------
Rename method. Also update cell views for author columns when name display 
changes

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

Modified: trunk/bibdesk/BibDocument_DataSource.h
===================================================================
--- trunk/bibdesk/BibDocument_DataSource.h      2022-07-01 09:48:02 UTC (rev 
27666)
+++ trunk/bibdesk/BibDocument_DataSource.h      2022-07-01 14:17:34 UTC (rev 
27667)
@@ -56,6 +56,6 @@
 
 - (void)publication:(BibItem *)publication deleteURLsAtIndexes:(NSIndexSet 
*)indexSet moveToTrash:(NSInteger)moveToTrash;
 
-- (void)updateView:(NSTableCellView *)view forTableColumnIdentifier:(NSString 
*)tcID item:(BibItem *)pub;
+- (void)updateView:(NSTableCellView *)view forField:(NSString *)field 
ofItem:(BibItem *)pub;
 
 @end

Modified: trunk/bibdesk/BibDocument_DataSource.m
===================================================================
--- trunk/bibdesk/BibDocument_DataSource.m      2022-07-01 09:48:02 UTC (rev 
27666)
+++ trunk/bibdesk/BibDocument_DataSource.m      2022-07-01 14:17:34 UTC (rev 
27667)
@@ -181,8 +181,8 @@
     }
 }
 
-- (void)updateView:(NSTableCellView *)view forTableColumnIdentifier:(NSString 
*)tcID item:(BibItem *)pub {
-    id value = [pub displayValueOfField:tcID];
+- (void)updateView:(NSTableCellView *)view forField:(NSString *)field 
ofItem:(BibItem *)pub {
+    id value = [pub displayValueOfField:field];
     NSTextField *textField = [view textField];
     NSImageView *imageView = [view imageView];
     if (textField == nil && imageView == nil) {
@@ -190,7 +190,7 @@
         BDSKASSERT([view isKindOfClass:[BDSKControlTableCellView class]]);
         BDSKASSERT(value == nil || [value isKindOfClass:[NSNumber class]] || 
[value isKindOfClass:[NSColor class]]);
         NSControl *control = [(BDSKControlTableCellView *)view control];
-        if ([tcID isEqualToString:BDSKImportOrderString]) {
+        if ([field isEqualToString:BDSKImportOrderString]) {
             if ([pub isImported]) {
                 [control setEnabled:NO];
                 [control setToolTip:nil];
@@ -198,7 +198,7 @@
                 [control setEnabled:YES];
                 [control setToolTip:NSLocalizedString(@"Click to import this 
item", @"Tool tip message")];
             }
-        } else if ([tcID isEqualToString:BDSKCrossrefString]) {
+        } else if ([field isEqualToString:BDSKCrossrefString]) {
             BibItem *parent = [pub crossrefParent];
             if (parent) {
                 [control setEnabled:YES];
@@ -208,7 +208,7 @@
                 [(NSButton *)control setImage:nil];
             }
             [control setToolTip:[parent citeKey]];
-        } else if ([tcID isBooleanField] || [tcID isTriStateField]) {
+        } else if ([field isBooleanField] || [field isTriStateField]) {
             [control setEnabled:[self 
hasGroupTypeSelected:BDSKExternalGroupType] == NO];
         }
         [control setObjectValue:value];
@@ -216,7 +216,7 @@
         // generic text field
         // value can be an NSNumber for Item Number
         // possibly reset red color from invalid cite key, can be reused for 
any text field
-        if ([tcID isEqualToString:BDSKCiteKeyString] && [pub 
isValidCiteKey:[pub citeKey]] == NO)
+        if ([field isEqualToString:BDSKCiteKeyString] && [pub 
isValidCiteKey:[pub citeKey]] == NO)
             [textField setTextColor:[NSColor systemRedColor]];
         else
             [textField setTextColor:[NSColor controlTextColor]];
@@ -224,7 +224,7 @@
     } else if (textField == nil) {
         NSImage *image = nil;
         if ([value isNotEmpty]) {
-            image = [tableView cellImageForField:tcID];
+            image = [tableView cellImageForField:field];
             BDSKASSERT(image != nil || [value isKindOfClass:[NSURL class]]);
             if ([value isKindOfClass:[NSURL class]]) {
                 // URL field
@@ -255,14 +255,12 @@
 }
 
 - (NSView *)tableView:(NSTableView *)tv viewForTableColumn:(NSTableColumn 
*)tableColumn row:(NSInteger)row {
-    NSString *tcID = [tableColumn identifier];
     if (tv == tableView) {
         NSTableCellView *view = [tableView makeViewForTableColumn:tableColumn 
owner:self];
-        BibItem *pub = [[self shownPublications] objectAtIndex:row];
-        [self updateView:view forTableColumnIdentifier:tcID item:pub];
+        [self updateView:view forField:[tableColumn identifier] ofItem:[[self 
shownPublications] objectAtIndex:row]];
         return view;
     } else {
-        return [tv makeViewWithIdentifier:tcID owner:nil];
+        return [tv makeViewWithIdentifier:[tableColumn identifier] owner:self];
     }
 }
 

Modified: trunk/bibdesk/BibDocument_UI.m
===================================================================
--- trunk/bibdesk/BibDocument_UI.m      2022-07-01 09:48:02 UTC (rev 27666)
+++ trunk/bibdesk/BibDocument_UI.m      2022-07-01 14:17:34 UTC (rev 27667)
@@ -1375,7 +1375,7 @@
                 // groups and quicksearch won't update for us
                 [self sortPubsByKey:nil];
             } else {
-                NSArray *colIDs = [[tableView tableColumns] 
valueForKey:@"identifier"];
+                NSArray *colIDs = [tableView tableColumnIdentifiers];
                 for (BibItem *aPub in changedPublications) {
                     NSUInteger row = [shownPublications indexOfObject:aPub];
                     if (row == NSNotFound) continue;
@@ -1382,7 +1382,7 @@
                     [colIDs enumerateObjectsUsingBlock:^(NSString *colID, 
NSUInteger column, BOOL *stop){
                         NSTableCellView *view = [tableView viewAtColumn:column 
row:row makeIfNecessary:NO];
                         if (view)
-                            [self updateView:view 
forTableColumnIdentifier:colID item:aPub];
+                            [self updateView:view forField:colID ofItem:aPub];
                     }];
                 }
             }
@@ -1829,16 +1829,18 @@
         if ([key isEqualToString:BDSKIgnoredSortTermsKey]) {
             [self sortPubsByKey:nil];
         } else if ([key isEqualToString:BDSKAuthorNameDisplayKey]) {
-            NSIndexSet *rowIndexes = [NSIndexSet 
indexSetWithIndexesInRange:NSMakeRange(0, [tableView numberOfRows])];
-            NSMutableIndexSet *colIndexes = [NSMutableIndexSet indexSet];
             static NSSet *authorColumns = nil;
             if (authorColumns == nil)
                 authorColumns = [[NSSet alloc] 
initWithObjects:BDSKFirstAuthorString, BDSKSecondAuthorString, 
BDSKThirdAuthorString, BDSKLastAuthorString, BDSKAuthorEditorString, 
BDSKFirstAuthorEditorString, BDSKSecondAuthorEditorString, 
BDSKThirdAuthorEditorString, BDSKLastAuthorEditorString, nil];
-            [[tableView tableColumnIdentifiers] 
enumerateObjectsUsingBlock:^(NSString *tcID, NSUInteger idx, BOOL *stop){
-                if ([tcID isPersonField] || [authorColumns 
containsObject:tcID])
-                    [colIndexes addIndex:idx];
+            [[tableView tableColumnIdentifiers] 
enumerateObjectsUsingBlock:^(NSString *tcID, NSUInteger column, BOOL *stop){
+                if ([tcID isPersonField] || [authorColumns 
containsObject:tcID]) {
+                    [shownPublications enumerateObjectsUsingBlock:^(BibItem 
*item, NSUInteger row, BOOL *stop1){
+                        NSTableCellView *view = [tableView viewAtColumn:column 
row:row makeIfNecessary:NO];
+                        if (view)
+                            [self updateView:view forField:tcID ofItem:item];
+                    }];
+                }
             }];
-            [tableView reloadDataForRowIndexes:rowIndexes 
columnIndexes:colIndexes];
             for (BDSKCategoryParentGroup *group in [groups categoryParents]) {
                 if ([[group key] isPersonField] && [groupOutlineView 
isItemExpanded:group]) {
                     for (BDSKGroup *catGroup in [group categoryGroups])

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