Fish Trophy

chipx86 got a fish trophy!

Fish Trophy

Move action activation and state management into the action models.

Review Request #14641 — Created Oct. 18, 2025 and updated — Latest diff uploaded

Information

Review Board
release-7.1.x

Reviewers

Actions didn't have a standard way to perform an activation of the
action. The menu item action views had an activate() method tied to a
click handler, and subclasses implemented that, but this wasn't a
capability of ActionView. 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 official activate() method
for compatibility, which defaults to calling model.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 on Action 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.

Commits

Files