
chipx86 got a fish trophy!

Move action activation and state management into the action models.
Review Request #14641 — Created Oct. 18, 2025 and updated — Latest diff uploaded
Actions didn't have a standard way to perform an activation of the
action. The menu item action views had anactivate()
method tied to a
click handler, and subclasses implemented that, but this wasn't a
capability ofActionView
. Quick Access actions happened to get the
same activation support by inheriting the same view for menu items, even
though buttons were used for display (creating a potential future
issue by themselves).As part of the work to centralize actions,
Action
now has an
activate()
method, which performs the operation backed by the action.
Although these are models, this method is allowed to contain or call
UI/view code.
ActionView
has been updated to have an officialactivate()
method
for compatibility, which defaults to callingmodel.activate()
.
Subclasses can always override this to put in logic between the parent
class's call and the model's activation logic.
ActionView
has also been updated to rely more onAction
for
visibility management (newly added for Quick Access actions in 7.1),
so all views for an action will behave the same way.The existing action views have largely been replaced with models, which
in upcoming changes will be better utilized for both standard and Quick
Access actions. The old views have been removed, and probably aren't
worth retaining for any kind of API compatibility.
Unit tests pass.
Tested every single action, making sure states were updated,
visibility was reflected, and actions were activated correctly.