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