• 
      
    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 submitted — 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