Revision: 29350 http://sourceforge.net/p/bibdesk/svn/29350 Author: hofman Date: 2025-07-24 14:39:30 +0000 (Thu, 24 Jul 2025) Log Message: ----------- macro to set bit in mask if needed
Modified Paths: -------------- trunk/bibdesk/BibDocument_UI.m Modified: trunk/bibdesk/BibDocument_UI.m =================================================================== --- trunk/bibdesk/BibDocument_UI.m 2025-07-24 14:12:25 UTC (rev 29349) +++ trunk/bibdesk/BibDocument_UI.m 2025-07-24 14:39:30 UTC (rev 29350) @@ -1401,6 +1401,8 @@ docFlags.itemChangeMask = 0; } +#define SET_ITEMCHANGEMASK_BIT(maskbit, condition) if ((docFlags.itemChangeMask & BDSKItemChanged##maskbit##Mask) == 0 && (condition)) docFlags.itemChangeMask |= BDSKItemChanged##maskbit##Mask + - (void)handleBibItemChangedNotification:(NSNotification *)notification{ BibItem *pub = [notification object]; @@ -1493,18 +1495,12 @@ if (docFlags.isDocumentClosed == NO) { if (isEdit == NO) { - if ((docFlags.itemChangeMask & BDSKItemChangedGroupFieldMask) == 0 && groupFieldsDependOnKey([self currentGroupFields], changedKey)) - docFlags.itemChangeMask |= BDSKItemChangedGroupFieldMask; - if ((docFlags.itemChangeMask & BDSKItemChangedSmartGroupMask) == 0 && smartGroupsDependOnKey([[groups smartGroups] valueForKeyPath:@"@distinctUnionOfArrays.filter.conditions.key"], changedKey)) - docFlags.itemChangeMask |= BDSKItemChangedSmartGroupMask; - if ((docFlags.itemChangeMask & BDSKItemChangedSortKeyMask) == 0 && (sortKeyDependsOnKey(sortKey, changedKey) || sortKeyDependsOnKey(previousSortKey, changedKey))) - docFlags.itemChangeMask |= BDSKItemChangedSortKeyMask; - if ((docFlags.itemChangeMask & BDSKItemChangedSearchKeyMask) == 0 && [self displaysControlView:BDSKControlViewSearch] && searchKeyDependsOnKey([searchButtonBar selectedIdentifier], changedKey)) - docFlags.itemChangeMask |= BDSKItemChangedSearchKeyMask; - if ((docFlags.itemChangeMask & BDSKItemChangedFilesMask) == 0 && ([changedKey isEqualToString:BDSKLocalFileString] || [changedKey isEqualToString:BDSKRemoteURLString] || - (docFlags.showingURLFields && ([changedKey isEqualToString:BDSKLocalUrlString] || [changedKey isEqualToString:BDSKUrlString])))) - docFlags.itemChangeMask |= BDSKItemChangedFilesMask; - docFlags.itemChangeMask |= BDSKItemChangedFieldMask; + SET_ITEMCHANGEMASK_BIT(GroupField, groupFieldsDependOnKey([self currentGroupFields], changedKey)); + SET_ITEMCHANGEMASK_BIT(SmartGroup, smartGroupsDependOnKey([[groups smartGroups] valueForKeyPath:@"@distinctUnionOfArrays.filter.conditions.key"], changedKey)); + SET_ITEMCHANGEMASK_BIT(SortKey, sortKeyDependsOnKey(sortKey, changedKey) || sortKeyDependsOnKey(previousSortKey, changedKey)); + SET_ITEMCHANGEMASK_BIT(SearchKey, [self displaysControlView:BDSKControlViewSearch] && searchKeyDependsOnKey([searchButtonBar selectedIdentifier], changedKey)); + SET_ITEMCHANGEMASK_BIT(Files, [changedKey isEqualToString:BDSKLocalFileString] || [changedKey isEqualToString:BDSKRemoteURLString] || (docFlags.showingURLFields && ([changedKey isEqualToString:BDSKLocalUrlString] || [changedKey isEqualToString:BDSKUrlString]))); + SET_ITEMCHANGEMASK_BIT(Field, YES); // queue for UI updating, in case the item is changed as part of a batch process such as Find & Replace or AutoFile [self performSelectorOnce:@selector(handlePrivateBibItemChanged) withObject:nil afterDelay:0.0]; 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