From: Christiaan H. <ho...@us...> - 2005-02-28 20:46:16
|
Update of /cvsroot/bibdesk/bibdesk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3716 Modified Files: BibItem.h BibItem.m Log Message: Update/copy complex string values when the owner or macroresolver changes. Index: BibItem.h =================================================================== RCS file: /cvsroot/bibdesk/bibdesk/BibItem.h,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** BibItem.h 26 Feb 2005 07:56:23 -0000 1.44 --- BibItem.h 28 Feb 2005 20:46:00 -0000 1.45 *************** *** 243,246 **** --- 243,260 ---- /*! + @method copyComplexStringValues + @abstract Copies all field values which are complex strings. + @discussion - + */ + - (void)copyComplexStringValues; + + /*! + @method updateComplexStringValues + @abstract Updates the macroResolver for all field values which are complex strings. + @discussion - + */ + - (void)updateComplexStringValues; + + /*! @method updateMetadataForKey @abstract updates derived info from the dictionary Index: BibItem.m =================================================================== RCS file: /cvsroot/bibdesk/bibdesk/BibItem.m,v retrieving revision 1.151 retrieving revision 1.152 diff -C2 -d -r1.151 -r1.152 *** BibItem.m 26 Feb 2005 07:56:23 -0000 1.151 --- BibItem.m 28 Feb 2005 20:46:00 -0000 1.152 *************** *** 110,114 **** --- 110,117 ---- [theCopy setPubFields: pubFields]; + [theCopy copyComplexStringValues]; + [theCopy setRequiredFieldNames: requiredFieldNames]; + return theCopy; } *************** *** 220,224 **** - (void)setDocument:(BibDocument *)newDocument { ! document = newDocument; } --- 223,230 ---- - (void)setDocument:(BibDocument *)newDocument { ! if (document != newDocument) { ! document = newDocument; ! [self updateComplexStringValues]; ! } } *************** *** 652,655 **** --- 658,690 ---- } + - (void)copyComplexStringValues{ + NSEnumerator *fEnum = [pubFields keyEnumerator]; + NSString *field; + NSString *value; + BDSKComplexString *complexValue; + + while (field = [fEnum nextObject]) { + value = [pubFields objectForKey:field]; + if ([value isKindOfClass:[BDSKComplexString class]]) { + complexValue = [[(BDSKComplexString*)value copy] autorelease]; + [complexValue setMacroResolver:[self document]]; + [pubFields setObject:complexValue forKey:field]; + } + } + } + + - (void)updateComplexStringValues{ + NSEnumerator *fEnum = [pubFields keyEnumerator]; + NSString *field; + NSString *value; + + while (field = [fEnum nextObject]) { + value = [pubFields objectForKey:field]; + if ([value isKindOfClass:[BDSKComplexString class]]) { + [(BDSKComplexString*)value setMacroResolver:[self document]]; + } + } + } + - (void)updateMetadataForKey:(NSString *)key{ |