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
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit