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

Reply via email to