Revision: 27275
          http://sourceforge.net/p/bibdesk/svn/27275
Author:   hofman
Date:     2022-03-07 10:18:30 +0000 (Mon, 07 Mar 2022)
Log Message:
-----------
combine getting and comparing change count

Modified Paths:
--------------
    trunk/bibdesk/BDSKItemPasteboardHelper.m

Modified: trunk/bibdesk/BDSKItemPasteboardHelper.m
===================================================================
--- trunk/bibdesk/BDSKItemPasteboardHelper.m    2022-03-07 10:11:36 UTC (rev 
27274)
+++ trunk/bibdesk/BDSKItemPasteboardHelper.m    2022-03-07 10:18:30 UTC (rev 
27275)
@@ -49,12 +49,12 @@
 
 - (BOOL)pasteboardIsValid:(NSPasteboard *)pboard;
 - (NSMutableArray *)promisedTypesForPasteboard:(NSPasteboard *)pboard;
-- (NSInteger)promisedChangeCountForPasteboard:(NSPasteboard *)pboard;
 - (BDSKDragCopyType)promisedDragCopyTypeForPasteboard:(NSPasteboard *)pboard;
 - (NSString *)promisedBibTeXStringForPasteboard:(NSPasteboard *)pboard;
 - (NSArray *)promisedCiteKeysForPasteboard:(NSPasteboard *)pboard;
 - (void)setPromisedTypes:(NSMutableArray *)types items:(NSArray *)items 
dragCopyType:(BDSKDragCopyType)dragCopyType forPasteboard:(NSPasteboard 
*)pboard;
 - (void)setChangeCountForPasteboard:(NSPasteboard *)pboard;
+- (BOOL)isProviderForPasteboard:(NSPasteboard *)pboard;
 - (void)removePromisedType:(NSString *)type forPasteboard:(NSPasteboard 
*)pboard;
 - (void)removePromisedTypesForPasteboard:(NSPasteboard *)pboard;
 
@@ -88,7 +88,7 @@
             NSArray *items = [self promisedItemsForPasteboard:pboard];
             if (items == nil) continue;
             if ([[self promisedTypesForPasteboard:pboard] 
containsObject:BDSKPasteboardTypePublications]) {
-                if ([pboard changeCount] == [self 
promisedChangeCountForPasteboard:pboard])
+                if ([self isProviderForPasteboard:pboard])
                     [self pasteboard:pboard item:pasteboardItemForType(pboard, 
BDSKPasteboardTypePublications) 
provideDataForType:BDSKPasteboardTypePublications];
                 else
                     [self removePromisedType:BDSKPasteboardTypePublications 
forPasteboard:pboard];
@@ -279,7 +279,7 @@
 
 - (void)clearPromisedTypesForPasteboard:(NSPasteboard *)pboard {
     for (NSString *type in [[[self promisedTypesForPasteboard:pboard] copy] 
autorelease]) {
-        if ([pboard changeCount] == [self 
promisedChangeCountForPasteboard:pboard]) {
+        if ([self isProviderForPasteboard:pboard]) {
             @try {
                 // can raise NSPasteboardCommunicationException
                 [pasteboardItemForType(pboard, type) setData:[NSData data] 
forType:type];
@@ -331,10 +331,6 @@
        return [self pasteboardIsValid:pboard] ? [[promisedPboardTypes 
objectForKey:[pboard name]] objectForKey:@"types"] : nil;
 }
 
-- (NSInteger)promisedChangeCountForPasteboard:(NSPasteboard *)pboard {
-    return [self pasteboardIsValid:pboard] ? [[[promisedPboardTypes 
objectForKey:[pboard name]] objectForKey:@"changeCount"] integerValue] : 0;
-}
-
 - (BDSKDragCopyType)promisedDragCopyTypeForPasteboard:(NSPasteboard *)pboard {
     return [self pasteboardIsValid:pboard] ? [[[promisedPboardTypes 
objectForKey:[pboard name]] objectForKey:@"dragCopyType"] integerValue] : -1;
 }
@@ -374,6 +370,10 @@
         [[promisedPboardTypes objectForKey:[pboard name]] setObject:[NSNumber 
numberWithInteger:[pboard changeCount]] forKey:@"changeCount"];
 }
 
+- (BOOL)isProviderForPasteboard:(NSPasteboard *)pboard {
+    return [pboard changeCount] == [[[promisedPboardTypes objectForKey:[pboard 
name]] objectForKey:@"changeCount"] integerValue];
+}
+
 - (void)removePromisedType:(NSString *)type forPasteboard:(NSPasteboard 
*)pboard {
        NSMutableArray *types = [self promisedTypesForPasteboard:pboard];
        [types removeObject:type];

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

Reply via email to