This tasks proposes that dynamic menu contend could not be used (with some exceptions, below).
Examples of dynamic menu content are menu items that are shown or not based on the number of selected items, an operators poll function, or the saved state of the blend file.
This causes the following problems:
- Causes User Uncertainty
When you remember a menu item being available and find it missing, it's not obvious whats happening.
If the menu item is greyed out, it makes it obvious the functionality exists but isn't available.
Note that Blender has the ability to set a message for why an operator is disabled which is displayed in the tool-tip (this should be used more often).
- Complicates Documentation
When instructions give steps to perform an action, a user may find the menu item missing, and think they're using the wrong version or the instructions require and add-on or some other customization.
- Changes Key Accelerators
When menu items change are added/removed, the short-cut keys to activate an item will change too, so a user can't use muscle memory to activate a menu item.
- Complicates Menu Memory
Currently popup menus remember the last action based on the text, with dynamic changing text, our menu hashing function ui_popup_menu_memory would need to somehow support this too, at least if this is used for menu items in popup menus.
Note that even in the case this was solved for updated display-text, moving menu items around has inherent problems with remembering the last used action.
- Context Menu.
- Quick Favorites Menu.
- Menu's that Expand Data such as "Open Recent" or Add "Collection Instances"