Revision: 28858 http://sourceforge.net/p/bibdesk/svn/28858 Author: hofman Date: 2024-04-07 08:47:57 +0000 (Sun, 07 Apr 2024) Log Message: ----------- rebuild fields before setting them
Modified Paths: -------------- trunk/bibdesk/BDSKTextImportController.m Modified: trunk/bibdesk/BDSKTextImportController.m =================================================================== --- trunk/bibdesk/BDSKTextImportController.m 2024-04-07 08:33:14 UTC (rev 28857) +++ trunk/bibdesk/BDSKTextImportController.m 2024-04-07 08:47:57 UTC (rev 28858) @@ -718,36 +718,37 @@ [self updateTypeAndFields]; } -- (void)updateTypeAndFields{ +- (void)updateTypeAndFields { NSString *type = [[self publication] pubType]; - NSInteger editedRow = [itemTableView editedTextRow]; - NSString *editedField = nil; - if (editedRow != -1) { - [[self window] makeFirstResponder:nil]; - editedField = [fields objectAtIndex:editedRow]; - } - [itemTypeButton selectItemWithTitle:type]; + NSMutableArray *newFields = [NSMutableArray array]; + NSMutableArray *extraFields = [NSMutableArray array]; + NSSet *ignoredFields = [NSSet setWithObjects:BDSKDateAddedString, BDSKDateModifiedString, BDSKColorString, nil]; BDSKTypeManager *typeMan = [BDSKTypeManager sharedManager]; - - [fields removeAllObjects]; - [fields addObjectsFromArray:[typeMan standardFieldsForType:type]]; - [fields addNonDuplicateObjectsFromArray:@[BDSKAbstractString, BDSKAnnoteString]]; + [newFields addObjectsFromArray:[typeMan standardFieldsForType:type]]; + [newFields addNonDuplicateObjectsFromArray:@[BDSKAbstractString, BDSKAnnoteString]]; - NSMutableArray *extraFields = [NSMutableArray array]; - NSSet *ignoredFields = [NSSet setWithObjects:BDSKDateAddedString, BDSKDateModifiedString, BDSKColorString, nil]; [[[self publication] pubFields] enumerateKeysAndObjectsUsingBlock:^(NSString *fieldName, NSString *value, BOOL *stop){ - if ([NSString isEmptyAsComplexString:value] == NO && [fields containsObject:fieldName] == NO && [ignoredFields containsObject:fieldName] == NO) + if ([NSString isEmptyAsComplexString:value] == NO && [newFields containsObject:fieldName] == NO && [ignoredFields containsObject:fieldName] == NO) [extraFields addObject:fieldName]; }]; if ([extraFields count]) { [extraFields sortUsingSelector:@selector(caseInsensitiveNumericCompare:)]; - [fields addObjectsFromArray:extraFields]; + [newFields addObjectsFromArray:extraFields]; } + NSInteger editedRow = [itemTableView editedTextRow]; + NSString *editedField = nil; + if (editedRow != -1) { + [[self window] makeFirstResponder:nil]; + editedField = [fields objectAtIndex:editedRow]; + } + + [fields setArray:newFields]; + [self updateColumnWidths]; [itemTableView reloadData]; @@ -1374,10 +1375,10 @@ } NSString *bibtexType = [typeMan bibTeXTypeForDublinCoreType:[metaTagDict objectForKey:@"DC.type"]] ?: BDSKMiscString; - if ([[item pubType] isEqualToString:bibtexType]) + if ([[item pubType] isEqualToString:bibtexType] == NO) + [item setPubType:bibtexType]; + else [self updateTypeAndFields]; - else - [item setPubType:bibtexType]; } - (void)autoDiscoverDataFromFrame:(WebFrame *)frame{ @@ -1489,7 +1490,7 @@ - (void)autoDiscoverFromStringWithPublication:(BibItem *)pub { BibItem *item = [self publication]; [item setPubFields:[pub pubFields]]; - if ([[item pubType] isEqualToString:[pub pubType]]) + if ([[item pubType] isEqualToString:[pub pubType]] == NO) [item setPubType:[pub pubType]]; else [self updateTypeAndFields]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Bibdesk-commit mailing list Bibdesk-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bibdesk-commit