Revision: 29683
          http://sourceforge.net/p/bibdesk/svn/29683
Author:   hofman
Date:     2025-10-06 21:42:18 +0000 (Mon, 06 Oct 2025)
Log Message:
-----------
update copy as and share submenus in contextual menu lazily, the delegate 
should be pased on to the copy

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

Modified: trunk/bibdesk/BibDocument_UI.m
===================================================================
--- trunk/bibdesk/BibDocument_UI.m      2025-10-06 21:18:22 UTC (rev 29682)
+++ trunk/bibdesk/BibDocument_UI.m      2025-10-06 21:42:18 UTC (rev 29683)
@@ -704,16 +704,6 @@
 
 #pragma mark Template Menu
 
-static BOOL menuHasNoValidItems(id validator, NSMenu *menu) {
-    NSInteger i = [menu numberOfItems];
-       while (--i >= 0) {
-        NSMenuItem *item = [menu itemAtIndex:i];
-        if ([item isSeparatorItem] == NO && [validator validateMenuItem:item])
-            return NO;
-    }
-    return YES;
-}
-
 static void removeInvalidItemsFromMenu(id validator, NSMenu *menu) {
     // kick out every item we won't need:
     NSInteger i = [menu numberOfItems];
@@ -722,7 +712,7 @@
     
     while (--i >= 0) {
         NSMenuItem *item = [menu itemAtIndex:i];
-        if (wasAlternate == NO && (([item isSeparatorItem] == NO && [validator 
validateMenuItem:item] == NO) || ((wasSeparator || i == 0) && [item 
isSeparatorItem]) || ([item submenu] && menuHasNoValidItems(validator, [item 
submenu])) || ([item view] && [[item view] 
respondsToSelector:@selector(isEnabled)] && [(NSControl *)[item view] 
isEnabled] == NO))) {
+        if (wasAlternate == NO && (([item isSeparatorItem] == NO && [item 
submenu] == nil && [validator validateMenuItem:item] == NO) || ((wasSeparator 
|| i == 0) && [item isSeparatorItem]) || ([item view] && [[item view] 
respondsToSelector:@selector(isEnabled)] && [(NSControl *)[item view] 
isEnabled] == NO))) {
             [menu removeItem:item];
         } else {
             wasSeparator = [item isSeparatorItem];
@@ -906,8 +896,6 @@
                 [menu addItem:[item copy]];
             }
         }else{
-            [self updateCopyAsMenu:alternateCopyMenu];
-            [self updateSharingMenu:sharingMenu];
             [menu addItemsFromMenu:actionMenu];
             [menu removeItemAtIndex:0];
             if ([tcId isRatingField] && [tableView 
numberOfClickedOrSelectedRows] == 1 && [self 
hasGroupTypeSelected:BDSKExternalGroupType] == NO){
@@ -1017,8 +1005,6 @@
         [self updateActionMenu:menu];
     else if (menu == bottomTemplatePreviewMenu || menu == 
sideTemplatePreviewMenu)
         [self updateTemplatePreviewMenu:menu];
-    else if (menu == alternateCopyMenu)
-        [self updateCopyAsMenu:menu];
     else if (menu == [tableView menu])
         [self updateMainTableMenu:menu];
     else if (menu == [[fileSearchController tableView] menu])
@@ -1025,7 +1011,9 @@
         [self updateFileSearchTableMenu:menu];
     else if (menu == [groupOutlineView menu])
         [self updateGroupTableMenu:menu];
-    else if (menu == sharingMenu)
+    else if ([[menu title] isEqualToString:[alternateCopyMenu title]])
+        [self updateCopyAsMenu:menu];
+    else if ([[menu title] isEqualToString:[sharingMenu title]])
         [self updateSharingMenu:menu]; 
 }
 

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